Explicitlink

Hi,

I’ve been wondering for a while now: Is there any reason not to enable the explicitlink option?

I’m asking specifically because it’s requried for my Perl-wrapper or otherwise I get in trouble with the linker. So I’m wondering whether it would be sensible to make explicit dependencies between shared libraries the default. It’s what everybody else does, isn’t it?

If that’s not possible, is there an easy way to find out which shared library needs to be loaded at run time?

Best regards,
Steffen

Hi Steffen,

You can configure --explicitlink if you like.
for more info see ./configure --help

Rene

Hi Rene,

thanks for your quick reply!

[quote=“Rene”]You can configure --explicitlink if you like.
for more info see ./configure --help
[/quote]

I’m aware of that option and I’m using it or else I wouldn’t be able to run my own software. :slight_smile:

I’m just wondering why it exists in the first place and why the shared libraries don’t contain the explicit linking-dependency information by default. ROOT is the first library I came across of which I know it doesn’t do that. This may well be due to my lack of experience, though.

Best regards,
Steffen

Hi,

during development explicit link causes quite some overhead as one library change will cause the relinking of potentially many libraries. In ROOT at run time we know exactly the library dependencies, and which libs need to be preloaded to be able to successfully load a library. This information is in the .rootmap files. See lib/*.rootmap. The rootmap info is used when we dynamically link a plugin.

Cheers, Fons.