Hi Kris, I've fixed Rconfig.h. Cheers, Fons. On Sat, May 05, 2001 at 06:23:04PM -0400, Kristjan H Gulbrandsen wrote: > Hi > > PHOBOS has been trying to get their software to work with ROOT3. > While we were able to get it to compile quite a while ago, we found > problems with streaming old files in. One problem found was that > byte swapping no longer seemed to be in effect. (We are using > intel-linux with egcs-1.1.2 release.) Eventually, the problem > was found to be a combination of a change in RConfig.h between > ROOT2.25 and ROOT3.00 and a compiler flag that we use. Specifically, > ROOT2.25's RConfig.h checks for the existence of '__linux', while > ROOT3.00 checks for the existence of 'linux'. I looked through ROOT's > changelog and found that the switch was due to an observation that > only 'linux' is defined by GCC and KCC on all platforms. The problem > came about, because PHOBOS uses the -ansi flag during compilation. > Apparently (according to the gcc online documentation), predefined > macros such as 'unix' or 'linux' are incompatible with the ISO C and > ISO C++ standards, so the specification of -ansi will make these > undefined. > > This is easily testable by using the following code: > > #include <iostream.h> > > int main() > { > #ifdef linux > cout << "linux is defined" << endl; > #else > cout << "linux is not defined" << endl; > #endif > } > > and compiling by using just g++ and then by using g++ -ansi and > seeing what it prints out. I am writing this email to make people > aware of this issue and to ask if ROOT could do the following > check in RConfig.h: > > #if defined(linux) || defined(__linux__) > or > #if defined(linux) || defined(__linux) > instead of just > #if defined(linux) > > Right now PHOBOS can get around the problem since we detect this > separately with 'uname -s' (which works for us because we only use systems > that know this command), and if linux is detected, we give a -Dlinux to > g++ to define it. In any case, we would prefer if RConfig.h worked > (untouched by us) independent of the -ansi flag as suggested by the change > mentioned above. > > Thanks, > > Kris Gulbrandsen > gulbrand@mit.edu > -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET