Languages and Scripting

Re: /usr/lib/dld.sl: Invalid version for shared library with Java 1.5

 
SOLVED
Go to solution
Dennis Handly
Acclaimed Contributor

Re: /usr/lib/dld.sl: Invalid version for shared library with Java 1.5

>Can you explain the watermark? Is a watermark of 49 a no-go?

You want to hear the whole sad story of a fancy smancy idea that goes terribly wrong in the real world? ;-)

On 10.x, there were some incompatible changes in libcl and libc. They used pragma HP_SHLIB_VERSION for intra library versioning, to have both versions of the same function:
http://docs.hp.com/en/7133/pragmas.htm#pragma-SHLIB-VERSION

The largest version sets the highwater mark for the shlib. This is recorded in all load modules that refer to this shlib to make sure the that version or a newer version is used.

Then on 11.0, we gave up on that technology and used the SVR4 inter library versioning, with .1 and now .2.
Unfortunately only libc realized they could remove the old intra library versioning and start over with 0. And libcl was left in the state of having the useless versioning.
And in the case of java, if you change the dependent shlibs around, the highwater mark will be different and dld will reject it.

>there's still a highwater of 49 - but it works (???)

That's because for libjvm.sl, it always had 49. It didn't go from 49 to 0, like libjava.sl.
V. Nyga
Honored Contributor

Re: /usr/lib/dld.sl: Invalid version for shared library with Java 1.5

Solution:
Creation of a new executable ...
Java1.4 was downward compatible - Java1.5 isn't.
V.
*** Say 'Thanks' with Kudos ***