# # Patch managed by http://www.holgerschurig.de/patcher.html # --- mysql-4.1.4a-gamma/acinclude.m4~autofoo.patch +++ mysql-4.1.4a-gamma/acinclude.m4 @@ -1,5 +1,88 @@ # Local macros for automake & autoconf +AH_TEMPLATE([SPRINTF_RETURNS_INT], [sprintf returns an int]) +AH_TEMPLATE([SPRINTF_RETURNS_PTR], [sprintf returns a char *]) +AH_TEMPLATE([SPRINTF_RETURNS_GARBAGE], [sprintf returns something unknown to us]) + +AC_DEFUN([MYSQL_SPRINTF_RET], [ + AC_CACHE_CHECK([return type of sprintf], + [mysql_cv_func_sprintf_ret], [ + old_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_COMPILE_IFELSE([ +#include +int sprintf(char *str, const char *format, ...); + ], [mysql_cv_func_sprintf_ret=int], + AC_COMPILE_IFELSE([ +#include +char * sprintf(char *str, const char *format, ...); + ], [mysql_cv_func_sprintf_ret=ptr], + [mysql_cv_func_sprintf_ret=unknown]) + ) + CFLAGS="$old_CFLAGS" + ]) + if test x"$mysql_cv_func_sprintf_ret" = "xint"; then + AC_DEFINE([SPRINTF_RETURNS_INT], [1]) + elif test x"$mysql_cv_func_sprintf_ret" = "xptr"; then + AC_DEFINE([SPRINTF_RETURNS_PTR], [1]) + else + AC_DEFINE([SPRINTF_RETURNS_GARBAGE], [1]) + fi +]) + +# _MYSQL_FUNC_ATOMIC_ADD +# ---------------------- +# Check for Linux specific atomic_add function +AC_DEFUN([_MYSQL_FUNC_ATOMIC_ADD], +[AC_CACHE_CHECK([for atomic_add], [mysql_cv_func_atomic_add], +[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], + [ +int main() +{ + atomic_t v; + + atomic_set(&v, 23); + atomic_add(5, &v); + return atomic_read(&v) == 28 ? 0 : -1; +} + ])], + [mysql_cv_func_atomic_add=yes], + [mysql_cv_func_atomic_add=no])]) + if test x"$mysql_func_atomic_add" = "xyes"; then + AC_DEFINE([HAVE_ATOMIC_ADD], [1]) + fi[]dnl +])# _MYSQL_FUNC_ATOMIC_ADD + +# _MYSQL_FUNC_ATOMIC_SUB +# ---------------------- +# Check for Linux specific atomic_sub function +AC_DEFUN([_MYSQL_FUNC_ATOMIC_SUB], +[AC_CACHE_CHECK([for atomic_sub], [mysql_cv_func_atomic_sub], +[AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], + [ +int main() +{ + atomic_t v; + + atomic_set(&v, 23); + atomic_sub(5, &v); + return atomic_read(&v) == 18 ? 0 : -1; +} + ])], + [mysql_cv_func_atomic_sub=yes], + [mysql_cv_func_atomic_sub=no])]) + if test x"$mysql_func_atomic_sub" = "xyes"; then + AC_DEFINE([HAVE_ATOMIC_SUB], [1]) + fi[]dnl +])# _MYSQL_FUNC_ATOMIC_SUB + +# MYSQL_FUNCS_ATOMIC +# ------------------ +# Check for Linux specific atomic add and sub functions +AC_DEFUN([MYSQL_FUNCS_ATOMIC], [ + AC_REQUIRE([_MYSQL_FUNC_ATOMIC_ADD])dnl + AC_REQUIRE([_MYSQL_FUNC_ATOMIC_SUB])dnl +])# MYSQL_FUNCS_ATOMIC AC_DEFUN(MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY,[ AC_CACHE_CHECK([HIST_ENTRY is declared in readline/readline.h], mysql_cv_hist_entry_declared, @@ -302,7 +385,7 @@ AC_DEFUN(MYSQL_CHECK_ULONG, [AC_MSG_CHECKING(for type ulong) AC_CACHE_VAL(ac_cv_ulong, -[AC_TRY_RUN([#include +[AC_TRY_LINK([#include #include main() { @@ -320,7 +403,7 @@ AC_DEFUN(MYSQL_CHECK_UCHAR, [AC_MSG_CHECKING(for type uchar) AC_CACHE_VAL(ac_cv_uchar, -[AC_TRY_RUN([#include +[AC_TRY_LINK([#include #include main() { @@ -338,7 +421,7 @@ AC_DEFUN(MYSQL_CHECK_UINT, [AC_MSG_CHECKING(for type uint) AC_CACHE_VAL(ac_cv_uint, -[AC_TRY_RUN([#include +[AC_TRY_LINK([#include #include main() { @@ -357,7 +440,7 @@ AC_DEFUN(MYSQL_CHECK_IN_ADDR_T, [AC_MSG_CHECKING(for type in_addr_t) AC_CACHE_VAL(ac_cv_in_addr_t, -[AC_TRY_RUN([#include +[AC_TRY_LINK([#include #include #include #include @@ -418,7 +501,7 @@ AC_DEFUN(MYSQL_CHECK_FP_EXCEPT, [AC_MSG_CHECKING(for type fp_except) AC_CACHE_VAL(ac_cv_fp_except, -[AC_TRY_RUN([#include +[AC_TRY_LINK([#include #include #include main() --- mysql-4.1.4a-gamma/configure.in~autofoo.patch +++ mysql-4.1.4a-gamma/configure.in @@ -211,8 +211,6 @@ else AC_PATH_PROG(AS, as, as) fi -# Still need ranlib for readline; local static use only so no libtool. -AC_PROG_RANLIB # We use libtool #AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -233,44 +231,7 @@ AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf) AC_CHECK_PROG(DVIS, tex, manual.dvi) -AC_MSG_CHECKING("return type of sprintf") - -#check the return type of sprintf -case $SYSTEM_TYPE in - *netware*) - AC_DEFINE(SPRINTF_RETURNS_INT, [1]) AC_MSG_RESULT("int") - ;; - *) -AC_TRY_RUN([ - int main() - { - char* s = "hello"; - char buf[6]; - if((int)sprintf(buf, s) == strlen(s)) - return 0; - - return -1; - } - ], - [AC_DEFINE(SPRINTF_RETURNS_INT, [1], [POSIX sprintf]) - AC_MSG_RESULT("int")], - [AC_TRY_RUN([ - int main() - { - char* s = "hello"; - char buf[6]; - if((char*)sprintf(buf,s) == buf + strlen(s)) - return 0; - return -1; - } ], - [AC_DEFINE(SPRINTF_RETURNS_PTR, [1], [Broken sprintf]) - AC_MSG_RESULT("ptr")], - [AC_DEFINE(SPRINTF_RETURNS_GARBAGE, [1], [Broken sprintf]) - AC_MSG_RESULT("garbage")]) - ]) - ;; -esac - +MYSQL_SPRINTF_RET # option, cache_name, variable, # code to execute if yes, code to exectute if fail @@ -843,42 +804,7 @@ AC_SUBST(WRAPLIBS) if test "$IS_LINUX" = "true"; then - AC_MSG_CHECKING([for atomic operations]) - - atom_ops= - AC_TRY_RUN([ -#include -int main() -{ - atomic_t v; - - atomic_set(&v, 23); - atomic_add(5, &v); - return atomic_read(&v) == 28 ? 0 : -1; -} - ], - [AC_DEFINE([HAVE_ATOMIC_ADD], [1], - [atomic_add() from (Linux only)]) - atom_ops="${atom_ops}atomic_add "], - ) - AC_TRY_RUN([ -#include -int main() -{ - atomic_t v; - - atomic_set(&v, 23); - atomic_sub(5, &v); - return atomic_read(&v) == 18 ? 0 : -1; -} - ], - [AC_DEFINE([HAVE_ATOMIC_SUB], [1], - [atomic_sub() from (Linux only)]) - atom_ops="${atom_ops}atomic_sub "], - ) - - if test -z "$atom_ops"; then atom_ops="no"; fi - AC_MSG_RESULT($atom_ops) + MYSQL_FUNCS_ATOMIC AC_ARG_WITH(pstack, [ --with-pstack Use the pstack backtrace library], @@ -929,13 +855,13 @@ # thread libs in the client. NON_THREADED_CLIENT_LIBS="$LIBS $ZLIB_LIBS" -AC_MSG_CHECKING([for int8]) +AC_CACHE_CHECK([for int8], [mysql_cv_type_int8], [ case $SYSTEM_TYPE in *netware) - AC_MSG_RESULT([no]) + mysql_cv_type_int8=no ;; *) -AC_TRY_RUN([ +AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_STDLIB_H #include #endif @@ -946,22 +872,21 @@ #ifdef HAVE_SYS_TYPES_H #include -#endif - +#endif]], [ int main() { int8 i; return 0; -} -], -[AC_DEFINE([HAVE_INT_8_16_32], [1], - [whether int8, int16 and int32 types exist]) -AC_MSG_RESULT([yes])], -[AC_MSG_RESULT([no])] -) +}])], [mysql_cv_type_int8=yes], [mysql_cv_type_int8=no]) ;; esac +if test x"$mysql_cv_type_int8" = "xyes"; then + AC_DEFINE([HAVE_INT_8_16_32], [1], + [whether int8, int16 and int32 types exist]) +fi +]) + # # Some system specific hacks # @@ -1781,7 +1706,7 @@ AC_MSG_ERROR("MySQL needs a long long type.") fi # off_t is not a builtin type -MYSQL_CHECK_SIZEOF(off_t, 4) +AC_CHECK_SIZEOF(off_t, 4) if test "$ac_cv_sizeof_off_t" -eq 0 then AC_MSG_ERROR("MySQL needs a off_t type.") --- mysql-4.1.4a-gamma/include/my_global.h~autofoo.patch +++ mysql-4.1.4a-gamma/include/my_global.h @@ -1060,7 +1060,7 @@ #define float4store(V,M) memcpy_fixed((byte*) V,(byte*) (&M),sizeof(float)) #if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) -#define doublestore(T,V) do { *(T)= ((byte *) &V)[4];\ +#define doublestore(T,V) do { *((char *)T)= ((byte *) &V)[4];\ *(((char*)T)+1)=(char) ((byte *) &V)[5];\ *(((char*)T)+2)=(char) ((byte *) &V)[6];\ *(((char*)T)+3)=(char) ((byte *) &V)[7];\ --- mysql-4.1.4a-gamma/innobase/configure.in~autofoo.patch +++ mysql-4.1.4a-gamma/innobase/configure.in @@ -4,6 +4,7 @@ AM_MAINTAINER_MODE AM_CONFIG_HEADER(ib_config.h) AM_INIT_AUTOMAKE(ib, 0.90) +AC_CONFIG_AUX_DIR([..]) # This is need before AC_PROG_CC # @@ -32,7 +33,6 @@ CXXFLAGS="$CXXFLAGS " AC_PROG_CC -AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LIBTOOL AC_CHECK_HEADERS(aio.h sched.h)