[GiNaC-list] Problem using a user-defined class on Mac OS X.
Chris.Dams at mi.infn.it
Chris.Dams at mi.infn.it
Thu Apr 5 21:18:14 CEST 2007
Dear Alexei
>> The point is that in the original GiNaC code
>> there would be two instances of, say, foo<void*>::data inside the
>> executable.
>
> But foo<T>::data is a static memeber. There should be only one instance.
Yes, there should be one. Unfortunately there are two.
>> One comming from the shared library and the other one coming
>> from the executable itself. Library code would modify the first one and
>> code from the executable would modify the other one.
>
> Could you please run
> nm -B -C -D /path/to/libginac.so
> nm -B -C /path/to/your/binary
> (or nm -B /path/to/libginac.so | c++filt, or whatever is it on OS X)
Those options are not recognized on OS X, but I did do the following:
for the unpatched lib:
> nm ~/lib/libginac-1.4.0.0.0.dylib | grep class_info | grep first
003a4124 s __ZN5GiNaC10class_infoINS_21print_context_optionsEE5firstE
003a3c10 s __ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE
> nm gendiags | grep class_info | grep first
002a2174 s __ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE
for the patched lib:
> nm ~/lib/libginac-1.4.0.0.0.dylib | grep class_info | grep first
00000000 a
_GLOBAL__D__ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE.eh
00000000 a
_GLOBAL__I__ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE.eh
002f3c60 s
__GLOBAL__D__ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE
002f3c50 s
__GLOBAL__I__ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE
00323940 D __ZN5GiNaC10class_infoINS_21print_context_optionsEE5firstE
00323938 D __ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE
> nm gendiags | grep class_info | grep first
U __ZN5GiNaC10class_infoINS_24registered_class_optionsEE5firstE
Best wishes,
Chris
More information about the GiNaC-list
mailing list