Re: [ROOT] Compilation root v3.0 with CC5

From: George A. Heintzelman (gah@bnl.gov)
Date: Wed Nov 29 2000 - 20:22:53 MET


> /opt/SUNWspro/bin/CC -O -library=iostream,no%Cstd  -o utils/src/rootcint_tmp \
>                 utils/src/rootcint_tmp.o cint/src/auxu.o cint/src/cast.o 
> cint/src/debug.o cint/src/decl.o cint/src/disp.o cint/src/dump.o cint/src/end.o 
> cint/src/error.o cint/src/expr.o cint/src/fread.o cint/src/func.o 
> cint/src/g__cfunc.o cint/src/gcoll.o cint/src/global1.o cint/src/global2.o 
> cint/src/ifunc.o cint/src/inherit.o cint/src/init.o cint/src/input.o 
> cint/src/intrpt.o cint/src/loadfile_tmp.o cint/src/macro.o cint/src/malloc.o 
> cint/src/memtest.o cint/src/new.o cint/src/newlink.o cint/src/newsos.o 
> cint/src/oldlink.o cint/src/opr.o cint/src/parse.o cint/src/pause.o 
> cint/src/pcode.o cint/src/pragma.o cint/src/quote.o cint/src/scrupto.o 
> cint/src/shl.o cint/src/sizeof.o cint/src/stdstrct.o cint/src/struct.o 
> cint/src/stub.o cint/src/tmplt.o cint/src/typedef.o cint/src/val2a.o 
> cint/src/value.o cint/src/var.o cint/main/G__setup.o cint/src/Api.o 
> cint/src/Apiif.o cint/src/BaseCls.o cint/src/CallFunc.o cint/src/Class.o 
> cint/src/DataMbr.o cint/src/Method.o cint/src/MethodAr.o cint/src/Token.o 
> cint/src/Type.o cint/src/Typedf.o cint/src/sunstrm.o -lm -ltermcap -ldl
> Undefined                       first referenced
>  symbol                             in file
> std::basic_string<char,std::char_traits<char>,std::allocator<char> 
> >std::basic_ostringstream<char,std::char_traits<char>,std::allocator<char> 
> >::str()const cint/src/sunstrm.o
> 
> This morning I saw a mail flashing by from George/Masaharu concerning
> sunstrm.cxx. Me being to trigger-happy deleted it. Could the solution
> to my compilation problem have been contained in that email ??

I don't think so, but there are a lot of issues with the Sun stuff that 
is in the current CVS. When I compile on the sun, I don't use 
-library=iostream,no%Cstd, which is unnecessary and I think is what is 
causing it not to pick up this C++ standard library function. Instead, 
what I use is this:

CXXFLAGS      = -KPIC -I/usr/openwin/include -D__SunOS_5_6 \
                -DR__ANSISTREAM $(EXTRA_CXXFLAGS) -ptr$(ROOTSYS) 
$(THREAD)
CFLAGS        = -KPIC -I/usr/openwin/include $(EXTRA_CFLAGS) $(THREAD)
CINTCXXFLAGS  = -KPIC -DG__REGEXP1 -DG__UNIX -DG__OSFDLL 
$(EXTRA_CXXFLAGS) \
                -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -ptr$(ROOTSYS) 
\
                $(THREAD)
CINTCFLAGS    = -KPIC -DG__REGEXP1 -DG__UNIX -DG__OSFDLL 
$(EXTRA_CFLAGS) \
                -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO $(THREAD)

Unfortunately, the sun system I normally work on has been undergoing 
system work and I can't verify why all these are needed for you. I do 
know that the -ptr$(ROOTSYS) is so that it uses a common cache (which I 
think is mostly for template stuff, but might have other purposes) for 
the whole compile. Threading does seem to work as well, with THREAD = 
-mt, although I don't claim to have tested it more than superficially. 
The sun libraries are now fairly close to ANSI compliant (bearing in 
mind that CC 5.0 doesn't support member templates), so R__ANSISTREAM is 
right.

I'm not at all sure what the status of the ROOT in CVS would be under 
these flags; the last I compiled on SUN was a somewhat modified version 
of 2.25/02.

George Heintzelman
gah@bnl.gov



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:38 MET