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
