Re: [ROOT] Problems when upgrading ROOT with CVS (continued...)

From: Daniel Cussol (cussol@in2p3.fr)
Date: Fri Apr 18 2003 - 09:39:01 MEST


Hi Masa,
 Thank you for your help! Here is the result of the test:

  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   3.05/03     17 April 2003   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

FreeType Engine v2.1.3 used to render TrueType fonts.
Compiled for alphacxx6.

CINT/ROOT C/C++ Interpreter version 5.15.83, Apr 6 2003
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.

root [0] .T 

Trace mode on 1
root [1] cout << endl
{cout << endl;
# _iostream
3    operator<<(std::ostream& ostr,std::G__CINT_ENDL& i) 
4       {return(std::endl(ostr));}

 *** Break *** segmentation violation
Root > Function operator<<() busy flag cleared

root [2]  cout << hex << 42 << endl
{cout << hex << 42 << endl;
# _iostream
15   operator<<(std::ostream& ostr,std::G__CINT_HEX& i) {
16   #pragma ifndef G__TMPLTIOS
17     ostr.unsetf(ios::dec);
 *** Break *** segmentation violation
Root > Function operator<<() busy flag cleared


root [3] 




I hope this will help you!

Thank you again

Daniel Cussol

> Hello Daniel,
> 
> First of all, thank you for reporting this.  I'd appreciate
> if you send this message to cint@pcroot.cern.ch for my
> convenience.
> 
> Now, we get into the issue.
> I am not sure what is happening on Alpha platform.  With
> 'cint << endl', it could be that G__ateval() function has
> some problem.   We can check it by turning on trace mode.
> 
>  root[0] .T
>  root[1]  cout << endl
> 
> Will you try this and tell me what you see?
> 
> Thank you
> Masa Goto
> 
> 
> 
> 
> ----- Original Message -----
> From: "Daniel Cussol" <cussol@in2p3.fr>
> To: <roottalk@cern.ch>
> Sent: Friday, April 18, 2003 12:12 AM
> Subject: [ROOT] Problems when upgrading ROOT with CVS (continued...)
> 
> 
> > Hello everybody,
> >  I have sent the follwing message yesterday or two days ago:
> >
> > Daniel Cussol wrote:
> > >
> > > Hello everybody,
> > >  I manage to solve my problem (upgrading ROOT from CVS on an alpha TRU64
> > > machine, alphacxx6 config) by adding the "-long_double_size 64" flag for
> > > the cxx compiler in the Makefile.config file:
> > >
> > > EXTRA_CXXFLAGS := -Iinclude -long_double_size 64
> > >
> > > It seems to work fine now.
> > > Thanks for your help!
> > >
> >
> > In fact, the problem has been moved elsewhere! All is ok providing
> > iostream manipulators are not used! If in CINT I type the following
> > command:
> >
> > cout << endl;
> >
> > I obtain the following error message:
> >
> >  *** Break *** segmentation violation
> > Root > Function operator<<() busy flag cleared
> >
> > If now I type this:
> >
> > cout << "\n";cout.flush();
> >
> > all is ok! After some tests and investigations in source and include
> > files, it seems that the problem has appeared after the new "long double"
> > implementation in CINT (root/cint/inc/longif.h and
> > root/cint/src/longif.cxx files). To avoid the compilation problem, with
> > the EXTRA_CXXFLAGS set to  -Iinclude only (without the
> > -long_double_size 64 option), I had to add the following lines in the
> > root/cint/inc/longif.h file:
> >
> >
> > ......
> >
> >
> /**************************************************************************
> > * HP-UX
> >
> **************************************************************************/
> > #elif defined(__hpux) || defined(G__HPUX)
> >
> > typedef double G__double92;
> >
> >
> /**************************************************************************
> > * D.Cussol : Alpha TRU64 <---- Added line!
> >
> **************************************************************************/
> > #elif defined(__alpha) || defined(R__ALPHA) <---- Added line!
> > <---- Added line!
> > typedef double G__double92; <---- Added line!
> >
> >
> /**************************************************************************
> > * OTHER
> >
> **************************************************************************/
> > #else
> >
> > typedef long double G__double92;
> >
> > .........
> >
> > But I still have the run time error when typing "cout << endl" in CINT
> > command line. I have unfortunately not enough time and mainly not enough
> > knowledge on ALPHA TRU64 system to solve this problem. Could somebody
> > help me (and hence all ALPHA TRU64 users)? I stress that this problem
> > appears only after upgrading ROOT V3.05.03 with CVS. On the "original"
> > V3.05.03 alphacxx6 version, all works correctly. I have checked that the
> > longif.h/cxx files where actually changed in CVS compared to the
> > "original" V3.05.03 version. I hope that this will be enough to help ALPHA
> > TRU64 experts to fix this problem.
> >  Thanks for your help!
> >
> >
> >  Daniel CUSSOL
> >
> >  LPC Caen
> >  Boulevard du Marechal Juin
> >  14050 CAEN CEDEX
> >
> >  e-mail : cussol@in2p3.fr
> >  Tel    : +33-(0)2-31-45-29-73
> >  FAX    : +33-(0)2-31-45-25-49
> >
> >
> >
> 
> 

Daniel CUSSOL

LPC Caen
Boulevard du Marechal Juin
14050 CAEN CEDEX

e-mail : cussol@in2p3.fr
Tel    : +33-(0)2-31-45-29-73
FAX    : +33-(0)2-31-45-25-49



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET