On 9/26/12 5:47 PM, David Matthews wrote:
Well, I tried, along the same lines:
--build=x86_64-solaris and --build=amd64-solaris CFLAGS='-m64 -O3 -I../libffi/include' CXXFLAGS='-m64 -O3 -I../libffi/include' CCASFLAGS='-m64 -O3' .....
From the comment near the top of elfexport.cpp it seems that there is an explicit inclusion of sys/elf_386.h if it is present:
// Solaris seems to put processor-specific constants in separate files #ifdef HAVE_SYS_ELF_SPARC_H #include <sys/elf_SPARC.h> #endif #ifdef HAVE_SYS_ELF_386_H #include <sys/elf_386.h> #endif
Does it work if you add #include <sys/elf_amd64.h> just after that (without any ifdef)? If so it would be easy for me to fix.
make goes much further then. Here are the last 30 lines printed:
Making STRUCT Created functor STRUCT Created structure Struct Making Conversions Making CONVERSIONS Created signature ForeignExceptionSig_Import Created functor CONVERSIONS Created structure Conversions Making StructConversionals Making STRUCT_CONVERSIONALS Created functor STRUCT_CONVERSIONALS Created structure StructConversionals Created structure CInterface /bin/sh ./libtool --tag=CC --mode=link gcc -DSOLARIS -Wall -fno-strict-aliasing -m64 -O3 -I../libffi/include -I../libffi/include -o poly polyexport.o libpolymain/libpolymain.la libpolyml/libpolyml.la -lpthread -lgmp -lsocket -lnsl -lm -ldl -lstdc++ -lgcc_s -lgcc libtool: link: gcc -DSOLARIS -Wall -fno-strict-aliasing -m64 -O3 -I../libffi/include -I../libffi/include -o .libs/poly polyexport.o libpolymain/.libs/libpolymain.a -lstdc++ libpolyml/.libs/libpolyml.so -L/usr/sfw/lib/amd64 -lpthread -lgmp -lsocket -lnsl -ldl /usr/sfw/lib/amd64/libstdc++.so -lm -lgcc_s -lgcc -R/home/bernard/local/polyml/i86pc-64/lib -R/usr/sfw/lib/amd64 ld: fatal: file polyexport.o: section .rel.data has invalid type [ SHT_REL ] ld: fatal: file polyexport.o: section .rel.text has invalid type [ SHT_REL ] ld: fatal: file polyexport.o: section .rel.data has invalid type [ SHT_REL ] ld: fatal: file polyexport.o: section .rel.data has invalid type [ SHT_REL ] ld: fatal: file polyexport.o: section .rel.data has invalid type [ SHT_REL ] ld: fatal: file polyexport.o: section .rel.text has invalid type [ SHT_REL ] ld: fatal: file polyexport.o: section .rel.data has invalid type [ SHT_REL ] ld: warning: file /usr/sfw/lib/amd64/libstdc++.so: attempted multiple inclusion of file ld: fatal: file processing errors. No output written to .libs/poly collect2: ld returned 1 exit status gmake[2]: *** [poly] Error 1 gmake[2]: Leaving directory `/home/bernard/local/polyml.5.5' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/home/bernard/local/polyml.5.5' gmake: *** [all] Error 2
Bernard.