I'm trying to debug libgda5 build failure: | + javac getsp.java | javac: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory | error: Bad exit status from /tmp/B.4ZeOy1/BUILD/tmp/rpm-tmp.33887 (%build)
/usr/bin/javac is a symlink to /usr/lib64/jvm/icedtea8-3.17.0/bin/javac and ldd shows: | linux-vdso.so.1 (0x00007fff6bad1000) | libjli.so => /usr/lib64/jvm/icedtea8-3.17.0/bin/../lib/amd64/jli/libjli.so (0x00007f5c2ce8f000) | libc.so.6 => /lib64/libc.so.6 (0x00007f5c2cc5b000) | libz.so.1 => /lib64/libz.so.1 (0x00007f5c2cc41000) | libdl.so.2 => /lib64/libdl.so.2 (0x00007f5c2cc3b000) | libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5c2cc1a000) | /lib64/ld-linux-x86-64.so.2 (0x00007f5c2cea7000) libjli.so is found by $ORIGIN/../lib/amd64/jli RPATH. But: | $ /usr/lib64/jvm/icedtea8-3.17.0/bin/javac -help | /usr/lib64/jvm/icedtea8-3.17.0/bin/javac: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory `strace -f /usr/lib64/jvm/icedtea8-3.17.0/bin/javac -help` shows something strange: | # src : https://buildlogs.pld-linux.org/pld/th/x86_64/FAIL/command,bd4d8466-aafa-4f38-ab38-45d3dd906832.bz2 | # date : 2020/11/10 18:21:26 | execve("/usr/lib64/jvm/icedtea8-3.17.0/bin/javac", ["/usr/lib64/jvm/icedtea8-3.17.0/b"..., "-help"], 0x7ffd2c6b3340 /* 33 vars */) = 0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | brk(NULL) = 0x56350d9df000 | arch_prctl(0x3001 /* ARCH_??? */, 0x7fff5b7713e0) = -1 EINVAL (Invalid argument) | readlink("/proc/self/exe", "/usr/bin/rsync", 4096) = 14 ^^^^^^^^^^^^^^^^ ??? | mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6f30ec0000 | access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) | openat(AT_FDCWD, "/usr/bin/../lib/amd64/jli/tls/x86_64/x86_64/libjli.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) ^^^^^^^^ | stat("/usr/bin/../lib/amd64/jli/tls/x86_64/x86_64", 0x7fff5b770580) = -1 ENOENT (No such file or directory) ^^^^^^^^ execve shows proper path, but why readlink("/proc/self/exe") returns "/usr/bin/rsync" and $ORIGIN is resolved as /usr/bin instead of /usr/lib64/jvm/icedtea8-3.17.0/bin ??? -- Jakub Bogusz http://qboosh.pl/ _______________________________________________ pld-devel-en mailing list pld-devel-en@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-en