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

From: Daniel Cussol (cussol@in2p3.fr)
Date: Thu Apr 17 2003 - 17:12:32 MEST


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



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