FX, I forgot to mention that since the gcc cvs I built last night now contains your ISATTY and TTYNAM intrinsics patch, I regressed the portion of the xplor.patch which worked around the prior absence of the ISATTY intrinsic in gfortran. The resulting xplor-nih build works fine. One other question. Do you know much c++? I had to make one change to some buggy c++ code to allow gcc 4.0 and main branch to compile xplor-nih...
--- xplor-nih-2.11.2.1/intVar/dint-loop.cc 2004-04-16 18:06:07.000000000 -0 400 +++ xplor-nih-2.11.2.1.g95/intVar/dint-loop.cc 2005-07-24 17:41:11.000000000 -0 400 @@ -50,6 +50,8 @@ tip1(tip1), tip2(tip2) {} /* Loop::Loop */ +class LoopWNodes; + static int compareLevel(const LoopWNodes& l1, //forward declarations const LoopWNodes& l2); //static bool sameBranch(const HingeNode* tip, ...to work around the problem described in... https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=159445 With that change, all of the c++ code in xplor-nih compiles against gcc 4.0 branch, however I find that gcc main branch yields another compilation error... g++-4 -fstack-protector-all -c _cdsVector.cc -O3 -fPIC -mtune=970 -g -DX_MMAP_FLAGS=0 -DFORTRAN_INIT -fno-common -DDARWIN -D_REENTRANT - DNDEBUG -I/Users/howarth/Desktop/xplor-nih-2.11.2.1/python/ -I/Users/ howarth/Desktop/xplor-nih-2.11.2.1/arch/Darwin_8/include -I/Users/ howarth/Desktop/xplor-nih-2.11.2.1/python/swig_wrappers -DCPLUSPLUS - DUSE_CDS_NAMESPACE -I/Users/howarth/Desktop/xplor-nih-2.11.2.1/ python/ -I/Users/howarth/Desktop/xplor-nih-2.11.2.1/arch/Darwin_8/ include -DSWIGPY_GLOBAL -I. -I/System/Library/Frameworks/ Python.framework/Versions/2.3/include/python2.3 -I/Users/howarth/ Desktop/xplor-nih-2.11.2.1/CDSlib -I/Users/howarth/Desktop/xplor- nih-2.11.2.1/common -I/Users/howarth/Desktop/xplor-nih-2.11.2.1/ intVar -I/Users/howarth/Desktop/xplor-nih-2.11.2.1/nmrPot -I/Users/ howarth/Desktop/xplor-nih-2.11.2.1/vmd -I/Users/howarth/Desktop/xplor- nih-2.11.2.1/devel -DNIHXPLOR_VERSION='"2.11.2.1-custom"' - DSWIGPY_NOINCLUDE ) _cdsVector.cc: In function 'CDSVector<int, 0, CDS::DefaultAlloc> CDSVector_Sl_int_Sg____pow__(CDSVector<int, 0, CDS::DefaultAlloc>*, const float_type&)': _cdsVector.cc:1155: warning: converting to 'int' from 'double' /Users/howarth/Desktop/xplor-nih-2.11.2.1/CDSlib/cdsVector.hh: In member function 'CDSVectorBase<T, ALLOC>& CDSVectorBase<T, ALLOC>::operator*=(const T1&) [with T1 = double, T = int, ALLOC = CDS::DefaultAlloc]': _cdsVector.cc:1159: instantiated from here /Users/howarth/Desktop/xplor-nih-2.11.2.1/CDSlib/cdsVector.hh:239: warning: converting to 'int' from 'double' _cdsVector.cc: In function 'T sum(const CDSVector<T, 0, CDS::DefaultAlloc>&) [with T = int]': _cdsVector.cc:2408: instantiated from here _cdsVector.cc:913: warning: converting to 'int' from 'double' _cdsVector.cc: In function 'CDSVector<double, 0, CDS::DefaultAlloc> sqrt(const CDSVector<T, 0, CDS::DefaultAlloc>&) [with T = int]': _cdsVector.cc:2457: instantiated from here _cdsVector.cc:924: error: no matching function for call to 'norm (const int&)' _cdsVector.cc: In function 'CDSVector<double, 0, CDS::DefaultAlloc> norm(const CDSVector<T, 0, CDS::DefaultAlloc>&) [with T = int]': _cdsVector.cc:2510: instantiated from here _cdsVector.cc:933: error: no matching function for call to 'norm (const int&)' _cdsVector.cc: In function 'CDSVector<double, 0, CDS::DefaultAlloc> sqrt(const CDSVector<T, 0, CDS::DefaultAlloc>&) [with T = double]': _cdsVector.cc:3945: instantiated from here _cdsVector.cc:924: error: no matching function for call to 'norm (const double&)' _cdsVector.cc: In function 'CDSVector<double, 0, CDS::DefaultAlloc> norm(const CDSVector<T, 0, CDS::DefaultAlloc>&) [with T = double]': _cdsVector.cc:3998: instantiated from here _cdsVector.cc:933: error: no matching function for call to 'norm (const double&)' which compares to gcc 4.0 branch that just yields some warnings on the same file... _cdsVector.cc: In function 'CDSVector<int, 0, CDS::DefaultAlloc> CDSVector_Sl_int_Sg____pow__(CDSVector<int, 0, CDS::DefaultAlloc>*, const float_type&)': _cdsVector.cc:1155: warning: converting to 'int' from 'double' ./cdsVector.hh: In member function 'CDSVectorBase<T, ALLOC>& CDSVectorBase<T, ALLOC>::operator*=(const T1&) [with T1 = double, T = int, ALLOC = CDS:: DefaultAlloc]': _cdsVector.cc:1159: instantiated from here ./cdsVector.hh:239: warning: converting to 'int' from 'double' _cdsVector.cc: In function 'T sum(const CDSVector<T, 0, CDS::DefaultAlloc>&) [with T = int]': _cdsVector.cc:2408: instantiated from here _cdsVector.cc:913: warning: converting to 'int' from 'double' I am trying to figure out if this is catching some new buggy c++ which is no longer accepted by the g++ compiler in gcc 4.1 or if this is a regression in that branch. Jack