Bug 1242

Summary: [opensuse11.4] /usr/lib64/libxml2.so: undefined reference to `gzdirect@ZLIB_1.2.2.3'
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Jiajun Xu <jiajun.xu>
Component: coreAssignee: Saul Wold <sgw>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: dexuan.cui, ke.yu, meta.mr.watcher, meta.watcher, wenhuax.fan
Version: unspecified   
Target Milestone: 1.1 M3   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---
Attachments:
Description Flags
full log of building none

Description Jiajun Xu 2011-07-13 20:28:20 UTC
Tree/Branch: Poky/remotes/origin/1.1_M2
Commit: 148606d33dc7fb82739e5cec9181baa5759e319b

On Opensuse 11.4, I find build a "core-image-minimal" will meet a gettext-native compile failed.

Dexuan helped to have a quick check and we find if we run "bitbake gettext-native -c clean" and then run "bitbake core-image-minimal", the issue will disappear. It seems a race condition when gettext-native and zlib-native is being built.

The log is as following:
########
d/tmp/sysroots/x86_64-linux/usr/lib
| /usr/lib64/libxml2.so: undefined reference to `gzdirect@ZLIB_1.2.2.3'
| /usr/lib64/libxml2.so: undefined reference to `gzopen64@ZLIB_1.2.3.3'
| collect2: ld returned 1 exit status
| make[3]: *** [tstgettext] Error 1
| make[3]: *** Waiting for unfinished jobs....
| /bin/sh ../x86_64-linux-libtool  --tag=CC   --mode=link ccache gcc -std=gnu99  -isystem/distro/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe  -L/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath-link,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-O1 -o gettext-4-prg gettext-4-prg.o ../gnulib-lib/libgettextlib.la ../intl/libgnuintl.la
| x86_64-linux-libtool: link: ccache gcc -std=gnu99 -DINSTALLDIR=\".\" -isystem/distro/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -Wl,-rpath-link -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-O1 -o .libs/tstngettext tstngettext-tstngettext.o tstngettext-setlocale.o  -L/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib ../gnulib-lib/.libs/libgettextlib.so /usr/lib64/libxml2.so -ldl /distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib/libz.so -lm -lncurses ../intl/.libs/libgnuintl.so -lc -Wl,-rpath -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib
| x86_64-linux-libtool: link: ccache gcc -std=gnu99 -isystem/distro/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -Wl,-rpath-link -Wl,/distro/poky/buERROR: Function 'do_compile' failed (see /distro/poky/build/tmp/work/x86_64-linux/gettext-native-0.18.1.1-r1/temp/log.do_compile.17977 for further information)
| ild/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-O1 -o .libs/gettext-3-prg gettext-3-prg.o  -L/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib ../gnulib-lib/.libs/libgettextlib.so /usr/lib64/libxml2.so -ldl /distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib/libz.so -lm -lncurses ../intl/.libs/libgnuintl.so -lc -Wl,-rpath -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib
| /usr/lib64/libxml2.so: undefined reference to `gzdirect@ZLIB_1.2.2.3'
| /usr/lib64/libxml2.so: undefined reference to `gzopen64@ZLIB_1.2.3.3'
| collect2: ld returned 1 exit status
| make[3]: *** [tstngettext] Error 1
| /usr/lib64/libxml2.so: undefined reference to `gzdirect@ZLIB_1.2.2.3'
| /usr/lib64/libxml2.so: undefined reference to `gzopen64@ZLIB_1.2.3.3'
| collect2: ld returned 1 exit status
| make[3]: *** [gettext-3-prg] Error 1
| x86_64-linux-libtool: link: ccache gcc -std=gnu99 -isystem/distro/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -Wl,-rpath-link -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib -Wl,-O1 -o .libs/gettext-4-prg gettext-4-prg.o  -L/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib ../gnulib-lib/.libs/libgettextlib.so /usr/lib64/libxml2.so -ldl /distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib/libz.so -lm -lncurses ../intl/.libs/libgnuintl.so -lc -Wl,-rpath -Wl,/distro/poky/build/tmp/sysroots/x86_64-linux/usr/lib
| /usr/lib64/libxml2.so: undefined reference to `gzdirect@ZLIB_1.2.2.3'
| /usr/lib64/libxml2.so: undefined reference to `gzopen64@ZLIB_1.2.3.3'
| collect2: ld returned 1 exit status
| make[3]: *** [gettext-4-prg] Error 1
| make[3]: Leaving directory `/distro/poky/build/tmp/work/x86_64-linux/gettext-native-0.18.1.1-r1/gettext-0.18.1.1/gettext-tools/tests'
| make[2]: *** [all-recursive] Error 1
| make[2]: Leaving directory `/distro/poky/build/tmp/work/x86_64-linux/gettext-native-0.18.1.1-r1/gettext-0.18.1.1/gettext-tools'
| make[1]: *** [all] Error 2
########

You could access my machine via following steps:
1. ssh vt-master.sh.intel.com with user/passwd: root/123456
2. ssh 192.168.1.60 with user/passwd: root/123456
3. ssh 192.168.122.163 with user/passwd: root/123456
4. the source is under /distro/poky, you should use user "build" for building.
Comment 1 Jiajun Xu 2011-07-13 20:30:22 UTC
Created attachment 186 [details]
full log of building
Comment 2 Jiajun Xu 2011-07-20 17:51:18 UTC
The same issue still exists with M2 RC3 build.
Comment 3 Saul Wold 2011-07-20 19:10:43 UTC
diff --git a/meta/recipes-core/gettext/gettext_0.18.1.1.bb b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
index 0b11a90..e95e674 100644
--- a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
@@ -32,6 +32,7 @@ EXTRA_OECONF += "--without-lispdir \
                  --disable-native-java \
                  --disable-openmp \
                  --with-included-glib \
+                 --with-included-libxml \
                  --with-libncurses-prefix=${STAGING_LIBDIR}/.. \
                  --without-emacs \
                  --without-cvs \
Comment 4 Jiajun Xu 2011-07-20 22:24:18 UTC
(In reply to comment #3)
> diff --git a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
> b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
> index 0b11a90..e95e674 100644
> --- a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
> +++ b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
> @@ -32,6 +32,7 @@ EXTRA_OECONF += "--without-lispdir \
>                   --disable-native-java \
>                   --disable-openmp \
>                   --with-included-glib \
> +                 --with-included-libxml \
>                   --with-libncurses-prefix=${STAGING_LIBDIR}/.. \
>                   --without-emacs \
>                   --without-cvs \

After applying the patch, it could pass build on opensuse 11.4.