Hi ROOT experts,
I’m trying to install ROOT at SARA computing center:
subtrac.sara.nl/userdoc/wiki/hu … escription
They have a wonderful cluster with 32 cores per node…
The plan is to do some work for multi-threading.
The problem comes at beginning: the ROOT compilation.
I downloaded the 5.26.00 source code version using SVN and I found that there is not a makefile for compiling ROOT with Linux on PPC and xlC.
Following a suggestion by Fons, I tried to write my own makefile for this case (linuxppc64xlc). I took as example the two makefiles (inside the directory config):
Makefile.aix5
Makefile.macosxxlc
and I put my make file inside the directory config.
Then I added the architecture inside the file config/ARCHS.
You can find the new Makefile at: idefix.mi.infn.it/~lazzaro/misc/ … uxppc64xlc
Doing so the configure command works.
The log is: idefix.mi.infn.it/~lazzaro/misc/configure.log
So I started the compilation with make.
The log is:
First problem is that I get this warning:
xlC_r: 1501-210 (W) command option t contains an incorrect subargument
This is due to the -pthread option.
The library should be on xlC -lpthread for the linking and then there is not needed to have this option (if I understood correctly) when we use xlC_r commands. How can I remove this option?
Anyway, this is a warning…
The problem happens at the end, doing this command:
xlC_r -O -qpic -q64 -qchar=signed -qstrict -qarch=auto -qtune=auto -DG__ANSI -DG__REGEXP -Iinclude -D_POSIX2_SOURCE -DG__P2FCAST -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -DG__OSFDLL -DG__NEWSTDHEADER -DG__HAVE_CONFIG -DG__NOMAKEINFO -DG__CINTBODY -Icint/cint/inc -Icint/cint/src -Icint/cint/src/dict -pthread -Icint/cint/lib/libstrm -Icint/cint/lib/stream -I. -o cint/cint/src/dict/libstrm.o -c cint/cint/src/dict/libstrm.cxx
with this error:
“cint/cint/lib/stream/iostrm.h”, line 36.18: 1540-0040 (S) The text “" is unexpected. “streambuf” may be undeclared or ambiguous.
“cint/cint/lib/stream/iostrm.h”, line 37.18: 1540-0040 (S) The text "” is unexpected. “streambuf” may be undeclared or ambiguous.
“cint/cint/lib/stream/iostrm.h”, line 38.18: 1540-0040 (S) The text “" is unexpected. “streambuf” may be undeclared or ambiguous.
“cint/cint/lib/stream/iostrm.h”, line 39.18: 1540-0040 (S) The text "” is unexpected. “ofstream” may be undeclared or ambiguous.
“cint/cint/lib/stream/iostrm.h”, line 40.18: 1540-0040 (S) The text “" is unexpected. “ofstream” may be undeclared or ambiguous.
“cint/cint/lib/stream/iostrm.h”, line 41.18: 1540-0040 (S) The text "” is unexpected. “ifstream” may be undeclared or ambiguous.
After few investigations, it turns out it needs to include the namespace for those classes inside cint/cint/lib/stream/iostrm.h.
Adding:
using namespace std;
eliminates the problem.
But then a similar problem happens for cint/cint/src/dict/libstrm.cxx.
Actually with this file the situation is worse, since it doesn’t recognize a lot of standard classes (for example in the line
typedef fstreambase G__Tfstreambase;
gives this error:
The text “G__Tfstreambase” is unexpected. “fstreambase” may be undeclared or ambiguous.
even if I add the include and the namespace std:
#include
using namespace std;
)
Any kind of suggestion is highly appreciate…
Thanks,
Alfio