Kaffe 1.0.b1 install fails on Alpha Linux

Robert Harley Robert.Harley at inria.fr
Wed Jul 15 04:15:13 PDT 1998


After "configure", "make" stops with:

------------------------------------------------------------------------------
gcc  -g -O2  -I. -I. -I./../../config -I../../config -I../../include -I./../../include -I../../libraries/clib -DTRANSLATOR -I./jit -DKVER=\"1.00\"  -c -fPIC support.c -o support.o
support.c: In function `callMethodA':
support.c:343: unknown register name `esi' in `asm'
support.c:343: unknown register name `edi' in `asm'
support.c:343: unknown register name `edx' in `asm'
support.c:343: unknown register name `ecx' in `asm'
support.c:343: unknown register name `ebx' in `asm'
support.c:343: unknown register name `eax' in `asm'
support.c: In function `callMethodV':
support.c:518: unknown register name `esi' in `asm'
support.c:518: unknown register name `edi' in `asm'
support.c:518: unknown register name `edx' in `asm'
support.c:518: unknown register name `ecx' in `asm'
support.c:518: unknown register name `ebx' in `asm'
support.c:518: unknown register name `eax' in `asm'
make[2]: *** [support.o] Error 1
make[2]: Leaving directory `/home/corton/harley/kaffe-snap/kaffe/kaffevm'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/corton/harley/kaffe-snap/kaffe'
make: *** [all] Error 1
------------------------------------------------------------------------------


The problem seems to originate in config/alpha/common.h with this macro:

------------------------------------------------------------------------------
#define sysdepCallMethod(CALL)                                          \
        asm volatile ("                                                 \n\
        " :                                                             \
          : "r" ((CALL)->nrargs),                                       \
            "r" ((CALL)->args),                                         \
            "r" ((CALL)->callsize),                                     \
            "m" ((CALL)->function),                                     \
            "m" ((CALL)->rettype),                                      \
            "m" ((CALL)->ret)                                           \
          : "eax", "ebx", "ecx", "edx", "edi", "esi", "cc", "memory");  \
        asm volatile ("                                                 \n\
        " : : "r" ((CALL)->argsize * sizeof(jint)) : "cc")
------------------------------------------------------------------------------


Obviously not right.  The other Alpha stuff (jit-alpha.def) looks
good, so is an accidental omission or is there some magic incantation
to get around it?

Thanks,
  Rob.
PS: same with latest kaffe-snap.


More information about the kaffe mailing list