mariadb: fix do_configure failed while multilib is used

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@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Hongxu Jia 2013-10-10 07:47:38 +00:00 committed by Martin Jansa
parent 4e59f5680d
commit a0a4037cf2
2 changed files with 65 additions and 0 deletions

View File

@ -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@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

View File

@ -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 \
"