pkgsrc/devel/cpuflags/files/cpuflags.Linux
abs 467f422606 Update cpuflags to 0.79:
- Shuffle the various cpuflags.<OS> to group more common lines
    - Use nawk on solaris [Jonathan A. Kollasch PR pkg/26572]
    - Add Linux 'Intel(R) Pentium(R) 4 CPU'
    - Add NetBSD/i386 'AMD Athlon Model 4 (Thunderbird)' [Rob Quinn]
    - Add NetBSD/macppc 604e [John Klos]
    - Add NetBSD/chocolate [Al]
2004-12-22 15:12:18 +00:00

156 lines
4.1 KiB
Bash
Executable file

#!/bin/sh
# $NetBSD: cpuflags.Linux,v 1.12 2004/12/22 15:12:18 abs Exp $
PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
AWK=awk
display_hw_details()
{
echo " OS : '$(uname)'"
echo " proc model : '$hw_model'"
echo " machine_arch : '$hw_machine_arch'"
echo " proc flags : '$hw_flags'"
}
hw_machine_arch=$(uname -m)
if [ ! -f /proc/cpuinfo ] ; then
echo "Unable to open /proc/cpuinfo"
hw_model=Unknown
else
hw_model=$($AWK -F: '/^model name/{sub(" ","",$2);print $2;exit}' /proc/cpuinfo)
hw_flags=$($AWK -F: '/^flags/{sub(" ","",$2);print $2;exit}' /proc/cpuinfo)
fi
case $hw_machine_arch in
# i386
i386) FLAGS='-march=i386' ;;
i486) FLAGS='-march=i486' ;;
i686) case $hw_model in
"AMD Duron(tm) ") FLAGS='-march=athlon' ;;
"AMD Duron(TM)") FLAGS='-march=athlon' ;;
"AMD Athlon(tm) XP "*) FLAGS='-march=athlon-xp' ;;
"Celeron (Coppermine)") FLAGS='-march=pentium3' ;;
"Pentium III (Coppermine)") FLAGS='-march=pentium3' ;;
"Intel(R) Pentium(R) M processor"*) FLAGS='-march=pentium3m' ;;
"Intel(R) Pentium(R) 4 CPU "*) FLAGS='-march=pentium4' ;;
"Intel(R) Celeron(R) CPU "*)
case "$hw_flags" in
*" sse2 "*)
FLAGS='-march=pentium4' ;;
esac
esac
;;
#
esac
############
# Everything from this point common between all cpuflags variants.
if [ "$1" = -v ] ; then
shift
opt_v=1
fi
if [ -n "$1" ]; then
CC=$1
else
CC=gcc
fi
if [ -n "$opt_v" ] ; then
if [ -z "$NONE" ] ; then
echo "CPUFLAGS=Unknown"
else
echo "CPUFLAGS=None"
fi
display_hw_details
exit
fi
if [ -z "$FLAGS" -a -z "$NONE" ] ; then
echo 'Unknown machine - please send details to abs@netbsd.org' >&2
display_hw_details >&2
fi
# Fixup options for older gccs.
# Entries can be recursive - eg:
# -march=k6-3 -> -march=k6 -> -march=pentium -> -march=i486
#
# The format of table is
# gcc_version_in_which_option_was_introduced new_option old_option
if [ -n "$FLAGS" ]; then
gcc_ver=`${CC} -dumpversion | sed 's/^egcs-//'`
FLAGS=`$AWK -F: -v "flags=$FLAGS" -v "gcc_ver=$gcc_ver" '
{ if (gcc_ver < $1){map[$2] = ""$3} }
END { while (flags in map) {flags = map[flags]} print flags }
' <<EOD
2.90:-march=i386:-mno-486
2.90:-march=i486:-m486
2.90:-march=pentium:-m486
2.90:-march=pentiumpro:-m486
2.90:-mcpu=21164a:
2.90:-mcpu=arm610:-m6
2.90:-mcpu=arm710:-m6
2.90:-mcpu=cypress:-mcypress
2.90:-mcpu=sparclite:-msparclite
2.90:-mcpu=strongarm110:-m6
2.90:-mcpu=supersparc:-msupersparc
2.90:-mcpu=v9:-mv8
2.95:-march=k6:-march=pentium
3.0:-march=athlon:-march=pentiumpro
3.1:-march=athlon-4:-march=athlon
3.1:-march=athlon-mp:-march=athlon
3.1:-march=athlon-tbird:-march=athlon
3.1:-march=athlon-xp:-march=athlon
3.1:-march=k6-2:-march=k6
3.1:-march=k6-3:-march=k6
3.1:-march=pentium-mmx:-march=pentium
3.1:-march=pentium2:-march=pentiumpro
3.1:-march=pentium3 -mno-sse:-march=pentiumpro
3.1:-march=pentium3:-march=pentiumpro
3.1:-march=pentium4:-march=pentiumpro
3.1:-march=r2000:-cpu=r2000
3.1:-march=r3000:-cpu=r3000
3.1:-march=r3900:-cpu=r3900
3.1:-march=r4000:-cpu=r4000
3.1:-march=r4100:-cpu=r4100
3.1:-march=r4300:-cpu=r4300
3.1:-march=r4400:-cpu=r4400
3.1:-march=r4600:-cpu=r4600
3.1:-march=r5000:-cpu=r5000
3.1:-march=r6000:-cpu=r6000
3.1:-march=r8000:-cpu=r8000
3.1:-mcpu=21264a:-mcpu=21264
3.1:-mcpu=7400:-mcpu=750
3.1:-mcpu=7450:-mcpu=750
3.1:-mtune=r2000:-cpu=r2000
3.1:-mtune=r3000:-cpu=r3000
3.1:-mtune=r3900:-cpu=r3900
3.1:-mtune=r4000:-cpu=r4000
3.1:-mtune=r4100:-cpu=r4100
3.1:-mtune=r4300:-cpu=r4300
3.1:-mtune=r4400:-cpu=r4400
3.1:-mtune=r4600:-cpu=r4600
3.1:-mtune=r5000:-cpu=r5000
3.1:-mtune=r6000:-cpu=r6000
3.1:-mtune=r8000:-cpu=r8000
3.3:-march=c3:-march=i586
3.3:-march=winchip-c6:-march=i586
3.3:-march=winchip2:-march=i586
3.4:-march=athlon-fx:-march=athlon-xp
3.4:-march=athlon64:-march=athlon-xp
3.4:-march=c3-2:-march=c3
3.4:-march=k8:-march=athlon-xp
3.4:-march=nocona:-march=pentium4
3.4:-march=opteron:-march=athlon-xp
3.4:-march=pentium-m:-march=pentium3
3.4:-march=pentium3m:-march=pentium3
3.4:-march=pentium4m:-march=pentium4
3.4:-march=prescott:-march=pentium4
EOD
`
fi
echo $FLAGS
exit 0