Re: Load of .so failing for unknown and capricious reasons

Pasha Murat (murat@cdfsga.fnal.gov)
Sun, 21 Jun 1998 11:22:56 -0500 (CDT)


Hi Nathan,

egcs-compiled version has been built with -fno-rtti and -fno-exceptions
flags on, make sure that you also turn rtti and exceptions off.
If this won't help, I'd suggest to build shared libraries on both platforms
with -no_unresolved linker flag (if linux equivalent of this option does exist)
to see what the differences in unresolved references are. If there is no linker
option which prints unresolved references you can use

nm lib | grep "U "
Regards, Pasha.
--------------------------------------------------------------------------------
Nathan Meyers writes:
> Hi,
>
> I'm having some odd difficulties integrating my own classes with Root;
> TSystem::Load() can fail or succeed on my .so's for reasons that are not
> obvious. Is there a way to get more detail than "Dynamic link library
> ... can not load"?
>
> One of my failures occurs on one of my systems but not the other:
>
> System 1: Linux 2.0.32, RH5.0 with libg++, running the Root compiled for
> gcc environment
>
> System 2: Linux 2.0.34, RH5.1 with egcs 2.90.27, running the Root
> compiled for egcs environment
>
> Root itself works in both environments, but when I build my own .so on
> system 1, I'm able to load and use it; when I do the same on system 2
> (clean build on identical sources), the gSystem->Load() call fails.
> There are no obvious problems, such as missing or inconsistent shared
> library dependencies.
>
> Any insights into what factors can make a TSystem::Load() call fail?
>
> Nathan Meyers
> nmeyers@teleport.com