[oe] libxml2 using host's zlib?
Hollis Blanchard
hollis_blanchard at mentor.com
Tue Oct 16 17:26:25 UTC 2012
I was trying to build php using meta-webserver, and got stuck with this
error during configuration of php-native:
configure:49076: gcc -o conftest -I/usr/include
-isystem/mnt/mel/build/tmp/sysroots/i686-linux/usr/include -O2 -pipe
-g0 -fvisibility=hidden
-isystem/mnt/mel/build/tmp/sysroots/i686-linux/usr/include
-L/usr/lib -L/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib
-L/mnt/mel/build/tmp/sysroots/i686-linux/lib
-Wl,-rpath-link,/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib
-Wl,-rpath-link,/mnt/mel/build/tmp/sysroots/i686-linux/lib
-Wl,-rpath,/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib
-Wl,-rpath,/mnt/mel/build/tmp/sysroots/i686-linux/lib -Wl,-O1
-Wl,--hash-style=both
-Wl,-rpath,/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib
-L/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib
-Wl,-rpath,/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib/../lib
-L/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib/../lib conftest.c
-lz -lcrypt -lrt -lm -lnsl -lxml2 -lcrypt -lxml2 -lz -lm -lxml2 -lz
-lm >&5
/mnt/mel/build/tmp/sysroots/i686-linux/usr/lib/libxml2.so: undefined
reference to `gzopen64 at ZLIB_1.2.3.3'
My build host has /lib/libz.so.1.2.3.3, so my guess is:
* libxml2 is linking with libz from the host
* php-native properly links with zlib-native from Poky (1.2.7), plus the
tainted libxml2
* libxml2 fails to link because it wants symbols from 1.2.3, which it
can't find in zlib-native
I've tried the following:
hblancha at sb-ubuntu-1004:/mnt/mel$ diff -u
poky/meta/recipes-core/libxml/libxml2.inc{.orig,}---
poky/meta/recipes-core/libxml/libxml2.inc.orig 2012-10-16
10:54:17.000000000 -0500
+++ poky/meta/recipes-core/libxml/libxml2.inc 2012-10-16
10:55:54.000000000 -0500
@@ -9,7 +9,7 @@
file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907
\
file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
-DEPENDS_virtclass-native = "python-native"
+DEPENDS_append_virtclass-native = " python-native"
DEPENDS =+ "zlib"
SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz \
@@ -25,8 +25,8 @@
}
EXTRA_OECONF = "--without-python --without-debug --without-legacy
--without-catalog --without-docbook --with-c14n --without-lzma"
-EXTRA_OECONF_virtclass-native =
"--with-python=${STAGING_BINDIR}/python --without-legacy
--with-catalog --without-docbook --with-c14n --without-lzma"
-EXTRA_OECONF_virtclass-nativesdk =
"--with-python=${STAGING_BINDIR}/python --without-legacy
--with-catalog --without-docbook --with-c14n --without-lzma"
+EXTRA_OECONF_virtclass-native =
"--with-python=${STAGING_BINDIR}/python --without-legacy
--with-catalog --without-docbook --with-c14n --without-lzma
--with-zlib=${STAGING_LIBDIR}"
+EXTRA_OECONF_virtclass-nativesdk =
"--with-python=${STAGING_BINDIR}/python --without-legacy
--with-catalog --without-docbook --with-c14n --without-lzma
--with-zlib=${STAGING_LIBDIR}"
EXTRA_OECONF_linuxstdbase = "--without-python --with-debug
--with-legacy --with-catalog --with-docbook --with-c14n --without-lzma"
# required for pythong binding
hblancha at sb-ubuntu-1004:/mnt/mel/build$ bitbake -c clean libxml2-native
[...]
hblancha at sb-ubuntu-1004:/mnt/mel/build$ bitbake libxml2-native
[...]
hblancha at sb-ubuntu-1004:/mnt/mel/build$ nm
tmp/sysroots/i686-linux/usr/lib/libxml2.so | grep gzopen
U gzopen64@@ZLIB_1.2.3.3
As you can see, it didn't help: libxml2.so still is linking with the
host's zlib-1.2.3.3, and php-native fails to configure because of it.
How to fix? Thanks!
--
Hollis Blanchard
Product Owner, Sourcery Analyzer <http://go.mentor.com/sourceryanalyzer>
Mentor Graphics, Embedded Systems Division
More information about the Openembedded-devel
mailing list