Re: [ROOT] compatibilities w. libstdc++

From: Brett Viren (bv@bnl.gov)
Date: Tue Sep 24 2002 - 19:07:22 MEST


Pia Thorngren writes:
 > 
 > Hi,
 > my group is trying to compile on RH Linux 7.2 using a degradation of
 > the gcc compiler to version 2.95.3. The programs we (try to) use are
 > root, clhep7.5.1.0, pluto eventgenerator and geant4.4.1 . The choice of 
 > compiler version is governed by geant and other software already developed
 > by another party.
 > 
 > We run into problems due to a lot of dependencies of other applications
 > adn library paths gone astray. Does anyone have experience with this? Is
 > it possible not only to have two or several versions of compiler
 > installed, but also libraryversions of e.g. libstdc++? What happens during
 > runtime? 

This is a major issue with us.  Between compiler bugs, code bugs, and
CINT not handling all the different C++ "standards", we bounce around
between GCC versions.

The number one thing is to make sure that the same g++ executable is
used for compiling *every* C++ library/executable and that the correct
corresponding version of gcc (or g++) is used to do the linking.  The
compiler executables "know" the correct system includes and libraries
(assuming they are installed correctly).  

One easy way to slip up is to have the two (or more) versions of GCC
installed with the default names, but in different locations.  This
leads to problems if users with different PATH ordering compile
different parts of the code base.

I have found that installing the different compilers with version
specific names (eg, g++-3.0, g++-3.2 as Debian does) and then modifying
the ROOT build system as well as our own to explicitly force the
correct executable name has proven safest.

-Brett.



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:11 MET