summaryrefslogtreecommitdiff
path: root/devel/cpuflags/files/cpuflags.Linux
blob: e302e8ab3e7be78deac91ee78593171541e29e0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/sh
# $NetBSD: cpuflags.Linux,v 1.6 2004/07/27 19:25:44 abs Exp $
PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH

if [ -n "$1" ]; then
    CC=$1
else
    CC=gcc
fi

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}' /proc/cpuinfo)
fi

case $hw_machine_arch in
    # i386
    i386)				FLAGS='-march=i386'	;;
    i486)				FLAGS='-march=i486'	;;
    i586)				FLAGS='-march=pentium'	;;
    i686) case $hw_model in
	"AMD Duron(TM)")		FLAGS='-march=athlon'	;;
    esac
    ;;
    #
esac

if [ -z "$FLAGS" -a -z "$NONE" ] ; then
    echo 'Unknown machine - please send details to abs@netbsd.org'	>&2
    echo "  hw.model        : '$hw_model'"				>&2
    echo "  hw.machine_arch : '$hw_machine_arch'"			>&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=pentiumpro
3.1:-march=athlon-mp:-march=pentiumpro
3.1:-march=athlon-tbird:-march=pentiumpro
3.1:-march=athlon-xp:-march=pentiumpro
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:-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
EOD
`
fi

echo $FLAGS

exit 0