Re: [ROOT] #ifdef NOCINT

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Sat Oct 02 2004 - 10:57:45 MEST


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