Boris Kolpackov wrote:
Hi Scott,

Scott Cantor <[EMAIL PROTECTED]> writes:

There's a big difference. On Unix, the linker is designed to bind the
executable to a "neutral" instance of the library that allows for minor
upgrades without rebuild. The actual build command is supposed to find
libfoo.so, but it binds libfoo.so.major into the file.

The actual library itself is libfoo.so.major.rev so that at runtime you
get the latest rev of libfoo.so.major.

Ok, that's one way to do it. The way we do it right now is that we
don't embed the revision of the library into the library name (that's
why we pass 3.0 and not 3.0.0 to -revision). With the -version-info
way of doing it you get the extra benefit of being able to have
several libraries side by side that only differ in the revision
field. I don't think anybody will miss this feature though.

BTW, do all UNIX linkers support -version-info? I have much doubt
about AIX in this regard.
AIX doesn't use the ELF executable format, and its proprietary format doesn't support embedding an soname. The default model for shared libraries is much more like Windows DLLs, which is why we've always embedded the version information in the executable name before the suffix.

Note that it's possible to emulate some features of the ELF-format (like load-time symbol substitution), but it's not recommended, and it's a bit of a hack. I learned many of the gory details from the main AIX linker developer when I worked at IBM, and I suppose I could dig up some of the information if anyone's interested.



Another drawback of using -version-info is that we will have to
somehow replicate this in the ICU message id which currently
looks like this: xercesc_messages_3_0.
Why is it a requirement for them to be connected?

Because it is in some sense an interface: the number of messages
and their relative position can change from release to release so
the major.minor version needs to be embedded into it (think of
it as another library except that it is not built with libtool).
Exactly. This is especially a problem with the message library as built by the ICU tools.

Dave

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to