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

From: Alexander Mann <amann_at_uni-goettingen.de>
Date: Wed, 28 Jul 2010 13:05:45 +0200

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:05:42 CEST

This archive was generated by hypermail 2.2.0 : Wed Jul 28 2010 - 23:50:02 CEST