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

From: Alexander Mann <amann_at_uni-goettingen.de>
Date: Wed, 28 Jul 2010 14:15:17 +0200

Hi Axel,

I will send the full debug output to you in another mail in order not to spam the mailing list.

You are right that indeed the -m32 option is used there. Maybe it's just the other way round, i.e. -m64 needs to be used here?

.
.
.

Info in <ACLiC>: cd "/net/ph2/auto/home/mann/Code/PyROOT/." ; g++ -c -O2
-pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -pthread 
-I$ROOTSYS/include 
-I"/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/include" 
  -I"/net/ph2/auto/home/mann/Code/PyROOT/." -I"/net/ph2/auto/home/mann/Code/PyROOT" "/net/ph2/auto/home/mann/Code/PyROOT/./Loader_C_ACLiC_dict.cxx" ; g++ "/net/ph2/auto/home/mann/Code/PyROOT/./Loader_C_ACLiC_dict.o" -shared -Wl,-soname,Loader_C.so -m32 -O2
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/lib/libCint.so 
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/lib/libCore.so 
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/lib/libRint.so 
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00b/i686-slc5-gcc43-opt/root/lib/libMathCore.so 
-o "/net/ph2/auto/home/mann/Code/PyROOT/./Loader_C.so" {standard input}: Assembler messages:
.
.
.

cu,
Alexander

Am 28.07.2010 13:19, schrieb Axel Naumann:
> 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 - 14:15:15 CEST

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