apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Travis Sidelinger <tra...@ilive4code.net>
Subject Re: Buildproblem with apr-util-1.2.2/autoconf in SLES10 source-rpm when both 32bit and 64bit libexpat is present
Date Thu, 10 May 2007 13:48:15 GMT
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 =



db@nsn.no 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 post@nsn.no. 
> 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 post@nsn.no.
> 
> -----------------------------------------------------------------------------
> 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=


Mime
View raw message