List:Commits« Previous MessageNext Message »
From:konstantin Date:April 6 2006 10:26pm
Subject:bk commit into 5.1 tree (konstantin:1.2300)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of kostja. When kostja does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2300 06/04/07 02:25:59 konstantin@stripped +5 -0
  Implement --warning-mode in SETUP.sh. The value of the
  argument can be either "pedantic" or "old" (actually, or anything
  else). In case of "pedantic" mode, use -ansi -pedantic compilation
  flags. Fix the build to compile in pedantic mode. (Version 3 of
  the patch, with after-review fixes)

  include/my_global.h
    1.124 06/04/07 02:25:47 konstantin@stripped +1 -1
    Remove an unnecessary ifdef: -pedantic hides the system-wide
    definition of ulong on Linux. In case there is no -pedantic, 
    the system-wide definition is available and HAVE_ULONG is defined
    by configure.

  BUILD/compile-pentium-valgrind-max
    1.16 06/04/07 02:25:46 konstantin@stripped +1 -1
    Pass command line arguments to SETUP.sh. Allows calling
    compile-pentium-valgrind-max --warning-mode=pedantic

  BUILD/compile-pentium-debug-max
    1.20 06/04/07 02:25:46 konstantin@stripped +1 -1
    Use double quotes around $@

  BUILD/compile-pentium-debug-max-no-embedded
    1.7 06/04/07 02:25:46 konstantin@stripped +1 -1
    Rename base_max_configs to base_no_embedded_configs

  BUILD/SETUP.sh
    1.57 06/04/07 02:25:46 konstantin@stripped +137 -68
    Implement --warning-mode in SETUP.sh. The value of the
    argument can be either "pedantic" or "old" (actually, or anything
    else). In case of "pedantic" mode, use -ansi -pedantic compilation
    flags.

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	konstantin
# Host:	dragonfly.local
# Root:	/opt/local/work/mysql-5.1-root

--- 1.6/BUILD/compile-pentium-debug-max-no-embedded	2006-04-05 17:50:27 +04:00
+++ 1.7/BUILD/compile-pentium-debug-max-no-embedded	2006-04-07 02:25:46 +04:00
@@ -4,6 +4,6 @@
 . "$path/SETUP.sh"
 
 extra_flags="$pentium_cflags $debug_cflags"
-extra_configs="$pentium_configs $debug_configs $base_max_configs"
+extra_configs="$pentium_configs $debug_configs $max_no_embedded_configs"
 
 . "$path/FINISH.sh"

--- 1.15/BUILD/compile-pentium-valgrind-max	2006-04-05 17:50:27 +04:00
+++ 1.16/BUILD/compile-pentium-valgrind-max	2006-04-07 02:25:46 +04:00
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 path=`dirname $0`
-. "$path/SETUP.sh"
+. "$path/SETUP.sh" "$@"
 
 extra_flags="$pentium_cflags $debug_cflags $valgrind_flags"
 extra_configs="$pentium_configs $debug_configs $max_configs"

--- 1.123/include/my_global.h	2006-03-21 12:54:20 +03:00
+++ 1.124/include/my_global.h	2006-04-07 02:25:47 +04:00
@@ -917,7 +917,7 @@
 #error "Neither int or long is of 4 bytes width"
 #endif
 
-#if !defined(HAVE_ULONG) && !defined(TARGET_OS_LINUX) && !defined(__USE_MISC)
+#if !defined(HAVE_ULONG) && !defined(__USE_MISC)
 typedef unsigned long	ulong;		  /* Short for unsigned long */
 #endif
 #ifndef longlong_defined

--- 1.19/BUILD/compile-pentium-debug-max	2006-04-05 17:50:27 +04:00
+++ 1.20/BUILD/compile-pentium-debug-max	2006-04-07 02:25:46 +04:00
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 path=`dirname $0`
-. "$path/SETUP.sh" $@ --with-debug=full
+. "$path/SETUP.sh" "$@" --with-debug=full
 
 extra_flags="$pentium_cflags $debug_cflags"
 extra_configs="$pentium_configs $debug_configs $max_configs"

--- 1.56/BUILD/SETUP.sh	2006-04-05 16:50:06 +04:00
+++ 1.57/BUILD/SETUP.sh	2006-04-07 02:25:46 +04:00
@@ -1,104 +1,173 @@
 #!/bin/sh
 
