diff options
author | unknown <msvensson@neptunus.(none)> | 2005-04-27 12:50:37 +0200 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2005-04-27 12:50:37 +0200 |
commit | 78f89a729a962f7a88869a3d5e50ca493391b2a4 (patch) | |
tree | 666dbd45ebcb68e18dedf88cf17571c835bae608 /BUILD | |
parent | abf4e93d8285c8e73df85f3056fd7ce81cafad13 (diff) | |
download | mariadb-git-78f89a729a962f7a88869a3d5e50ca493391b2a4.tar.gz |
Bug#9263 GCC4: -mcpu is depricated, use -mtune or -march instead
- Made a script that selects the best compiler optimizations for the current cpu.
- Use the script from BUILD/SETUP.sh
BUILD/SETUP.sh:
Run check-cpu and use the compiler optimization flags it outputs
Diffstat (limited to 'BUILD')
-rwxr-xr-x | BUILD/SETUP.sh | 13 | ||||
-rwxr-xr-x | BUILD/check-cpu | 77 |
2 files changed, 85 insertions, 5 deletions
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh index e048ad723ab..8bb281f20e9 100755 --- a/BUILD/SETUP.sh +++ b/BUILD/SETUP.sh @@ -53,11 +53,14 @@ max_leave_isam_configs="--with-innodb --with-bdb --with-ndbcluster --with-archiv max_no_es_configs="$max_leave_isam_configs --without-isam" max_configs="$max_no_es_configs --with-embedded-server" -alpha_cflags="-mcpu=ev6 -Wa,-mev6" # Not used yet -amd64_cflags="-DBIG_TABLES" -pentium_cflags="-mcpu=pentiumpro" -pentium64_cflags="-mcpu=nocona -m64" -ppc_cflags="-mpowerpc -mcpu=powerpc" +path=`dirname $0` +. "$path/check-cpu" + +alpha_cflags="$check_cpu_cflags -Wa,-m$cpu_flag" +amd64_cflags="$check_cpu_cflags -DBIG_TABLES" +pentium_cflags="$check_cpu_cflags" +pentium64_cflags="$check_cpu_cflags -m64" +ppc_cflags="$check_cpu_cflags" sparc_cflags="" # be as fast as we can be without losing our ability to backtrace diff --git a/BUILD/check-cpu b/BUILD/check-cpu new file mode 100755 index 00000000000..633aa9e8a00 --- /dev/null +++ b/BUILD/check-cpu @@ -0,0 +1,77 @@ +#!/bin/sh +# +# Check cpu of current machine and find the +# best compiler optimization flags for gcc +# +# + +if test -r /proc/cpuinfo ; then + cpuinfo="cat /proc/cpuinfo" + 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 + 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 + if test -z "$model_name" ; then + model_name=`uname -m` + fi +else + exit 0 +fi + +case "$cpu_family--$model_name" in + Alpha*EV6*) + cpu_flag="ev6"; + ;; + *Xeon*) + cpu_flag="nocona"; + ;; + *Pentium*4*CPU*) + cpu_flag="pentium4"; + ;; + *Athlon*64*) + cpu_flag="athlon64"; + ;; + *Athlon*) + cpu_flag="athlon"; + ;; + *Itanium*) + # Don't need to set any flags for itanium(at the moment) + cpu_flag=""; + ;; + *ppc) + cpu_flag="powerpc"; + ;; + *) + cpu_flag="i386"; + ;; +esac + +echo "cpu_flag: $cpu_flag" + +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*) + check_cpu_cflags="-mcpu=$cpu_flag -march=$cpu_flag" + ;; + *) + check_cpu_cflags="" + ;; +esac +echo $check_cpu_cflags |