Patch borrowed from http://code.google.com/p/minimyth/source/browse/trunk/gar-minimyth/script/db/mysql/files/mysql-5.1.47-ac_cache_check.patch?r=6493. It allows to override through ac_cv_* variables various checks that cannot be performed when cross-compiling. Signed-off-by: Thomas Petazzoni diff -Naur mysql-5.1.47-old/storage/innodb_plugin/plug.in mysql-5.1.47-new/storage/innodb_plugin/plug.in --- mysql-5.1.47-old/storage/innodb_plugin/plug.in 2010-05-20 09:55:10.000000000 -0700 +++ mysql-5.1.47-new/storage/innodb_plugin/plug.in 2010-05-20 09:56:12.000000000 -0700 @@ -53,9 +53,10 @@ esac AC_SUBST(INNODB_DYNAMIC_CFLAGS) - AC_MSG_CHECKING(whether GCC atomic builtins are available) + AC_CACHE_CHECK([whether GCC atomic builtins are available], + [ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS], # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not - AC_TRY_RUN( + [AC_TRY_RUN( [ int main() { @@ -95,18 +96,23 @@ } ], [ - AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1], - [GCC atomic builtins are available]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS"= "xyes" ; then + AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1], + [GCC atomic builtins are available]) + fi - AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins) + AC_CACHE_CHECK([whether pthread_t can be used by GCC atomic builtins], + [ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC], # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not - AC_TRY_RUN( + [AC_TRY_RUN( [ #include #include @@ -126,14 +132,18 @@ } ], [ - AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1], - [pthread_t can be used by GCC atomic builtins]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC"= "xyes" ; then + AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1], + [pthread_t can be used by GCC atomic builtins]) + fi AC_MSG_CHECKING(whether Solaris libc atomic functions are available) # either define HAVE_IB_SOLARIS_ATOMICS or not @@ -147,9 +157,10 @@ are available]) ) - AC_MSG_CHECKING(whether pthread_t can be used by Solaris libc atomic functions) + AC_CACHE_CHECK([whether pthread_t can be used by Solaris libc atomic functions], + [ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not - AC_TRY_RUN( + [AC_TRY_RUN( [ #include #include @@ -180,28 +191,33 @@ } ], [ - AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1], - [pthread_t can be used by solaris atomics]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS"= "xyes" ; then + AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1], + [pthread_t can be used by solaris atomics]) + fi # this is needed to know which one of atomic_cas_32() or atomic_cas_64() # to use in the source AC_CHECK_SIZEOF([pthread_t], [], [#include ]) # Check for x86 PAUSE instruction - AC_MSG_CHECKING(for x86 PAUSE instruction) + AC_CACHE_CHECK([for x86 PAUSE instruction], + [ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION], # We have to actually try running the test program, because of a bug # in Solaris on x86_64, where it wrongly reports that PAUSE is not # supported when trying to run an application. See # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684 # We use ib_ prefix to avoid collisoins if this code is added to # mysql's configure.in. - AC_TRY_RUN( + [AC_TRY_RUN( [ int main() { __asm__ __volatile__ ("pause"); @@ -209,16 +225,21 @@ } ], [ - AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist]) AC_MSG_RESULT(yes) + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=yes ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=no ], [ AC_MSG_RESULT(no) + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=no ] - ) + )]) + if test "x$ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION"= "xyes" ; then + AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist]) + fi ]) # vim: set ft=config: