Commit d4e921d6 authored by unknown's avatar unknown
Browse files

Merge joreland@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/home/jonas/src/mysql-4.1

parents 62321bd2 8b15aba8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1052,3 +1052,4 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
scripts/mysqlhotcopy.sh.rej
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@

EXTRA_DIST =		FINISH.sh \
			SETUP.sh \
			check-cpu \
			compile-alpha \
			compile-alpha-ccc \
			compile-alpha-cxx \
+2 −2
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@ global_warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wch
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-bdb --with-ndbcluster --with-archive-storage-engine --with-raid --with-openssl --with-raid --with-vio"
max_leave_isam_configs="--with-innodb --with-bdb --with-ndbcluster --with-archive-storage-engine --with-raid --with-openssl --with-raid --with-vio --with-embedded-server"
base_max_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-raid --with-openssl --with-raid --with-vio"
max_leave_isam_configs="--with-innodb --with-berkeley-db --with-ndbcluster --with-archive-storage-engine --with-raid --with-openssl --with-raid --with-vio --with-embedded-server"
max_no_es_configs="$max_leave_isam_configs --without-isam"
max_configs="$max_no_es_configs --with-embedded-server"

+131 −44
Original line number Diff line number Diff line
@@ -6,113 +6,200 @@
#

if test -r /proc/cpuinfo ; then
  # on Linux (and others?) we can get detailed CPU information out of /proc
  cpuinfo="cat /proc/cpuinfo"

  # detect CPU family
  cpu_family=`$cpuinfo | grep 'family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
  if test -z "$cpu_family" ; then
    cpu_family=`$cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
  fi

  # detect CPU vendor and model
  cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
  model_name=`$cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
  if test -z "$model_name" ; then
    model_name=`$cpuinfo | grep 'cpu model' | cut -d ':' -f 2 | head -1`
  fi

  # fallback: get CPU model from uname output
  if test -z "$model_name" ; then
    model_name=`uname -m`
  fi

  # parse CPU flags
  for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //'`; do 
	eval cpu_flag_$flag=yes
  done
else
  # Fallback when there is no /proc/cpuinfo
  case "`uname -s`" in
    FreeBSD)
    FreeBSD|OpenBSD)
      cpu_family=`uname -m`;
      model_name=`sysctl -b hw.model`
      model_name=`sysctl -n hw.model`
      ;;
    Darwin)
      cpu_family=`uname -p`
      model_name=`machine`
      ;;
    *)
      cpu_family=`uname -m`;
      model_name="unknown";
      model_name=`uname -p`;
      ;;
  esac
fi

cpu_flag=""
cpu_flag_old=""

# detect CPU shortname as used by gcc options 
# this list is not complete, feel free to add further entries
cpu_arg=""
case "$cpu_family--$model_name" in
  # DEC Alpha
  Alpha*EV6*)
    cpu_flag="ev6";
    cpu_arg="ev6";
    ;;

  # Intel ia32
  *Xeon*)
    cpu_flag="nocona";
    # a Xeon is just another pentium4 ...
    # ... unless it has the "lm" (long-mode) flag set, 
    # in that case it's a Xeon with EM64T support 
	if [ -z "$cpu_flag_lm" ]; then
      cpu_arg="pentium4";
	else
      cpu_arg="nocona";
    fi
    ;;
  *Pentium*4*Mobile*CPU*)
    cpu_flag="pentium4m";
  *Pentium*4*Mobile*)
    cpu_arg="pentium4m";
  ;;
  *Pentium*4*CPU*)
    cpu_flag="pentium4";
  *Pentium*4*)
    cpu_arg="pentium4";
    ;;
  *Pentium*III*Mobile*CPU*)
    cpu_flag="pentium3m";
  *Pentium*III*Mobile*)
    cpu_arg="pentium3m";
  ;;
  *Pentium*III*CPU*)
    cpu_flag="pentium3";
  *Pentium*III*)
    cpu_arg="pentium3";
  ;;
  *Pentium*M*pro*)
    cpu_flag="pentium-m";
    cpu_flag_old="pentium";
    cpu_arg="pentium-m";
  ;;
  *Athlon*64*)
    cpu_flag="athlon64";
    cpu_flag_old="athlon";
    cpu_arg="athlon64";
    ;;
  *Athlon*)
    cpu_flag="athlon";
    cpu_arg="athlon";
    ;;

  # Intel ia64
  *Itanium*)
    # Don't need to set any flags for itanium(at the moment)
    cpu_flag="";
    cpu_arg="";
    ;;

  #
  *ppc*)
    cpu_arg='powerpc'
    ;;
  *ppc)
    cpu_flag="powerpc";
    no_march=1;
 
  *powerpc*)
    cpu_arg='powerpc'
    ;;

  # unknown
  *)
    cpu_flag="";
    cpu_arg="";
    ;;
