summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUILD/FINISH.sh5
-rw-r--r--BUILD/SETUP.sh7
-rwxr-xr-xBUILD/compile-alpha2
-rwxr-xr-xBUILD/compile-pentium4
-rwxr-xr-xBUILD/compile-pentium-gcov2
-rwxr-xr-xBUILD/compile-pentium-gprof2
-rw-r--r--Docs/manual.texi11
-rw-r--r--acconfig.h9
-rw-r--r--acinclude.m4101
-rw-r--r--bdb/dist/configure.in104
-rw-r--r--client/Makefile.am1
-rw-r--r--configure.in81
-rw-r--r--mysql-test/r/innodb.result10
-rw-r--r--mysys/Makefile.am3
-rw-r--r--mysys/my_new.cc49
-rw-r--r--scripts/Makefile.am2
-rw-r--r--sql/ha_innobase.cc2
-rw-r--r--sql/ha_innobase.h5
-rw-r--r--sql/sql_table.cc33
-rw-r--r--support-files/my-huge.cnf.sh2
-rw-r--r--support-files/my-large.cnf.sh2
-rw-r--r--support-files/my-medium.cnf.sh2
-rw-r--r--support-files/my-small.cnf.sh2
23 files changed, 277 insertions, 164 deletions
diff --git a/BUILD/FINISH.sh b/BUILD/FINISH.sh
index c7cd43fa64e..fbeaf1e3c68 100644
--- a/BUILD/FINISH.sh
+++ b/BUILD/FINISH.sh
@@ -10,7 +10,7 @@ done
commands="\
$make -k clean || true
-/bin/rm -f */.deps/*.P config.cache
+/bin/rm -f */.deps/*.P config.cache innobase/config.cache bdb/build_unix/config.cache
aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all)
@@ -20,7 +20,8 @@ then
(cd gemini && aclocal && autoheader && aclocal && automake && autoconf)
fi
-CFLAGS=\"$cflags\" CXX=$CXX CXXFLAGS=\"$cxxflags\" $configure"
+CFLAGS=\"$cflags\" CXX=\"$CXX\" CXXFLAGS=\"$cxxflags\" CXXLDFLAGS=\"$CXXLDFLAGS\" \
+$configure"
if [ -z "$just_configure" ]
then
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh
index 0f2334dd573..a69cdcb14fd 100644
--- a/BUILD/SETUP.sh
+++ b/BUILD/SETUP.sh
@@ -52,7 +52,8 @@ debug_cflags="-DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DSAFE_MUTEX -O1"
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
-base_configs="--prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-mysqld-ldflags=-all-static"
+base_configs="--prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client"
+static_link="--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static"
alpha_configs="" # Not used yet
pentium_configs=""
sparc_configs=""
@@ -68,7 +69,9 @@ fi
if gcc -v 2>&1 | grep 'version 3' > /dev/null 2>&1
then
- CXX=c++
+ CXX="gcc -DUSE_MYSYS_NEW"
+ CXXLDFLAGS="-Wl,--defsym -Wl,__cxa_pure_virtual=0"
else
CXX=gcc
+ CXXLDFLAGS=""
fi
diff --git a/BUILD/compile-alpha b/BUILD/compile-alpha
index 10b9d67e1c1..ce5050fee72 100755
--- a/BUILD/compile-alpha
+++ b/BUILD/compile-alpha
@@ -4,6 +4,6 @@ path=`dirname $0`
. "$path/SETUP.sh"
extra_flags="$alpha_cflags $fast_cflags"
-extra_configs="$alpha_configs"
+extra_configs="$alpha_configs $static_link"
. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium b/BUILD/compile-pentium
index 11559be93de..b8f8d028e1f 100755
--- a/BUILD/compile-pentium
+++ b/BUILD/compile-pentium
@@ -4,9 +4,7 @@ path=`dirname $0`
. "$path/SETUP.sh"
extra_flags="$pentium_cflags $fast_cflags"
-extra_configs="$pentium_configs"
+extra_configs="$pentium_configs $static_link"
strip=yes
-extra_configs="$extra_configs"
-
. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium-gcov b/BUILD/compile-pentium-gcov
index 6b5c432e999..873d1d0d8e8 100755
--- a/BUILD/compile-pentium-gcov
+++ b/BUILD/compile-pentium-gcov
@@ -4,6 +4,6 @@ path=`dirname $0`
. "$path/SETUP.sh"
extra_flags="$pentium_cflags -O2 -fprofile-arcs -ftest-coverage"
-extra_configs="$pentium_configs $debug_configs --disable-shared"
+extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium-gprof b/BUILD/compile-pentium-gprof
index 02b595d1015..aa74de0b1b2 100755
--- a/BUILD/compile-pentium-gprof
+++ b/BUILD/compile-pentium-gprof
@@ -4,6 +4,6 @@ path=`dirname $0`
. "$path/SETUP.sh"
extra_flags="$pentium_cflags -O2 -pg -g"
-extra_configs="$pentium_configs $debug_configs --disable-shared"
+extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
. "$path/FINISH.sh"
diff --git a/Docs/manual.texi b/Docs/manual.texi
index 5afd24ae174..576c3667881 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -46889,10 +46889,21 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.48
@itemize @bullet
@item
+Changed to use @code{autoconf} 2.52 (from @code{autoconf} 2.13)
+@item
Fixed bug in complicated join with @code{const} tables.
@item
Added internal safety checks for InnoDB.
@item
+Some InnoDB variables was always shown in @code{SHOW VARIABLES} as
+@code{OFF} on high-byte-first systems (like sparc).
+@item
+Fixed problem with one threads using an InnoDB table and another
+thread using an @code{ALTER TABLE} on the table.
+@item
+If inserts to several tables containing an auto-inc column are wrapped
+inside one @code{LOCK TABLES}, InnoDB asserted in @code{lock0lock.c}.
+@item
@code{SHOW GRANTS} now shows @code{REFERENCES} instead of @code{REFERENCE}.
@end itemize
diff --git a/acconfig.h b/acconfig.h
index c6a67ac7f26..be4461da7fd 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -14,6 +14,10 @@
Leave the following blank line there!! Autoheader needs it. */
+#undef C_ALLOCA
+
+#undef CRAY_STACKSEG_END
+
/* Version of .frm files */
#undef DOT_FRM_VERSION
@@ -38,6 +42,9 @@
/* atomic_sub() from <asm/atomic.h> (Linux only) */
#undef HAVE_ATOMIC_SUB
+/* If we have a working alloca() implementation */
+#undef HAVE_ALLOCA
+
/* bool is not defined by all C++ compilators */
#undef HAVE_BOOL
@@ -212,6 +219,8 @@
/* Needed to get large file supportat HPUX 10.20 */
#undef __STDC_EXT__
+#undef STACK_DIRECTION
+
#undef STRCOLL_BROKEN
#undef STRUCT_DIRENT_HAS_D_FILENO
diff --git a/acinclude.m4 b/acinclude.m4
index 1eb95e1e9c9..0f8b076ff62 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -315,14 +315,6 @@ case "x$am_cv_prog_cc_stdc" in
esac
])
-# serial 1
-
-AC_DEFUN(AM_PROG_INSTALL,
-[AC_REQUIRE([AC_PROG_INSTALL])
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-AC_SUBST(INSTALL_SCRIPT)dnl
-])
-
#
# Check to make sure that the build environment is sane.
#
@@ -527,7 +519,7 @@ fi
])dnl
AC_DEFUN(MYSQL_STACK_DIRECTION,
- AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
+ [AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
[AC_TRY_RUN([find_stack_direction ()
{
static char *addr = 0;
@@ -546,7 +538,7 @@ AC_DEFUN(MYSQL_STACK_DIRECTION,
}], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
ac_cv_c_stack_direction=0)])
AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
-)dnl
+])dnl
AC_DEFUN(MYSQL_FUNC_ALLOCA,
[
@@ -708,6 +700,7 @@ dnl echo "DBG2: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'"
no )
bdb_includes=
bdb_libs=
+ bdb_libs_with_path=
;;
supplied-two )
MYSQL_CHECK_INSTALLED_BDB([$bdb_includes], [$bdb_libs])
@@ -737,6 +730,7 @@ dnl echo "DBG2: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'"
esac
bdb_includes=
bdb_libs=
+ bdb_libs_with_path=
;;
esac
;;
@@ -765,6 +759,7 @@ dnl echo "DBG3: [$mode] bdb='$bdb'; incl='$bdb_includes'; lib='$bdb_libs'"
AC_SUBST(bdb_includes)
AC_SUBST(bdb_libs)
+ AC_SUBST(bdb_libs_with_path)
])
AC_DEFUN([MYSQL_CHECK_INSTALLED_BDB], [
@@ -785,6 +780,7 @@ dnl echo ["MYSQL_CHECK_INSTALLED_BDB ($1) ($2)"]
MYSQL_TOP_BUILDDIR([lib])
bdb_includes="-I$inc"
bdb_libs="-L$lib -ldb"
+ bdb_libs_with_path="$lib/libdb.a"
])
LDFLAGS="$save_LDFLAGS"
else
@@ -813,6 +809,7 @@ dnl echo ["MYSQL_CHECK_BDB_DIR ($1)"]
MYSQL_TOP_BUILDDIR([dir])
bdb_includes="-I$dir/build_unix"
bdb_libs="-L$dir/build_unix -ldb"
+ bdb_libs_with_path="$dir/build_unix/libdb.a"
else
bdb_dir_ok="$bdb_version_ok"
fi
@@ -924,47 +921,48 @@ AC_DEFUN([MYSQL_CHECK_INNODB], [
AC_DEFINE(HAVE_INNOBASE_DB)
have_innodb="yes"
innodb_includes="-I../innobase/include"
+ innodb_system_libs=""
dnl Some libs are listed several times, in order for gcc to sort out
dnl circular references.
innodb_libs="\
- ../innobase/usr/libusr.a\
- ../innobase/odbc/libodbc.a\
- ../innobase/srv/libsrv.a\
- ../innobase/que/libque.a\
- ../innobase/srv/libsrv.a\
- ../innobase/dict/libdict.a\
- ../innobase/ibuf/libibuf.a\
- ../innobase/row/librow.a\
- ../innobase/pars/libpars.a\
- ../innobase/btr/libbtr.a\
- ../innobase/trx/libtrx.a\
- ../innobase/read/libread.a\
- ../innobase/usr/libusr.a\
- ../innobase/buf/libbuf.a\
- ../innobase/ibuf/libibuf.a\
- ../innobase/eval/libeval.a\
- ../innobase/log/liblog.a\
- ../innobase/fsp/libfsp.a\
- ../innobase/fut/libfut.a\
- ../innobase/fil/libfil.a\
- ../innobase/lock/liblock.a\
- ../innobase/mtr/libmtr.a\
- ../innobase/page/libpage.a\
- ../innobase/rem/librem.a\
- ../innobase/thr/libthr.a\
- ../innobase/com/libcom.a\
- ../innobase/sync/libsync.a\
- ../innobase/data/libdata.a\
- ../innobase/mach/libmach.a\
- ../innobase/ha/libha.a\
- ../innobase/dyn/libdyn.a\
- ../innobase/mem/libmem.a\
- ../innobase/sync/libsync.a\
- ../innobase/ut/libut.a\
- ../innobase/os/libos.a\
- ../innobase/ut/libut.a"
-
- AC_CHECK_LIB(rt, aio_read, [innodb_libs="$innodb_libs -lrt"])
+ \$(top_builddir)/innobase/usr/libusr.a\
+ \$(top_builddir)/innobase/odbc/libodbc.a\
+ \$(top_builddir)/innobase/srv/libsrv.a\
+ \$(top_builddir)/innobase/dict/libdict.a\
+ \$(top_builddir)/innobase/que/libque.a\
+ \$(top_builddir)/innobase/srv/libsrv.a\
+ \$(top_builddir)/innobase/ibuf/libibuf.a\
+ \$(top_builddir)/innobase/row/librow.a\
+ \$(top_builddir)/innobase/pars/libpars.a\
+ \$(top_builddir)/innobase/btr/libbtr.a\
+ \$(top_builddir)/innobase/trx/libtrx.a\
+ \$(top_builddir)/innobase/read/libread.a\
+ \$(top_builddir)/innobase/usr/libusr.a\
+ \$(top_builddir)/innobase/buf/libbuf.a\
+ \$(top_builddir)/innobase/ibuf/libibuf.a\
+ \$(top_builddir)/innobase/eval/libeval.a\
+ \$(top_builddir)/innobase/log/liblog.a\
+ \$(top_builddir)/innobase/fsp/libfsp.a\
+ \$(top_builddir)/innobase/fut/libfut.a\
+ \$(top_builddir)/innobase/fil/libfil.a\
+ \$(top_builddir)/innobase/lock/liblock.a\
+ \$(top_builddir)/innobase/mtr/libmtr.a\
+ \$(top_builddir)/innobase/page/libpage.a\
+ \$(top_builddir)/innobase/rem/librem.a\
+ \$(top_builddir)/innobase/thr/libthr.a\
+ \$(top_builddir)/innobase/com/libcom.a\
+ \$(top_builddir)/innobase/sync/libsync.a\
+ \$(top_builddir)/innobase/data/libdata.a\
+ \$(top_builddir)/innobase/mach/libmach.a\
+ \$(top_builddir)/innobase/ha/libha.a\
+ \$(top_builddir)/innobase/dyn/libdyn.a\
+ \$(top_builddir)/innobase/mem/libmem.a\
+ \$(top_builddir)/innobase/sync/libsync.a\
+ \$(top_builddir)/innobase/ut/libut.a\
+ \$(top_builddir)/innobase/os/libos.a\
+ \$(top_builddir)/innobase/ut/libut.a"
+
+ AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"])
;;
* )
AC_MSG_RESULT([Not using Innodb])
@@ -973,6 +971,7 @@ dnl circular references.
AC_SUBST(innodb_includes)
AC_SUBST(innodb_libs)
+ AC_SUBST(innodb_system_libs)
])
dnl ---------------------------------------------------------------------------
@@ -1103,10 +1102,10 @@ changequote([, ])dnl
AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
fi])
-AC_DEFUN(AC_SYS_LARGEFILE,
+AC_DEFUN(MYSQL_SYS_LARGEFILE,
[AC_REQUIRE([AC_CANONICAL_HOST])
- AC_ARG_ENABLE(largefile,
- [ --disable-largefile Omit support for large files])
+ AC_ARG_ENABLE(largefile,
+ [ --disable-largefile Omit support for large files])
if test "$enable_largefile" != no; then
AC_CHECK_TOOL(GETCONF, getconf)
AC_SYS_LARGEFILE_FLAGS(CFLAGS)
diff --git a/bdb/dist/configure.in b/bdb/dist/configure.in
index d5196be9740..6656a588a66 100644
--- a/bdb/dist/configure.in
+++ b/bdb/dist/configure.in
@@ -21,9 +21,7 @@ AC_SUBST(ADDITIONAL_LANG)
AC_SUBST(ADDITIONAL_LIBS)
AC_SUBST(ADDITIONAL_OBJS)
AC_SUBST(ADDITIONAL_PROGS)
-AC_SUBST(CFLAGS)
AC_SUBST(CPPFLAGS)
-AC_SUBST(CXX)
AC_SUBST(CXXFLAGS)
AC_SUBST(DBS_LIBS)
AC_SUBST(DEFAULT_INSTALL)
@@ -145,55 +143,6 @@ osf*) CPPFLAGS="-D_REENTRANT $CPPFLAGS";;
*qnx) AC_DEFINE(HAVE_QNX);;
sco3.2v4*) CC=${CC-"cc -belf"}
LIBS="-lsocket -lnsl_s $LIBS";;
-sco3.2v5*) if test "$GCC" != "yes"; then
- CFLAGS="$CFLAGS"
- LD='$(CC) $(CFLAGS)'
- LIBS="-lsocket -lnsl $LIBS"
- CPPFLAGS="-D_THREAD_SAFE -pthread $CPPFLAGS"
- case "$CFLAGS" in
- *-belf*)
- AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
- case "$LDFLAGS" in
- *-belf*) ;;
- *) echo "Adding -belf option to ldflags."
- LDFLAGS="$LDFLAGS -belf"
- ;;
- esac
- ])
- ;;
- *)
- AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
- case "$LDFLAGS" in
- *-belf*) ;;
- *)
- echo "Adding -belf option to ldflags."
- LDFLAGS="$LDFLAGS -belf"
- ;;
- esac
- ])
- ;;
- esac
- else
- CC="gcc"
- LIBS="-lsocket -lnsl $LIBS"
- CPPFLAGS="-D_THREAD_SAFE -pthread $CPPFLAGS"
- fi
- ;;
-sysv5uw7*) LIBS="-lsocket -lnsl $LIBS"
- if test "$GCC" != "yes"; then
- # We are using built-in inline function
- CC="cc -belf"
- CXX="CC -belf"
- CFLAGS="$CFLAGS -Kalloca -Kthread"
- CXX="$CXX -DNO_CPLUSPLUS_ALLOCA"
- LIBS="-Kthread -lsocket -lnsl $LIBS"
- else
- CFLAGS="$CFLAGS -Kalloca -pthread"
- CXX="$CXX -DNO_CPLUSPLUS_ALLOCA"
- CPPFLAGS="-D_THREAD_SAFE -pthread $CPPFLAGS"
- LIBS="-pthread -lsocket -lnsl $LIBS"
- fi
- ;;
sco*) CC=${CC-"cc -belf"}
LIBS="-lsocket -lnsl $LIBS";;
solaris*) CPPFLAGS="-D_REENTRANT $CPPFLAGS";;
@@ -281,6 +230,59 @@ if test "$GXX" = "yes"; then
esac
fi
+dnl Give the OS a last chance to override CFLAGS and LDFLAGS
+
+case "$host_os" in
+sco3.2v5*)
+ if test "$GCC" != "yes"; then
+ CFLAGS="$CFLAGS"
+ LD='$(CC) $(CFLAGS)'
+ LIBS="-lsocket -lnsl $LIBS"
+ CPPFLAGS="-D_THREAD_SAFE -pthread $CPPFLAGS"
+ case "$CFLAGS" in
+ *-belf*)
+ AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
+ case "$LDFLAGS" in
+ *-belf*) ;;
+ *) echo "Adding -belf option to ldflags."
+ LDFLAGS="$LDFLAGS -belf"
+ ;;
+ esac
+ ])
+ ;;
+ *)
+ AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[
+ case "$LDFLAGS" in
+ *-belf*) ;;
+ *)
+ echo "Adding -belf option to ldflags."
+ LDFLAGS="$LDFLAGS -belf"
+ ;;
+ esac
+ ])
+ ;;
+ esac
+ else
+ CC="gcc"
+ LIBS="-lsocket -lnsl $LIBS"
+ CPPFLAGS="-D_THREAD_SAFE -pthread $CPPFLAGS"
+ fi ;;
+sysv5uw7*) LIBS="-lsocket -lnsl $LIBS"
+ if test "$GCC" != "yes"; then
+ # We are using built-in inline function
+ CC="cc -belf"
+ CXX="CC -belf -DNO_CPLUSPLUS_ALLOCA"
+ CFLAGS="$CFLAGS -Kalloca -Kthread"
+ LIBS="-Kthread -lsocket -lnsl $LIBS"
+ else
+ CFLAGS="$CFLAGS -Kalloca -pthread"
+ CXX="$CXX -DNO_CPLUSPLUS_ALLOCA"
+ CPPFLAGS="-D_THREAD_SAFE -pthread $CPPFLAGS"
+ LIBS="-pthread -lsocket -lnsl $LIBS"
+ fi
+ ;;
+esac
+
dnl Export our compiler preferences for the libtool configuration.
export CC CCC
CCC=CXX
diff --git a/client/Makefile.am b/client/Makefile.am
index d1b16870f67..1710e573d20 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -28,6 +28,7 @@ noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
client_priv.h
mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc
mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS)
+mysqlbinlog_LDADD = $(LDADD) $(CXXLDFLAGS)
mysql_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES)
mysqladmin_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES)
mysqlcheck_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES)
diff --git a/configure.in b/configure.in
index 7b0c604d2be..33d6443275d 100644
--- a/configure.in
+++ b/configure.in
@@ -65,6 +65,12 @@ AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE")
AC_SUBST(MACHINE_TYPE)
AC_DEFINE_UNQUOTED(MACHINE_TYPE, "$MACHINE_TYPE")
+# Detect intel x86 like processor
+BASE_MACHINE_TYPE=$MACHINE_TYPE
+case $MACHINE_TYPE in
+ i?86) BASE_MACHINE_TYPE=i386 ;;
+esac
+
# Save some variables and the command line options for mysqlbug
SAVE_CFLAGS="$CFLAGS"
SAVE_CXXFLAGS="$CXXFLAGS"
@@ -81,7 +87,7 @@ AC_SUBST(CXXLDFLAGS)
AC_PREREQ(2.12)dnl Minimum Autoconf version required.
AM_MAINTAINER_MODE
-AC_ARG_PROGRAM
+#AC_ARG_PROGRAM # Automaticly invoked by AM_INIT_AUTOMAKE
AM_SANITY_CHECK
# This is needed is SUBDIRS is set
AC_PROG_MAKE_SET
@@ -145,8 +151,10 @@ AM_PROG_LIBTOOL
#AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_DISABLE_FAST_INSTALL AC_DISABLE_SHARED AC_DISABLE_STATIC
-# AC_PROG_INSTALL We should only need a AM_PROG_INSTALL
+# AC_PROG_INSTALL
AC_PROG_INSTALL
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
# Not critical since the generated file is distributed
AC_PROG_YACC
AC_CHECK_PROG(PDFMANUAL, pdftex, manual.pdf)
@@ -179,7 +187,8 @@ AC_DEFINE(SPRINTF_RETURNS_INT) AC_MSG_RESULT("int"),
AC_DEFINE(SPRINTF_RETURNS_GARBAGE) AC_MSG_RESULT("garbage")))
-# option, cache_name, variable
+# option, cache_name, variable,
+# code to execute if yes, code to exectute if fail
AC_DEFUN(AC_SYS_COMPILER_FLAG,
[
AC_MSG_CHECKING($1)
@@ -188,7 +197,7 @@ AC_DEFUN(AC_SYS_COMPILER_FLAG,
[
CFLAGS="[$]OLD_CFLAGS $1"
AC_TRY_RUN([int main(){exit(0);}],mysql_cv_option_$2=yes,mysql_cv_option_$2=no,mysql_cv_option_$2=no)
- ])
+ ])
CFLAGS="[$]OLD_CFLAGS"
@@ -288,6 +297,7 @@ AC_SUBST(CFLAGS)
AC_SUBST(CXX)
AC_SUBST(CXXFLAGS)
AC_SUBST(LD)
+AC_SUBST(INSTALL_SCRIPT)
export CC CFLAGS LD LDFLAGS
@@ -515,12 +525,22 @@ AC_ARG_ENABLE(assembler,
[ ENABLE_ASSEMBLER=$enableval ],
[ ENABLE_ASSEMBLER=no ]
)
+
+AC_MSG_CHECKING(if we should use assembler functions)
# For now we only support assembler on i386 and sparc systems
-AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$MACHINE_TYPE" = "i386")
-AM_CONDITIONAL(ASSEMBLER_sparc, test "$ENABLE_ASSEMBLER" = "yes" -a "$MACHINE_TYPE" = "sparc")
-AM_CONDITIONAL(ASSEMBLER, test ASSEMBLER_x86 = "" -o ASSEMBLER_x86 = "")
+AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386")
+AM_CONDITIONAL(ASSEMBLER_sparc, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
+AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc_TRUE" = "")
-AC_MSG_CHECKING(whether to use RAID)
+if test "$ASSEMBLER_TRUE" = ""
+then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+
+
+AC_MSG_CHECKING(if we should use RAID)
AC_ARG_WITH(raid,
[ --with-raid Enable RAID Support],
[ USE_RAID=$withval ],
@@ -563,9 +583,8 @@ AC_ARG_WITH(mysqld-user,
)
AC_SUBST(MYSQLD_USER)
-# Use Paul Eggerts macros from GNU tar to check for large file
-# support.
-AC_SYS_LARGEFILE
+# Use Paul Eggerts macros from GNU tar to check for large file support.
+MYSQL_SYS_LARGEFILE
# Types that must be checked AFTER large file support is checked
AC_TYPE_SIZE_T
@@ -764,8 +783,8 @@ case $SYSTEM_TYPE in
;;
*hpux10.20*)
echo "Enabling snprintf workaround for hpux 10.20"
- CFLAGS="$CFLAGS -DHAVE_BROKEN_SNPRINTF -DSIGNALS_DONT_BREAK_READ"
- CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ"
+ CFLAGS="$CFLAGS -DHAVE_BROKEN_SNPRINTF -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE"
+ CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE"
if test "$with_named_thread" = "no"
then
echo "Using --with-named-thread=-lpthread"
@@ -774,8 +793,8 @@ case $SYSTEM_TYPE in
;;
*hpux11.*)
echo "Enabling pread/pwrite workaround for hpux 11"
- CFLAGS="$CFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK"
- CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK"
+ CFLAGS="$CFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS"
+ CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS"
if test "$with_named_thread" = "no"
then
echo "Using --with-named-thread=-lpthread"
@@ -1419,7 +1438,7 @@ MYSQL_TYPE_QSORT
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(alarm bmove \
- chsize ftruncate rint finite fpsetmask fpresetsticky\
+ chsize ftruncate rint finite isnan fpsetmask fpresetsticky\
cuserid fcntl fconvert poll \
getrusage getpwuid getcwd getrlimit getwd index stpcpy locking longjmp \
perror pread realpath readlink rename \
@@ -1728,7 +1747,7 @@ AC_ARG_WITH(readline,
if test "$with_readline" = "yes"
then
readline_dir="readline"
- readline_link="../readline/libreadline.a"
+ readline_link="\$(top_builddir)/readline/libreadline.a"
else
# This requires readline to be in a standard place. Mosty for linux
# there readline may be a shared library.
@@ -1738,15 +1757,15 @@ fi
AC_SUBST(readline_dir)
AC_SUBST(readline_link)
-# Choose a character set
-dnl in order to add new charset, you must add charset name to
-dnl CHARSETS_AVAILABLE list and add the charset name to
-dnl sql/share/charsets/Index. If the character set uses strcoll
-dnl or other special handling, you must also create
-dnl strings/ctype-$charset_name.c
+dnl In order to add new charset, you must add charset name to
+dnl this CHARSETS_AVAILABLE list and sql/share/charsets/Index.
+dnl If the character set uses strcoll or other special handling,
+dnl you must also create strings/ctype-$charset_name.c
+AC_DIVERT_PUSH(0)
CHARSETS_AVAILABLE="big5 cp1251 cp1257 croat czech danish dec8 dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian koi8_ru koi8_ukr latin1 latin2 latin5 swe7 usa7 win1250 win1251 win1251ukr ujis sjis tis620"
DEFAULT_CHARSET=latin1
+AC_DIVERT_POP
dnl win1251 is deprecated - it's available, but not listed here in the help
AC_ARG_WITH(charset,
@@ -2086,7 +2105,17 @@ EOF
then
sql_server_dirs="innobase $sql_server_dirs"
echo "CONFIGURING FOR INNODB"
- (cd innobase && sh ./configure) \
+ if test ! -d "innobase"; then
+ # This should only happen when doing a VPATH build
+ echo "NOTICE: I have to make the Innobase directory: `pwd`/innobase"
+ mkdir "innobase" || exit 1
+ fi
+ rel_srcdir=
+ case "$srcdir" in
+ /* ) rel_srcdir="$srcdir" ;;
+ * ) rel_srcdir="../$srcdir" ;;
+ esac
+ (cd innobase && sh $rel_srcdir/innobase/configure) \
|| AC_MSG_ERROR([could not configure INNODB])
echo "END OF INNODB CONFIGURATION"
@@ -2158,9 +2187,9 @@ AC_OUTPUT(Makefile extra/Makefile mysys/Makefile isam/Makefile \
include/mysql_version.h
, , [
test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
- rm -f $AVAILABLE_LANGUAGES_ERRORS_RULES
])
+rm -f $AVAILABLE_LANGUAGES_ERRORS_RULES
echo
echo "MySQL has a Web site at http://www.mysql.com/ which carries details on the"
echo "latest release, upcoming features, and other information to make your"
@@ -2170,6 +2199,6 @@ echo
echo "Remember to check the platform specific part in the reference manual for"
echo "hints about installing on your platfrom. See the Docs directory."
echo
-# This text is checked in ./Do-compile to se that the configure finished.
+# The following text is checked in ./Do-compile to se that the configure ends.
echo "Thank you for choosing MySQL!"
echo
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 63674d050c1..388c83492f5 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -133,9 +133,9 @@ level id parent_id
Table Op Msg_type Msg_text
test.t1 optimize error The handler for the table doesn't support check/repair
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
-t1 0 PRIMARY 1 id A 87 NULL NULL
-t1 1 parent_id 1 parent_id A 21 NULL NULL
-t1 1 level 1 level A 4 NULL NULL
+t1 0 PRIMARY 1 id A NULL NULL NULL
+t1 1 parent_id 1 parent_id A NULL NULL NULL
+t1 1 level 1 level A NULL NULL NULL
gesuchnr benutzer_id
1 1
2 1
@@ -150,7 +150,7 @@ a b
Table Op Msg_type Msg_text
test.t1 analyze error The handler for the table doesn't support check/repair
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
-t1 1 skr 1 a A 1 NULL NULL
+t1 1 skr 1 a A NULL NULL NULL
a b
1
n after rollback
@@ -438,7 +438,7 @@ hello 1
Table Op Msg_type Msg_text
test.t1 optimize error The handler for the table doesn't support check/repair
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Comment
-t1 0 PRIMARY 1 a A 1 NULL NULL
+t1 0 PRIMARY 1 a A NULL NULL NULL
i j
1 2
i j
diff --git a/mysys/Makefile.am b/mysys/Makefile.am
index 6dd9bb06fe9..73cd9768013 100644
--- a/mysys/Makefile.am
+++ b/mysys/Makefile.am
@@ -30,7 +30,8 @@ libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c\
mf_iocache.c mf_iocache2.c mf_cache.c mf_tempfile.c \
my_lock.c mf_brkhant.c my_alarm.c \
my_malloc.c my_realloc.c my_once.c mulalloc.c \
- my_alloc.c safemalloc.c my_fopen.c my_fstream.c \
+ my_alloc.c safemalloc.c my_new.cc \
+ my_fopen.c my_fstream.c \
my_error.c errors.c my_div.c my_messnc.c \
mf_format.c mf_same.c mf_dirname.c mf_fn_ext.c \
my_symlink.c my_symlink2.c \
diff --git a/mysys/my_new.cc b/mysys/my_new.cc
new file mode 100644
index 00000000000..5cc291af9aa
--- /dev/null
+++ b/mysys/my_new.cc
@@ -0,0 +1,49 @@
+/* Copyright (C) 2000 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+/*
+ This is a replacement of new/delete operators to be used when compiling
+ with gcc 3.0.x to avoid including libstdc++
+*/
+
+#include "mysys_priv.h"
+
+#ifdef USE_MYSYS_NEW
+
+void *operator new (size_t sz)
+{
+ return (void *) malloc (sz ? sz+1 : sz);
+}
+
+void *operator new[] (size_t sz)
+{
+ return (void *) malloc (sz ? sz+1 : sz);
+}
+
+void operator delete (void *ptr)
+{
+ if (ptr)
+ free(ptr);
+}
+
+void operator delete[] (void *ptr) throw ()
+{
+ if (ptr)
+ free(ptr);
+}
+
+#endif /* USE_MYSYS_NEW */
+
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 45fbe275476..18957b6422d 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -71,7 +71,7 @@ CLEANFILES = @server_scripts@ \
SUPERCLEANFILES = mysqlbug
# We want the right version and configure comand line in mysqlbug
-mysqlbug: ${top_builddir}/config.status ${top_builddir}/config.cache mysqlbug.sh
+mysqlbug: ${top_builddir}/config.status mysqlbug.sh
SUFFIXES = .sh
diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc
index acdc9736a4f..ada9cbc740b 100644
--- a/sql/ha_innobase.cc
+++ b/sql/ha_innobase.cc
@@ -85,7 +85,7 @@ long innobase_mirrored_log_groups, innobase_log_files_in_group,
char *innobase_data_home_dir, *innobase_data_file_path;
char *innobase_log_group_home_dir, *innobase_log_arch_dir;
char *innobase_unix_file_flush_method;
-bool innobase_flush_log_at_trx_commit, innobase_log_archive,
+my_bool innobase_flush_log_at_trx_commit, innobase_log_archive,
innobase_use_native_aio, innobase_fast_shutdown;
/* innobase_data_file_path=ibdata:15,idata2:1,... */
diff --git a/sql/ha_innobase.h b/sql/ha_innobase.h
index 54449a1ef2b..ec77cd1a70f 100644
--- a/sql/ha_innobase.h
+++ b/sql/ha_innobase.h
@@ -174,8 +174,9 @@ extern long innobase_force_recovery, innobase_thread_concurrency;
extern char *innobase_data_home_dir, *innobase_data_file_path;
extern char *innobase_log_group_home_dir, *innobase_log_arch_dir;
extern char *innobase_unix_file_flush_method;
-extern bool innobase_flush_log_at_trx_commit, innobase_log_archive,
- innobase_use_native_aio, innobase_fast_shutdown;
+/* The following variables have to be my_bool for SHOW VARIABLES to work */
+extern my_bool innobase_flush_log_at_trx_commit, innobase_log_archive,
+ innobase_use_native_aio, innobase_fast_shutdown;
extern TYPELIB innobase_lock_typelib;
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index aa54f325ebb..62ebf04a9f3 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -771,7 +771,7 @@ bool close_cached_table(THD *thd,TABLE *table)
/* Mark all tables that are in use as 'old' */
mysql_lock_abort(thd,table); // end threads waiting on lock
-#ifdef REMOVE_LOCKS
+#if defined(USING_TRANSACTIONS) || defined( __WIN__) || defined( __EMX__) || !defined(OS2)
/* Wait until all there are no other threads that has this table open */
while (remove_table_from_cache(thd,table->table_cache_key,
table->table_name))
@@ -1569,20 +1569,29 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
}
}
-#if defined( __WIN__) || defined( __EMX__) || defined( OS2)
- // Win32 can't rename an open table, so we must close the org table!
- table_name=thd->strdup(table_name); // must be saved
- if (close_cached_table(thd,table))
- { // Aborted
- VOID(quick_rm_table(new_db_type,new_db,tmp_name));
- VOID(pthread_mutex_unlock(&LOCK_open));
- goto err;
+#if (!defined( __WIN__) && !defined( __EMX__) && !defined( OS2))
+ if (table->file->has_transactions())
+#endif
+ {
+ /*
+ Win32 and InnoDB can't rename an open table, so we must close
+ the original table at before doing the rename
+ */
+ table_name=thd->strdup(table_name); // must be saved
+ if (close_cached_table(thd,table))
+ { // Aborted
+ VOID(quick_rm_table(new_db_type,new_db,tmp_name));
+ VOID(pthread_mutex_unlock(&LOCK_open));
+ goto err;
+ }
+ table=0; // Marker that table is closed
}
- table=0; // Marker for win32 version
-#else
- table->file->extra(HA_EXTRA_FORCE_REOPEN); // Don't use this file anymore
+#if (!defined( __WIN__) && !defined( __EMX__) && !defined( OS2))
+ else
+ table->file->extra(HA_EXTRA_FORCE_REOPEN); // Don't use this file anymore
#endif
+
error=0;
if (mysql_rename_table(old_db_type,db,table_name,db,old_name))
{
diff --git a/support-files/my-huge.cnf.sh b/support-files/my-huge.cnf.sh
index 103a6c16cfd..ce9b5b18586 100644
--- a/support-files/my-huge.cnf.sh
+++ b/support-files/my-huge.cnf.sh
@@ -4,7 +4,7 @@
# MySQL.
#
# You can copy this file to
-# /etc/mf.cnf to set global options,
+# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is @localstatedir@) or
# ~/.my.cnf to set user-specific options.
diff --git a/support-files/my-large.cnf.sh b/support-files/my-large.cnf.sh
index f314566c5fb..0602921abc1 100644
--- a/support-files/my-large.cnf.sh
+++ b/support-files/my-large.cnf.sh
@@ -4,7 +4,7 @@
# MySQL.
#
# You can copy this file to
-# /etc/mf.cnf to set global options,
+# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is @localstatedir@) or
# ~/.my.cnf to set user-specific options.
diff --git a/support-files/my-medium.cnf.sh b/support-files/my-medium.cnf.sh
index 675241b25dd..bddba03eee9 100644
--- a/support-files/my-medium.cnf.sh
+++ b/support-files/my-medium.cnf.sh
@@ -5,7 +5,7 @@
# other programs (like a web server)
#
# You can copy this file to
-# /etc/mf.cnf to set global options,
+# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is @localstatedir@) or
# ~/.my.cnf to set user-specific options.
diff --git a/support-files/my-small.cnf.sh b/support-files/my-small.cnf.sh
index cad0e10e684..9e7d07ec449 100644
--- a/support-files/my-small.cnf.sh
+++ b/support-files/my-small.cnf.sh
@@ -5,7 +5,7 @@
# doesn't use much resources.
#
# You can copy this file to
-# /etc/mf.cnf to set global options,
+# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is @localstatedir@) or
# ~/.my.cnf to set user-specific options.