| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | # $NetBSD: subr_NetBSD,v 1.12 2010/12/05 11:19:39 abs Exp $ | | 1 | # $NetBSD: subr_NetBSD,v 1.13 2016/01/28 19:11:30 abs Exp $ |
2 | | | 2 | |
3 | AWK=awk | | 3 | AWK=awk |
4 | SED=sed | | 4 | SED=sed |
5 | | | 5 | |
6 | display_hw_details() | | 6 | display_hw_details() |
7 | { | | 7 | { |
8 | cat <<END | | 8 | cat <<END |
9 | OS : '$(uname)' | | 9 | OS : '$(uname)' |
10 | OS version : '$(uname -r)' | | 10 | OS version : '$(uname -r)' |
11 | hw.model : '$hw_model' | | 11 | hw.model : '$hw_model' |
12 | hw.machine : '$hw_machine' | | 12 | hw.machine : '$hw_machine' |
13 | hw.machine_arch : '$hw_machine_arch' | | 13 | hw.machine_arch : '$hw_machine_arch' |
14 | CPU : '$cpu' | | 14 | CPU : '$cpu' |
| @@ -34,40 +34,40 @@ extract_hw_details() | | | @@ -34,40 +34,40 @@ extract_hw_details() |
34 | # We're almost certainly crosscompiling | | 34 | # We're almost certainly crosscompiling |
35 | if [ -n "$MACHINE" -a "$hw_machine" != "$MACHINE" ]; then | | 35 | if [ -n "$MACHINE" -a "$hw_machine" != "$MACHINE" ]; then |
36 | echo | | 36 | echo |
37 | exit | | 37 | exit |
38 | fi | | 38 | fi |
39 | } | | 39 | } |
40 | | | 40 | |
41 | extract_x86_cpu_vars() | | 41 | extract_x86_cpu_vars() |
42 | { | | 42 | { |
43 | # Set: cpu_feature_FOO=1 for each 'FOO' feature reported | | 43 | # Set: cpu_feature_FOO=1 for each 'FOO' feature reported |
44 | # cpu_name="NAME" taken from the first cpu0: line | | 44 | # cpu_name="NAME" taken from the first cpu0: line |
45 | # cpu_brand="BRAND" the CPU branding string | | 45 | # cpu_brand="BRAND" the CPU branding string |
46 | echo "$cpu_details" | $AWK ' | | 46 | echo "$cpu_details" | $AWK ' |
| | | 47 | { gsub("[()]","") } |
47 | { if (/cpu0:/ && !n) { sub("cpu0: ",""); n=1; print "cpu_name=\""$0"\"" } } | | 48 | { if (/cpu0:/ && !n) { sub("cpu0: ",""); n=1; print "cpu_name=\""$0"\"" } } |
48 | /cpu0: ".*"/ { sub("[^\"]*", ""); print "cpu_brand="$0 } | | 49 | /cpu0: ".*"/ { sub("[^\"]*", ""); print "cpu_brand="$0 } |
49 | /cpu0: features/ { | | 50 | /cpu0: features\d?/ { |
50 | sub(".*<",""); | | 51 | sub(".*<",""); |
51 | sub(">.*",""); | | 52 | sub(">.*",""); |
52 | gsub("[^,A-Z0-9]","_"); | | 53 | gsub("[^,A-Z0-9]","_"); |
53 | split($0, features, /,/) | | 54 | split($0, features, /,/) |
54 | for (f in features) | | 55 | for (f in features) |
55 | print "cpu_feature_"features[f]"=1"; | | 56 | print "cpu_feature_"features[f]"=1"; |
56 | } | | 57 | } |
57 | /cpu0: family/ { | | 58 | /cpu0: family/ { |
58 | for (i = 2; i < NF; i = i + 2) { | | 59 | for (i = 2; i < NF; i = i + 2) { |
59 | f=$(i+1); | | 60 | f=$(i+1); |
60 | sub(/^0/, "", f); | | | |
61 | print "cpu_"$i"="f | | 61 | print "cpu_"$i"="f |
62 | } | | 62 | } |
63 | } | | 63 | } |
64 | ' | | 64 | ' |
65 | } | | 65 | } |
66 | | | 66 | |
67 | determine_arch() | | 67 | determine_arch() |
68 | { | | 68 | { |
69 | ARCH= | | 69 | ARCH= |
70 | # When adding $hw_model tests use maximum context (such as trailing space) | | 70 | # When adding $hw_model tests use maximum context (such as trailing space) |
71 | case $hw_machine_arch in | | 71 | case $hw_machine_arch in |
72 | | | 72 | |
73 | alpha) | | 73 | alpha) |