Re: BRAHVO does not start. ROOT problem?

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Tue May 16 2000 - 11:55:57 EDT

  • Next message: Flemming Videbaek: "Brat cvs checkin"

    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