Added CPU flags tests

This commit is contained in:
Michiel Broek 2004-04-04 13:49:05 +00:00
parent 92cac004da
commit 6108185905
5 changed files with 141 additions and 3 deletions

View File

@ -7,6 +7,7 @@ v0.51.3 22-Mar-2003
were two different values for the same purpose. The removed were two different values for the same purpose. The removed
one was not used. one was not used.
Moved doc directory from /opt/mbse/doc to /opt/mbse/share/doc. Moved doc directory from /opt/mbse/doc to /opt/mbse/share/doc.
Added configure test for CPU optimization flags.
mbtask: mbtask:
Signal handler for sigchld set to sig_dfl, test for Fedora. Signal handler for sigchld set to sig_dfl, test for Fedora.

View File

@ -4,7 +4,7 @@
include Makefile.global include Makefile.global
OTHER = AUTHORS ChangeLog COPYING DEBUG CRON.sh FILE_ID.DIZ.in \ OTHER = AUTHORS ChangeLog COPYING DEBUG CRON.sh FILE_ID.DIZ.in \
INSTALL.in Makefile Makefile.global.in NEWS \ INSTALL.in Makefile Makefile.global.in NEWS cpuflags \
ChangeLog_1998 ChangeLog_1999 ChangeLog_2000 ChangeLog_2001 \ ChangeLog_1998 ChangeLog_1999 ChangeLog_2000 ChangeLog_2001 \
ChangeLog_2002 ChangeLog_2003 README SETUP.sh TODO UPGRADE \ ChangeLog_2002 ChangeLog_2003 README SETUP.sh TODO UPGRADE \
aclocal.m4 checkbasic config.h.in configure configure.in paths.h.in aclocal.m4 checkbasic config.h.in configure configure.in paths.h.in

2
configure vendored
View File

@ -2900,7 +2900,7 @@ fi
echo "$as_me:$LINENO: checking for cpuflags" >&5 echo "$as_me:$LINENO: checking for cpuflags" >&5
echo $ECHO_N "checking for cpuflags... $ECHO_C" >&6 echo $ECHO_N "checking for cpuflags... $ECHO_C" >&6
for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin NONE; do for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin `pwd` NONE; do
if test "$cpuflagsbin" = "NONE"; then if test "$cpuflagsbin" = "NONE"; then
echo "$as_me:$LINENO: result: unknown" >&5 echo "$as_me:$LINENO: result: unknown" >&5
echo "${ECHO_T}unknown" >&6 echo "${ECHO_T}unknown" >&6

View File

@ -83,7 +83,7 @@ dnl Check if cpuflags program is installed, if so get CPU optimization flags
dnl Currently this only works on NetBSD. dnl Currently this only works on NetBSD.
dnl dnl
AC_MSG_CHECKING(for cpuflags) AC_MSG_CHECKING(for cpuflags)
for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin NONE; do for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin `pwd` NONE; do
if test "$cpuflagsbin" = "NONE"; then if test "$cpuflagsbin" = "NONE"; then
AC_MSG_RESULT(unknown) AC_MSG_RESULT(unknown)
elif test -x $cpuflagsbin/cpuflags; then elif test -x $cpuflagsbin/cpuflags; then

137
cpuflags Executable file
View File

@ -0,0 +1,137 @@
#!/bin/sh
#
# $Id$
#
# Small script to try to find out the CPU optimisation flags.
# Based on ideas found in the NetBSD cpuflags script.
#
OS=`uname -s`
case $OS in
FreeBSD | NetBSD)
if [ -x /sbin/sysctl ]; then
SYSCTL=/sbin/sysctl
elif [ -x /usr/sbin/sysctl ]; then
SYSCTL=/usr/sbin/sysctl
elif [ -x /bin/sysctl ]; then
SYSCTL=/bin/sysctl
else
SYSCTL=/usr/bin/sysctl
fi
hw_machine_arch=`$SYSCTL -n hw.machine_arch`
hw_model=`$SYSCTL -n hw.model`
case $hw_machine_arch in
alpha)
# cpu0 at mainbus0: ID 0 (primary), 21164A-0 (unknown ...
case "`egrep '^cpu0 ' /var/run/dmesg.boot`" in
*[\(\ ]2106[46][-\ \)]*) FLAGS="-mcpu=21064" ;;
*[\(\ ]21164[-\ \)]*) FLAGS="-mcpu=21164" ;;
*[\(\ ]21164A[-\ \)]*) FLAGS="-mcpu=21164a" ;;
*[\(\ ]21264B[-\ \)]*) FLAGS="-mcpu=21264" ;;
esac
;;
i386)
case $hw_model in
*386-class*) FLAGS='-march=i386' ;;
*486-class*) FLAGS='-march=i486' ;;
*AMD\ K6*) FLAGS='-march=k6' ;;
*Pentium*) FLAGS='-march=pentium' ;;
*586-class*) FLAGS='-march=pentium' ;;
*686-class*) FLAGS='-march=pentiumpro' ;;
esac
;;
sparc | sparc64)
case " $hw_model" in # Examples
*[\ \(]MB86900/1A*) FLAGS='-mcpu=cypress' ;; # ss1+
*[\ \(]CY7C601*) FLAGS='-mcpu=cypress' ;; # ss2
*[\ \(]W8601/8701*) FLAGS='-mcpu=cypress' ;; # elc
*[\ \(]MB86904*) FLAGS='-mcpu=supersparc' ;; # ss5 usparc
*[\ \(]MB86907*) FLAGS='-mcpu=supersparc' ;; # ss5 usparc
*[\ \(]TMS390S10*) FLAGS='-mcpu=supersparc' ;; # classic "
*[\ \(]TMS390Z50*) FLAGS='-mcpu=supersparc' ;; # ss10/ss20
*[\ \(]RT620/625*) FLAGS='-mcpu=supersparc' ;; # ss20 ross
*[\ \(]MB86930*) FLAGS='-mcpu=sparclite' ;; # from gcc
*[\ \(]MB86934*) FLAGS='-mcpu=sparclite' ;; # from gcc
# under 1.5.1 -mcpu=ultrasparc chokes egcs-2.91.66 compiling perl
*[\ \(]SUNW,UltraSPARC*) FLAGS='-mcpu=v9' ;; # Ultra
esac
;;
esac
;;
Linux)
hw_machine_arch=`uname -m`
case $hw_machine_arch in
parisc)
case "`egrep 'cpu family' /proc/cpuinfo | cut -d ' ' -f 4`" in
1.0*) FLAGS='-march=1.0' ;;
1.1*) FLAGS='-march=1.1' ;;
2.0*) FLAGS='-march=2.0' ;;
esac
;;
i386)
FLAGS='-march=i386'
;;
i486)
FLAGS='-march=i486'
;;
i586)
FLAGS='-march=pentium'
;;
i686)
FLAGS='-march=pentiumpro'
;;
*)
echo "Unsupported Linux arch $hw_machine_arch"
exit 1
;;
esac
;;
*)
echo "Unsupported OS $OS"
exit 1
;;
esac
# Fixup flags for old gcc
if [ -n "$FLAGS" ]; then
gcc_ver=`gcc -v 2>&1 | awk '/gcc version/ {sub("egcs-","");print $3}'`
FLAGS=`awk -v "flags=$FLAGS" -v "gcc_ver=$gcc_ver" '
{if (gcc_ver < $1){map[$2] = ""$3}}
END{if (flags in map) {print map[flags]}else {print flags}}
' <<EOD
2.90 -mcpu=21164a
2.90 -march=i386 -mno-486
2.90 -march=i486 -m486
2.90 -march=pentium -m486
2.90 -march=pentiumpro -m486
2.90 -mcpu=supersparc -msupersparc
2.90 -mcpu=sparclite -msparclite
2.90 -mcpu=cypress -mcypress
2.90 -mcpu=v9 -mv8
2.90 -mcpu=arm610 -m6
2.90 -mcpu=strongarm110 -m6
2.90 -mcpu=arm710 -m6
2.95 -march=k6 -march=pentium
EOD
`
fi
echo $FLAGS
exit 0