On 20/03/12 12:43, Georgi Naplatanov wrote: > ... last week something happened to > kfreebsd-amd64 (unstable) and the build process of openjdk-7 gave > another error even with dpkg-buildpackage which worked before. The log > file is here - > http://os.oles.biz/openjdk/openjdk-7_7~u3-2.1-3_kfreebsd-amd64.build.gz
Hi, I wonder if this could be to do with the library rpath for j2sdk-image/jre/bin/java; it is set to be able to find libjli only. Full explanation: /«PKGBUILDDIR»/build/bootstrap/jdk1.6.0/bin/java -version Error: could not find libjava.so Where /«PKGBUILDDIR»/build/bootstrap/jdk1.6.0 is symlink to /«PKGBUILDDIR»/build/bootstrap/icedtea Then /«PKGBUILDDIR»/build/bootstrap/icedtea is a symlink to /«PKGBUILDDIR»/build/openjdk.build-boot/j2sdk-image/ And the binary is where it should be, at /«PKGBUILDDIR»/build/openjdk.build-boot/j2sdk-image/bin/java > RUNPATH for: /«PKGBUILDDIR»/build/openjdk.build-boot/j2sdk-image/jre/bin/java > 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] > 0x0000000000000001 (NEEDED) Shared library: [libjli.so] > 0x0000000000000001 (NEEDED) Shared library: [libz.so.1] > 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] > 0x0000000000000001 (NEEDED) Shared library: [libc.so.0.1] > 0x000000000000000f (RPATH) Library rpath: > [$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli] So the rpath first expands to /«PKGBUILDDIR»/build/openjdk.build-boot/j2sdk-image/jre/lib/amd64/jli And libjli is indeed at /«PKGBUILDDIR»/build/openjdk.build-boot/j2sdk-image/jre/lib/amd64/jli/libjli.so > RUNPATH for: > /«PKGBUILDDIR»/build/openjdk.build-boot/j2sdk-image/jre/lib/amd64/jli/libjli.so > 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] > 0x0000000000000001 (NEEDED) Shared library: [libc.so.0.1] > 0x0000000000000001 (NEEDED) Shared library: [libz.so.1] > 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] > 0x000000000000000f (RPATH) Library rpath: [$ORIGIN:$ORIGIN/..] If libjli.so now tried to load libjava.so, it would be looking in the right place now (/jli/../) But if the main executable tried to load libjava.so, its rpath is set only to the /jli subdir where it is not found. The executable was linked with: > gcc-4.6 -o /«PKGBUILDDIR»/build/openjdk.build-boot/bin/java -Xlinker -O1 > -Xlinker -version-script=../../../java/main/java/mapfile-amd64 -Xlinker -z > -Xlinker defs -Wl,-Bsymboli > c-functions -L/«PKGBUILDDIR»/build/openjdk.build-boot/lib/amd64 > -Wl,-soname=lib.so -Wl,-z,relro -L > /«PKGBUILDDIR»/build/openjdk.build-boot/lib/amd64/jli -Wl,--allow-shlib-unde > fined -Wl,-rpath -Wl,\$ORIGIN/../lib/amd64/jli -Wl,-rpath > -Wl,\$ORIGIN/../jre/lib/amd64/jli \ > > /«PKGBUILDDIR»/build/openjdk.build-boot/tmp/java/java/obj64/main.o -lpthread > -ljli -lz -ldl -lc And I think something like this is missing from there for it to work: > -Wl,-rpath -Wl,\$ORIGIN/../lib/amd64 But I don't have a build environment to try this on right now. And wouldn't know where/how to make this change either... Regards, -- Steven Chamberlain ste...@pyro.eu.org -- To UNSUBSCRIBE, email to debian-bsd-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4f688f28.9040...@pyro.eu.org