Cross-compiling on Fedora 12

From: Vassili Maroussov <Vassili.Maroussov_at_cern.ch>
Date: Sat, 27 Feb 2010 13:03:27 +0100


Dear ROOTers,

I have Fedora 12 x86_64 installed on my machine, but need 32-bit ROOT libraries (actually a part of them, - to use ROOT's containers, TTree and TFile along with rootcint) to link them with FLUKA (which is available only in 32-bit g77/gcc3 version) in order to have FLUKA output to ROOT file.

I've got some clues from the Konstantin Olchanski ("Partial success- cross-compiling 32-bit ROOT on 64-bit Linux", posted on 02/02/2009 09:20PM), but on Fedora 12 already the "./configure linux" didn't work, because several libraries weren't found in the place were they are supposed to be. From another machine with Fedora 12 i686 installed I took /usr/lib/libXpm.so.4.11.0, /lib/libcrypt-2.11.1.so, /usr/lib/libpthread_nonshared.a, /usr/lib/libpthread.so, placed them into the /usr/lib directory and made the following links in /usr/lib/:

ln -s libXpm.so.4.11.0 libXpm.so.4
ln -s libXpm.so.4.11.0 libXpm.so
ln -s libcrypt-2.11.1.so libcrypt.so.1
ln -s libcrypt-2.11.1.so libcrypt.so
ln -s ../../lib/libdl.so.2 libdl.so
ln -s libX11.so.6.3.0 libX11.so
ln -s libXext.so.6.4.0 libXext.so

The following step:

[vmarouss_at_Ezhik-HDX18 root]$ setarch i386 ./build.sh

Here is the build.sh script:



#!/bin/sh

./configure linux --with-cc=gcc34 --with-cxx=g++34 --with-ld=g++34
--with-f77=g77 --disable-afs --disable-alien --disable-asimage
--disable-astiff --disable-bonjour --disable-builtin-afterimage
--disable-builtin-ftgl --disable-builtin-glew --disable-castor
--disable-chirp --disable-cint7 --disable-cintex --disable-clarens
--disable-editline --disable-dcache --disable-fftw3 --disable-gviz
--disable-gdml --disable-gfal --disable-g4root --disable-globus
--disable-glite --disable-hdfs --disable-krb5 --disable-ldap
--disable-genvector --disable-mathmore --disable-minuit2
--disable-monalisa --disable-mysql --disable-odbc --disable-opengl
--disable-oracle --disable-pch --disable-peac --disable-pgsql
--disable-pythia6 --disable-pythia8 --disable-python --disable-qt
--disable-qtgsi --disable-reflex --disable-rfio --disable-roofit
--disable-rpath --disable-ruby --disable-sapdb --disable-shadowpw
--disable-shared --disable-srp --disable-ssl --disable-table
--disable-tmva --disable-unuran --disable-winrtdebug --disable-xml
--disable-xrootd --disable-xft

make clean
make distclean

find . -name '*.a' -exec /bin/rm -vf {} \;
find . -name '*.so' -exec /bin/rm -vf {} \;
find . -name '*.so.*' -exec /bin/rm -vf {} \;

make -j3

#end of build.sh


The "./configure" worked, but I've got the following error at g2root compilation:

g77 -m32 -O2 -o bin/g2root main/src/g2root.o \

            -Llib lib/libminicern.so \
            /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libfrtbegin.a 
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/32/libg2c.so -lnsl -lm -ldl -pthread -rdynamic
Generating dictionary core/meta/src/G__TCint.cxx... core/utils/src/rootcint_tmp -cint -f core/meta/src/G__TCint.cxx -c -DG__API core/meta/inc/TCint.h core/meta/inc/LinkDef_TCint.h /usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-redhat-linux/3.4.6/libfrtbegin.a(frtbegin.o)' is incompatible with i386 output
/usr/bin/ld: final link failed: Invalid operation collect2: ld returned 1 exit status
make: *** [bin/g2root] Error 1
make: *** Waiting for unfinished jobs.... rm core/utils/src/RStl_tmp.cxx core/utils/src/rootcint_tmp.cxx [vmarouss_at_Ezhik-HDX18 root]$

Certainly the above error isn't related to ROOT... However, how the problem may be fixed?

Regards,

Vassili Received on Sat Feb 27 2010 - 13:03:40 CET

This archive was generated by hypermail 2.2.0 : Mon Mar 01 2010 - 23:50:02 CET