0000-ac_cache_check.patch 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. Patch borrowed from
  2. 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.
  3. It allows to override through ac_cv_* variables various checks that
  4. cannot be performed when cross-compiling.
  5. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  6. ---
  7. storage/innodb_plugin/plug.in | 59 ++++++++++++++++++++++++++++--------------
  8. 1 file changed, 40 insertions(+), 19 deletions(-)
  9. Index: mysql-5.1.53/storage/innodb_plugin/plug.in
  10. ===================================================================
  11. --- mysql-5.1.53.orig/storage/innodb_plugin/plug.in
  12. +++ mysql-5.1.53/storage/innodb_plugin/plug.in
  13. @@ -53,9 +53,10 @@
  14. esac
  15. AC_SUBST(INNODB_DYNAMIC_CFLAGS)
  16. - AC_MSG_CHECKING(whether GCC atomic builtins are available)
  17. + AC_CACHE_CHECK([whether GCC atomic builtins are available],
  18. + [ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS],
  19. # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
  20. - AC_TRY_RUN(
  21. + [AC_TRY_RUN(
  22. [
  23. int main()
  24. {
  25. @@ -95,18 +96,23 @@
  26. }
  27. ],
  28. [
  29. - AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1],
  30. - [GCC atomic builtins are available])
  31. AC_MSG_RESULT(yes)
  32. + ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=yes
  33. ],
  34. [
  35. AC_MSG_RESULT(no)
  36. + ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=no
  37. ]
  38. - )
  39. + )])
  40. + if test "x$ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS"= "xyes" ; then
  41. + AC_DEFINE([HAVE_IB_GCC_ATOMIC_BUILTINS], [1],
  42. + [GCC atomic builtins are available])
  43. + fi
  44. - AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
  45. + AC_CACHE_CHECK([whether pthread_t can be used by GCC atomic builtins],
  46. + [ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC],
  47. # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
  48. - AC_TRY_RUN(
  49. + [AC_TRY_RUN(
  50. [
  51. #include <pthread.h>
  52. #include <string.h>
  53. @@ -126,14 +132,18 @@
  54. }
  55. ],
  56. [
  57. - AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1],
  58. - [pthread_t can be used by GCC atomic builtins])
  59. AC_MSG_RESULT(yes)
  60. + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=yes
  61. ],
  62. [
  63. AC_MSG_RESULT(no)
  64. + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC=no
  65. ]
  66. - )
  67. + )])
  68. + if test "x$ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_GCC"= "xyes" ; then
  69. + AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_GCC], [1],
  70. + [pthread_t can be used by GCC atomic builtins])
  71. + fi
  72. AC_MSG_CHECKING(whether Solaris libc atomic functions are available)
  73. # either define HAVE_IB_SOLARIS_ATOMICS or not
  74. @@ -148,9 +158,10 @@
  75. are available])
  76. )
  77. - AC_MSG_CHECKING(whether pthread_t can be used by Solaris libc atomic functions)
  78. + AC_CACHE_CHECK([whether pthread_t can be used by Solaris libc atomic functions],
  79. + [ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS],
  80. # either define HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS or not
  81. - AC_TRY_RUN(
  82. + [AC_TRY_RUN(
  83. [
  84. #include <pthread.h>
  85. #include <string.h>
  86. @@ -181,28 +192,33 @@
  87. }
  88. ],
  89. [
  90. - AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1],
  91. - [pthread_t can be used by solaris atomics])
  92. AC_MSG_RESULT(yes)
  93. + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=yes
  94. ],
  95. [
  96. AC_MSG_RESULT(no)
  97. + ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS=no
  98. ]
  99. - )
  100. + )])
  101. + if test "x$ac_cv_have_decl_HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS"= "xyes" ; then
  102. + AC_DEFINE([HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS], [1],
  103. + [pthread_t can be used by solaris atomics])
  104. + fi
  105. # this is needed to know which one of atomic_cas_32() or atomic_cas_64()
  106. # to use in the source
  107. AC_CHECK_SIZEOF([pthread_t], [], [#include <pthread.h>])
  108. # Check for x86 PAUSE instruction
  109. - AC_MSG_CHECKING(for x86 PAUSE instruction)
  110. + AC_CACHE_CHECK([for x86 PAUSE instruction],
  111. + [ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION],
  112. # We have to actually try running the test program, because of a bug
  113. # in Solaris on x86_64, where it wrongly reports that PAUSE is not
  114. # supported when trying to run an application. See
  115. # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684
  116. # We use ib_ prefix to avoid collisoins if this code is added to
  117. # mysql's configure.in.
  118. - AC_TRY_RUN(
  119. + [AC_TRY_RUN(
  120. [
  121. int main() {
  122. __asm__ __volatile__ ("pause");
  123. @@ -210,16 +226,21 @@
  124. }
  125. ],
  126. [
  127. - AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist])
  128. AC_MSG_RESULT(yes)
  129. + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=yes
  130. ],
  131. [
  132. AC_MSG_RESULT(no)
  133. + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=no
  134. ],
  135. [
  136. AC_MSG_RESULT(no)
  137. + ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION=no
  138. ]
  139. - )
  140. + )])
  141. + if test "x$ac_cv_have_decl_HAVE_IB_PAUSE_INSTRUCTION"= "xyes" ; then
  142. + AC_DEFINE([HAVE_IB_PAUSE_INSTRUCTION], [1], [Does x86 PAUSE instruction exist])
  143. + fi
  144. ])
  145. # vim: set ft=config: