Hi Paolo,
in ROOT the TSystem::Load() was is used, which hands of the
dlopen/dlclose to CINT. The NOCINT flag was still from the very early
days (about 10 years ago) that we were not 100% CINT based.
Cheers, Fons.
Paolo Adragna wrote:
> Hello everyone.
>
> Let's suppose that I would like to use dynamically loaded libraries inside a
> program (a compiled one, I mean) who is heavily exploiting ROOT capabilities.
> I suppose I should use, for I'm working on a Linux platform,
>
> TUnixSystem::Load to load the library
> TUnixSystem::Unload to unload it.
>
> For the purpose of compare different pieces of code I'm revising, I took a
> look to the source code of TUnixSystem, especially to the Load and Unload
> member function. I am interested in understanding the difference between
> ROOT's way of loading library and dlopen-dlclose way.
>
> I don't undestand the preprocessor statement #ifdef NOCINT inside Load
>
> #ifdef NOCINT
> int i = UnixDynLoad(module);
> if (!entry || !strlen(entry)) return i;
>
> Func_t f = UnixDynFindSymbol(module, entry);
> if (f) return 0;
> return -1;
> #else
> return TSystem::Load(module, entry, system);
> #endif
>
> and inside Unload
>
> #ifdef NOCINT
> UnixDynUnload(module);
> #else
> if (module) { TSystem::Unload(module); }
> #endif
>
> functions. What is the path the ROOT compiled classes follow when the code is
> executed. To put it another way, what is the option ROOT team gives when he
> compiles the framework? What function is used inside my compiled code:
> UnixDynLoad or TSystem::Load?
>
> Thanks a lot,
>
> Paolo
>
>
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET