Re: Incompatibility of libraries

From: Ricardo Eusebi <eusebi_at_physics.tamu.edu>
Date: Fri, 11 Mar 2011 13:50:52 -0600


Yes, they just did.
Thank you.

On 3/11/11 1:50 PM, Philippe Canal wrote:
> Hi,
>
> > However I can't seem to modify the name of the LinkDef file and still
> compile it.
> > Any idea how to work this around ? (I'm using the CMSSW framework to
> compile)
>
> I suspect that CMS support will be able to help you find this information.
>
> Cheers,
> Philippe.
>
> On 3/11/11 11:45 AM, Ricardo Eusebi wrote:
>> Thanks, when doing that I get :
>>
>>
>> nm libTAMUWWSpecialTools.so libTAMUWWMEPATNtuple.so |grep
>> G__cpp_reset_tagtable
>>
>> 000000000002bc80 T G__cpp_reset_tagtableLinkDef
>> 0000000000010170 T G__cpp_reset_tagtableLinkDef
>>
>> which if I understand correctly it suggest that my two identically
>> named LinkDef files located in the different directories of each
>> library are the cause of the conflict. However I can't seem to modify
>> the name of the LinkDef file and still compile it. Any idea how to
>> work this around ? (I'm using the CMSSW framework to compile)
>>
>> Thanks,
>> Ricardo
>>
>> On 3/11/11 11:09 AM, Axel Naumann wrote:
>>> Hi,
>>>
>>> this can be caused by both libraries containing a dictionary with the
>>> same name. I.e. they might have two different dictionaries (different
>>> content), but at creation time (rootcint) they were given the same file
>>> name (e.g. G__Dict.cxx).
>>>
>>> You should be able to find out by comparing the output of
>>>
>>> nm libTAMUWWSpecialTools.so libTAMUWWMEPATNtuple.so |grep
>>> G__cpp_reset_tagtable
>>>
>>> Cheers, Axel.
>>>
>>> Ricardo Eusebi wrote on 03/11/2011 05:13 PM:
>>>> Hi,
>>>> I'm working with ROOT 5.22/00d (branches/v5-22-00-patches_at_29532, May 19
>>>> 2010) on Linux 2.6.18-194.32.1.el5 2011 x86_64 x86_64 x86_64 GNU/Linux
>>>>
>>>> I have a conflict between libraries that I cannot solve. Specifically I
>>>> have the following two libraries, which (are supposed to) have
>>>> absolutely no dependence between each other:
>>>> -SpecialTools (which contains the class PhysicsProcess)
>>>> -MEPATNtuple (which contains the class METree)
>>>>
>>>>
>>>> I can load the library containing the PhysicsProcess class and works
>>>> just fine
>>>> root [0]
>>>> gSystem->Load("../../lib/slc5_ia32_gcc43/libTAMUWWSpecialTools.so")
>>>> (int)0
>>>> root [1] PhysicsProcess * proc
>>>> root [2]
>>>>
>>>> I can restart root and load the library containing the class METree and
>>>> works fine as well
>>>> root [0]
>>>> gSystem->Load("../../lib/slc5_ia32_gcc434/libTAMUWWMEPATNtuple.so")
>>>> (int)0
>>>> root [1] METree * me
>>>> root [2]
>>>>
>>>>
>>>> But when I load both of them I can only see the first library's classes
>>>> (true regardless of the order in which the libraries are loaded)
>>>>
>>>> root [0]
>>>> gSystem->Load("../../lib/slc5_ia32_gcc434/libTAMUWWSpecialTools.so")
>>>> (int)0
>>>> root [1] PhysicsProcess * proc
>>>> root [2]
>>>> gSystem->Load("../../lib/slc5_ia32_gcc434/libTAMUWWMEPATNtuple.so")
>>>> (int)0
>>>> root [3] METree * me
>>>> Error: Symbol METree is not defined in current scope (tmpfile):1:
>>>> Error: Symbol me is not defined in current scope (tmpfile):1:
>>>> (const int)0
>>>> *** Interpreter error recovered ***
>>>> root [4] PhysicsProcess * proc
>>>> root [5]
>>>>
>>>> So my question is very general, giving a conflict between libraries how
>>>> can I start debugging where in the libraries my problem is at ? If
>>>> there is an incompatibility between these libraries how can I pinpoint
>>>> the source of that error ?
>>>>
>>>>
>>>> Thanks,
>>>> Ricardo
>>>>
>>>>
>>>>
>>>
>>
>

-- 
  ------------------------------------------------------------
| Ricardo Eusebi           | Office:  Mitchell Inst. M323    |
| High Energy Physics      | Phone : (979) 458 7907          |
| Texas A&M University     | email : eusebi_at_physics.tamu.edu |
  ------------------------------------------------------------
Received on Fri Mar 11 2011 - 20:51:10 CET

This archive was generated by hypermail 2.2.0 : Sat Mar 12 2011 - 11:50:01 CET