I found the same problem with apr-util-1.2.8 on SLES9.
In building apr-util-1.2.8 on a SLES9 x86_64 system with
both 32bit and 64bit versions of expat installed, the configure script
finds the 32bit version of expat first, and thus ld fails to link.
Here is a patch for the Makefile. I have not been able to figure out
what to change in the configure script yet. The configure option
--with-expat= does not seem to help.
--- Makefile.070504 2007-05-04 17:02:41.381182000 -0400
+++ Makefile 2007-05-04 17:07:01.459900720 -0400
@@ -12,7 +12,7 @@
INCLUDES = -I/vol/cd/build/rpm/BUILD/apr-util-1.2.8/include
-I/vol/cd/build/rpm/BUILD/apr-util-1.2.8/include/private -I/usr/include
APRUTIL_LDFLAGS =
-APRUTIL_LIBS = /usr/lib/libexpat.la /usr/lib64/libapr-1.la -lrt -lcrypt
-lpthread -ldl
+APRUTIL_LIBS = /usr/lib64/libexpat.la /usr/lib64/libapr-1.la -lrt
-lcrypt -lpthread -ldl
TARGET_LIB = libaprutil-${APRUTIL_MAJOR_VERSION}.la
INSTALL_SUBDIRS =
[EMAIL PROTECTED] wrote:
> Hi,
>
> I found a problem with the build of apr-util-1.2.2 (
> libapr-util1-1.2.2-13.2.src.rpm), when both expat-2.0.0-13.2.x86_64.rpm
> and expat-32bit-2.0.0-13.2.x86_64.rpm are installed.
> I am using SLES10 amd64 version, and building a amd64 version of
> libapr-util1.2.2.
>
> This is the error-message that appears when I issue command: "rpmbuild -ba
> SPECS/libapr-util1.spec"
>
>
> 1. gcc -O2 -g -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fPIC -Wall
> -fno-strict-aliasing -DLDAP_DEPRECATED -Wall -g -fpie -fstack-protector
> -pthread -pie -fno-pie -fno-PIE -o .libs/svn add-cmd.o blame-cmd.o
> cat-cmd.o checkout-cmd.o cleanup-cmd.o commit-cmd.o copy-cmd.o
> delete-cmd.o diff-cmd.o export-cmd.o help-cmd.o import-cmd.o info-cmd.o
> lock-cmd.o log-cmd.o ls-cmd.o main.o merge-cmd.o mkdir-cmd.o move-cmd.o
> notify.o prompt.o propdel-cmd.o propedit-cmd.o propget-cmd.o
> proplist-cmd.o props.o propset-cmd.o resolved-cmd.o revert-cmd.o
> status-cmd.o status.o switch-cmd.o unlock-cmd.o update-cmd.o util.o
> ../../../subversion/libsvn_client/.libs/libsvn_client-1.so
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_wc/.libs/libsvn_wc-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_ra/.libs/libsvn_ra-1.so
>
> ../../../subversion/libsvn_wc/.libs/libsvn_wc-1.so
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_diff/.libs/libsvn_diff-1.so
>
> ../../../subversion/libsvn_ra/.libs/libsvn_ra-1.so
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_repos/.libs/libsvn_repos-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_fs/.libs/libsvn_fs-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so
>
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_delta/.libs/libsvn_delta-1.so
>
> ../../../subversion/libsvn_delta/.libs/libsvn_delta-1.so
> /usr/src/packages/BUILD/subversion-1.3.x/subversion/libsvn_subr/.libs/libsvn_subr-1.so
>
> ../../../subversion/libsvn_subr/.libs/libsvn_subr-1.so
> /usr/lib64/libaprutil-1.so /usr/lib/libexpat.so -lldap -llber -ldb-4.3
> /usr/lib64/libexpat.so /usr/lib64/libapr-1.so -lrt -lcrypt -lpthread -ldl
> -lz -Wl,--rpath -Wl,/usr/lib64
> 2. /usr/lib/libexpat.so: could not read symbols: File in wrong format
>
> as the error-message shows, it's trying to include /usr/lib/libexpat.so,
> and the reason for this can be found in
> SOURCES/apr-util-1.2.2/build/apu-conf.m4, where a macro tests first for a
> 32bit version, and uses this if it exists.
>
> What I did to make the sourcecode build, was to change the order in which
> the macro tests/includes, so that the 64bit-version takes presence over
> the 32bit version. I do not consider this a foolproof sollution, because
> this might break when building a 32bit version. What probably should be
> done is to use @libdir@/$libdir, or somehow check arcitechture for build
> before including a version of this lib (my autoconf knowlege is minimal).
>
> Here is patch I used to get the package built:
>
> --- apu-conf.m4.orig 2007-05-10 09:05:58.927993750 +0200
> +++ apu-conf.m4 2007-05-10 09:06:28.277828000 +0200
> @@ -64,13 +64,6 @@
> expat_libs="-lexpat"
> expat_libtool="$1/lib/libexpat.la"
> elif test -r "$1/include/expat.h" -a \
> - -r "$1/lib/libexpat.la"; then
> - dnl Expat 1.95.* installation (with libtool)
> - expat_include_dir="$1/include"
> - expat_ldflags="-L$1/lib"
> - expat_libs="-lexpat"
> - expat_libtool="$1/lib/libexpat.la"
> - elif test -r "$1/include/expat.h" -a \
> -r "$1/lib64/libexpat.la"; then
> dnl Expat 1.95.* installation on certain 64-bit platforms (with
> libtool)
> expat_include_dir="$1/include"
> @@ -78,6 +71,13 @@
> expat_libs="-lexpat"
> expat_libtool="$1/lib64/libexpat.la"
> elif test -r "$1/include/expat.h" -a \
> + -r "$1/lib/libexpat.la"; then
> + dnl Expat 1.95.* installation (with libtool)
> + expat_include_dir="$1/include"
> + expat_ldflags="-L$1/lib"
> + expat_libs="-lexpat"
> + expat_libtool="$1/lib/libexpat.la"
> + elif test -r "$1/include/expat.h" -a \
> -r "$1/lib/libexpat.a"; then
> dnl Expat 1.95.* installation (without libtool)
> dnl FreeBSD textproc/expat2
>
> Med vennlig hilsen/Best Regards
>
> NSN ASA
>
> Daniel Bond
>
>
>
>
> Østerdalsgata 1 K
> 0658 OSLO
>
> Telefon: +47 21 00 01 00
> Telefax: +47 21 00 01 01
> -----------------------------------------------------------
>
> Vi ber om at alle henvendelser går via [EMAIL PROTECTED]
> Du sikrer da en rask behandling av din henvendelse.
> Jeg må gjøre deg oppmerksom på at det kan ta tid å
> behandle din sak om du velger å ikke bruke [EMAIL PROTECTED]
>
> -----------------------------------------------------------------------------
> This email may contain NSN confidential and privileged material for
> the sole use of the intended recipient. Any review or distribution by
> others is strictly prohibited. If you are not the intended recipient
> please contact the sender and delete all copies.
>
>
> ------------------------------------------------------------------------
>
> --- apu-conf.m4.orig 2007-05-10 09:05:58.927993750 +0200
> +++ apu-conf.m4 2007-05-10 09:06:28.277828000 +0200
> @@ -64,13 +64,6 @@
> expat_libs="-lexpat"
> expat_libtool="$1/lib/libexpat.la"
> elif test -r "$1/include/expat.h" -a \
> - -r "$1/lib/libexpat.la"; then
> - dnl Expat 1.95.* installation (with libtool)
> - expat_include_dir="$1/include"
> - expat_ldflags="-L$1/lib"
> - expat_libs="-lexpat"
> - expat_libtool="$1/lib/libexpat.la"
> - elif test -r "$1/include/expat.h" -a \
> -r "$1/lib64/libexpat.la"; then
> dnl Expat 1.95.* installation on certain 64-bit platforms (with libtool)
> expat_include_dir="$1/include"
> @@ -78,6 +71,13 @@
> expat_libs="-lexpat"
> expat_libtool="$1/lib64/libexpat.la"
> elif test -r "$1/include/expat.h" -a \
> + -r "$1/lib/libexpat.la"; then
> + dnl Expat 1.95.* installation (with libtool)
> + expat_include_dir="$1/include"
> + expat_ldflags="-L$1/lib"
> + expat_libs="-lexpat"
> + expat_libtool="$1/lib/libexpat.la"
> + elif test -r "$1/include/expat.h" -a \
> -r "$1/lib/libexpat.a"; then
> dnl Expat 1.95.* installation (without libtool)
> dnl FreeBSD textproc/expat2=