Subject: | |
From: | |
Reply To: | |
Date: | Tue, 11 Dec 2012 11:51:19 -0800 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
On Tue, Dec 11, 2012 at 01:37:37PM -0600, Connie Sieh wrote:
> On Tue, 11 Dec 2012, Kenneth Herner wrote:
>
> >Hello,
> >
> >I am attempting to build root 5.28 as part of testing some legacy =
> >software, and for maximum compatibility I would like to use gcc/g++/g77 =
> >3.4 when building. I've installed all of the appropriate compatibility =
> >rpms on two machines, one running SLF 5.7 and the other 6.3. When I =
> >build on the SLF 5.7 machine everything works fine. When I do the same =
> >thing on the SLF 6.3 machine it works until almost the end, where I get =
> >the following error:
> >
> >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
> >
> >/usr/lib/gcc/x86_64-redhat-linux/3.4.6/libfrtbegin.a: could not read =
> >symbols: File in wrong format
> >collect2: ld returned 1 exit status
>
> A common reason for the above error is using a 32bit library/archive
> when a 64 bit one is expected and vice versa.
>
> A default install for SL5 installs many i386 packages in addition to
> the x86_64 packages for a x86_64 install. On SL6 only x86_64
> packages are installed.
>
I routinely cross-compile 32-bit ROOT on 64-bit machines, and indeed lack
of 32-bit devel packages in the default installation is a minor difficulty.
Here is the complete list of packages I have to install for building 32-bit ROOT (and some other packages)
yum install --skip-broken giflib.i386 giflib.i686 giflib.x86_64 compat-libf2c-34.i386 compat-libf2c-34.i686 mysql-devel mysql-devel.i686 openssl-devel.i686 sysstat "libusb-devel*" unixODBC-devel unixODBC-devel.i686 postgresql-devel libxml2-devel libXpm-devel libgfortran libstdc++-devel.i386 libstdc++-devel.i686 git compat-readline43 "graphviz*" dcap "zlib-*.i686" "libXext-*.i686" "libXtst-*.i686" "tigervnc*" telnet glibc"*" glibc-static.i686 freetype.i686 fontconfig.i686 libpng.i686 libXrender.i686 strace "fftw*" libpng "freetype*" xpdf "xemacs*" tkcvs xterm mutt "*g77*" joe "libXmu*" glibc-devel.i686 libX11-devel.i686 libXpm-devel.i686 libXft-devel.i686 mysql-devel.i686 dcap-devel dcap-devel.i686 gsl-devel gsl-devel.i686 pcre-devel pcre-devel.i686 fontconfig-devel.i686 freetype-devel.i686 libpng-devel.i686 libjpeg-devel.i686 libgfortran.i686 libxml2-devel.i686 h5py gd-devel gd-devel.i686 readline-devel.i686 ncurses-devel.i686 libXdmcp.i686 xorg-x11-fonts"*" rdesktop minicom xfig"*"
(Note that this list is "historical" - packages are added to but never removed from this list)
http://www.triumf.info/wiki/DAQwiki/index.php/SLinstall
The reason for cross-compilation is that we have:
a) proprietary "32-bit only" libraries
b) 32-bit VME-form-factor computers that do not have sufficient memory for building ROOT & similar.
And of course cross-compilation of ARM binaries is on the way...
K.O.
> -Connie Sieh
>
> >make: *** [bin/g2root] Error 1
> >
> >When I do rpm -qf /usr/lib/gcc/x86_64-redhat-linux/3.4.6/libfrtbegin.a I =
> >get
> >
> >compat-gcc-34-g77-3.4.6-19.el6.x86_64
> >
> >for SLF6, and
> >
> >compat-gcc-34-g77-3.4.6-4.1.x86_64
> >
> >for SLF 5.7. Are there any changes in this package that would cause an =
> >error such as the one above? It looks like it's the same version of the =
> >compiler, but something important must have changed between version 4 =
> >and 19. Does anyone have an idea regarding a workaround?
> >
> >Many thanks,
> >
> >Ken=
> >
--
Konstantin Olchanski
Data Acquisition Systems: The Bytes Must Flow!
Email: olchansk-at-triumf-dot-ca
Snail mail: 4004 Wesbrook Mall, TRIUMF, Vancouver, B.C., V6T 2A3, Canada
|
|
|