Hi Konstantin et al, On Tue, 16 May 2000 11:30:54 -0400 Konstantin Olchanski <olchansk@ux1.phy.bnl.gov> wrote: > Note that library versions are an ELF object file format feature, > so an system that uses ELF executables would have it. > > > The above list is incorrect: while Windows, DEC Unix and AIX are *not* ELF > (but they still might have their own versioning) others on your list > (namely sunos5.x, irix5, irix6, linux, recent BSD variants) are ELF and > in fact do have shared library versioning. > > > Anyway, that's a side note, but I thought I mention it, since I like > > that feature of Linux alot, and someone may find it useful. I did > > suggest this scheme at one time to the ROOT team, but they didn't > > really respond. > > > It is not a Linux feature, it's an ELF feature, and Linux did not have > it until they adopted the ELF object file format somewhere in the middle > of the Linux 2.0.x age. The ELF format goes back to AT&T UNIX System V > Release 4, so all derived systems (e.g. Solaris and IRIX) had it for a > long time now (IRIX since at least early 1994). Side note: That's what so bloody brilliant about Linux: It combines the best features of System V and BSD, while introducing many new things. Of course. You're right. Now that you mention it, I remember having read somewhere this is a ELF feature. However, I didn't mean to imply that Linux _only_ supported this feature (sorry it came out that way). The list I cited, was build from what I could gather from the "$ROOTSYS/src/Makelib", where I was looking for SONAME's, and hence error-prone. Thanks for correcting that Konstantin. > The ROOT team might not be able to use this ELF feature though because > they need to support non-ELF systems like AIX and Windows. Well, that's really no problem. Since you're only gonna use one set of libraries on each platform/OS combination (the libraries are platform/OS dependent by nature), one could very well use the ELF feature on ELF platforms, and not on non-ELF platforms. You always link against a name of a library, not really a filename (on Unix'es "-l<libname>" e.g., "-lTree", on Windoze something else). I tried it on Linux and Digital Unix, and there is no problem. On run time, the dynamic loader must resolve the actual name into a file, and this is of course very OS specific, and so the headache is the loaders, not the developers (I guess is if you still had to load the loader?! like back in the 70's you'd have the headache, but not anymore). In fact, on Linux (not implying this is not possible else where), it's possible to instruct the loader to look in various directories for libraries _without_ setting any environment variables (like "LD_LIBRARY_PATH"): just add that directory to the file "/etc/ld.so.conf". Many RPM's and DEB's exploits this feature (qt, X11, and so on). If you feel comfortable with this, you could add the root library directory to that file, and the user will still be able to override this using LD_LIBRARY_PATH. Cheers, Christian ----------------------------------------------------------- Holm Christensen Phone: (+45) 35 35 96 91 Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305 DK-2200 Copenhagen N Web: www.nbi.dk/~cholm Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue May 16 2000 - 12:00:48 EDT