Re: .L xyz.C+ with 32bit ROOT version on 64bit machine

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Wed, 28 Jul 2010 13:19:26 +0200


Hi Alexander,

Looking at
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/include/compiledata.h I see that -m32 is passed in all compiler invocations - I don't see how it could fail. Can you run

root [0] gDebug=7
root [1] .L Loader.C+

and send the output? (I'll be a few pages...)

Cheers, Axel.

Alexander Mann wrote on 07/28/2010 01:05 PM:
>
> Hi Bertrand,
>
> good idea, but it did not help :(
>
> What I am doing is this:
>
> # setting up 32 bit ROOT 5.26.00b
> source /afs/cern.ch/sw/lcg/contrib/gcc/4.3/i686-slc5-gcc43-opt/setup.sh
> export
> ROOTSYS=/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root
>
> export
> PATH=/afs/cern.ch/sw/lcg/external/Python/2.5.4p2/i686-slc5-gcc43-opt/bin:$ROOTSYS/bin:$PATH
>
> export
> LD_LIBRARY_PATH=$ROOTSYS/lib:/afs/cern.ch/sw/lcg/external/Python/2.5.4p2/i686-slc5-gcc43-opt/lib:$LD_LIBRARY_PATH
>
> export PYTHONPATH=$PYTHONPATH:$ROOTSYS/lib
>
>
> In ROOT:
>
> .L Loader.C+
>
>
> This is the contents of the file Loader.C:
>
> #include <vector>
> #ifdef __CINT__
> #pragma link C++ class vector<vector<float> >;
> #pragma link C++ class vector<vector<int> >;
> #pragma link C++ class pair<string,string>;
> #else
> template class std::vector<std::vector<float> >;
> template class std::vector<std::vector<int> >;
> #endif
>
>
> Gives these error messages:
>
> root [0] .L Loader.C+
> Info in <TUnixSystem::ACLiC>: creating shared library
> /net/ph2/auto/home/mann/Code/PyROOT/./Loader_C.so
> {standard input}: Assembler messages:
> {standard input}:11: Error: suffix or operands invalid for `push'
> {standard input}:16: Error: relocated field and relocation type differ
> in signedness
> {standard input}:19: Error: suffix or operands invalid for `pop'
> .
> .
> .
> {standard input}:26058: Error: relocated field and relocation type
> differ in signedness
> {standard input}:26077: Error: relocated field and relocation type
> differ in signedness
> {standard input}:26096: Error: relocated field and relocation type
> differ in signedness
> g++: /net/ph2/auto/home/mann/Code/PyROOT/./Loader_C_ACLiC_dict.o: No
> such file or directory
> Error in <ACLiC>: Compilation failed!
>
> cu,
> Alexander
>
>
>
> Am 28.07.2010 12:56, schrieb Bertrand Bellenot:

>> Hi Alexander,
>>
>> Maybe you could try to setup the compiler:
>>
>>  From bash:
>> source /afs/cern.ch/sw/lcg/contrib/gcc/4.3/i686/setup.sh
>>
>>  From tcshell:
>> source /afs/cern.ch/sw/lcg/contrib/gcc/4.3/i686/setup.csh
>>
>> Cheers, Bertrand.
>>
>> -----Original Message-----
>> From: owner-roottalk_at_root.cern.ch [mailto:owner-roottalk_at_root.cern.ch]
>> On Behalf Of Alexander Mann
>> Sent: Wednesday, July 28, 2010 12:47
>> To: roottalk_at_root.cern.ch
>> Subject: [ROOT] .L xyz.C+ with 32bit ROOT version on 64bit machine
>>
>>
>> Hi,
>>
>> I have a complicated problem. I need to use the 32 bit version of ROOT
>> on a 64 bit machine. This seems to cause trouble when I try to compile
>> macros in CINT with .L xyz.C+, I get lots of assembler errors, probably
>> related to the 32/64 bit issue:
>>
>> {standard input}: Assembler messages:
>> {standard input}:11: Error: suffix or operands invalid for `push'
>> {standard input}:16: Error: relocated field and relocation type differ
>> in signedness
>> ...
>>
>> Is there a way to pass a switch to the assembler that fixes this?
>>
>> I am using this root:
>> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/
>> bin/root
>>
>> on such a machine:
>> Linux 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010 x86_64
>> x86_64 x86_64 GNU/Linux
>>
>> Any help is much appreciated!
>>
>> cu,
>> Alexander
>>

>
>
Received on Wed Jul 28 2010 - 13:19:31 CEST

This archive was generated by hypermail 2.2.0 : Wed Jul 28 2010 - 17:50:01 CEST