Gcc 4.4 does not compile root

Hello all,
As was discussed a few months ago, root doesn’t compile
under gcc 4.4. But this starts to be more relevant with, e.g. F11
release.
Can anyone suggest how to take it forward?
Here is the error again:

g++ -m64 -O2 -o bin/hadd main/src/hadd.o
-Llib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lMatrix -lMathCore -lThread -lm -ldl -pthread -rdynamic
lib/libRIO.so: undefined reference to `int TStreamerInfo::ReadBuffer<char**>(TBuffer&, char** const&, int, int, int, int)'
collect2: ld returned 1 exit status
make: *** [bin/hadd] Error 1

Bill

Hi,

This issue has been resolved in the svn trunk.

Cheers,
Philippe.

PS. As work around compiled in debug mode.

Hi Philippe,
Thanks, you the trunk works for me. I did have to
fix half a dozen places where a const char * was being equivalenced
to a char *, but they were easy to do.
Bill

Hi,

I took the trunk version, but I still cannot compile it with gcc 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC), it’s working till :

g++ -m32 -O2 -o bin/xproofd proof/proofd/src/XProofProtUtils.o proof/proofd/src/XrdProofConn.o proof/proofd/src/XrdProofdAdmin.o proof/proofd/src/XrdProofdAux.o proof/proofd/src/XrdProofdClient.o proof/proofd/src/XrdProofdClientMgr.o proof/proofd/src/XrdProofdConfig.o proof/proofd/src/XrdProofdManager.o proof/proofd/src/XrdProofdNetMgr.o proof/proofd/src/XrdProofdPriorityMgr.o proof/proofd/src/XrdProofdProofServ.o proof/proofd/src/XrdProofdProofServMgr.o proof/proofd/src/XrdProofdProtocol.o proof/proofd/src/XrdProofdResponse.o proof/proofd/src/XrdProofdSandbox.o proof/proofd/src/XrdProofGroup.o proof/proofd/src/XrdProofPhyConn.o proof/proofd/src/XrdProofSched.o proof/proofd/src/XrdProofWorker.o proof/proofd/src/XrdROOT.o net/xrootd/src/xrootd/lib/libXrd.a net/xrootd/src/xrootd/lib/libXrdClient.a net/xrootd/src/xrootd/lib/libXrdNet.a net/xrootd/src/xrootd/lib/libXrdOuc.a net/xrootd/src/xrootd/lib/libXrdSys.a net/xrootd/src/xrootd/lib/libXrdSut.a -lm -ldl -pthread -rdynamic
g++: net/xrootd/src/xrootd/lib/libXrd.a: No such file or directory
g++: net/xrootd/src/xrootd/lib/libXrdClient.a: No such file or directory
g++: net/xrootd/src/xrootd/lib/libXrdNet.a: No such file or directory
g++: net/xrootd/src/xrootd/lib/libXrdOuc.a: No such file or directory
g++: net/xrootd/src/xrootd/lib/libXrdSys.a: No such file or directory
g++: net/xrootd/src/xrootd/lib/libXrdSut.a: No such file or directory
make: *** [bin/xproofd] Error 1

I joined the config logfile.
I’m running on Fedora 11 32bits.

Thanks in advance

johan
config.txt (211 KB)

Hi Johan,
Are you sure this is the first error? It looks like the
Xrd libraries didn’t get built. I had to patch
src/XrdNet/XrdNetDNS.cc
src/XrdCms/XrdCmsReq.cc
src/XrdOfs/XrdOfs.cc
src/XrdXrootd/XrdXrootdPrepare.cc

in each pf them this
const char * = char *
error turned up somewhere.
I can put the fixed version on AFS, but its a little messy as
I don’t have disk space for the full ROOT build.
Bill

Hi,

Please make sure that you really have the trunk revision >= 29029.
Then do ‘make distclean-xrootd’ and ‘make’ again.

If the problem persists

 $ cd net/xrootd/src/xrootd
 $ make > make-error.log

and post make-error.log

Thanks,
Gerri Ganis

Hi Gerri,

I went to version 29099 and it compiled and installed smoothly. Apparently there was still something wrong in the version I checked out on Monday.

Thanks,

johan