Bug#676621:
Ok, I'd like to go a little further. Since Java modules are not
libraries (no SONAME). We have thus:
1.
$ readelf -d /usr/lib/jni/libjava-access-bridge-jni.so
Dynamic section at offset 0x8d0 contains 40 entries:
Tag Type Name/Value
[...]
0x000000000000000e (SONAME) Library soname:
[libjava-access-bridge-jni.so.0]
That should be detected with a lintian warning.
2. A java module should *not* explicitely link to other java module. Eg:
$ readelf -d /usr/lib/jni/libvtkRenderingJava.so
Dynamic section at offset 0xe3d50 contains 33 entries:
Tag Type Name/Value
[...]
0x0000000000000001 (NEEDED) Shared library: [libjawt.so]
Where:
$ readelf -d /usr/lib/jvm/default-java/jre/lib/amd64/libjawt.so
Dynamic section at offset 0x940 contains 34 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libawt.so]
0x0000000000000001 (NEEDED) Shared library: [libmawt.so]
0x0000000000000001 (NEEDED) Shared library: [libjava.so]
0x0000000000000001 (NEEDED) Shared library: [libjvm.so]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libjawt.so]
0x000000000000000f (RPATH) Library rpath: [$ORIGIN]
libjawt.so will be loaded by the java process itself. Explicitely
linking to one specific implementation (Sun vs OpenJDK) might be an
issue.
Comments appreciated.
Reply to: