You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Tommi Mäkitalo <to...@epgmbh.de> on 2005/05/06 21:29:30 UTC

problem compiling apr-util-1.1.2 with suse 9.3 x86-64

Hi,

I try to compile apr-util-1.1.2. After unpacking, ./configure and make I get:

make[1]: Entering directory `/home/tommi/Projekte/apr-util-1.1.2'
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=link  gcc -g -O2 
-pthread   -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE   
-I/home/tommi/Projekte/apr-util-1.1.2/include 
-I/home/tommi/Projekte/apr-util-1.1.2/include/private  
-I/usr/local/apr/include/apr-1    -version-info 1:1:1    -o libaprutil-1.la 
-rpath /usr/local/apr/lib buckets/apr_buckets_refcount.lo 
buckets/apr_buckets_pipe.lo buckets/apr_buckets_heap.lo 
buckets/apr_brigade.lo buckets/apr_buckets_file.lo buckets/apr_buckets.lo 
buckets/apr_buckets_flush.lo buckets/apr_buckets_socket.lo 
buckets/apr_buckets_eos.lo buckets/apr_buckets_pool.lo 
buckets/apr_buckets_simple.lo buckets/apr_buckets_alloc.lo 
buckets/apr_buckets_mmap.lo crypto/apr_sha1.lo crypto/getuuid.lo 
crypto/apr_md4.lo crypto/uuid.lo crypto/apr_md5.lo dbm/apr_dbm_ndbm.lo 
dbm/apr_dbm.lo dbm/apr_dbm_berkeleydb.lo dbm/apr_dbm_sdbm.lo 
dbm/apr_dbm_gdbm.lo dbm/sdbm/sdbm_pair.lo dbm/sdbm/sdbm.lo 
dbm/sdbm/sdbm_hash.lo dbm/sdbm/sdbm_lock.lo encoding/apr_base64.lo 
hooks/apr_hooks.lo ldap/apr_ldap_option.lo ldap/apr_ldap_url.lo 
ldap/apr_ldap_init.lo misc/apr_reslist.lo misc/apr_date.lo misc/apr_queue.lo 
misc/apu_version.lo misc/apr_rmm.lo uri/apr_uri.lo xml/apr_xml.lo 
strmatch/apr_strmatch.lo xlate/xlate.lo   -lrt -lcrypt  -lpthread -ldl  
-lgdbm /usr/lib/libexpat.la /usr/local/apr/lib/libapr-1.la -lrt -lcrypt 
-lpthread -ldl
/usr/lib/libexpat.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [libaprutil-1.la] Fehler 1
make[1]: Leaving directory `/home/tommi/Projekte/apr-util-1.1.2'
make: *** [all-recursive] Fehler 1

/usr/lib/libexpat.so is a 32-bit-library and this does not link with a 64-bit 
library. I have a libexpat.so in /usr/lib64, which links well with a normal 
programm. I created a minimal program ttt.cpp with just an empty 
main-function, which compiles and links with libexpat with "g++ -lexpat -o 
ttt ttt.cpp". "ldd ttt" tells me, that it depends 
on /usr/lib64/libexpat.so.0.

Tommi

Re: problem compiling apr-util-1.1.2 with suse 9.3 x86-64

Posted by Joe Orton <jo...@redhat.com>.
On Tue, May 10, 2005 at 11:52:58AM +0200, Tommi Mäkitalo wrote:
> Hi,
> 
> I see the problem.
> 
> As a workaround it might be helpful to change the order. Look first 
> at /usr/lib64 and then /usr/lib. 64-bit-systems might have 32-bit-libraries 
> in /usr/lib, but 32-bit-systems normally have no 64-bit-libraries 
> in /usr/lib64. Another possible workaround would be to add a configure-switch 
> for expat. Or just skip the test. "g++ -lexpat something.cpp" works for me.

Changing the order just breaks the check for someone else unfortunately. 
It's quite normal to have systems with both 32-bit and 64-bit libraries
installed and the compiler defaults vary e.g. on ppc64 the default is
normally 32-bit binaries.

> Just now I can't build apr on my system.

You can use --with-expat=xml/expat if you don't mind using the bundled 
copy of the expat library.

joe



Re: problem compiling apr-util-1.1.2 with suse 9.3 x86-64

Posted by Tommi Mäkitalo <to...@epgmbh.de>.
Hi,

I see the problem.

As a workaround it might be helpful to change the order. Look first 
at /usr/lib64 and then /usr/lib. 64-bit-systems might have 32-bit-libraries 
in /usr/lib, but 32-bit-systems normally have no 64-bit-libraries 
in /usr/lib64. Another possible workaround would be to add a configure-switch 
for expat. Or just skip the test. "g++ -lexpat something.cpp" works for me.

Just now I can't build apr on my system.

Tommi

Re: problem compiling apr-util-1.1.2 with suse 9.3 x86-64

Posted by Joe Orton <jo...@redhat.com>.
On Sat, May 07, 2005 at 09:43:58PM +0200, Tommi Mäkitalo wrote:
> Hi,
> 
> some more investigation:
> 
> it looks like the problem is in build/apu-conf.m4. There is a definition for 
> APU_TEST_EXPAT, which looks for existence of /usr/lib/libexpat.la. This file 
> exists in my system (SuSE 9.2 x86-64 - not 9.3 as I mentioned before - sorry 
> - I'm just used to use the most recent version;-).
> 
> APU_TEST_EXPAT looks later in /usr/lib64, but not here, because it was already 
> successful.
> 
> The solution is to try out the library. A minimal program ("int main() {}") 
> linked with /usr/lib/libexpat.la will fail.

It's hard to test linking against a libtool .la library from autoconf. 
But yes, it's a long-standing bug, the whole macro really needs to be
rewritten to test for the presence of the library properly using
autoconf macros, rather than test -r.

http://issues.apache.org/bugzilla/show_bug.cgi?id=28205

joe

Re: problem compiling apr-util-1.1.2 with suse 9.3 x86-64

Posted by Tommi Mäkitalo <to...@epgmbh.de>.
Hi,

some more investigation:

it looks like the problem is in build/apu-conf.m4. There is a definition for 
APU_TEST_EXPAT, which looks for existence of /usr/lib/libexpat.la. This file 
exists in my system (SuSE 9.2 x86-64 - not 9.3 as I mentioned before - sorry 
- I'm just used to use the most recent version;-).

APU_TEST_EXPAT looks later in /usr/lib64, but not here, because it was already 
successful.

The solution is to try out the library. A minimal program ("int main() {}") 
linked with /usr/lib/libexpat.la will fail.