Sorry, again: (reading from left to right the link command). Regards, Gustavo
On 17-08-2016 11:15, Gustavo Romero wrote: > Hi David, > > On 17-08-2016 00:38, David Holmes wrote: >> On 16/08/2016 8:41 AM, Gustavo Romero wrote: >>> On Ubuntu 16.04 PPC64 LE replacing -lpthread by -pthread in >>> ./hotspot/make/test/JtregNative.gmk:82 solves the issue on pthread_* >>> symbols and >>> placing -ljvm (for instance) in front of ".../exeinvoke.o" solves the issue >>> on >>> JNI_CreateJavaVM reference, however I'm really not sure what's the root >>> cause. >> >> I checked the link command being used (it is generated into a file when the >> test-image is built) and the -ljvm is already in front of the exeinvoke.o >> >> /var/tmp/jib-daholme/install/jpg/infra/builddeps/devkit-linux_x64/gcc4.9.2-OEL6.4+1.0/devkit-linux_x64-gcc4.9.2-OEL6.4+1.0.tar.gz/bin/gcc >> -Wl,-z,defs -Wl,-O1 -Wl,--allow-shlib-undefined >> -L/scratch/dh198349/jdk9-hs/build/linux-x64/support/modules_libs/java.base/amd64 >> >> -L/scratch/dh198349/jdk9-hs/build/linux-x64/support/modules_libs/java.base/amd64/server >> -ljvm -lpthread >> --sysroot=/var/tmp/jib-daholme/install/jpg/infra/builddeps/devkit-linux_x64/gcc4.9.2-OEL6.4+1.0/devkit-linux_x64-gcc4.9.2-OEL6.4+1.0.tar.gz/x86_64-unknown-linux-gnu/sysroot >> -o >> /scratch/dh198349/jdk9-hs/build/linux-x64/support/test/hotspot/jtreg/native/bin/invoke >> >> /scratch/dh198349/jdk9-hs/build/linux-x64/support/test/hotspot/jtreg/native/support/exeinvoke/exeinvoke.o > > Sorry, "in front of" was a misleading expression. I meant placed *after* > exeinvoke.o (reading from right to left the link command). > > So on Ubuntu 16.04 x64 this fails (taken from the original build, the order > is like in your link command): > > /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin > /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so > -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper > -plugin-opt=-fresolution=/tmp/cccQFwXy.res > -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s > -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc > -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr > -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker > /lib64/ld-linux-x86-64.so.2 -z relro -o > /home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/test/hotspot/jtreg/native/bin/invoke > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o > /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o > -L/home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/modules_libs/java.base/amd64 > -L/home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/modules_libs/java.base/amd64/server > -L/usr/lib/gcc/x86_64-linux-gnu/5 > -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu > -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu > -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib > -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. --hash-style=both -z defs -O1 > --allow-shlib-undefined -ljvm -lpthread > /home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/test/hotspot/jtreg/native/support/exeinvoke/exeinvoke.o > -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed > -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o > > but this succeeds (where -ljvm is after exeinvoke.o): > > /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin > /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so > -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper > -plugin-opt=-fresolution=/tmp/ccIRdp31.res > -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s > -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc > -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s > --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu > --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o > /home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/test/hotspot/jtreg/native/bin/invoke > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o > /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o > -L/home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/modules_libs/java.base/amd64 > -L/home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/modules_libs/java.base/amd64/server > -L/usr/lib/gcc/x86_64-linux-gnu/5 > -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu > -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu > -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib > -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. --hash-style=both -z defs -O1 > /home/gromero/hg/jdk9/hs-comp/build/linux-x86_64-normal-server-release/support/test/hotspot/jtreg/native/support/exeinvoke/exeinvoke.o > -ljvm -lgcc --as-needed -lgcc_s --no-as-needed -lpthread -lc > -lgcc --as-needed -lgcc_s --no-as-needed > /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o > /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o > > Full log: https://paste.fedoraproject.org/409607/raw/ > > > Regards, > Gustavo >