Сборка джамвм 1.5.4 на OS X Lion - PullRequest
2 голосов
/ 30 марта 2012

У меня установлен Xcode, и инструменты командной строки работают. Macports не может правильно собрать jamvm 1.5.0, поэтому я пытаюсь собрать последнюю версию (1.5.4) вручную.

./configure ни на что не жалуется.

make завершается с ошибкой:

Making all in src
make  all-recursive
Making all in os
Making all in darwin
Making all in i386
/bin/sh ../../../../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../src  -I../../../../src   -g -O2 -MT init.lo -MD -MP -MF .deps/init.Tpo -c -o init.lo init.c
mkdir .libs
 gcc -DHAVE_CONFIG_H -I. -I../../../../src -I../../../../src -g -O2 -MT init.lo -MD -MP -MF .deps/init.Tpo -c init.c  -fno-common -DPIC -o .libs/init.o
mv -f .deps/init.Tpo .deps/init.Plo
/bin/sh ../../../../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../src  -I../../../../src   -g -O2 -MT dll_md.lo -MD -MP -MF .deps/dll_md.Tpo -c -o dll_md.lo dll_md.c
 gcc -DHAVE_CONFIG_H -I. -I../../../../src -I../../../../src -g -O2 -MT dll_md.lo -MD -MP -MF .deps/dll_md.Tpo -c dll_md.c  -fno-common -DPIC -o .libs/dll_md.o
/var/folders/32/hp4r3m7140q7_d3y4j9lw31m0000gn/T//ccG8KLc8.s:159:suffix or operands invalid for `sub'
/var/folders/32/hp4r3m7140q7_d3y4j9lw31m0000gn/T//ccG8KLc8.s:175:suffix or operands invalid for `push'
/var/folders/32/hp4r3m7140q7_d3y4j9lw31m0000gn/T//ccG8KLc8.s:187:suffix or operands invalid for `push'
/var/folders/32/hp4r3m7140q7_d3y4j9lw31m0000gn/T//ccG8KLc8.s:192:suffix or operands invalid for `push'
/var/folders/32/hp4r3m7140q7_d3y4j9lw31m0000gn/T//ccG8KLc8.s:264:suffix or operands invalid for `add'
make[5]: *** [dll_md.lo] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

Как я могу это исправить?

ПРИМЕЧАНИЕ. Сборка Macports завершается с ошибкой.

1 Ответ

3 голосов
/ 04 апреля 2012

Как считает Эндрю, это проблема, связанная с наличием 32-битных инструкций ASM и попыткой скомпилировать их как 64-битные.Самый простой выход - заставить GCC перейти в 32-битный режим.

make clean
CFLAGS="-m32" ./configure

Это делает работу компиляции и создает рабочий двоичный файл для меня.

...