blob: d014f777d813f89b2b3c95ed132b1a89d3374243 (
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
|
# $NetBSD: subr_Linux,v 1.2 2008/12/10 23:27:17 abs Exp $
AWK=awk
SED=sed
display_hw_details()
{
cat <<END
OS : '$(uname)'
proc model : '$hw_model'
machine_arch : '$hw_machine_arch'
proc flag : '$feat_flags'
END
}
extract_hw_details()
{
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)
feat_flags=$($AWK -F: '/^flags/{sub(" ","",$2);print $2;exit}' /proc/cpuinfo)
fi
}
determine_arch()
{
ARCH=
case $hw_machine_arch in
parisc) case $hw_model in
"Mirage 100+") ARCH='-march=1.1' ;;
esac ;;
i386) ARCH='-march=i386' ;;
i486) ARCH='-march=i486' ;;
i586) ARCH='-march=pentium' ;;
i686 | x86_64)
include subr_x86 # this provides map_x86_brand_string()
ARCH=$(map_x86_brand_string "$cpu_brand")
if [ -z "$ARCH" ] ; then
case $hw_model in
"AMD Athlon(TM) XP "*) ARCH='-march=athlon-xp' ;;
"AMD Athlon(tm) 64"*) ARCH='-march=athlon64' ;;
"AMD Athlon(tm) XP"*) ARCH='-march=athlon-xp' ;;
"AMD Duron(TM)") ARCH='-march=athlon' ;;
"AMD Duron(tm) ") ARCH='-march=athlon' ;;
"AMD Opteron(tm) Processor "*) ARCH='-march=opteron' ;;
"AMD Sempron(tm) Processor "*) ARCH='-march=athlon-xp' ;;
# Intel PIII & earlier - later Intel handled by map_x86_brand_string
"Celeron (Coppermine)") ARCH='-march=pentium3' ;;
"Pentium II (Deschutes)") ARCH='-march=pentium2' ;;
"Pentium III (Coppermine)") ARCH='-march=pentium3' ;;
"Pentium III (Katmai)") ARCH='-march=pentium3' ;;
esac
fi ;;
esac
echo $ARCH
}
determine_features()
{
FEATURES=
case $hw_machine_arch in
i586|i686|x86_64)
case " $feat_flags " in
*" ssse3 "*) FEATURES='-mfpmath=sse -msse3' ;;
*" sse2 "*) FEATURES='-mfpmath=sse -msse2' ;;
*" sse "*) FEATURES='-mfpmath=sse -msse' ;;
*" mmx "*) FEATURES='-mmmx' ;;
esac ;;
esac
echo $FEATURES
}
|