+########################################################################
+
+get_key_value()
+{
+  echo "$1" | sed 's/^--[a-zA-Z_-]*=//'
+}
+
+usage()
+{
+cat <<EOF 
+Usage: $0 [-h|-n] [configure-options]
+  -h, --help              Show this help message.
+  -n, --just-print        Don't actually run any commands; just print them.
+  -c, --just-configure    Stop after running configure.
+  --with-debug=full       Build with full debug.
+  --warning-mode=[old|pedantic]
+                          Influences the debug flags. Old is default.
+  --prefix=path           Build with prefix 'path'.
+
+Note: this script is intended for internal use by MySQL developers.
+EOF
+}
+
+parse_options()
+{
+  while test $# -gt 0
+  do
+    case "$1" in
+    --prefix=*)
+      prefix=`get_key_value "$1"`;;
+    --with-debug=full)
+      full_debug="=full";;
+    --warning-mode=*)
+      warning_mode=`get_key_value "$1"`;;
+    -c | --just-configure)
+      just_configure=1;;
+    -n | --just-print | --print)
+      just_print=1;;
+    -h | --help)
+      usage
+      exit 0;;
+    *)
+      echo "Unknown option '$1'"
+      exit 1;;
+    esac
+    shift
+  done
+}
+
+########################################################################
+
 if ! test -f sql/mysqld.cc
 then
   echo "You must run this script from the MySQL top-level directory"
   exit 1
 fi
 
-prefix_configs="--prefix=/usr/local/mysql"
+prefix="/usr/local/mysql"
 just_print=
 just_configure=
 full_debug=
+warning_mode=
+
+parse_options "$@"
+
 if test -n "$MYSQL_BUILD_PREFIX"
 then
-  prefix_configs="--prefix=$MYSQL_BUILD_PREFIX"
+  prefix="$MYSQL_BUILD_PREFIX"
 fi
 
-while test $# -gt 0
-do
-  case "$1" in
-  --prefix=* ) prefix_configs="$1"; shift ;;
-  --with-debug=full ) full_debug="=full"; shift ;;
-  -c | --just-configure ) just_configure=1; shift ;;
-  -n | --just-print | --print ) just_print=1; shift ;;
-  -h | --help ) cat <<EOF; exit 0 ;;
-Usage: $0 [-h|-n] [configure-options]
-  -h, --help              Show this help message.
-  -n, --just-print        Don't actually run any commands; just print them.
-  -c, --just-configure    Stop after running configure.
-  --with-debug=full       Build with full debug.
-  --prefix=path           Build with prefix 'path'.
-
-Note:  this script is intended for internal use by MySQL developers.
-EOF
-  * )
-    echo "Unknown option '$1'"
-    exit 1
-    break ;;
-  esac
-done
-
 set -e
 
+#
+# Check for the CPU and set up CPU specific flags. We may reset them
+# later.
+# 
+path=`dirname $0`
+. "$path/check-cpu"
+
 export AM_MAKEFLAGS
 AM_MAKEFLAGS="-j 4"
 
 # SSL library to use.
 SSL_LIBRARY=--with-yassl
 
-# If you are not using codefusion add "-Wpointer-arith" to WARNINGS
-# The following warning flag will give too many warnings:
-# -Wshadow -Wunused  -Winline (The later isn't usable in C++ as
-# __attribute()__ doesn't work with gnu C++)
-
-global_warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings"
-c_warnings="$global_warnings -Wunused"
-cxx_warnings="$global_warnings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor"
-base_max_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-big-tables --with-blackhole-storage-engine --with-federated-storage-engine --with-csv-storage-engine --with-example-storage-engine --with-partition $SSL_LIBRARY"
-base_max_no_ndb_configs="--with-innodb --with-berkeley-db --without-ndbcluster --with-archive-storage-engine --with-big-tables --with-blackhole-storage-engine --with-federated-storage-engine --with-csv-storage-engine --with-example-storage-engine --with-partition $SSL_LIBRARY"
-max_configs="$base_max_configs --with-embedded-server"
-max_no_ndb_configs="$base_max_no_ndb_configs --with-embedded-server"
-valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify -DMYSQL_SERVER_SUFFIX=-valgrind-max"
-
-path=`dirname $0`
-. "$path/check-cpu"
-
-alpha_cflags="$check_cpu_cflags -Wa,-m$cpu_flag"
-amd64_cflags="$check_cpu_cflags"
-pentium_cflags="$check_cpu_cflags"
-pentium64_cflags="$check_cpu_cflags -m64"
-ppc_cflags="$check_cpu_cflags"
-sparc_cflags=""
+if [ "x$warning_mode" != "xpedantic" ]; then
+# Both C and C++ warnings
+  warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W"
+  warnings="$warnings -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare"
+  warnings="$warnings -Wwrite-strings"
+# C warnings
+  c_warnings="$warnings -Wunused"
+# C++ warnings
+  cxx_warnings="$warnings -Woverloaded-virtual -Wsign-promo -Wreorder"
+  cxx_warnings="$warnings -Wctor-dtor-privacy -Wnon-virtual-dtor"
+# Added unless --with-debug=full
+  debug_extra_cflags="-O1 -Wuninitialized"
+else
+  warnings="-W -Wall -ansi -pedantic -Wno-long-long -D_POSIX_SOURCE"
+  c_warnings="$warnings"
+  cxx_warnings="$warnings -std=c++98"
+# NOTE: warning mode should not influence optimize/debug mode.
+# Please feel free to add a separate option if you don't feel it's an overkill.
+  debug_extra_flags="-O0"
+# Reset CPU flags (-mtune), they don't work in -pedantic mode
+  check_cpu_cflags=""
+fi
 
