Compiling on 64 bit SuSE (Was Re: List OK?)

Des Dougan des at DouganConsulting.com
Mon Sep 5 17:47:02 EDT 2005


On Mon, 2005-09-05 at 17:40 -0400, Robert Heller wrote:
>   Des Dougan <des at douganconsulting.com>,
>   In a message on Mon, 05 Sep 2005 14:10:53 -0700, wrote :
> 
> DD> On Mon, 2005-09-05 at 12:44 -0700, Des Dougan wrote:
> DD> > On Mon, 2005-09-05 at 14:08 -0400, Derek Atkins wrote:
> DD> > > Quoting Des Dougan <des at DouganConsulting.com>:
> DD> > > 
> DD> > > > The make step has failed, though - something in make is looking at a 32
> DD> > > > bit library instead of the 64 bit:
> DD> > > 
> DD> > > That's not surprising -- GnuCash 1.8 was never ported to 64-bit platforms...
> DD> > > 
> DD> > > > make[4]: Entering directory 
> DD> > > > `/home/des/Downloads/tarballs/gnucash/gnucash-1.8.11/src/gnc-module'
> DD> > > > /bin/sh ../../libtool --mode=link gcc -I../../src/core-utils 
> DD> > > > -I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib64/glib/include -I 
> DD> > > > /usr/local/include/g-wrap  -g -O2 -Wall -Wunused    -o 
> DD> > > > libgncmodule.la -rpath /usr/lib64 -module gnc-module.lo 
> DD> > > > ../core-utils/libcore-utils.la -L/usr/local/lib -lgwrap-wct 
> DD> > > > -lgwrap-glib -L/opt/gnome/lib64 -lglib -lltdl -lpopt -lm  -lm
> DD> > > > gcc -shared  .libs/gnc-module.o  -Wl,--rpath 
> DD> > > > -Wl,/home/des/Downloads/tarballs/gnucash/gnucash/src/core-utils/.libs 
> DD> > > > -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/opt/gnome/lib64 
> DD> > > > -Wl,--rpath -Wl,/usr/lib64 -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath 
> DD> > > > -Wl,/opt/gnome/lib64  -L/usr/lib64 -L/opt/gnome/lib64 
> DD> > > > ../core-utils/.libs/libcore-utils.so -L/usr/local/lib 
> DD> > > > /usr/local/lib/libgwrap-wct.so /usr/local/lib/libgwrap-glib.so 
> DD> > > > /opt/gnome/lib64/libglib.so /usr/lib/libltdl.so -lpopt -lm  
> DD> > > > -Wl,-soname -Wl,libgncmodule.so.0 -o .libs/libgncmodule.so.0.0.0
> DD> > > > /usr/lib/libltdl.so: could not read symbols: File in wrong format
> DD> > > >
> DD> > > > I've confirmed that there is a libltdl.so in the /usr/lib64 directory,
> DD> > > > and I've gone through the configure script and the make man pages to
> DD> > > > check how to inform make that it's a 64 bit compile, but can find
> DD> > > > nothing that help me.
> DD> > > 
> DD> > > Sorry, don't know what to tell you...
> DD> > > 
> DD> > > > Am I missing something fundamental at the configure stage? The script
> DD> > > > I'm using is as follows:
> DD> > > >
> DD> > > > #!/bin/sh
> DD> > > > CC=gcc
> DD> > > > CFLAGS=-O2
> DD> > > > PATH="$PATH:/opt/gnome/bin"
> DD> > > > (cd gnucash
> DD> > > > rm -rf config.cache
> DD> > > > ./configure --prefix=/opt/gnome --libdir=/usr/lib64 --enable-gui 
> DD> > > > --enable-ofx \
> DD> > > >        --build=x86_64-linux-gnu --disable-error-on-warning
> DD> > > > )
> DD> > > > # end of script
> DD> > > >
> DD> > > > Thanks,
> DD> > > >
> DD> > > > Des
> DD> > > 
> DD> > > Honestly, I don't know.  But I don't think 1.8 will build on 64-bit 
> DD> > > platforms. I know a bunch of changes have gone into CVS to get gnucash 
> DD> > > working on 64-bit
> DD> > > platforms, but I'm fairly certain those didn't go into 1.8...   So it's quite
> DD> > > likely you're working on a futile effort in any event.
> DD> > 
> DD> > Well, that is a major issue for me - the shipped gnucash on SuSE 9.3 has
> DD> > a bug with importing OFX files (which I've reported to SuSE) and which
> DD> > is why I built 1.8.11 on my previous box...
> DD> > 
> DD> > Thanks for all your help (and I see that my last email made it to the
> DD> > list...).
> DD> > 
> DD> > Regards,
> DD> > 
> DD> > Des
> DD> 
> DD> 
> DD> Well, I decided to press on. libltdl.so is a symbolic link to
> DD> libltdl.so.1 in /usr/lib, so I created a new symbolic link to
> DD> the /usr/lib64 directory. This got me further and carrying out the same
> 
> You *really* don't want to do this!  The libltdl.so.1 in /usr/lib is
> most likely the *32* bit library.  The libraries in /usr/lib64 are the
> 64 bit libraries.  It is important to understand that the '64 bit' ix86
> processors (eg AMD64, IS64), also run in 32-bit mode.  BUT a given
> process is either in 32 or 64 bit mode.  You can switch modes within a
> given process and thus you cannot link a 64-bit program with 32-bit
> libraries.  You are probably missing the 64-bit version of libltdl.so OR
> somehow the install of libltdl placed the 64 bit library in with the
> 32-bit libraries.

Hi Robert,

I think you've misunderstood me - there is a libltdl.so.1 in
both /usr/lib and /usr/lib64, but the symbolic link
at /usr/lib/libltdl.so was pointing to the 32 bit version in /usr/lib. I
changed it to point to the 64 bit version in /usr/lib64, as the make was
using the 32 bit version. Changing the symbolic link to point
to /usr/lib64 got make past the problem.

Or am I missing something (which may be entirely possible - I'm feeling
my way in the dark here).

Thanks,

Des
-- 

Des Dougan, Principal
Dougan Consulting Group

Ph: 604-980-2848       Email: des at DouganConsulting dot com     

        www.DouganConsulting.com

Design - Implementation - Support



More information about the gnucash-user mailing list