Hello there,
I have several non x86 platforms to maintain on FreeBSD.
Seems that even if I send --without-machine-code to configure of pike 7.4 (7.5 and 7.2 as well), the auto-configure script still wants to use nasm if it can be found on his path.
This give some "interressing" errors like this (on amd64 for example) :
gmake[3]: Entering directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' Compiling las_t.c Compiling builtin_functions_t.c Compiling peep_t.c Compiling module_t.c /tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/smartlink cc -DPIKE_SRC_ROOT="/tmp/a/ports/lang/pike74/work/Pike-v7.4.31" -I. -I/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src -I/usr/local/include -pthread -R/usr/local/lib -L/usr/local/lib -rdynamic language.o security.o bignum.o pike_cpulib.o interpret.o constants.o cpp.o fdlib.o cyclic.o array.o backend.o callback.o encode.o docode.o dynamic_buffer.o dynamic_load.o error.o fd_control.o fsort.o gc.o hashtable.o lex.o multiset.o signal_handler.o pike_search.o pike_types.o main.o mapping.o pike_memory.o module_support.o pikecode.o object.o opcodes.o operators.o port.o program.o rbtree.o rusage.o stralloc.o stuff.o threads.o version.o queue.o builtin.o iterators.o svalue.o las_t.o builtin_functions_t.o peep_t.o module_t.o `cat modules/linker_options` -lm -lcrypt -o tpike /usr/bin/ld: warning: i386 architecture of input file `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/ module.a(assembly.o)' is incompatible with i386:x86-64 output /tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/ module.a(operator.o): In function `image_operator_plus': operator.o(.text+0xdf7): undefined reference to `image_add_buffers_mmx_x86asm' operator.o(.text+0x10ec): undefined reference to `image_add_buffer_mmx_x86asm' operator.o(.text+0x11fd): undefined reference to `image_sub_buffer_mmx_x86asm' /tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/ module.a(operator.o): In function `image_operator_multiply': operator.o(.text+0x1a39): undefined reference to `image_mult_buffers_mmx_x86asm' operator.o(.text+0x1cc1): undefined reference to `image_mult_buffer_mmx_x86asm' gmake[3]: *** [tpike-real] Error 1 gmake[3]: Leaving directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' gmake[2]: *** [/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/tpike] Error 2 gmake[2]: Leaving directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' gmake[1]: *** [pike] Error 2 gmake[1]: Leaving directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' gmake: *** [all] Error 2 *** Error code 2
(Full make log here : http://bento.freebsd.org/errorlogs/amd64-5-latest/pike74-7.4.31_1.log)
Is there any "official" / good way to make configure script to avoid using nasm on non x86 platforms (I have likewise problems in : alpha, ppc, sparc64....) ?????
Thanks...
/Xavier
--without-machine-code should do it. Please find out why it doesn't.
But I guess you could always expand the test in Image/configure.in:
elif test "`uname -s`" = "OpenBSD"; then #nasm on OpenBSD is braindamaged AC_MSG_RESULT(no)
add another three rows and s/OpenBSD/FreeBSD...? :)
Possibly the test should be if it can compile *and* link the compiled (assembled) code with something else.
/ Mirar
Previous text:
2004-01-26 10:37: Subject: nasm and non x86 platforms
Hello there,
I have several non x86 platforms to maintain on FreeBSD.
Seems that even if I send --without-machine-code to configure of pike 7.4 (7.5 and 7.2 as well), the auto-configure script still wants to use nasm if it can be found on his path.
This give some "interressing" errors like this (on amd64 for example) :
gmake[3]: Entering directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' Compiling las_t.c Compiling builtin_functions_t.c Compiling peep_t.c Compiling module_t.c /tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/smartlink cc -DPIKE_SRC_ROOT="/tmp/a/ports/lang/pike74/work/Pike-v7.4.31" -I. -I/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src -I/usr/local/include -pthread -R/usr/local/lib -L/usr/local/lib -rdynamic language.o security.o bignum.o pike_cpulib.o interpret.o constants.o cpp.o fdlib.o cyclic.o array.o backend.o callback.o encode.o docode.o dynamic_buffer.o dynamic_load.o error.o fd_control.o fsort.o gc.o hashtable.o lex.o multiset.o signal_handler.o pike_search.o pike_types.o main.o mapping.o pike_memory.o module_support.o pikecode.o object.o opcodes.o operators.o port.o program.o rbtree.o rusage.o stralloc.o stuff.o threads.o version.o queue.o builtin.o iterators.o svalue.o las_t.o builtin_functions_t.o peep_t.o module_t.o `cat modules/linker_options` -lm -lcrypt -o tpike /usr/bin/ld: warning: i386 architecture of input file `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/ module.a(assembly.o)' is incompatible with i386:x86-64 output /tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/ module.a(operator.o): In function `image_operator_plus': operator.o(.text+0xdf7): undefined reference to `image_add_buffers_mmx_x86asm' operator.o(.text+0x10ec): undefined reference to `image_add_buffer_mmx_x86asm' operator.o(.text+0x11fd): undefined reference to `image_sub_buffer_mmx_x86asm' /tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/ module.a(operator.o): In function `image_operator_multiply': operator.o(.text+0x1a39): undefined reference to `image_mult_buffers_mmx_x86asm' operator.o(.text+0x1cc1): undefined reference to `image_mult_buffer_mmx_x86asm' gmake[3]: *** [tpike-real] Error 1 gmake[3]: Leaving directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' gmake[2]: *** [/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/tpike] Error 2 gmake[2]: Leaving directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' gmake[1]: *** [pike] Error 2 gmake[1]: Leaving directory `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src' gmake: *** [all] Error 2 *** Error code 2
(Full make log here : http://bento.freebsd.org/errorlogs/amd64-5-latest/pike74-7.4.31_1.log)
Is there any "official" / good way to make configure script to avoid using nasm on non x86 platforms (I have likewise problems in : alpha, ppc, sparc64....) ?????
Thanks...
/Xavier
/ Brevbäraren
I can't really see what's going on. I'm unfamiliar with this. Where in the log is assembly.o created?
Is it empty?
usr/bin/ld: warning: i386 architecture of input file `/tmp/a/ports/lang/pike74/work/Pike-v7.4.31/src/modules/Image/module.a(assembly.o)' is incompatible with i386:x86-64 output
/ Mirar
Previous text:
2004-01-26 11:00: Subject: nasm and non x86 platforms
--without-machine-code should do it. Please find out why it doesn't.
But I guess you could always expand the test in Image/configure.in:
elif test "`uname -s`" = "OpenBSD"; then #nasm on OpenBSD is braindamaged AC_MSG_RESULT(no)
add another three rows and s/OpenBSD/FreeBSD...? :)
Possibly the test should be if it can compile *and* link the compiled (assembled) code with something else.
/ Mirar
pike-devel@lists.lysator.liu.se