-# be as fast as we can be without losing our ability to backtrace
+# Set flags for various build configurations.
+# Used in -valgrind builds
+valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify "
+valgrind_flags="$valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
+#
+# Used in -debug builds
+debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
+debug_cflags="$debug_cflags -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX"
+#
+# Base C++ flags for all builds
+base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
+#
+# Flags for optimizing builds.
+# Be as fast as we can be without losing our ability to backtrace.
 fast_cflags="-O3 -fno-omit-frame-pointer"
-# this is one is for someone who thinks 1% speedup is worth not being
-# able to backtrace
-reckless_cflags="-O3 -fomit-frame-pointer "
 
-debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX"
-debug_extra_cflags="-O1 -Wuninitialized"
+debug_configs="--with-debug$full_debug"
+if [ -z "$full_debug" ]
+then
+  debug_cflags="$debug_cflags $debug_extra_cflags"
+fi
 
-base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
-amd64_cxxflags=""				# If dropping '--with-big-tables', add here  "-DBIG_TABLES"
+#
+# Configuration options.
+#
+base_configs="--prefix=$prefix --enable-assembler "
+base_configs="$base_configs --with-extra-charsets=complex "
+base_configs="$base_configs --enable-thread-safe-client --with-readline "
+base_configs="$base_configs --with-big-tables"
 
-base_configs="$prefix_configs --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-readline --with-big-tables"
-static_link="--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static"
-amd64_configs=""
-alpha_configs=""	# Not used yet
-pentium_configs=""
-sparc_configs=""
+static_link="--with-mysqld-ldflags=-all-static "
+static_link="$static_link --with-client-ldflags=-all-static"
 # we need local-infile in all binaries for rpl000001
 # if you need to disable local-infile in the client, write a build script
 # and unset local_infile_configs
 local_infile_configs="--enable-local-infile"
 
-debug_configs="--with-debug$full_debug"
-if [ -z "$full_debug" ]
-then
-  debug_cflags="$debug_cflags $debug_extra_cflags"
-fi
+
+max_configs="--with-innodb --with-berkeley-db"
+max_configs="$max_configs --with-archive-storage-engine"
+max_configs="$max_configs --with-big-tables"
+max_configs="$max_configs --with-blackhole-storage-engine"
+max_configs="$max_configs --with-federated-storage-engine"
+max_configs="$max_configs --with-csv-storage-engine"
+max_configs="$max_configs --with-example-storage-engine"
+max_configs="$max_configs --with-partition $SSL_LIBRARY"
+
+max_no_embedded_configs="$max_configs --with-ndbcluster"
+max_no_ndb_configs="$max_configs --without-ndbcluster --with-embedded-server"
+max_configs="$max_configs --with-ndbcluster --with-embedded-server"
+
+#
+# CPU and platform specific compilation flags.
+#
+alpha_cflags="$check_cpu_cflags -Wa,-m$cpu_flag"
+amd64_cflags="$check_cpu_cflags"
+amd64_cxxflags=""  # If dropping '--with-big-tables', add here  "-DBIG_TABLES"
+pentium64_cflags="$check_cpu_cflags -m64"
+ppc_cflags="$check_cpu_cflags"
+sparc_cflags=""
 
 if gmake --version > /dev/null 2>&1
 then
Thread
bk commit into 5.1 tree (konstantin:1.2300)konstantin7 Apr