x86_64-pc-linux-gnu-gcc -shared -Wl,--whole-archive ./.libs/libcore.a -Wl,--no-whole-archive -lz -ldl -lm -lpthread -march=native -Wl,-O1 -Wl,--as-needed -Wl,-soname -Wl,libjvm.so.0 -o .libs/libjvm.so.0.0.0 (cd .libs && rm -f libjvm.so.0 && ln -s libjvm.so.0.0.0 libjvm.so.0) (cd .libs && rm -f libjvm.so && ln -s libjvm.so.0.0.0 libjvm.so) creating libjvm.la x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -g -w -fno-tree-vrp -Wl,-O1 -Wl,--as-needed -o jamvm jam.o ./.libs/libcore.a -lz -ldl -lm -lpthread (cd .libs && rm -f libjvm.la && ln -s ../libjvm.la libjvm.la) ./.libs/libcore.a(dll.o): In function `callJNIWrapper': /var/tmp/portage/dev-java/jamvm-1.5.0-r2/work/jamvm-1.5.0/src/dll.c:387: undefined reference to `callJNIMethod' ./.libs/libcore.a(dll.o): In function `lookupLoadedDlls': /var/tmp/portage/dev-java/jamvm-1.5.0-r2/work/jamvm-1.5.0/src/dll.c:416: undefined reference to `nativeExtraArg' collect2: ld returned 1 exit status make[3]: *** [jamvm] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [all-recursive] Error 1 make[1]: *** [all] Error 2 make: *** [all-recursive] Error 1 * * ERROR: dev-java/jamvm-1.5.0-r2 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 3136: Called die * The specific snippet of code: * emake || die "make failed." * The die message: * make failed.
Created attachment 146539 [details] emerge --info
Created attachment 146541 [details] compile log
Which makes this strikingly similar to http://bugs.gentoo.org/show_bug.cgi?id=105973#c4 [quote] On amd64, I had to pass --disable-ffi, otherwise configure fails to find libffi... even with it installed. However, make dies with: make[2]: Entering directory `/tmp/jamvm-1.4.1/src' gcc -g -O2 -o jamvm alloc.o cast.o class.o dll.o excep.o execute.o hash.o interp.o jam.o jni.o lock.o natives.o reflect.o resolve.o string.o thread.o utf8.o zip.o properties.o direct.o dll_ffi.o access.o frame.o os/linux/x86_64/libnative.a os/linux/libos.a -lz -ldl -lm -lpthread dll.o: In function `callJNIWrapper': /tmp/jamvm-1.4.1/src/dll.c:322: undefined reference to `callJNIMethod' dll.o: In function `lookupLoadedDlls': /tmp/jamvm-1.4.1/src/dll.c:350: undefined reference to `nativeExtraArg' collect2: ld returned 1 exit status make[2]: *** [jamvm] Error 1 make[2]: Leaving directory `/tmp/jamvm-1.4.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/jamvm-1.4.1/src' make: *** [all-recursive] Error 1 [/quote]
(In reply to comment #3) > Which makes this strikingly similar to > > http://bugs.gentoo.org/show_bug.cgi?id=105973#c4 > > [quote] > However, make dies with: > make[2]: Entering directory `/tmp/jamvm-1.4.1/src' > gcc -g -O2 -o jamvm alloc.o cast.o class.o dll.o excep.o execute.o hash.o > interp.o jam.o jni.o lock.o natives.o reflect.o resolve.o string.o thread.o > utf8.o zip.o properties.o direct.o dll_ffi.o access.o frame.o > os/linux/x86_64/libnative.a os/linux/libos.a -lz -ldl -lm -lpthread > dll.o: In function `callJNIWrapper': > /tmp/jamvm-1.4.1/src/dll.c:322: undefined reference to `callJNIMethod' > dll.o: In function `lookupLoadedDlls': > /tmp/jamvm-1.4.1/src/dll.c:350: undefined reference to `nativeExtraArg' > collect2: ld returned 1 exit status > make[2]: *** [jamvm] Error 1 > make[2]: Leaving directory `/tmp/jamvm-1.4.1/src' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory `/tmp/jamvm-1.4.1/src' > make: *** [all-recursive] Error 1 > [/quote] Indeed it does. And that seems to have magically disappeared for nichoj between his two attempts to build it. Any ideas?
Aha! Apparently amd64 is the only platform that absolutely requires libffi: http://www.mail-archive.com/classpath@gnu.org/msg10578.html http://www.mail-archive.com/classpath@gnu.org/msg14207.html I'm rebuilding my gcc with USE=libffi to test this.
(In reply to comment #5) > Aha! Apparently amd64 is the only platform that absolutely requires libffi: > > http://www.mail-archive.com/classpath@gnu.org/msg10578.html > http://www.mail-archive.com/classpath@gnu.org/msg14207.html > > I'm rebuilding my gcc with USE=libffi to test this. Indeed this is the case, and everything build with libffi turned on! With some symlink hacking, I've now gotten the gcjwebplugin from gnu-classpath working (for which jamvm is a dependency). Could you require USE=libffi for jamvm, and check for gcc with USE=(libffi|gcj)?
libffi use flag package.use.masked on amd64 and the ebuild always checks for libffi on amd64