Hi Jeff, I now have a fix which allows ROOT 2.22.10 to build cleanly on RedHat Linux 5.2 Intel. Jeff Templon wrote: > > 1) how does this solve my problem? I was getting a fatal internal > compiler error. Nowhere do I see how you modify the source code so > how will this stop the internal compiler error. You are absolutely right. I did not read your e-mail carefully enough, and did not initially send you a patch which fixes your specific problem on RedHat Linux 5.2 Intel. I am sorry for the oversight. I found the bug in egcs 1.0.3 which was causing your problem, and I have included with this e-mail a patch to ROOT which will "fix" it. This patch will allow ROOT 2.22.10 to build cleanly on RedHat Linux 5.2 Intel. I also found another buglet in `Makefile.linuxegcs' which prevented h2root and g2root from building. My patch fixes this also. FYI, I will also submit complete RedHat Linux 5.2 Intel build instructions to the roottalk list just to get them into the archives. Rene, you will probably want to include my patch into the ROOT sources for the next release. Other than my patch, I can think of no other simple way to work around this bug (other than asking RedHat Linux 5.2 Intel users to upgrade their C++ compilers). The bug is rather complicated to describe it here, but I would be happy to discuss it offline with you further if you wish. > 2) you state that there is no way that the ROOT team can supply a > binary tarball which will work for RedHat X.X unconditionally, even if > users begin from the exact same CD. But if I were to do the > following: > > 1) specify a version of redhat > 2) specify dependencies (which packages of redhat must be installed) > 3) specify that errata must be applied up til some date > 4) specify that none of dependencies should be upgraded above the > redhat "stock+erratum" level > > then what is the mechanism for failure of the ROOT tarball to work? > Many other packages work just fine like this. Although this idea would work in theory, I don't believe that it would work in practice. The majority of users use their computers for many other things besides running ROOT. It would be an unreasonable burden on users to force them to maintain a particular configuration just so that they could run ROOT. A software package should serve its users, not vice versa. -- Matthew D. Langston SLD, Stanford Linear Accelerator Center langston@SLAC.Stanford.EDU --- Makefile.linuxegcs.orig Wed Jul 28 01:48:50 1999 +++ Makefile.linuxegcs Sun Aug 8 21:42:26 1999 @@ -13,17 +13,17 @@ OPT = -O NOOPT = LD = g++ -LDFLAGS = $(OPT) +LDFLAGS = $(OPT) -Wl,-rpath,$(ROOTSYS)/lib SOFLAGS = -shared -Wl,-soname, SOEXT = so SYSLIBS = -lm -ldl -rdynamic SYSXLIBS = -L/usr/X11R6/lib -lX11 -lm -ldl -rdynamic -XLIBS = $(ROOTSYS)/lib/libXpm.a -L/usr/X11R6/lib -lX11 +XLIBS = -L/usr/X11R6/lib -lXpm -lX11 CILIBS = -lm -ltermcap -lbsd -ldl -rdynamic CRYPTLIBS = -lcrypt F77 = g77 F77FLAGS = $(OPT) -F77LIBS = -lg2c +F77LIBS = -lf2c VPATH = $(ROOTSYS)/include --- RConfig.h.orig Tue Feb 9 06:51:20 1999 +++ RConfig.h Sun Aug 8 21:10:52 1999 @@ -106,9 +106,18 @@ #ifdef __GNUG__ # define R__GNU # define ANSICPP -# if __GNUC_MINOR__ >= 90 /* egcs 1.0.3 */ -# define R__VECNEWDELETE /* supports overloading of new[] and delete[] */ -# define R__PLACEMENTDELETE /* supports overloading placement delete */ + +# if __GNUC_MINOR__ >= 90 /* egcs 1.0.3 */ +/* + * Defining R__PLACEMENTDELETE on RedHat Linux 5.2 Intel generates an + * internal compiler error for egcs 1.0.3 when compiling + * EG_Generator.cxx. + * 1999-08-08 Matthew D. Langston <langston@SLAC.Stanford.EDU> + */ +# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1 +# define R__VECNEWDELETE /* supports overloading of new[] and delete[] */ +# define R__PLACEMENTDELETE /* supports overloading placement delete */ +# endif # endif # if __GNUC_MINOR__ >= 91 /* egcs 1.1 */ # define R__ANSISTREAM /* ANSI C++ Standard Library conformant */
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET