Slc3 vs. slc4

Hi,
switching from slc3 to slc4 (without changing the code) I get the following error using AFS ROOT (both slc4_amd64_gcc34 and slc4_ia32_gcc34):

In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/…/…/…/…/include/c++/3.4.6/vector:72,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TBuffer.h:31,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TObject.h:208,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TNamed.h:26,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TDirectory.h:25,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TFile.h:25,
from ./userinc/user.h:133,
from usersrc/user_init.c:9:
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/…/…/…/…/include/c++/3.4.6/bits/stl_bvector.h: In member function void std::vector<bool>::_M_insert_range(std::_Bit_iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag)': /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_bvector.h:522: error: expected unqualified-id before '(' token /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_bvector.h: In member functionvoid std::vector::_M_fill_insert(std::_Bit_iterator, size_t, bool)’:
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/…/…/…/…/include/c++/3.4.6/bits/stl_bvector.h:823: error: expected unqualified-id before ‘(’ token
In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/…/…/…/…/include/c++/3.4.6/vector:75,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TBuffer.h:31,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TObject.h:208,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TNamed.h:26,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TDirectory.h:25,
from /afs/cern.ch/sw/lcg/external/root/5.14.00/slc4_ia32_gcc34/root/include/TFile.h:25,
from ./userinc/user.h:133,
from usersrc/user_init.c:9:
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/…/…/…/…/include/c++/3.4.6/bits/vector.tcc: In member function void std::vector<_Tp>::_M_fill_insert(__gnu_cxx::__normal_iterator<typename _Alloc::pointer, std::vector<_Tp> >, size_t, const _Tp&)': /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/vector.tcc:307: error: expected unqualified-id before '(' token /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/vector.tcc: In member functionvoid std::vector<_Tp>::_M_range_insert(__gnu_cxx::__normal_iterator<typename _Alloc::pointer, std::vector<_Tp> >, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag)’:
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/…/…/…/…/include/c++/3.4.6/bits/vector.tcc:384: error: expected unqualified-id before ‘(’ token
gmake[1]: *** [user_init.o] Error 1

Do you know which is the problem?

s.

When moving to SLC4 64 bits, you should use the AFS version

/afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_amd64_gcc34/root If your code was compiled with gcc3.2., you should recompile it with
the version of the compiler (should be 3.4.6)

Rene

Hi,
unfortunately the software of my experiment (NA48) works with 32bit machines so we use the -m32 compilation option and:

setenv ROOTSYS /afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_ia32_gcc34/root

If I put:

setenv ROOTSYS /afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_amd64_gcc34/root

I get:

g++ -m32 -g -DCOMPACT7 -pthread -m64 -I/afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_amd64_gcc34/root/include -DUSE_ROOT -Df2cFortran -I/cern/pro/include/cfortran -I. -I./userinc -I/afs/cern.ch/na48/offline2/compact/compact-7.2/compact/lib/inc -I/afs/cern.ch/na48/offline2/compact/compact-7.2/compact/rlib/inc -I/afs/cern.ch/na48/offline2/compact/compact-7.2/compact/rlib/anainc -I/afs/cern.ch/na48/offline2/compact/compact-7.2/compact/zlib-1.1.4 -I/afs/cern.ch/user/c/cdbase1/public/cdbase/code/inc -I/afs/cern.ch/na48/offline2/compact/compact-7.2/compact/sqlite/include -pthread -m64 -I/afs/cern.ch/sw/lcg/external/root/5.14.00b/slc4_amd64_gcc34/root/include -DUSE_ROOT -Wno-deprecated -I/usr/local/include/shift -I/usr/include/shift -Df2cFortran -I/cern/pro/include/cfortran -c src/compact_main.c -o ./obj/compact_main.o
/tmp/bifani/cc8O9gdp.s: Assembler messages:
/tmp/bifani/cc8O9gdp.s:16: Error: bad register name %rbp' /tmp/bifani/cc8O9gdp.s:18: Error: bad register name%rsp’
/tmp/bifani/cc8O9gdp.s:20: Error: bad register name %rbx' /tmp/bifani/cc8O9gdp.s:22: Error: bad register name%rdi’
/tmp/bifani/cc8O9gdp.s:23: Error: bad register name %rsi' /tmp/bifani/cc8O9gdp.s:24: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:25: Error: bad register name %rbp)' /tmp/bifani/cc8O9gdp.s:29: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:31: Error: bad register name %rbp)' /tmp/bifani/cc8O9gdp.s:32: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:33: Error: bad register name %rax' /tmp/bifani/cc8O9gdp.s:35: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:37: Error: bad register name %rcx)' /tmp/bifani/cc8O9gdp.s:38: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:39: Error: bad register name %rbp)' /tmp/bifani/cc8O9gdp.s:40: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:43: Error: bad register name %rbp)' /tmp/bifani/cc8O9gdp.s:45: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:46: Error: bad register name %rbp)' /tmp/bifani/cc8O9gdp.s:48: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:49: Error: bad register name %rax)' /tmp/bifani/cc8O9gdp.s:51: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:52: Error: bad register name %rax' /tmp/bifani/cc8O9gdp.s:53: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:54: Error: bad register name %rax' /tmp/bifani/cc8O9gdp.s:55: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:56: Error: bad register name %rax)' /tmp/bifani/cc8O9gdp.s:57: Error: bad register name%rdx)’
/tmp/bifani/cc8O9gdp.s:58: Error: bad register name %rcx)' /tmp/bifani/cc8O9gdp.s:59: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:60: Error: bad register name %rax)' /tmp/bifani/cc8O9gdp.s:61: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:62: Error: bad register name %rax)' /tmp/bifani/cc8O9gdp.s:66: Error: bad register name%rbp)’
/tmp/bifani/cc8O9gdp.s:67: Error: bad register name %rbp)' /tmp/bifani/cc8O9gdp.s:69: Error: suffix or operands invalid forcltq’

Moreover I have 3 almost equal versions of that software installed but only 2 of them survived to the scl4 switch (adding -m32 option and changing ROOTSYS).

Areyou sure that all your software has been recompiled with the 32 bit option?

I have contacted the people who can tell you more about this problem.
I expect that will post an answer today or tomorrow.

Rene

I solved the problem:
I have DEFINE statements (#define min …, #define max …) which probably are in conflict with ROOT private functions.

I wonder why that happens only on slc4 and not in slc3.

s.