GenerateDictionary with v5.34.01

Hello,

When trying to generate dictionaries with gInterpreter.GenerateDictionary I get a bunch of “undefined reference” (see --1-- below). This happens only when calling this function from pyROOT, while the dictionary is correctly generated if the function call is made from the root interpreter.
This problem appears only with v5.34.01 (with v5.32.04 everything works fine).
At first I thought that this was the same problem reported here [url]Problem compiling with CINT from PyROOT However, even with the trick indicated in that thread

the problem is still there.

Could you please help me figure out what I’m doing wrong?
The python/gcc versions are below (–2--)

Many thanks

davide

–1--

>>> import ROOT as r
>>> r.gSystem.SetMakeSharedLib(r.gSystem.GetMakeSharedLib().replace('-Wl,--as-needed', ''))
>>> r.gInterpreter.GenerateDictionary("pair<string,bool>", "string;utility")
/tmp/root/root_v5.34.01/AutoDict_pair_string_bool__cxx_ACLiC_dict.o: In function `G__setup_memfuncpairlEstringcOboolgR()':
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0xe4): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0xec): undefined reference to `G__tag_memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0xf4): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x16f): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x177): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x1ef): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x1f7): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x273): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x27b): undefined reference to `G__get_linked_tagnum'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x2f3): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x372): undefined reference to `G__memfunc_setup'
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x377): undefined reference to `G__tag_memfunc_reset'
/tmp/root/root_v5.34.01/AutoDict_pair_string_bool__cxx_ACLiC_dict.o: In function `G__AutoDict_pair_string_bool__cxx_ACLiC_dict_2796_0_1(G__value*, char const*, G__param*, int)':

<...>

AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text+0x12fc): undefined reference to `G__call_setup_funcs'
/tmp/root/root_v5.34.01/AutoDict_pair_string_bool__cxx_ACLiC_dict.o: In function `G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dict::~G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dict()':
AutoDict_pair_string_bool__cxx_ACLiC_dict.cxx:(.text._ZN58G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dictD2Ev[_ZN58G__cpp_setup_initAutoDict_pair_string_bool__cxx_ACLiC_dictD5Ev]+0x1c): undefined reference to `G__remove_setup_func'
collect2: ld returned 1 exit status
Error in <ACLiC>: Compilation failed!
2

–2--

$ gcc --version gcc (Gentoo 4.5.4 p1.0, pie-0.4.7) 4.5.4

$ python --version Python 2.7.3

$ root-config --version --python-version --features 5.34/01 2.7builtin_zlib cintex explicitlink gviz genvector mathmore memstat odbc opengl pythia8 python reflex shadowpw shared ssl tmva x11 xft xml thread

Hi,

see https://savannah.cern.ch/bugs/?95188 and various other reports on this forum. In the savannah bug report, I’ve a proposed solution, and I have a (hopefully temporary) fix checked in. Hopefully the bug report gets a real fix sometime soon …

Cheers,
Wim

Thanks a lot, Wim.
That’s what I suspected… I will try again when this gets fixed.
Cheers,

davide

Hi,

This should now be fixed.

Philippe.