Simple function warning in 5.16


I compile root on my Debian system with the option:

./configure linux --disable-pgsql

(leaving out --disable-pgsql results in a compilation error). After installation trying to load the attached script results in an interesting warning:

root [0] .L
Attempt to add function operator+ failed - ifunc_table overflow!
Attempt to add function operator/ failed - ifunc_table overflow!
Attempt to add function MK_MSG failed - ifunc_table overflow!
Attempt to add function GET_MSG failed - ifunc_table overflow!
Attempt to add function GET_SUBMSG failed - ifunc_table overflow!

Any idea what does this mean?

Ivan (44 Bytes)


does the problem persist if you do
before .L

Could you send the error you get when configuring without --disable-pgsql?



indeed, obviously libGpad is not loaded:

root [0] gSystem->Load(“libGpad”);
root [1] gSystem->Load(“libHist”);
Note: File “/usr/local/root/lib/” already loaded
root [2] .L
root [3] .q

but my assumption was that they should be dynamically loaded… or am I wrong? I will in any case add to my script the loading of the libGpad.
Thanks for the advice.

I recompiled my root without the option --disable-pgsql and the compilation output is:

==> lib/ done
bin/rmkdepend -R -fpgsql/src/TPgSQLResult.d -Y -w 1000 – -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -I/usr/include/postgresql -D__cplusplus – pgsql/src/TPgSQLResult.cxx
g++ -O2 -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -I/usr/include/postgresql -DUSEPCH -include precompile.h -o pgsql/src/TPgSQLResult.o -c pgsql/src/TPgSQLResult.cxx
bin/rmkdepend -R -fpgsql/src/TPgSQLRow.d -Y -w 1000 – -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -I/usr/include/postgresql -D__cplusplus – pgsql/src/TPgSQLRow.cxx
g++ -O2 -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -I/usr/include/postgresql -DUSEPCH -include precompile.h -o pgsql/src/TPgSQLRow.o -c pgsql/src/TPgSQLRow.cxx
bin/rmkdepend -R -fpgsql/src/TPgSQLServer.d -Y -w 1000 – -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -I/usr/include/postgresql -D__cplusplus – pgsql/src/TPgSQLServer.cxx
g++ -O2 -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -I/usr/include/postgresql -DUSEPCH -include precompile.h -o pgsql/src/TPgSQLServer.o -c pgsql/src/TPgSQLServer.cxx
pgsql/src/TPgSQLServer.cxx: In member function ‘virtual TSQLStatement* TPgSQLServer::Statement(const char*, Int_t)’:
pgsql/src/TPgSQLServer.cxx:347: error: ‘struct PGSQL_STMT’ has no member named ‘conn’
pgsql/src/TPgSQLServer.cxx:348: error: ‘struct PGSQL_STMT’ has no member named ‘res’
pgsql/src/TPgSQLServer.cxx:350: error: ‘struct PGSQL_STMT’ has no member named ‘res’
pgsql/src/TPgSQLServer.cxx:355: error: ‘struct PGSQL_STMT’ has no member named ‘res’
pgsql/src/TPgSQLServer.cxx:356: error: ‘struct PGSQL_STMT’ has no member named ‘conn’
make: *** [pgsql/src/TPgSQLServer.o] Error 1
rm utils/src/rootcint_tmp.cxx utils/src/RStl_tmp.cxx

I hope that helps.

I have the same problem and load the libGpad in my case works. Is possible solve this problem avoiding to load in any script the gSystem->Load(“libGpad”) call?


the library is auto-loaded - this is not the problem. It’s an old bug, caused by CINT setting up both the macro’s functions and the auto-loaded libraries’ functions at the same time, and falling over its own feet.

I believe I have a fix now. I’ll upload it to CVS in the coming days; it needs a bit testing first. I will let you know.


Many thanks, as work-around now i added


call in the rootlogon.C


as a less intrusive work-around you can declare a variable of the type that triggers auto-loading before you use a function parameter of that type. E.g. put [code]void dummy_for_loading() {
TCanvas* dummy_to_trigger_autoloading;}

void myActualFunction(TCanvas* v) {…[/code]
But it remains an ugly bug and I’m working on a solution.


both problems (pgsql and ifunctable overflow) have been fixed in CVS. Thanks for reporting!