Re: [ROOT] Compilation trouble on Solaris 2.8 with CC 5.3

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Jul 15 2002 - 23:00:50 MEST


Hi Andreas,

Do you have problems in compiling or linking?
I do not understand your use of the option "-xar" below.
The man page in CC5.2 says:
     -xar      Creates archive libraries.

               When building a C++ archive that uses templates,
               it is necessary in most cases to include in the
               archive those template functions that are instan-
               tiated in the template repository.  Using this
               option automatically adds those templates to the
               archive as needed.

               Examples:

               The following command archives the template func-
               tions contained in the repository and the object
               files.

               % CC -xar -o libmain.a a.o b.o c.o

In your example, you use this option to create an executable rootcint.
Do you see the problem only when linking rootcint and cint?

Rene Brun

On Mon, 15 Jul 2002, Andreas Zoglauer wrote:

> 
> 
> Hello
> 
> 
> Symptom:
> ROOT does not compile on Solaris 2.8 with CC 5.3
> 
> 
> Error messages:
> CC -O  -o bin/rootcint utils/src/rootcint.o \
>            -Llib -lCint -lm -ltermcap -ldl
> Undefined                       first referenced
>  symbol                             in file
> __rwstd::__rb_tree<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,__rwstd::__ident<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >
> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >
> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> > > >::iterator
> __rwstd::__rb_tree<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,__rwstd::__ident<std::basic_string<char,std::char_traits<char>,std::allocator<char>
> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >
> >,std::less<std::basic_string<char,std::c
> >
> <Skip the rest>
> 
> 
> Similar errors for files:
> * bin/cint
> * bin/rootcint
> 
> 
> 
> After hours and hours and hours of investigation...
> 
> The solution:
> 
> Link with the option -xar:
> CC -O -xar -o bin/cint cint/main/cppmain.o -Llib -lCint -lm -ltermcap -ldl
> CC -O -xar -o bin/rootcint utils/src/rootcint.o -Llib -lCint -lm -ltermcap
> -ldl
> 
> Cause of the failure:
> The compiler version 5.3 has (known) problems with templates as they
> appear in the standard template library ;-(
> 
> 
> That's it!
> 
> Andreas
> 
> 
> System specifications:
> 
> Solaris: 2.8
> CC: Sun WorkShop 6 update 2 C++ 5.3 Patch 111685-04 2001/12/13
> ROOT: 3.03.06
> Configure: solarisCC5 --enable-thread --enable-opengl
> 
> 
> 
> 
> ----------------------------------------------------------------------
> Andreas Zoglauer
> 
> MPI fuer extraterrestrische Physik         Phone:    +49/89-30000-3848
> Postfach 1312                              Fax:      +49/89-30000-3569
> 85741 Garching, Germany                    Email:    zog@mpe.mpg.de
> ----------------------------------------------------------------------
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:59 MET