Re: [ROOT] Crashing before main()

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed May 26 2004 - 12:56:37 MEST


Hi Christian,

Christian Holm Christensen wrote:
> 
> Hi Rene,
> 
> On Wed, 2004-05-26 at 08:41, Rene Brun wrote:
> > Hi Christian,
> >
> > In ROOT version 4.00/04 you can
> >  ./configure --enable-explicitlink
> > to solve the problem discussed in your mail.
> 
> Ah, so you implemented it.  I remember Fons and I discussed that some
> time ago.

Masa implemented the feature in CINT directly. Fons adapted it to ROOT.

> 
> I hope you remember to set the `rpath' when `--enable-rpath' is given to
> `configure' - otherwise, it's pretty meaningless.

did you try? it should be OK.

> 
> However, it doesn't change the fact that users have to, by hand specify
> the ROOT libraries the client libraries depend on.

No. When ROOT has been installed with --enable-explicitlink, you do not need
to specify all the libs, only the top level lib.

> 
> > Also note that with the version currently in CVS, the automatic loading
> > of a shared lib is implemented, eg
> > root > TLorentzVector v;
> > This statement in CINT will automatically do gSystem->Load("libPhysics");
> 
> But that's an entirely different issue.  This has to do with your plugin
> manager.  I think I brought up the issue some time ago with Fons, that
> the plugin manager should really be used more heavily.  What I had in
> mind, was that libraries like `libFumili' are really plugins and not
> libraries at all.   Hence, they should live in a separate directory
> (e.g., <prefix>/lib/root/plugins), and really be linked like `libtool
> -module' would do (on windows, a dll without a corresponding lib file).

I do not understand this point. libFumili is already used as a plug-in
see the list of plugins in system.rootrc.

> 
> Maybe, you could extent the system.rootmap functionality a bit further,
> so that clients can add more files of that type to some directory
> (/etc/root/plugins), as well as some place to look for additional files
> with lines like `+Plugin.<...> ......'.  In that way, client code can
> easily integrate it's code into ROOT.

This is already done (Fons). It will be documented in the Release notes.
Users can take advantage of the new tool $ROOTSYS/bin/rlibmap to create
their own map. See the Root makefile for an example.

> 
> > The rootmap file contains all the dependencies for a given class
> > and the corresponding shared libs will be loaded in the right order.
> 
> Basically the output of `nm -C', massaged a bit, right?

well, if you like. Except that the world is more than just Linux. ::)

Rene Brun


> 
> Yours,
> 
> --
>  ___  |  Christian Holm Christensen
>   |_| |  -------------------------------------------------------------
>     | |  Address: Sankt Hansgade 23, 1. th.  Phone:  (+45) 35 35 96 91
>      _|           DK-2200 Copenhagen N       Cell:   (+45) 24 61 85 91
>     _|            Denmark                    Office: (+45) 353  25 404
>  ____|   Email:   cholm@nbi.dk               Web:    www.nbi.dk/~cholm
>  | |



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET