[oe] [meta-oe][PATCH 1/1] mariadb: fix do_configure failed while multilib is used

Hongxu Jia hongxu.jia at windriver.com
Sat Oct 12 01:33:00 UTC 2013


Ping

Hongxu,
Thanks

On 10/10/2013 03:47 PM, Hongxu Jia wrote:
> Here is the error log from mariadb's configure test
> ...
>   checking for zlib compression library... configure: error: headers or
> binaries were not found in /home/jiahongxu/yocto/build-20131009-mysql/
> bitbake_build/tmp/sysroots/qemux86-64/usr/{include,lib}
> ...
>
> When multilib is used, the baselib is assigned with "lib64", here is
> the log from 'bitbake mariadb -e'
> ...
>   4738 # $baselib [3 operations]
>   4739 #   set conf/bitbake.conf:10
>   4740 #     "${BASELIB}"
>   4741 #   set conf/bitbake.conf:11
>   4742 #     [vardepvalue] "${baselib}"
>   4743 #   set /home/jiahongxu/yocto/build-20131009-mysql/layers/oe-core/meta/conf/multilib.conf:2
>   4744 #     "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) or 'INVALID'), True) or d.getVar('BASELIB', True)}"
>   4745 # computed:
>   4746 #   "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) or 'INVALID'), True) or d.getVar('BASELIB', True)}"
>   4747 baselib="lib64"
> ...
>
> In this situation, the zlib locates in 'lib64' rather than 'lib'.
> But mariadb's confiure test still searches zlib in 'lib'.
>
> Modify mariadb's confiure to let lib dir configurable rather
> than hardcode could fix this issue.
>
> Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> ---
>   .../mariadb/zlib-let-libdir-configurable.patch     | 63 ++++++++++++++++++++++
>   meta-oe/recipes-support/mysql/mariadb_5.1.67.inc   |  2 +
>   2 files changed, 65 insertions(+)
>   create mode 100644 meta-oe/recipes-support/mysql/mariadb/zlib-let-libdir-configurable.patch
>
> diff --git a/meta-oe/recipes-support/mysql/mariadb/zlib-let-libdir-configurable.patch b/meta-oe/recipes-support/mysql/mariadb/zlib-let-libdir-configurable.patch
> new file mode 100644
> index 0000000..880c2a7
> --- /dev/null
> +++ b/meta-oe/recipes-support/mysql/mariadb/zlib-let-libdir-configurable.patch
> @@ -0,0 +1,63 @@
> +zlib: let lib dir configurable
> +
> +The zlib were found in $mysql_zlib_dir/lib, and the
> +search will fail if zlib in $mysql_zlib_dir/lib64.
> +
> +Let lib dir configurable rather than hardcode.
> +
> +Upstream-Status: Pending
> +Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
> +---
> + config/ac-macros/zlib.m4 | 12 ++++++------
> + configure.in             |  8 ++++++++
> + 2 files changed, 14 insertions(+), 6 deletions(-)
> +
> +diff --git a/config/ac-macros/zlib.m4 b/config/ac-macros/zlib.m4
> +--- a/config/ac-macros/zlib.m4
> ++++ b/config/ac-macros/zlib.m4
> +@@ -106,17 +106,17 @@ case $SYSTEM_TYPE in
> +         ;;
> +       *)
> +         # Test for libz using all known library file endings
> +-        if test \( -f "$mysql_zlib_dir/lib/libz.a"  -o \
> +-                   -f "$mysql_zlib_dir/lib/libz.so" -o \
> +-                   -f "$mysql_zlib_dir/lib/libz.sl" -o \
> +-                   -f "$mysql_zlib_dir/lib/libz.dylib" \) \
> ++        if test \( -f "$mysql_zlib_dir/$base_libdir/libz.a"  -o \
> ++                   -f "$mysql_zlib_dir/$base_libdir/libz.so" -o \
> ++                   -f "$mysql_zlib_dir/$base_libdir/libz.sl" -o \
> ++                   -f "$mysql_zlib_dir/$base_libdir/libz.dylib" \) \
> +                 -a -f "$mysql_zlib_dir/include/zlib.h"; then
> +           ZLIB_INCLUDES="-I$mysql_zlib_dir/include"
> +-          ZLIB_LIBS="-L$mysql_zlib_dir/lib -lz"
> ++          ZLIB_LIBS="-L$mysql_zlib_dir/$base_libdir -lz"
> +           MYSQL_CHECK_ZLIB_DIR
> +         fi
> +         if test "x$mysql_cv_compress" != "xyes"; then
> +-          AC_MSG_ERROR([headers or binaries were not found in $mysql_zlib_dir/{include,lib}])
> ++          AC_MSG_ERROR([headers or binaries were not found in $mysql_zlib_dir/{include,$base_libdir}])
> +         fi
> +         ;;
> +     esac
> +diff --git a/configure.in b/configure.in
> +index 2c6c08e..193b59a 100644
> +--- a/configure.in
> ++++ b/configure.in
> +@@ -104,6 +104,14 @@ AC_SUBST(SHARED_LIB_MAJOR_VERSION)
> + AC_SUBST(SHARED_LIB_VERSION)
> + AC_SUBST(AVAILABLE_LANGUAGES)
> +
> ++AC_ARG_WITH([baselib-dir],
> ++            AC_HELP_STRING([--baselib-dir=DIR],
> ++                           [Provide MySQL with a custom location of
> ++                           baselib dir. Given DIR, such as zlib binary is
> ++                           assumed to be in $zlib-dir/$DIR.]),
> ++            [base_libdir=${withval}],
> ++            [base_libdir="lib"])
> ++
> + # Check whether a debug mode should be enabled.
> + AC_ARG_WITH([debug],
> +     AS_HELP_STRING([--with-debug@<:@=full@:>@],
> +--
> +1.8.1.2
> +
> diff --git a/meta-oe/recipes-support/mysql/mariadb_5.1.67.inc b/meta-oe/recipes-support/mysql/mariadb_5.1.67.inc
> index c535a41..ca8090e 100644
> --- a/meta-oe/recipes-support/mysql/mariadb_5.1.67.inc
> +++ b/meta-oe/recipes-support/mysql/mariadb_5.1.67.inc
> @@ -15,6 +15,7 @@ SRC_URI = "http://mirrors.coreix.net/mariadb/mariadb-${PV}/kvm-tarbake-jaunty-x8
>              file://configure-ps-cache-check.patch \
>              file://fix-cve-2013-1861-1.patch \
>              file://fix-cve-2013-1861-2.patch \
> +           file://zlib-let-libdir-configurable.patch \
>              file://my.cnf \
>              file://mysqld.sh"
>   
> @@ -51,6 +52,7 @@ EXTRA_OECONF = "--with-atomic-ops=up \
>                   --without-man \
>                   --without-docs \
>                   --with-zlib-dir=${STAGING_EXECPREFIXDIR} \
> +                --with-baselib-dir=${base_libdir} \
>                   --with-pic \
>                   "
>   




More information about the Openembedded-devel mailing list