Solaris2.10 and gcc4.1.1


I’m probably trying no one has tried before but someone who is more experienced may be able to help recognize the following problem:

Compiling root v5.12.00 on Sun sparc9 with solaris 2.10 but gcc4.1.1 (no sun CC compiler unfortunately), I get :

Generating dictionary base/src/G__Base1.cxx…
utils/src/rootcint_tmp -cint -f base/src/G__Base1.cxx -c base/inc/TApplication.h blah blah
Error: Too few template arguments prec_stl/vector:316
(a bunch of these)
Error: template argument for iterator_category missing prec_stl/vector:154:
gmake: *** [base/src/G__Base1.cxx] Segmentation Fault
gmake: *** Deleting file `base/src/G__Base1.cxx’

Could someone point out a direction on this? Thanks.


We have not yet ported CINT to Solaris an gcc… The file needing modification are in $ROOTSYS/cint/lib/prec_stl


I have found one possible way out:

you have to edit file $ROOTSYS/cint/lib/prec_stl/vector

and substitute line 313

with this one:

this solves this particular problem. However, further down the compilaton, I get another error, that might or might not be related to the SUN implementation of vector:

g++ -fPIC -I/usr/openwin/include -Iinclude -Ipcre/src/pcre-6.4 -I. -o base/src/G__Base2.o -c base/src/G__Base2.cxx base/src/G__Base2.cxx: In function `int G__G__Base2_285_2_0(G__value*, const char*, G__param*, int)': base/src/G__Base2.cxx:26309: error: `class __gnu_cxx::__normal_iterator<TString*, std::vector<TString, std::allocator<TString> > >' used where a `long int' was expected
… more stuff…

I hope I can solve this soon quickly, but maybe some help is needed…

Dear Rooters,

I get exactly the same error message trying to compile ROOT 5.12/00f on Sun sparc SOLARIS 8 using gcc 3.3.2

Is there a solution to this already known?
Is it a ROOT problem, or are we missing some packages?

Maybe it would be possible to provide a binary version of root on Solaris using the GNU compiler ?

Best regards,


I’m looking into this. Btw, we can’t distribute a binary version of the solaris GCC build because even we have to compile it first :slight_smile: Meaning I can reproduce what you see, and for me G__base2 makes problems, too. More news probably tomorrow.

Cheers, Axel.


the current CVS head should build on solaris with GCC.

Cheers, Axel.

Hello Axel,
Hello Rooters,

first of all thank you very much for looking into this.

I managed to compile ROOT5.12 under SOLARIS8 with the GNU compiler (configure solarisgcc),
using a modified file “vector” in

$ROOTSYS/cint/lib/prec_stl/vector (I attached the file if anybody needs it) from mbarison (thank you!).

Replacing this, I got another error stating that
libfreetype is asking for a “grep that can handle long lines…”, etc.

In order to get this properly running, I installed (from

  • libiconv
  • pcre (had this one before)
  • libintl

AND, most important, libgcc-3.4.6. !! (I had an older one)

With this, the compilation worked!

For the version 5.13, I did a CVS checkout.

However, here the compilation still fails,
stating that:


g++ -g -c -D_ALL_SOURCE -D_REENTRANT -D__solaris__ -D_GNU_SOURCE -fPIC -Wall -Wno-deprecated -DSUNGCC -O2 -DXrdDEBUG=0 -DHAS_STRLCPY -I. -I… -o …/…/obj/XrdClientUrlSet.o sunmath.h: No such file or directory In member function XrdClientUrlInfo* XrdClientUrlSet::GetARandomUrl()': error:irint’ undeclared (first use this function) error: (Each undeclared identifier is reported only
once for each function it appears in.)
make[5]: *** […/…/obj/XrdClientUrlSet.o] Error 1
make[4]: *** [SunOSall] Error 2
make[3]: *** [all] Error 2
make[2]: *** [XrdClient] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/np/vdg/fabry/APPLICATIONS/ROOT/ROOT-5.13/root/xrootd/src/xrootd’
make: *** [xrootd/src/xrootd/lib/] Error 2


It would be nice to have a compilable version,
however, if you would post a binary version on your website later on ,this would also be great.

Imrich (28.6 KB)