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"
|
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
|
alpha_cflags="-mcpu=ev6 -Wa,-mev6" # Not used yet
|
||||||
pentium_cflags="-mpentiumpro"
|
pentium_cflags=""
|
||||||
sparc_cflags=""
|
sparc_cflags=""
|
||||||
|
|
||||||
# be as fast as we can be without losing our ability to backtrace
|
# 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_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_DEFUN(MYSQL_CHECK_VIO, [
|
||||||
AC_ARG_WITH([vio],
|
AC_ARG_WITH([vio],
|
||||||
[\
|
[\
|
||||||
|
@ -1673,6 +1673,7 @@ AC_ARG_WITH(embedded-server,
|
|||||||
[with_embedded_server=no]
|
[with_embedded_server=no]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
MYSQL_CHECK_CPU
|
||||||
MYSQL_CHECK_MYSQLFS
|
MYSQL_CHECK_MYSQLFS
|
||||||
MYSQL_CHECK_VIO
|
MYSQL_CHECK_VIO
|
||||||
MYSQL_CHECK_OPENSSL
|
MYSQL_CHECK_OPENSSL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user