diff options
-rw-r--r-- | BUILD/FINISH.sh | 5 | ||||
-rw-r--r-- | BUILD/SETUP.sh | 7 | ||||
-rwxr-xr-x | BUILD/compile-alpha | 2 | ||||
-rwxr-xr-x | BUILD/compile-pentium | 4 | ||||
-rwxr-xr-x | BUILD/compile-pentium-gcov | 2 | ||||
-rwxr-xr-x | BUILD/compile-pentium-gprof | 2 | ||||
-rw-r--r-- | Docs/manual.texi | 11 | ||||
-rw-r--r-- | acconfig.h | 9 | ||||
-rw-r--r-- | acinclude.m4 | 101 | ||||
-rw-r--r-- | bdb/dist/configure.in | 104 | ||||
-rw-r--r-- | client/Makefile.am | 1 | ||||
-rw-r--r-- | configure.in | 81 | ||||
-rw-r--r-- | mysql-test/r/innodb.result | 10 | ||||
-rw-r--r-- | mysys/Makefile.am | 3 | ||||
-rw-r--r-- | mysys/my_new.cc | 49 | ||||
-rw-r--r-- | scripts/Makefile.am | 2 | ||||
-rw-r--r-- | sql/ha_innobase.cc | 2 | ||||
-rw-r--r-- | sql/ha_innobase.h | 5 | ||||
-rw-r--r-- | sql/sql_table.cc | 33 | ||||
-rw-r--r-- | support-files/my-huge.cnf.sh | 2 | ||||
-rw-r--r-- | support-files/my-large.cnf.sh | 2 | ||||
-rw-r--r-- | support-files/my-medium.cnf.sh | 2 | ||||
-rw-r--r-- | support-files/my-small.cnf.sh | 2 |
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. |