esac

if test -z "$cpu_flag"; then

if test -z "$cpu_arg"; then
  echo "BUILD/check-cpu: Oops, could not find out what kind of cpu this machine is using."
  check_cpu_flags=""
  check_cpu_cflags=""
  return
fi

echo "cpu_flag: $cpu_flag"

# different compiler versions have different option names
# for CPU specific command line options
if test -z "$CC" ; then
  cc="gcc";
else
  cc=$CC

fi

cc_ver=`$cc --version | sed 1q`
cc_verno=`echo $cc_ver | sed -e 's/[^0-9. ]//g;	 s/^ *//g; s/ .*//g'`

case "$cc_ver--$cc_verno" in
  *GCC*--3.4*|*GCC*--3.5*|*GCC*--4.*)
    check_cpu_cflags="-mtune=$cpu_flag -march=$cpu_flag"
    ;;
  *GCC*)
    # Fix for older compiler versions
    if test -n "$cpu_flag_old"; then
      cpu_flag="$cpu_flag_old"
    fi
    check_cpu_cflags="-mcpu=$cpu_flag -march=$cpu_flag"
    if test -n "$no_march"; then
      check_cpu_cflags="-mcpu=$cpu_flag"
    fi
      # different gcc backends (and versions) have different CPU flags
      case `gcc -dumpmachine` in
        i?86-*)
   	      case "$cc_verno" in
		    3.4*|3.5*|4.*)
			  check_cpu_args='-mtune=$cpu_arg -march=$cpu_arg'
			  ;;
		    *)
			  check_cpu_args='-mcpu=$cpu_arg -march=$cpu_arg'
			  ;;
          esac
          ;;
        ppc-*)
		  check_cpu_args='-mcpu=$cpu_arg -mtune=$cpu_arg'
          ;;
        *)
          check_cpu_cflags=""
          return
          ;;
      esac
    ;;
  2.95.*)
    # GCC 2.95 doesn't expose its name in --version output
    check_cpu_args='-m$cpu_arg'
    ;;
  *)
    check_cpu_cflags=""
    return
    ;;
esac
echo $check_cpu_cflags

# now we check whether the compiler really understands the cpu type
touch __test.c

while [ "$cpu_arg" ] ; do
  echo -n testing $cpu_arg "... "
	
  # compile check
  check_cpu_cflags=`eval echo $check_cpu_args`
  if $cc -c $check_cpu_cflags __test.c 2>/dev/null; then
	  echo ok
      break;
  fi

  echo failed
  check_cpu_cflags=""

  # if compile failed: check whether it supports a predecessor of this CPU
  # this list is not complete, feel free to add further entries
  case "$cpu_arg" in
    # Intel ia32
    nocona)     cpu_arg=pentium4    ;; 
    prescott)   cpu_arg=pentium4    ;;
    pentium4m)  cpu_arg=pentium4    ;;
    pentium4)   cpu_arg=pentium3    ;;
    pentium3m)  cpu_arg=pentium3    ;;
    pentium3)   cpu_arg=pentium2    ;;
    pentium2)   cpu_arg=pentiumpro  ;;
    pentiumpro) cpu_arg=pentium     ;;
    pentium)    cpu_arg=i486        ;;
    i486)       cpu_arg=i386        ;;

	# power / powerPC
	7450)       cpu_arg=7400        ;;

    *)          cpu_arg=""          ;;
  esac
done

rm __test.*
+2 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ dlenev@build.mysql.com
dlenev@jabberwock.localdomain
dlenev@mysql.com
ejonore@mc03.ndb.mysql.com
elliot@mysql.com
evgen@moonbone.(none)
evgen@moonbone.local
gbichot@bk-internal.mysql.com
@@ -206,6 +207,7 @@ rburnett@bk-internal.mysql.com
rburnett@build.mysql.com
reggie@bob.(none)
reggie@mdk10.(none)
reggie@monster.
root@home.(none)
root@mc04.(none)
root@x3.internalnet
Loading