Re: [ROOT] ROOT 2.24.02 + RH 6.1 + gcc 2.95.2: Btree internal compiler error

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Apr 14 2000 - 08:37:25 MEST


Hi Matt,
Thanks for reporting this internal compiler error with gcc2.95.2
I have modified the code as you suggest to bypass the problem.

Rene Brun

Matthew D. Langston wrote:
> 
> ROOT 2.24.02 users who are using RH 6.1 and gcc 2.95.2 will need to
> apply the following patch if they want to compile ROOT from source.
> 
> I have attached the patch to this e-mail.  Just "cd" to the top of your
> ROOT source tree and feed this e-mail to patch, e.g.:
> 
>   $ cd root-gcc-c++-2.95.2-2.24.02
>   $ patch < BTree.bug.e-mail
> 
> For reference, here is the error that you will get if you don't apply
> the patch.
> 
> g++ -O2 -Wall -fPIC -DR__GLIBC
> -I/mnt/hdc/projects/ROOT/2.00/rpm/BUILD/root-gcc-c++-2.95.2-2.24.02/ttf/include
> -I/mnt/hdc/projects/ROOT/2.00/rpm/BUILD/root-gcc-c++-2.95.2-2.24.02/opengl/include
> -D_REENTRANT -c CONT_Btree.cxx
> CONT_Btree.cxx: In method `TBtInnerNode::TBtInnerNode(TBtInnerNode *,
> TBtree *, TBtNode *)':
> CONT_Btree.cxx:689: Internal compiler error.
> CONT_Btree.cxx:689: Please submit a full bug report.
> CONT_Btree.cxx:689: See
> <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for
> instructions.
> make[1]: *** [CONT_Btree.o] Error 1
> make[1]: Leaving directory
> `/mnt/hdc/projects/ROOT/2.00/rpm/BUILD/root-gcc-c++-2.95.2-2.24.02/src'
> make: *** [default] Error 2
> Bad exit status from /var/tmp/rpm-tmp.58277 (%build)
> 
> --
> Matthew D. Langston
> SLD, Stanford Linear Accelerator Center
> langston@SLAC.Stanford.EDU
> 
>   --------------------------------------------------------------------------------
> --- src/CONT_Btree.cxx.orig     Thu Apr  6 23:55:22 2000
> +++ src/CONT_Btree.cxx  Mon Apr 10 12:59:32 2000
> @@ -686,7 +686,8 @@
>     // Called only by TBtree to initialize the TBtInnerNode that is
>     // about to become the root.
> 
> -   fItem = new TBtItem[MaxIndex()+1];
> +   const Int_t index = MaxIndex() + 1;
> +   fItem = new TBtItem[ index ];
>     if (fItem == 0)
>        ::Fatal("TBtInnerNode::TBtInnerNode", "no more memory");
>     Append(0, oldroot);



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