Added CPU automatic detection. It examines /proc/cpuinfo (if exists) and finds out flags for -mcpu and -march.
TODO is --with-cpu configure option to force some other processor type. Problem is not big as any Intel 686+ CPU will use -mcpu=pentiumpro anyway. Exceptions are Athlons and 586 processors. BUILD/SETUP.sh: Removed hardcoded processor type as it will be added later by configure acinclude.m4: Added CPU automatic detection configure.in: Added CPU automatic detection
This commit is contained in:
parent
4bb4018743
commit
ea4a4de32f
@ -40,7 +40,7 @@ c_warnings="$global_warnings -Wunused"
|
||||
cxx_warnings="$global_warnings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor"
|
||||
|
||||
alpha_cflags="-mcpu=ev6 -Wa,-mev6" # Not used yet
|
||||
pentium_cflags="-mpentiumpro"
|
||||
pentium_cflags=""
|
||||
sparc_cflags=""
|
||||
|
||||
# be as fast as we can be without losing our ability to backtrace
|
||||
|
47
acinclude.m4
47
acinclude.m4
@ -642,6 +642,53 @@ fi
|
||||
AC_MSG_RESULT($ac_cv_conv_longlong_to_float)
|
||||
])
|
||||
|
||||
AC_DEFUN(MYSQL_CHECK_CPU,
|
||||
AC_CACHE_CHECK([if compiler supports optimizations for current cpu], mysql_cv_cpu,[
|
||||
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
if test -r /proc/cpuinfo ; then
|
||||
cpuinfo="cat /proc/cpuinfo"
|
||||
cpu_family=`$cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
|
||||
cpu_vendor=`$cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
|
||||
fi
|
||||
if test "$cpu_vendor" = "AuthenticAMD"; then
|
||||
if test $cpu_family>=6; then
|
||||
cpu_set="athlon pentiumpro k5 pentium i486 i386";
|
||||
elif test $cpu_family=5; then
|
||||
cpu_set="k5 pentium i486 i386";
|
||||
elif test $cpu_family=4; then
|
||||
cpu_set="i486 i386"
|
||||
else
|
||||
cpu_set="i386"
|
||||
fi
|
||||
elif test "$cpu_vendor" = "GenuineIntel"; then
|
||||
if test $cpu_family>=6; then
|
||||
cpu_set=" pentiumpro pentium i486 i386";
|
||||
elif test $cpu_family=5; then
|
||||
cpu_set="pentium i486 i386";
|
||||
elif test $cpu_family=4; then
|
||||
cpu_set="i486 i386"
|
||||
else
|
||||
cpu_set="i386"
|
||||
fi
|
||||
fi
|
||||
|
||||
for ac_arg in $cpu_set;
|
||||
do
|
||||
CFLAGS="$ac_save_CFLAGS -mcpu=$ac_arg -march=$ac_arg"
|
||||
echo "trying $ac_arg";
|
||||
AC_TRY_COMPILE([],[int i],mysql_cv_cpu=$ac_arg; break;, mysql_cv_cpu="unknown")
|
||||
done
|
||||
|
||||
if test "$mysql_cv_cpu" = "unknown"
|
||||
then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
AC_MSG_RESULT(none)
|
||||
else
|
||||
AC_MSG_RESULT($mysql_cv_cpu)
|
||||
fi
|
||||
]))
|
||||
|
||||
AC_DEFUN(MYSQL_CHECK_VIO, [
|
||||
AC_ARG_WITH([vio],
|
||||
[\
|
||||
|
@ -1673,6 +1673,7 @@ AC_ARG_WITH(embedded-server,
|
||||
[with_embedded_server=no]
|
||||
)
|
||||
|
||||
MYSQL_CHECK_CPU
|
||||
MYSQL_CHECK_MYSQLFS
|
||||
MYSQL_CHECK_VIO
|
||||
MYSQL_CHECK_OPENSSL
|
||||
|
Loading…
x
Reference in New Issue
Block a user