error building root on RedHat 7.3

From: Tom Roberts <tjrob_at_fnal.gov>
Date: Wed, 30 Jul 2008 10:35:31 -0500


I am trying to build Root 5.20 on an old RedHat 7.3 system [#]. I want to do this in order to support my Geant4-based simulation program on most Linux boxes, because I must distribute an executable [@]. Yes, I have users still using such ancient boxes :-).

The only use of Root is to read and write TNtuples, and the only Root classes it uses directly are TNtuple, TFile, and TDirectory. I am trying to get static Root libraries to work when building it (currently I build with a binary Root distribution (5.12), and copy the required Root .so-s into my distribution).

I had to add "#include <ctype.h>" to core/utils/src/rlibmap.cxx (fixed: isalnum undefined)

I then get this error, which I don't know how to fix:

g++ -O2 -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -o cint/reflex/src/NameLookup.o -c cint/reflex/src/NameLookup.cxx cint/reflex/src/NameLookup.cxx: In member function `T

    Reflex::NameLookup::Lookup(bool) [with T = Reflex::Type]': cint/reflex/src/NameLookup.cxx:41: instantiated from here cint/reflex/src/NameLookup.cxx:145: no matching function for call to `

    Reflex::NameLookup::Lookup(bool)'
cint/reflex/src/NameLookup.cxx: In member function `T

    Reflex::NameLookup::Lookup(bool) [with T = Reflex::Scope]': cint/reflex/src/NameLookup.cxx:50: instantiated from here cint/reflex/src/NameLookup.cxx:145: no matching function for call to `

    Reflex::NameLookup::Lookup(bool)'
make: *** [cint/reflex/src/NameLookup.o] Error 1 make: *** Waiting for unfinished jobs.... rm core/utils/src/RStl_tmp.cxx core/utils/src/rootcint_tmp.cxx

Any suggestion how to fix this?

Is there some way I can short-circuit this and build without it, assuming that TNtuple/TFile/TDirectory don't really need all of CINT?

	[#] Well, this isn't really RH7.3. Actually it is
	a Fedora Core 8 Linux system running in a virtual machine
	on Mac OS X. The inner environment is a RH 7.3 disk
	image setup via chroot. So it's a modern Linux kernel but
	an ancient disk image and environment, using g++ 3.2.1.
	I have been building my program this way for years; this
	is the first time I've tried to build Root from source.

	[@] I must distribute an executable because my users are
	not computer experts. Building the program is quick and
	easy once the libraries are built; building them is not.


Tom Roberts Received on Wed Jul 30 2008 - 17:42:50 CEST

This archive was generated by hypermail 2.2.0 : Wed Jul 30 2008 - 23:50:02 CEST