ffi 1.12.2 → 1.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -0
  3. data/Gemfile +4 -2
  4. data/README.md +10 -2
  5. data/Rakefile +31 -43
  6. data/ext/ffi_c/AbstractMemory.c +24 -25
  7. data/ext/ffi_c/Buffer.c +4 -9
  8. data/ext/ffi_c/Call.c +3 -14
  9. data/ext/ffi_c/ClosurePool.c +75 -25
  10. data/ext/ffi_c/ClosurePool.h +3 -1
  11. data/ext/ffi_c/DynamicLibrary.c +1 -6
  12. data/ext/ffi_c/Function.c +15 -35
  13. data/ext/ffi_c/FunctionInfo.c +3 -8
  14. data/ext/ffi_c/LastError.c +2 -6
  15. data/ext/ffi_c/LongDouble.c +5 -3
  16. data/ext/ffi_c/LongDouble.h +0 -4
  17. data/ext/ffi_c/MemoryPointer.c +3 -8
  18. data/ext/ffi_c/MethodHandle.c +21 -31
  19. data/ext/ffi_c/MethodHandle.h +3 -2
  20. data/ext/ffi_c/Platform.c +3 -7
  21. data/ext/ffi_c/Pointer.c +25 -26
  22. data/ext/ffi_c/Struct.c +3 -6
  23. data/ext/ffi_c/StructByValue.c +2 -7
  24. data/ext/ffi_c/StructLayout.c +9 -7
  25. data/ext/ffi_c/Thread.c +0 -8
  26. data/ext/ffi_c/Thread.h +1 -9
  27. data/ext/ffi_c/Type.c +1 -1
  28. data/ext/ffi_c/Variadic.c +2 -7
  29. data/ext/ffi_c/compat.h +4 -0
  30. data/ext/ffi_c/extconf.rb +33 -23
  31. data/ext/ffi_c/libffi/.travis.yml +4 -0
  32. data/ext/ffi_c/libffi/.travis/bfin-sim.exp +1 -1
  33. data/ext/ffi_c/libffi/.travis/build.sh +4 -0
  34. data/ext/ffi_c/libffi/.travis/m32r-sim.exp +1 -1
  35. data/ext/ffi_c/libffi/.travis/moxie-sim.exp +1 -1
  36. data/ext/ffi_c/libffi/.travis/or1k-sim.exp +1 -1
  37. data/ext/ffi_c/libffi/.travis/powerpc-eabisim.exp +1 -1
  38. data/ext/ffi_c/libffi/.travis/wine-sim.exp +1 -1
  39. data/ext/ffi_c/libffi/Makefile.am +49 -58
  40. data/ext/ffi_c/libffi/README.md +11 -1
  41. data/ext/ffi_c/libffi/config.guess +552 -331
  42. data/ext/ffi_c/libffi/config.sub +1321 -1306
  43. data/ext/ffi_c/libffi/configure.ac +31 -10
  44. data/ext/ffi_c/libffi/configure.host +32 -20
  45. data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  46. data/ext/ffi_c/libffi/doc/libffi.texi +997 -0
  47. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  48. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +1 -1
  49. data/ext/ffi_c/libffi/include/ffi.h.in +8 -0
  50. data/ext/ffi_c/libffi/libffi.map.in +8 -12
  51. data/ext/ffi_c/libffi/libtool-version +1 -1
  52. data/ext/ffi_c/libffi/msvcc.sh +11 -11
  53. data/ext/ffi_c/libffi/src/aarch64/ffi.c +51 -35
  54. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +10 -5
  55. data/ext/ffi_c/libffi/src/aarch64/internal.h +1 -0
  56. data/ext/ffi_c/libffi/src/aarch64/sysv.S +14 -3
  57. data/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +1 -1
  58. data/ext/ffi_c/libffi/src/arm/ffi.c +22 -0
  59. data/ext/ffi_c/libffi/src/arm/sysv.S +4 -4
  60. data/ext/ffi_c/libffi/src/closures.c +33 -10
  61. data/ext/ffi_c/libffi/src/csky/ffi.c +395 -0
  62. data/ext/ffi_c/libffi/src/csky/ffitarget.h +63 -0
  63. data/ext/ffi_c/libffi/src/csky/sysv.S +371 -0
  64. data/ext/ffi_c/libffi/src/dlmalloc.c +1 -1
  65. data/ext/ffi_c/libffi/src/kvx/asm.h +5 -0
  66. data/ext/ffi_c/libffi/src/kvx/ffi.c +273 -0
  67. data/ext/ffi_c/libffi/src/kvx/ffitarget.h +75 -0
  68. data/ext/ffi_c/libffi/src/kvx/sysv.S +127 -0
  69. data/ext/ffi_c/libffi/src/mips/ffi.c +5 -1
  70. data/ext/ffi_c/libffi/src/mips/ffitarget.h +1 -1
  71. data/ext/ffi_c/libffi/src/pa/ffi.c +46 -91
  72. data/ext/ffi_c/libffi/src/pa/ffitarget.h +1 -6
  73. data/ext/ffi_c/libffi/src/pa/hpux32.S +4 -2
  74. data/ext/ffi_c/libffi/src/pa/linux.S +4 -2
  75. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +13 -1
  76. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +1 -1
  77. data/ext/ffi_c/libffi/src/powerpc/linux64.S +8 -0
  78. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +13 -1
  79. data/ext/ffi_c/libffi/src/powerpc/sysv.S +5 -7
  80. data/ext/ffi_c/libffi/src/prep_cif.c +1 -1
  81. data/ext/ffi_c/libffi/src/x86/ffi.c +15 -6
  82. data/ext/ffi_c/libffi/src/x86/ffi64.c +17 -8
  83. data/ext/ffi_c/libffi/src/x86/ffitarget.h +15 -2
  84. data/ext/ffi_c/libffi/src/x86/ffiw64.c +15 -8
  85. data/ext/ffi_c/libffi/src/x86/sysv.S +15 -6
  86. data/ext/ffi_c/libffi/src/x86/unix64.S +59 -4
  87. data/ext/ffi_c/libffi/src/x86/win64.S +7 -3
  88. data/ext/ffi_c/libffi/src/x86/win64_intel.S +3 -2
  89. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +22 -2
  90. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +4 -4
  91. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +2 -2
  92. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +2 -0
  93. data/ffi.gemspec +2 -2
  94. data/lib/ffi.rb +10 -2
  95. data/lib/ffi/abstract_memory.rb +44 -0
  96. data/lib/ffi/autopointer.rb +1 -1
  97. data/lib/ffi/ffi.rb +1 -0
  98. data/lib/ffi/io.rb +3 -3
  99. data/lib/ffi/library.rb +6 -2
  100. data/lib/ffi/managedstruct.rb +2 -2
  101. data/lib/ffi/platform.rb +21 -8
  102. data/lib/ffi/platform/aarch64-darwin/types.conf +130 -0
  103. data/lib/ffi/platform/aarch64-openbsd/types.conf +134 -0
  104. data/lib/ffi/platform/arm-linux/types.conf +32 -4
  105. data/lib/ffi/platform/i386-windows/types.conf +26 -79
  106. data/lib/ffi/platform/powerpc-linux/types.conf +32 -2
  107. data/lib/ffi/platform/powerpc-openbsd/types.conf +156 -0
  108. data/lib/ffi/platform/sparcv9-openbsd/types.conf +156 -0
  109. data/lib/ffi/platform/x86_64-darwin/types.conf +4 -0
  110. data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +4 -22
  111. data/lib/ffi/platform/x86_64-haiku/types.conf +117 -0
  112. data/lib/ffi/platform/x86_64-linux/types.conf +21 -0
  113. data/lib/ffi/platform/x86_64-msys/types.conf +119 -0
  114. data/lib/ffi/platform/x86_64-windows/types.conf +10 -78
  115. data/lib/ffi/pointer.rb +21 -14
  116. data/lib/ffi/struct.rb +8 -2
  117. data/lib/ffi/tools/types_generator.rb +2 -0
  118. data/lib/ffi/variadic.rb +1 -1
  119. data/lib/ffi/version.rb +1 -1
  120. data/samples/getlogin.rb +1 -1
  121. data/samples/getpid.rb +1 -1
  122. data/samples/gettimeofday.rb +8 -8
  123. data/samples/hello.rb +2 -1
  124. data/samples/inotify.rb +1 -1
  125. data/samples/pty.rb +1 -2
  126. data/samples/qsort.rb +0 -1
  127. metadata +18 -12
  128. data/.appveyor.yml +0 -27
  129. data/.gitignore +0 -25
  130. data/.gitmodules +0 -4
  131. data/.travis.yml +0 -44
  132. data/.yardopts +0 -5
  133. data/ext/ffi_c/win32/stdbool.h +0 -8
  134. data/ext/ffi_c/win32/stdint.h +0 -201
  135. data/samples/sample_helper.rb +0 -6
@@ -1,8 +1,8 @@
1
1
  #! /bin/sh
2
2
  # Configuration validation subroutine script.
3
- # Copyright 1992-2017 Free Software Foundation, Inc.
3
+ # Copyright 1992-2020 Free Software Foundation, Inc.
4
4
 
5
- timestamp='2017-04-02'
5
+ timestamp='2020-08-05'
6
6
 
7
7
  # This file is free software; you can redistribute it and/or modify it
8
8
  # under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@ timestamp='2017-04-02'
15
15
  # General Public License for more details.
16
16
  #
17
17
  # You should have received a copy of the GNU General Public License
18
- # along with this program; if not, see <http://www.gnu.org/licenses/>.
18
+ # along with this program; if not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
  # As a special exception to the GNU General Public License, if you
21
21
  # distribute this file as part of a program that contains a
@@ -33,7 +33,7 @@ timestamp='2017-04-02'
33
33
  # Otherwise, we print the canonical config type on stdout and succeed.
34
34
 
35
35
  # You can get the latest version of this script from:
36
- # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
36
+ # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
37
37
 
38
38
  # This file is supposed to be the same for all GNU packages
39
39
  # and recognize all the CPU types, system types and aliases
@@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
57
57
 
58
58
  Canonicalize a configuration name.
59
59
 
60
- Operation modes:
60
+ Options:
61
61
  -h, --help print this help, then exit
62
62
  -t, --time-stamp print date of last modification, then exit
63
63
  -v, --version print version number, then exit
@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
67
67
  version="\
68
68
  GNU config.sub ($timestamp)
69
69
 
70
- Copyright 1992-2017 Free Software Foundation, Inc.
70
+ Copyright 1992-2020 Free Software Foundation, Inc.
71
71
 
72
72
  This is free software; see the source for copying conditions. There is NO
73
73
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -89,12 +89,12 @@ while test $# -gt 0 ; do
89
89
  - ) # Use stdin as input.
90
90
  break ;;
91
91
  -* )
92
- echo "$me: invalid option $1$help"
92
+ echo "$me: invalid option $1$help" >&2
93
93
  exit 1 ;;
94
94
 
95
95
  *local*)
96
96
  # First pass through any local machine types.
97
- echo $1
97
+ echo "$1"
98
98
  exit ;;
99
99
 
100
100
  * )
@@ -110,1252 +110,1167 @@ case $# in
110
110
  exit 1;;
111
111
  esac
112
112
 
113
- # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
114
- # Here we must recognize all the valid KERNEL-OS combinations.
115
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
116
- case $maybe_os in
117
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119
- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120
- kopensolaris*-gnu* | cloudabi*-eabi* | \
121
- storm-chaos* | os2-emx* | rtmk-nova*)
122
- os=-$maybe_os
123
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
124
- ;;
125
- android-linux)
126
- os=-linux-android
127
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128
- ;;
129
- *)
130
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
131
- if [ $basic_machine != $1 ]
132
- then os=`echo $1 | sed 's/.*-/-/'`
133
- else os=; fi
134
- ;;
135
- esac
113
+ # Split fields of configuration type
114
+ # shellcheck disable=SC2162
115
+ IFS="-" read field1 field2 field3 field4 <<EOF
116
+ $1
117
+ EOF
136
118
 
137
- ### Let's recognize common machines as not being operating systems so
138
- ### that things like config.sub decstation-3100 work. We also
139
- ### recognize some manufacturers as not being operating systems, so we
140
- ### can provide default operating systems below.
141
- case $os in
142
- -sun*os*)
143
- # Prevent following clause from handling this invalid input.
144
- ;;
145
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
146
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
147
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
148
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
149
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
150
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151
- -apple | -axis | -knuth | -cray | -microblaze*)
152
- os=
153
- basic_machine=$1
154
- ;;
155
- -bluegene*)
156
- os=-cnk
157
- ;;
158
- -sim | -cisco | -oki | -wec | -winbond)
159
- os=
160
- basic_machine=$1
161
- ;;
162
- -scout)
163
- ;;
164
- -wrs)
165
- os=-vxworks
166
- basic_machine=$1
167
- ;;
168
- -chorusos*)
169
- os=-chorusos
170
- basic_machine=$1
171
- ;;
172
- -chorusrdb)
173
- os=-chorusrdb
174
- basic_machine=$1
175
- ;;
176
- -hiux*)
177
- os=-hiuxwe2
178
- ;;
179
- -sco6)
180
- os=-sco5v6
181
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
182
- ;;
183
- -sco5)
184
- os=-sco3.2v5
185
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
186
- ;;
187
- -sco4)
188
- os=-sco3.2v4
189
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
190
- ;;
191
- -sco3.2.[4-9]*)
192
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
193
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
194
- ;;
195
- -sco3.2v[4-9]*)
196
- # Don't forget version if it is 3.2v4 or newer.
197
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
198
- ;;
199
- -sco5v6*)
200
- # Don't forget version if it is 3.2v4 or newer.
201
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202
- ;;
203
- -sco*)
204
- os=-sco3.2v2
205
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
206
- ;;
207
- -udk*)
208
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
209
- ;;
210
- -isc)
211
- os=-isc2.2
212
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
213
- ;;
214
- -clix*)
215
- basic_machine=clipper-intergraph
216
- ;;
217
- -isc*)
218
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
219
- ;;
220
- -lynx*178)
221
- os=-lynxos178
222
- ;;
223
- -lynx*5)
224
- os=-lynxos5
225
- ;;
226
- -lynx*)
227
- os=-lynxos
119
+ # Separate into logical components for further validation
120
+ case $1 in
121
+ *-*-*-*-*)
122
+ echo Invalid configuration \`"$1"\': more than four components >&2
123
+ exit 1
228
124
  ;;
229
- -ptx*)
230
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
125
+ *-*-*-*)
126
+ basic_machine=$field1-$field2
127
+ basic_os=$field3-$field4
231
128
  ;;
232
- -windowsnt*)
233
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
129
+ *-*-*)
130
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
131
+ # parts
132
+ maybe_os=$field2-$field3
133
+ case $maybe_os in
134
+ nto-qnx* | linux-* | uclinux-uclibc* \
135
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
136
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
137
+ | storm-chaos* | os2-emx* | rtmk-nova*)
138
+ basic_machine=$field1
139
+ basic_os=$maybe_os
140
+ ;;
141
+ android-linux)
142
+ basic_machine=$field1-unknown
143
+ basic_os=linux-android
144
+ ;;
145
+ *)
146
+ basic_machine=$field1-$field2
147
+ basic_os=$field3
148
+ ;;
149
+ esac
234
150
  ;;
235
- -psos*)
236
- os=-psos
151
+ *-*)
152
+ # A lone config we happen to match not fitting any pattern
153
+ case $field1-$field2 in
154
+ decstation-3100)
155
+ basic_machine=mips-dec
156
+ basic_os=
157
+ ;;
158
+ *-*)
159
+ # Second component is usually, but not always the OS
160
+ case $field2 in
161
+ # Prevent following clause from handling this valid os
162
+ sun*os*)
163
+ basic_machine=$field1
164
+ basic_os=$field2
165
+ ;;
166
+ # Manufacturers
167
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
168
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
169
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
170
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
171
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
172
+ | ultra | tti* | harris | dolphin | highlevel | gould \
173
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
174
+ | microblaze* | sim | cisco \
175
+ | oki | wec | wrs | winbond)
176
+ basic_machine=$field1-$field2
177
+ basic_os=
178
+ ;;
179
+ *)
180
+ basic_machine=$field1
181
+ basic_os=$field2
182
+ ;;
183
+ esac
184
+ ;;
185
+ esac
237
186
  ;;
238
- -mint | -mint[0-9]*)
239
- basic_machine=m68k-atari
240
- os=-mint
187
+ *)
188
+ # Convert single-component short-hands not valid as part of
189
+ # multi-component configurations.
190
+ case $field1 in
191
+ 386bsd)
192
+ basic_machine=i386-pc
193
+ basic_os=bsd
194
+ ;;
195
+ a29khif)
196
+ basic_machine=a29k-amd
197
+ basic_os=udi
198
+ ;;
199
+ adobe68k)
200
+ basic_machine=m68010-adobe
201
+ basic_os=scout
202
+ ;;
203
+ alliant)
204
+ basic_machine=fx80-alliant
205
+ basic_os=
206
+ ;;
207
+ altos | altos3068)
208
+ basic_machine=m68k-altos
209
+ basic_os=
210
+ ;;
211
+ am29k)
212
+ basic_machine=a29k-none
213
+ basic_os=bsd
214
+ ;;
215
+ amdahl)
216
+ basic_machine=580-amdahl
217
+ basic_os=sysv
218
+ ;;
219
+ amiga)
220
+ basic_machine=m68k-unknown
221
+ basic_os=
222
+ ;;
223
+ amigaos | amigados)
224
+ basic_machine=m68k-unknown
225
+ basic_os=amigaos
226
+ ;;
227
+ amigaunix | amix)
228
+ basic_machine=m68k-unknown
229
+ basic_os=sysv4
230
+ ;;
231
+ apollo68)
232
+ basic_machine=m68k-apollo
233
+ basic_os=sysv
234
+ ;;
235
+ apollo68bsd)
236
+ basic_machine=m68k-apollo
237
+ basic_os=bsd
238
+ ;;
239
+ aros)
240
+ basic_machine=i386-pc
241
+ basic_os=aros
242
+ ;;
243
+ aux)
244
+ basic_machine=m68k-apple
245
+ basic_os=aux
246
+ ;;
247
+ balance)
248
+ basic_machine=ns32k-sequent
249
+ basic_os=dynix
250
+ ;;
251
+ blackfin)
252
+ basic_machine=bfin-unknown
253
+ basic_os=linux
254
+ ;;
255
+ cegcc)
256
+ basic_machine=arm-unknown
257
+ basic_os=cegcc
258
+ ;;
259
+ convex-c1)
260
+ basic_machine=c1-convex
261
+ basic_os=bsd
262
+ ;;
263
+ convex-c2)
264
+ basic_machine=c2-convex
265
+ basic_os=bsd
266
+ ;;
267
+ convex-c32)
268
+ basic_machine=c32-convex
269
+ basic_os=bsd
270
+ ;;
271
+ convex-c34)
272
+ basic_machine=c34-convex
273
+ basic_os=bsd
274
+ ;;
275
+ convex-c38)
276
+ basic_machine=c38-convex
277
+ basic_os=bsd
278
+ ;;
279
+ cray)
280
+ basic_machine=j90-cray
281
+ basic_os=unicos
282
+ ;;
283
+ crds | unos)
284
+ basic_machine=m68k-crds
285
+ basic_os=
286
+ ;;
287
+ da30)
288
+ basic_machine=m68k-da30
289
+ basic_os=
290
+ ;;
291
+ decstation | pmax | pmin | dec3100 | decstatn)
292
+ basic_machine=mips-dec
293
+ basic_os=
294
+ ;;
295
+ delta88)
296
+ basic_machine=m88k-motorola
297
+ basic_os=sysv3
298
+ ;;
299
+ dicos)
300
+ basic_machine=i686-pc
301
+ basic_os=dicos
302
+ ;;
303
+ djgpp)
304
+ basic_machine=i586-pc
305
+ basic_os=msdosdjgpp
306
+ ;;
307
+ ebmon29k)
308
+ basic_machine=a29k-amd
309
+ basic_os=ebmon
310
+ ;;
311
+ es1800 | OSE68k | ose68k | ose | OSE)
312
+ basic_machine=m68k-ericsson
313
+ basic_os=ose
314
+ ;;
315
+ gmicro)
316
+ basic_machine=tron-gmicro
317
+ basic_os=sysv
318
+ ;;
319
+ go32)
320
+ basic_machine=i386-pc
321
+ basic_os=go32
322
+ ;;
323
+ h8300hms)
324
+ basic_machine=h8300-hitachi
325
+ basic_os=hms
326
+ ;;
327
+ h8300xray)
328
+ basic_machine=h8300-hitachi
329
+ basic_os=xray
330
+ ;;
331
+ h8500hms)
332
+ basic_machine=h8500-hitachi
333
+ basic_os=hms
334
+ ;;
335
+ harris)
336
+ basic_machine=m88k-harris
337
+ basic_os=sysv3
338
+ ;;
339
+ hp300 | hp300hpux)
340
+ basic_machine=m68k-hp
341
+ basic_os=hpux
342
+ ;;
343
+ hp300bsd)
344
+ basic_machine=m68k-hp
345
+ basic_os=bsd
346
+ ;;
347
+ hppaosf)
348
+ basic_machine=hppa1.1-hp
349
+ basic_os=osf
350
+ ;;
351
+ hppro)
352
+ basic_machine=hppa1.1-hp
353
+ basic_os=proelf
354
+ ;;
355
+ i386mach)
356
+ basic_machine=i386-mach
357
+ basic_os=mach
358
+ ;;
359
+ isi68 | isi)
360
+ basic_machine=m68k-isi
361
+ basic_os=sysv
362
+ ;;
363
+ m68knommu)
364
+ basic_machine=m68k-unknown
365
+ basic_os=linux
366
+ ;;
367
+ magnum | m3230)
368
+ basic_machine=mips-mips
369
+ basic_os=sysv
370
+ ;;
371
+ merlin)
372
+ basic_machine=ns32k-utek
373
+ basic_os=sysv
374
+ ;;
375
+ mingw64)
376
+ basic_machine=x86_64-pc
377
+ basic_os=mingw64
378
+ ;;
379
+ mingw32)
380
+ basic_machine=i686-pc
381
+ basic_os=mingw32
382
+ ;;
383
+ mingw32ce)
384
+ basic_machine=arm-unknown
385
+ basic_os=mingw32ce
386
+ ;;
387
+ monitor)
388
+ basic_machine=m68k-rom68k
389
+ basic_os=coff
390
+ ;;
391
+ morphos)
392
+ basic_machine=powerpc-unknown
393
+ basic_os=morphos
394
+ ;;
395
+ moxiebox)
396
+ basic_machine=moxie-unknown
397
+ basic_os=moxiebox
398
+ ;;
399
+ msdos)
400
+ basic_machine=i386-pc
401
+ basic_os=msdos
402
+ ;;
403
+ msys)
404
+ basic_machine=i686-pc
405
+ basic_os=msys
406
+ ;;
407
+ mvs)
408
+ basic_machine=i370-ibm
409
+ basic_os=mvs
410
+ ;;
411
+ nacl)
412
+ basic_machine=le32-unknown
413
+ basic_os=nacl
414
+ ;;
415
+ ncr3000)
416
+ basic_machine=i486-ncr
417
+ basic_os=sysv4
418
+ ;;
419
+ netbsd386)
420
+ basic_machine=i386-pc
421
+ basic_os=netbsd
422
+ ;;
423
+ netwinder)
424
+ basic_machine=armv4l-rebel
425
+ basic_os=linux
426
+ ;;
427
+ news | news700 | news800 | news900)
428
+ basic_machine=m68k-sony
429
+ basic_os=newsos
430
+ ;;
431
+ news1000)
432
+ basic_machine=m68030-sony
433
+ basic_os=newsos
434
+ ;;
435
+ necv70)
436
+ basic_machine=v70-nec
437
+ basic_os=sysv
438
+ ;;
439
+ nh3000)
440
+ basic_machine=m68k-harris
441
+ basic_os=cxux
442
+ ;;
443
+ nh[45]000)
444
+ basic_machine=m88k-harris
445
+ basic_os=cxux
446
+ ;;
447
+ nindy960)
448
+ basic_machine=i960-intel
449
+ basic_os=nindy
450
+ ;;
451
+ mon960)
452
+ basic_machine=i960-intel
453
+ basic_os=mon960
454
+ ;;
455
+ nonstopux)
456
+ basic_machine=mips-compaq
457
+ basic_os=nonstopux
458
+ ;;
459
+ os400)
460
+ basic_machine=powerpc-ibm
461
+ basic_os=os400
462
+ ;;
463
+ OSE68000 | ose68000)
464
+ basic_machine=m68000-ericsson
465
+ basic_os=ose
466
+ ;;
467
+ os68k)
468
+ basic_machine=m68k-none
469
+ basic_os=os68k
470
+ ;;
471
+ paragon)
472
+ basic_machine=i860-intel
473
+ basic_os=osf
474
+ ;;
475
+ parisc)
476
+ basic_machine=hppa-unknown
477
+ basic_os=linux
478
+ ;;
479
+ psp)
480
+ basic_machine=mipsallegrexel-sony
481
+ basic_os=psp
482
+ ;;
483
+ pw32)
484
+ basic_machine=i586-unknown
485
+ basic_os=pw32
486
+ ;;
487
+ rdos | rdos64)
488
+ basic_machine=x86_64-pc
489
+ basic_os=rdos
490
+ ;;
491
+ rdos32)
492
+ basic_machine=i386-pc
493
+ basic_os=rdos
494
+ ;;
495
+ rom68k)
496
+ basic_machine=m68k-rom68k
497
+ basic_os=coff
498
+ ;;
499
+ sa29200)
500
+ basic_machine=a29k-amd
501
+ basic_os=udi
502
+ ;;
503
+ sei)
504
+ basic_machine=mips-sei
505
+ basic_os=seiux
506
+ ;;
507
+ sequent)
508
+ basic_machine=i386-sequent
509
+ basic_os=
510
+ ;;
511
+ sps7)
512
+ basic_machine=m68k-bull
513
+ basic_os=sysv2
514
+ ;;
515
+ st2000)
516
+ basic_machine=m68k-tandem
517
+ basic_os=
518
+ ;;
519
+ stratus)
520
+ basic_machine=i860-stratus
521
+ basic_os=sysv4
522
+ ;;
523
+ sun2)
524
+ basic_machine=m68000-sun
525
+ basic_os=
526
+ ;;
527
+ sun2os3)
528
+ basic_machine=m68000-sun
529
+ basic_os=sunos3
530
+ ;;
531
+ sun2os4)
532
+ basic_machine=m68000-sun
533
+ basic_os=sunos4
534
+ ;;
535
+ sun3)
536
+ basic_machine=m68k-sun
537
+ basic_os=
538
+ ;;
539
+ sun3os3)
540
+ basic_machine=m68k-sun
541
+ basic_os=sunos3
542
+ ;;
543
+ sun3os4)
544
+ basic_machine=m68k-sun
545
+ basic_os=sunos4
546
+ ;;
547
+ sun4)
548
+ basic_machine=sparc-sun
549
+ basic_os=
550
+ ;;
551
+ sun4os3)
552
+ basic_machine=sparc-sun
553
+ basic_os=sunos3
554
+ ;;
555
+ sun4os4)
556
+ basic_machine=sparc-sun
557
+ basic_os=sunos4
558
+ ;;
559
+ sun4sol2)
560
+ basic_machine=sparc-sun
561
+ basic_os=solaris2
562
+ ;;
563
+ sun386 | sun386i | roadrunner)
564
+ basic_machine=i386-sun
565
+ basic_os=
566
+ ;;
567
+ sv1)
568
+ basic_machine=sv1-cray
569
+ basic_os=unicos
570
+ ;;
571
+ symmetry)
572
+ basic_machine=i386-sequent
573
+ basic_os=dynix
574
+ ;;
575
+ t3e)
576
+ basic_machine=alphaev5-cray
577
+ basic_os=unicos
578
+ ;;
579
+ t90)
580
+ basic_machine=t90-cray
581
+ basic_os=unicos
582
+ ;;
583
+ toad1)
584
+ basic_machine=pdp10-xkl
585
+ basic_os=tops20
586
+ ;;
587
+ tpf)
588
+ basic_machine=s390x-ibm
589
+ basic_os=tpf
590
+ ;;
591
+ udi29k)
592
+ basic_machine=a29k-amd
593
+ basic_os=udi
594
+ ;;
595
+ ultra3)
596
+ basic_machine=a29k-nyu
597
+ basic_os=sym1
598
+ ;;
599
+ v810 | necv810)
600
+ basic_machine=v810-nec
601
+ basic_os=none
602
+ ;;
603
+ vaxv)
604
+ basic_machine=vax-dec
605
+ basic_os=sysv
606
+ ;;
607
+ vms)
608
+ basic_machine=vax-dec
609
+ basic_os=vms
610
+ ;;
611
+ vsta)
612
+ basic_machine=i386-pc
613
+ basic_os=vsta
614
+ ;;
615
+ vxworks960)
616
+ basic_machine=i960-wrs
617
+ basic_os=vxworks
618
+ ;;
619
+ vxworks68)
620
+ basic_machine=m68k-wrs
621
+ basic_os=vxworks
622
+ ;;
623
+ vxworks29k)
624
+ basic_machine=a29k-wrs
625
+ basic_os=vxworks
626
+ ;;
627
+ xbox)
628
+ basic_machine=i686-pc
629
+ basic_os=mingw32
630
+ ;;
631
+ ymp)
632
+ basic_machine=ymp-cray
633
+ basic_os=unicos
634
+ ;;
635
+ *)
636
+ basic_machine=$1
637
+ basic_os=
638
+ ;;
639
+ esac
241
640
  ;;
242
641
  esac
243
642
 
244
- # Decode aliases for certain CPU-COMPANY combinations.
643
+ # Decode 1-component or ad-hoc basic machines
245
644
  case $basic_machine in
246
- # Recognize the basic CPU types without company name.
247
- # Some are omitted here because they have special meanings below.
248
- 1750a | 580 \
249
- | a29k \
250
- | aarch64 | aarch64_be \
251
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
252
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
253
- | am33_2.0 \
254
- | arc | arceb \
255
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
256
- | avr | avr32 \
257
- | ba \
258
- | be32 | be64 \
259
- | bfin \
260
- | c4x | c8051 | clipper \
261
- | d10v | d30v | dlx | dsp16xx \
262
- | e2k | epiphany \
263
- | fido | fr30 | frv | ft32 \
264
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265
- | hexagon \
266
- | i370 | i860 | i960 | ia16 | ia64 \
267
- | ip2k | iq2000 \
268
- | k1om \
269
- | le32 | le64 \
270
- | lm32 \
271
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
272
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
273
- | mips | mipsbe | mipseb | mipsel | mipsle \
274
- | mips16 \
275
- | mips64 | mips64el \
276
- | mips64octeon | mips64octeonel \
277
- | mips64orion | mips64orionel \
278
- | mips64r5900 | mips64r5900el \
279
- | mips64vr | mips64vrel \
280
- | mips64vr4100 | mips64vr4100el \
281
- | mips64vr4300 | mips64vr4300el \
282
- | mips64vr5000 | mips64vr5000el \
283
- | mips64vr5900 | mips64vr5900el \
284
- | mipsisa32 | mipsisa32el \
285
- | mipsisa32r2 | mipsisa32r2el \
286
- | mipsisa32r6 | mipsisa32r6el \
287
- | mipsisa64 | mipsisa64el \
288
- | mipsisa64r2 | mipsisa64r2el \
289
- | mipsisa64r6 | mipsisa64r6el \
290
- | mipsisa64sb1 | mipsisa64sb1el \
291
- | mipsisa64sr71k | mipsisa64sr71kel \
292
- | mipsr5900 | mipsr5900el \
293
- | mipstx39 | mipstx39el \
294
- | mn10200 | mn10300 \
295
- | moxie \
296
- | mt \
297
- | msp430 \
298
- | nds32 | nds32le | nds32be \
299
- | nios | nios2 | nios2eb | nios2el \
300
- | ns16k | ns32k \
301
- | open8 | or1k | or1knd | or32 \
302
- | pdp10 | pdp11 | pj | pjl \
303
- | powerpc | powerpc64 | powerpc64le | powerpcle \
304
- | pru \
305
- | pyramid \
306
- | riscv32 | riscv64 \
307
- | rl78 | rx \
308
- | score \
309
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
310
- | sh64 | sh64le \
311
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
312
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
313
- | spu \
314
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
315
- | ubicom32 \
316
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
317
- | visium \
318
- | wasm32 \
319
- | we32k \
320
- | x86 | xc16x | xstormy16 | xtensa \
321
- | z8k | z80)
322
- basic_machine=$basic_machine-unknown
323
- ;;
324
- c54x)
325
- basic_machine=tic54x-unknown
326
- ;;
327
- c55x)
328
- basic_machine=tic55x-unknown
329
- ;;
330
- c6x)
331
- basic_machine=tic6x-unknown
332
- ;;
333
- leon|leon[3-9])
334
- basic_machine=sparc-$basic_machine
335
- ;;
336
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
337
- basic_machine=$basic_machine-unknown
338
- os=-none
645
+ # Here we handle the default manufacturer of certain CPU types. It is in
646
+ # some cases the only manufacturer, in others, it is the most popular.
647
+ w89k)
648
+ cpu=hppa1.1
649
+ vendor=winbond
339
650
  ;;
340
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
651
+ op50n)
652
+ cpu=hppa1.1
653
+ vendor=oki
341
654
  ;;
342
- ms1)
343
- basic_machine=mt-unknown
655
+ op60c)
656
+ cpu=hppa1.1
657
+ vendor=oki
344
658
  ;;
345
-
346
- strongarm | thumb | xscale)
347
- basic_machine=arm-unknown
659
+ ibm*)
660
+ cpu=i370
661
+ vendor=ibm
348
662
  ;;
349
- xgate)
350
- basic_machine=$basic_machine-unknown
351
- os=-none
663
+ orion105)
664
+ cpu=clipper
665
+ vendor=highlevel
352
666
  ;;
353
- xscaleeb)
354
- basic_machine=armeb-unknown
667
+ mac | mpw | mac-mpw)
668
+ cpu=m68k
669
+ vendor=apple
355
670
  ;;
356
-
357
- xscaleel)
358
- basic_machine=armel-unknown
671
+ pmac | pmac-mpw)
672
+ cpu=powerpc
673
+ vendor=apple
359
674
  ;;
360
675
 
361
- # We use `pc' rather than `unknown'
362
- # because (1) that's what they normally are, and
363
- # (2) the word "unknown" tends to confuse beginning users.
364
- i*86 | x86_64)
365
- basic_machine=$basic_machine-pc
366
- ;;
367
- # Object if more than one company name word.
368
- *-*-*)
369
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
370
- exit 1
371
- ;;
372
- # Recognize the basic CPU types with company name.
373
- 580-* \
374
- | a29k-* \
375
- | aarch64-* | aarch64_be-* \
376
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
377
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
378
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
379
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
380
- | avr-* | avr32-* \
381
- | ba-* \
382
- | be32-* | be64-* \
383
- | bfin-* | bs2000-* \
384
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
385
- | c8051-* | clipper-* | craynv-* | cydra-* \
386
- | d10v-* | d30v-* | dlx-* \
387
- | e2k-* | elxsi-* \
388
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
389
- | h8300-* | h8500-* \
390
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
391
- | hexagon-* \
392
- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
393
- | ip2k-* | iq2000-* \
394
- | k1om-* \
395
- | le32-* | le64-* \
396
- | lm32-* \
397
- | m32c-* | m32r-* | m32rle-* \
398
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
399
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
400
- | microblaze-* | microblazeel-* \
401
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
402
- | mips16-* \
403
- | mips64-* | mips64el-* \
404
- | mips64octeon-* | mips64octeonel-* \
405
- | mips64orion-* | mips64orionel-* \
406
- | mips64r5900-* | mips64r5900el-* \
407
- | mips64vr-* | mips64vrel-* \
408
- | mips64vr4100-* | mips64vr4100el-* \
409
- | mips64vr4300-* | mips64vr4300el-* \
410
- | mips64vr5000-* | mips64vr5000el-* \
411
- | mips64vr5900-* | mips64vr5900el-* \
412
- | mipsisa32-* | mipsisa32el-* \
413
- | mipsisa32r2-* | mipsisa32r2el-* \
414
- | mipsisa32r6-* | mipsisa32r6el-* \
415
- | mipsisa64-* | mipsisa64el-* \
416
- | mipsisa64r2-* | mipsisa64r2el-* \
417
- | mipsisa64r6-* | mipsisa64r6el-* \
418
- | mipsisa64sb1-* | mipsisa64sb1el-* \
419
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
420
- | mipsr5900-* | mipsr5900el-* \
421
- | mipstx39-* | mipstx39el-* \
422
- | mmix-* \
423
- | mt-* \
424
- | msp430-* \
425
- | nds32-* | nds32le-* | nds32be-* \
426
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
427
- | none-* | np1-* | ns16k-* | ns32k-* \
428
- | open8-* \
429
- | or1k*-* \
430
- | orion-* \
431
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
432
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
433
- | pru-* \
434
- | pyramid-* \
435
- | riscv32-* | riscv64-* \
436
- | rl78-* | romp-* | rs6000-* | rx-* \
437
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
438
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
439
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
440
- | sparclite-* \
441
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
442
- | tahoe-* \
443
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
444
- | tile*-* \
445
- | tron-* \
446
- | ubicom32-* \
447
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
448
- | vax-* \
449
- | visium-* \
450
- | wasm32-* \
451
- | we32k-* \
452
- | x86-* | x86_64-* | xc16x-* | xps100-* \
453
- | xstormy16-* | xtensa*-* \
454
- | ymp-* \
455
- | z8k-* | z80-*)
456
- ;;
457
- # Recognize the basic CPU types without company name, with glob match.
458
- xtensa*)
459
- basic_machine=$basic_machine-unknown
460
- ;;
461
676
  # Recognize the various machine names and aliases which stand
462
677
  # for a CPU type and a company and sometimes even an OS.
463
- 386bsd)
464
- basic_machine=i386-unknown
465
- os=-bsd
466
- ;;
467
678
  3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
468
- basic_machine=m68000-att
679
+ cpu=m68000
680
+ vendor=att
469
681
  ;;
470
682
  3b*)
471
- basic_machine=we32k-att
472
- ;;
473
- a29khif)
474
- basic_machine=a29k-amd
475
- os=-udi
476
- ;;
477
- abacus)
478
- basic_machine=abacus-unknown
479
- ;;
480
- adobe68k)
481
- basic_machine=m68010-adobe
482
- os=-scout
483
- ;;
484
- alliant | fx80)
485
- basic_machine=fx80-alliant
486
- ;;
487
- altos | altos3068)
488
- basic_machine=m68k-altos
489
- ;;
490
- am29k)
491
- basic_machine=a29k-none
492
- os=-bsd
493
- ;;
494
- amd64)
495
- basic_machine=x86_64-pc
496
- ;;
497
- amd64-*)
498
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
499
- ;;
500
- amdahl)
501
- basic_machine=580-amdahl
502
- os=-sysv
503
- ;;
504
- amiga | amiga-*)
505
- basic_machine=m68k-unknown
506
- ;;
507
- amigaos | amigados)
508
- basic_machine=m68k-unknown
509
- os=-amigaos
510
- ;;
511
- amigaunix | amix)
512
- basic_machine=m68k-unknown
513
- os=-sysv4
514
- ;;
515
- apollo68)
516
- basic_machine=m68k-apollo
517
- os=-sysv
518
- ;;
519
- apollo68bsd)
520
- basic_machine=m68k-apollo
521
- os=-bsd
522
- ;;
523
- aros)
524
- basic_machine=i386-pc
525
- os=-aros
526
- ;;
527
- asmjs)
528
- basic_machine=asmjs-unknown
529
- ;;
530
- aux)
531
- basic_machine=m68k-apple
532
- os=-aux
533
- ;;
534
- balance)
535
- basic_machine=ns32k-sequent
536
- os=-dynix
537
- ;;
538
- blackfin)
539
- basic_machine=bfin-unknown
540
- os=-linux
541
- ;;
542
- blackfin-*)
543
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
544
- os=-linux
683
+ cpu=we32k
684
+ vendor=att
545
685
  ;;
546
686
  bluegene*)
547
- basic_machine=powerpc-ibm
548
- os=-cnk
549
- ;;
550
- c54x-*)
551
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
552
- ;;
553
- c55x-*)
554
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
555
- ;;
556
- c6x-*)
557
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
558
- ;;
559
- c90)
560
- basic_machine=c90-cray
561
- os=-unicos
562
- ;;
563
- cegcc)
564
- basic_machine=arm-unknown
565
- os=-cegcc
566
- ;;
567
- convex-c1)
568
- basic_machine=c1-convex
569
- os=-bsd
570
- ;;
571
- convex-c2)
572
- basic_machine=c2-convex
573
- os=-bsd
574
- ;;
575
- convex-c32)
576
- basic_machine=c32-convex
577
- os=-bsd
578
- ;;
579
- convex-c34)
580
- basic_machine=c34-convex
581
- os=-bsd
582
- ;;
583
- convex-c38)
584
- basic_machine=c38-convex
585
- os=-bsd
586
- ;;
587
- cray | j90)
588
- basic_machine=j90-cray
589
- os=-unicos
590
- ;;
591
- craynv)
592
- basic_machine=craynv-cray
593
- os=-unicosmp
594
- ;;
595
- cr16 | cr16-*)
596
- basic_machine=cr16-unknown
597
- os=-elf
598
- ;;
599
- crds | unos)
600
- basic_machine=m68k-crds
601
- ;;
602
- crisv32 | crisv32-* | etraxfs*)
603
- basic_machine=crisv32-axis
604
- ;;
605
- cris | cris-* | etrax*)
606
- basic_machine=cris-axis
607
- ;;
608
- crx)
609
- basic_machine=crx-unknown
610
- os=-elf
611
- ;;
612
- da30 | da30-*)
613
- basic_machine=m68k-da30
614
- ;;
615
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
616
- basic_machine=mips-dec
687
+ cpu=powerpc
688
+ vendor=ibm
689
+ basic_os=cnk
617
690
  ;;
618
691
  decsystem10* | dec10*)
619
- basic_machine=pdp10-dec
620
- os=-tops10
692
+ cpu=pdp10
693
+ vendor=dec
694
+ basic_os=tops10
621
695
  ;;
622
696
  decsystem20* | dec20*)
623
- basic_machine=pdp10-dec
624
- os=-tops20
697
+ cpu=pdp10
698
+ vendor=dec
699
+ basic_os=tops20
625
700
  ;;
626
701
  delta | 3300 | motorola-3300 | motorola-delta \
627
702
  | 3300-motorola | delta-motorola)
628
- basic_machine=m68k-motorola
703
+ cpu=m68k
704
+ vendor=motorola
629
705
  ;;
630
- delta88)
631
- basic_machine=m88k-motorola
632
- os=-sysv3
633
- ;;
634
- dicos)
635
- basic_machine=i686-pc
636
- os=-dicos
637
- ;;
638
- djgpp)
639
- basic_machine=i586-pc
640
- os=-msdosdjgpp
641
- ;;
642
- dpx20 | dpx20-*)
643
- basic_machine=rs6000-bull
644
- os=-bosx
645
- ;;
646
- dpx2* | dpx2*-bull)
647
- basic_machine=m68k-bull
648
- os=-sysv3
649
- ;;
650
- e500v[12])
651
- basic_machine=powerpc-unknown
652
- os=$os"spe"
653
- ;;
654
- e500v[12]-*)
655
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
656
- os=$os"spe"
657
- ;;
658
- ebmon29k)
659
- basic_machine=a29k-amd
660
- os=-ebmon
661
- ;;
662
- elxsi)
663
- basic_machine=elxsi-elxsi
664
- os=-bsd
706
+ dpx2*)
707
+ cpu=m68k
708
+ vendor=bull
709
+ basic_os=sysv3
665
710
  ;;
666
711
  encore | umax | mmax)
667
- basic_machine=ns32k-encore
712
+ cpu=ns32k
713
+ vendor=encore
668
714
  ;;
669
- es1800 | OSE68k | ose68k | ose | OSE)
670
- basic_machine=m68k-ericsson
671
- os=-ose
715
+ elxsi)
716
+ cpu=elxsi
717
+ vendor=elxsi
718
+ basic_os=${basic_os:-bsd}
672
719
  ;;
673
720
  fx2800)
674
- basic_machine=i860-alliant
721
+ cpu=i860
722
+ vendor=alliant
675
723
  ;;
676
724
  genix)
677
- basic_machine=ns32k-ns
678
- ;;
679
- gmicro)
680
- basic_machine=tron-gmicro
681
- os=-sysv
682
- ;;
683
- go32)
684
- basic_machine=i386-pc
685
- os=-go32
725
+ cpu=ns32k
726
+ vendor=ns
686
727
  ;;
687
728
  h3050r* | hiux*)
688
- basic_machine=hppa1.1-hitachi
689
- os=-hiuxwe2
690
- ;;
691
- h8300hms)
692
- basic_machine=h8300-hitachi
693
- os=-hms
694
- ;;
695
- h8300xray)
696
- basic_machine=h8300-hitachi
697
- os=-xray
698
- ;;
699
- h8500hms)
700
- basic_machine=h8500-hitachi
701
- os=-hms
702
- ;;
703
- harris)
704
- basic_machine=m88k-harris
705
- os=-sysv3
706
- ;;
707
- hp300-*)
708
- basic_machine=m68k-hp
709
- ;;
710
- hp300bsd)
711
- basic_machine=m68k-hp
712
- os=-bsd
713
- ;;
714
- hp300hpux)
715
- basic_machine=m68k-hp
716
- os=-hpux
729
+ cpu=hppa1.1
730
+ vendor=hitachi
731
+ basic_os=hiuxwe2
717
732
  ;;
718
733
  hp3k9[0-9][0-9] | hp9[0-9][0-9])
719
- basic_machine=hppa1.0-hp
734
+ cpu=hppa1.0
735
+ vendor=hp
720
736
  ;;
721
737
  hp9k2[0-9][0-9] | hp9k31[0-9])
722
- basic_machine=m68000-hp
738
+ cpu=m68000
739
+ vendor=hp
723
740
  ;;
724
741
  hp9k3[2-9][0-9])
725
- basic_machine=m68k-hp
742
+ cpu=m68k
743
+ vendor=hp
726
744
  ;;
727
745
  hp9k6[0-9][0-9] | hp6[0-9][0-9])
728
- basic_machine=hppa1.0-hp
746
+ cpu=hppa1.0
747
+ vendor=hp
729
748
  ;;
730
749
  hp9k7[0-79][0-9] | hp7[0-79][0-9])
731
- basic_machine=hppa1.1-hp
750
+ cpu=hppa1.1
751
+ vendor=hp
732
752
  ;;
733
753
  hp9k78[0-9] | hp78[0-9])
734
754
  # FIXME: really hppa2.0-hp
735
- basic_machine=hppa1.1-hp
755
+ cpu=hppa1.1
756
+ vendor=hp
736
757
  ;;
737
758
  hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
738
759
  # FIXME: really hppa2.0-hp
739
- basic_machine=hppa1.1-hp
760
+ cpu=hppa1.1
761
+ vendor=hp
740
762
  ;;
741
763
  hp9k8[0-9][13679] | hp8[0-9][13679])
742
- basic_machine=hppa1.1-hp
764
+ cpu=hppa1.1
765
+ vendor=hp
743
766
  ;;
744
767
  hp9k8[0-9][0-9] | hp8[0-9][0-9])
745
- basic_machine=hppa1.0-hp
746
- ;;
747
- hppa-next)
748
- os=-nextstep3
749
- ;;
750
- hppaosf)
751
- basic_machine=hppa1.1-hp
752
- os=-osf
753
- ;;
754
- hppro)
755
- basic_machine=hppa1.1-hp
756
- os=-proelf
757
- ;;
758
- i370-ibm* | ibm*)
759
- basic_machine=i370-ibm
768
+ cpu=hppa1.0
769
+ vendor=hp
760
770
  ;;
761
771
  i*86v32)
762
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
763
- os=-sysv32
772
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
773
+ vendor=pc
774
+ basic_os=sysv32
764
775
  ;;
765
776
  i*86v4*)
766
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
767
- os=-sysv4
777
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
778
+ vendor=pc
779
+ basic_os=sysv4
768
780
  ;;
769
781
  i*86v)
770
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
771
- os=-sysv
782
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
783
+ vendor=pc
784
+ basic_os=sysv
772
785
  ;;
773
786
  i*86sol2)
774
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
775
- os=-solaris2
787
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
788
+ vendor=pc
789
+ basic_os=solaris2
776
790
  ;;
777
- i386mach)
778
- basic_machine=i386-mach
779
- os=-mach
780
- ;;
781
- i386-vsta | vsta)
782
- basic_machine=i386-unknown
783
- os=-vsta
791
+ j90 | j90-cray)
792
+ cpu=j90
793
+ vendor=cray
794
+ basic_os=${basic_os:-unicos}
784
795
  ;;
785
796
  iris | iris4d)
786
- basic_machine=mips-sgi
787
- case $os in
788
- -irix*)
797
+ cpu=mips
798
+ vendor=sgi
799
+ case $basic_os in
800
+ irix*)
789
801
  ;;
790
802
  *)
791
- os=-irix4
803
+ basic_os=irix4
792
804
  ;;
793
805
  esac
794
806
  ;;
795
- isi68 | isi)
796
- basic_machine=m68k-isi
797
- os=-sysv
798
- ;;
799
- leon-*|leon[3-9]-*)
800
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
801
- ;;
802
- m68knommu)
803
- basic_machine=m68k-unknown
804
- os=-linux
805
- ;;
806
- m68knommu-*)
807
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
808
- os=-linux
809
- ;;
810
- m88k-omron*)
811
- basic_machine=m88k-omron
812
- ;;
813
- magnum | m3230)
814
- basic_machine=mips-mips
815
- os=-sysv
816
- ;;
817
- merlin)
818
- basic_machine=ns32k-utek
819
- os=-sysv
820
- ;;
821
- microblaze*)
822
- basic_machine=microblaze-xilinx
823
- ;;
824
- mingw64)
825
- basic_machine=x86_64-pc
826
- os=-mingw64
827
- ;;
828
- mingw32)
829
- basic_machine=i686-pc
830
- os=-mingw32
831
- ;;
832
- mingw32ce)
833
- basic_machine=arm-unknown
834
- os=-mingw32ce
835
- ;;
836
807
  miniframe)
837
- basic_machine=m68000-convergent
838
- ;;
839
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
840
- basic_machine=m68k-atari
841
- os=-mint
842
- ;;
843
- mips3*-*)
844
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
845
- ;;
846
- mips3*)
847
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
808
+ cpu=m68000
809
+ vendor=convergent
848
810
  ;;
849
- monitor)
850
- basic_machine=m68k-rom68k
851
- os=-coff
852
- ;;
853
- morphos)
854
- basic_machine=powerpc-unknown
855
- os=-morphos
856
- ;;
857
- moxiebox)
858
- basic_machine=moxie-unknown
859
- os=-moxiebox
860
- ;;
861
- msdos)
862
- basic_machine=i386-pc
863
- os=-msdos
864
- ;;
865
- ms1-*)
866
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
867
- ;;
868
- msys)
869
- basic_machine=i686-pc
870
- os=-msys
871
- ;;
872
- mvs)
873
- basic_machine=i370-ibm
874
- os=-mvs
875
- ;;
876
- nacl)
877
- basic_machine=le32-unknown
878
- os=-nacl
879
- ;;
880
- ncr3000)
881
- basic_machine=i486-ncr
882
- os=-sysv4
883
- ;;
884
- netbsd386)
885
- basic_machine=i386-unknown
886
- os=-netbsd
887
- ;;
888
- netwinder)
889
- basic_machine=armv4l-rebel
890
- os=-linux
891
- ;;
892
- news | news700 | news800 | news900)
893
- basic_machine=m68k-sony
894
- os=-newsos
895
- ;;
896
- news1000)
897
- basic_machine=m68030-sony
898
- os=-newsos
811
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
812
+ cpu=m68k
813
+ vendor=atari
814
+ basic_os=mint
899
815
  ;;
900
816
  news-3600 | risc-news)
901
- basic_machine=mips-sony
902
- os=-newsos
903
- ;;
904
- necv70)
905
- basic_machine=v70-nec
906
- os=-sysv
907
- ;;
908
- next | m*-next )
909
- basic_machine=m68k-next
910
- case $os in
911
- -nextstep* )
817
+ cpu=mips
818
+ vendor=sony
819
+ basic_os=newsos
820
+ ;;
821
+ next | m*-next)
822
+ cpu=m68k
823
+ vendor=next
824
+ case $basic_os in
825
+ openstep*)
826
+ ;;
827
+ nextstep*)
912
828
  ;;
913
- -ns2*)
914
- os=-nextstep2
829
+ ns2*)
830
+ basic_os=nextstep2
915
831
  ;;
916
832
  *)
917
- os=-nextstep3
833
+ basic_os=nextstep3
918
834
  ;;
919
835
  esac
920
836
  ;;
921
- nh3000)
922
- basic_machine=m68k-harris
923
- os=-cxux
924
- ;;
925
- nh[45]000)
926
- basic_machine=m88k-harris
927
- os=-cxux
928
- ;;
929
- nindy960)
930
- basic_machine=i960-intel
931
- os=-nindy
932
- ;;
933
- mon960)
934
- basic_machine=i960-intel
935
- os=-mon960
936
- ;;
937
- nonstopux)
938
- basic_machine=mips-compaq
939
- os=-nonstopux
940
- ;;
941
837
  np1)
942
- basic_machine=np1-gould
943
- ;;
944
- neo-tandem)
945
- basic_machine=neo-tandem
946
- ;;
947
- nse-tandem)
948
- basic_machine=nse-tandem
949
- ;;
950
- nsr-tandem)
951
- basic_machine=nsr-tandem
952
- ;;
953
- nsx-tandem)
954
- basic_machine=nsx-tandem
838
+ cpu=np1
839
+ vendor=gould
955
840
  ;;
956
841
  op50n-* | op60c-*)
957
- basic_machine=hppa1.1-oki
958
- os=-proelf
959
- ;;
960
- openrisc | openrisc-*)
961
- basic_machine=or32-unknown
962
- ;;
963
- os400)
964
- basic_machine=powerpc-ibm
965
- os=-os400
966
- ;;
967
- OSE68000 | ose68000)
968
- basic_machine=m68000-ericsson
969
- os=-ose
970
- ;;
971
- os68k)
972
- basic_machine=m68k-none
973
- os=-os68k
842
+ cpu=hppa1.1
843
+ vendor=oki
844
+ basic_os=proelf
974
845
  ;;
975
846
  pa-hitachi)
976
- basic_machine=hppa1.1-hitachi
977
- os=-hiuxwe2
978
- ;;
979
- paragon)
980
- basic_machine=i860-intel
981
- os=-osf
982
- ;;
983
- parisc)
984
- basic_machine=hppa-unknown
985
- os=-linux
986
- ;;
987
- parisc-*)
988
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
989
- os=-linux
847
+ cpu=hppa1.1
848
+ vendor=hitachi
849
+ basic_os=hiuxwe2
990
850
  ;;
991
851
  pbd)
992
- basic_machine=sparc-tti
852
+ cpu=sparc
853
+ vendor=tti
993
854
  ;;
994
855
  pbb)
995
- basic_machine=m68k-tti
996
- ;;
997
- pc532 | pc532-*)
998
- basic_machine=ns32k-pc532
999
- ;;
1000
- pc98)
1001
- basic_machine=i386-pc
1002
- ;;
1003
- pc98-*)
1004
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
1005
- ;;
1006
- pentium | p5 | k5 | k6 | nexgen | viac3)
1007
- basic_machine=i586-pc
1008
- ;;
1009
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
1010
- basic_machine=i686-pc
1011
- ;;
1012
- pentiumii | pentium2 | pentiumiii | pentium3)
1013
- basic_machine=i686-pc
856
+ cpu=m68k
857
+ vendor=tti
1014
858
  ;;
1015
- pentium4)
1016
- basic_machine=i786-pc
1017
- ;;
1018
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1019
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1020
- ;;
1021
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
1022
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1023
- ;;
1024
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1025
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1026
- ;;
1027
- pentium4-*)
1028
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
859
+ pc532)
860
+ cpu=ns32k
861
+ vendor=pc532
1029
862
  ;;
1030
863
  pn)
1031
- basic_machine=pn-gould
1032
- ;;
1033
- power) basic_machine=power-ibm
1034
- ;;
1035
- ppc | ppcbe) basic_machine=powerpc-unknown
1036
- ;;
1037
- ppc-* | ppcbe-*)
1038
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1039
- ;;
1040
- ppcle | powerpclittle)
1041
- basic_machine=powerpcle-unknown
1042
- ;;
1043
- ppcle-* | powerpclittle-*)
1044
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
864
+ cpu=pn
865
+ vendor=gould
1045
866
  ;;
1046
- ppc64) basic_machine=powerpc64-unknown
1047
- ;;
1048
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1049
- ;;
1050
- ppc64le | powerpc64little)
1051
- basic_machine=powerpc64le-unknown
1052
- ;;
1053
- ppc64le-* | powerpc64little-*)
1054
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
867
+ power)
868
+ cpu=power
869
+ vendor=ibm
1055
870
  ;;
1056
871
  ps2)
1057
- basic_machine=i386-ibm
1058
- ;;
1059
- pw32)
1060
- basic_machine=i586-unknown
1061
- os=-pw32
1062
- ;;
1063
- rdos | rdos64)
1064
- basic_machine=x86_64-pc
1065
- os=-rdos
1066
- ;;
1067
- rdos32)
1068
- basic_machine=i386-pc
1069
- os=-rdos
1070
- ;;
1071
- rom68k)
1072
- basic_machine=m68k-rom68k
1073
- os=-coff
872
+ cpu=i386
873
+ vendor=ibm
1074
874
  ;;
1075
875
  rm[46]00)
1076
- basic_machine=mips-siemens
876
+ cpu=mips
877
+ vendor=siemens
1077
878
  ;;
1078
879
  rtpc | rtpc-*)
1079
- basic_machine=romp-ibm
1080
- ;;
1081
- s390 | s390-*)
1082
- basic_machine=s390-ibm
1083
- ;;
1084
- s390x | s390x-*)
1085
- basic_machine=s390x-ibm
1086
- ;;
1087
- sa29200)
1088
- basic_machine=a29k-amd
1089
- os=-udi
1090
- ;;
1091
- sb1)
1092
- basic_machine=mipsisa64sb1-unknown
1093
- ;;
1094
- sb1el)
1095
- basic_machine=mipsisa64sb1el-unknown
880
+ cpu=romp
881
+ vendor=ibm
1096
882
  ;;
1097
883
  sde)
1098
- basic_machine=mipsisa32-sde
1099
- os=-elf
884
+ cpu=mipsisa32
885
+ vendor=sde
886
+ basic_os=${basic_os:-elf}
887
+ ;;
888
+ simso-wrs)
889
+ cpu=sparclite
890
+ vendor=wrs
891
+ basic_os=vxworks
1100
892
  ;;
1101
- sei)
1102
- basic_machine=mips-sei
1103
- os=-seiux
893
+ tower | tower-32)
894
+ cpu=m68k
895
+ vendor=ncr
1104
896
  ;;
1105
- sequent)
1106
- basic_machine=i386-sequent
897
+ vpp*|vx|vx-*)
898
+ cpu=f301
899
+ vendor=fujitsu
1107
900
  ;;
1108
- sh)
1109
- basic_machine=sh-hitachi
1110
- os=-hms
901
+ w65)
902
+ cpu=w65
903
+ vendor=wdc
1111
904
  ;;
1112
- sh5el)
1113
- basic_machine=sh5le-unknown
905
+ w89k-*)
906
+ cpu=hppa1.1
907
+ vendor=winbond
908
+ basic_os=proelf
1114
909
  ;;
1115
- sh64)
1116
- basic_machine=sh64-unknown
910
+ none)
911
+ cpu=none
912
+ vendor=none
1117
913
  ;;
1118
- sparclite-wrs | simso-wrs)
1119
- basic_machine=sparclite-wrs
1120
- os=-vxworks
914
+ leon|leon[3-9])
915
+ cpu=sparc
916
+ vendor=$basic_machine
1121
917
  ;;
1122
- sps7)
1123
- basic_machine=m68k-bull
1124
- os=-sysv2
918
+ leon-*|leon[3-9]-*)
919
+ cpu=sparc
920
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
1125
921
  ;;
1126
- spur)
1127
- basic_machine=spur-unknown
922
+
923
+ *-*)
924
+ # shellcheck disable=SC2162
925
+ IFS="-" read cpu vendor <<EOF
926
+ $basic_machine
927
+ EOF
1128
928
  ;;
1129
- st2000)
1130
- basic_machine=m68k-tandem
929
+ # We use `pc' rather than `unknown'
930
+ # because (1) that's what they normally are, and
931
+ # (2) the word "unknown" tends to confuse beginning users.
932
+ i*86 | x86_64)
933
+ cpu=$basic_machine
934
+ vendor=pc
1131
935
  ;;
1132
- stratus)
1133
- basic_machine=i860-stratus
1134
- os=-sysv4
936
+ # These rules are duplicated from below for sake of the special case above;
937
+ # i.e. things that normalized to x86 arches should also default to "pc"
938
+ pc98)
939
+ cpu=i386
940
+ vendor=pc
1135
941
  ;;
1136
- strongarm-* | thumb-*)
1137
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
942
+ x64 | amd64)
943
+ cpu=x86_64
944
+ vendor=pc
1138
945
  ;;
1139
- sun2)
1140
- basic_machine=m68000-sun
946
+ # Recognize the basic CPU types without company name.
947
+ *)
948
+ cpu=$basic_machine
949
+ vendor=unknown
1141
950
  ;;
1142
- sun2os3)
1143
- basic_machine=m68000-sun
1144
- os=-sunos3
951
+ esac
952
+
953
+ unset -v basic_machine
954
+
955
+ # Decode basic machines in the full and proper CPU-Company form.
956
+ case $cpu-$vendor in
957
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
958
+ # some cases the only manufacturer, in others, it is the most popular.
959
+ craynv-unknown)
960
+ vendor=cray
961
+ basic_os=${basic_os:-unicosmp}
1145
962
  ;;
1146
- sun2os4)
1147
- basic_machine=m68000-sun
1148
- os=-sunos4
963
+ c90-unknown | c90-cray)
964
+ vendor=cray
965
+ basic_os=${Basic_os:-unicos}
1149
966
  ;;
1150
- sun3os3)
1151
- basic_machine=m68k-sun
1152
- os=-sunos3
967
+ fx80-unknown)
968
+ vendor=alliant
1153
969
  ;;
1154
- sun3os4)
1155
- basic_machine=m68k-sun
1156
- os=-sunos4
970
+ romp-unknown)
971
+ vendor=ibm
1157
972
  ;;
1158
- sun4os3)
1159
- basic_machine=sparc-sun
1160
- os=-sunos3
973
+ mmix-unknown)
974
+ vendor=knuth
1161
975
  ;;
1162
- sun4os4)
1163
- basic_machine=sparc-sun
1164
- os=-sunos4
976
+ microblaze-unknown | microblazeel-unknown)
977
+ vendor=xilinx
1165
978
  ;;
1166
- sun4sol2)
1167
- basic_machine=sparc-sun
1168
- os=-solaris2
979
+ rs6000-unknown)
980
+ vendor=ibm
1169
981
  ;;
1170
- sun3 | sun3-*)
1171
- basic_machine=m68k-sun
982
+ vax-unknown)
983
+ vendor=dec
1172
984
  ;;
1173
- sun4)
1174
- basic_machine=sparc-sun
985
+ pdp11-unknown)
986
+ vendor=dec
1175
987
  ;;
1176
- sun386 | sun386i | roadrunner)
1177
- basic_machine=i386-sun
988
+ we32k-unknown)
989
+ vendor=att
1178
990
  ;;
1179
- sv1)
1180
- basic_machine=sv1-cray
1181
- os=-unicos
991
+ cydra-unknown)
992
+ vendor=cydrome
1182
993
  ;;
1183
- symmetry)
1184
- basic_machine=i386-sequent
1185
- os=-dynix
994
+ i370-ibm*)
995
+ vendor=ibm
1186
996
  ;;
1187
- t3e)
1188
- basic_machine=alphaev5-cray
1189
- os=-unicos
997
+ orion-unknown)
998
+ vendor=highlevel
1190
999
  ;;
1191
- t90)
1192
- basic_machine=t90-cray
1193
- os=-unicos
1000
+ xps-unknown | xps100-unknown)
1001
+ cpu=xps100
1002
+ vendor=honeywell
1194
1003
  ;;
1195
- tile*)
1196
- basic_machine=$basic_machine-unknown
1197
- os=-linux-gnu
1004
+
1005
+ # Here we normalize CPU types with a missing or matching vendor
1006
+ dpx20-unknown | dpx20-bull)
1007
+ cpu=rs6000
1008
+ vendor=bull
1009
+ basic_os=${basic_os:-bosx}
1198
1010
  ;;
1199
- tx39)
1200
- basic_machine=mipstx39-unknown
1011
+
1012
+ # Here we normalize CPU types irrespective of the vendor
1013
+ amd64-*)
1014
+ cpu=x86_64
1201
1015
  ;;
1202
- tx39el)
1203
- basic_machine=mipstx39el-unknown
1016
+ blackfin-*)
1017
+ cpu=bfin
1018
+ basic_os=linux
1204
1019
  ;;
1205
- toad1)
1206
- basic_machine=pdp10-xkl
1207
- os=-tops20
1020
+ c54x-*)
1021
+ cpu=tic54x
1208
1022
  ;;
1209
- tower | tower-32)
1210
- basic_machine=m68k-ncr
1023
+ c55x-*)
1024
+ cpu=tic55x
1211
1025
  ;;
1212
- tpf)
1213
- basic_machine=s390x-ibm
1214
- os=-tpf
1026
+ c6x-*)
1027
+ cpu=tic6x
1215
1028
  ;;
1216
- udi29k)
1217
- basic_machine=a29k-amd
1218
- os=-udi
1029
+ e500v[12]-*)
1030
+ cpu=powerpc
1031
+ basic_os=${basic_os}"spe"
1219
1032
  ;;
1220
- ultra3)
1221
- basic_machine=a29k-nyu
1222
- os=-sym1
1033
+ mips3*-*)
1034
+ cpu=mips64
1223
1035
  ;;
1224
- v810 | necv810)
1225
- basic_machine=v810-nec
1226
- os=-none
1036
+ ms1-*)
1037
+ cpu=mt
1227
1038
  ;;
1228
- vaxv)
1229
- basic_machine=vax-dec
1230
- os=-sysv
1039
+ m68knommu-*)
1040
+ cpu=m68k
1041
+ basic_os=linux
1231
1042
  ;;
1232
- vms)
1233
- basic_machine=vax-dec
1234
- os=-vms
1043
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1044
+ cpu=s12z
1235
1045
  ;;
1236
- vpp*|vx|vx-*)
1237
- basic_machine=f301-fujitsu
1046
+ openrisc-*)
1047
+ cpu=or32
1238
1048
  ;;
1239
- vxworks960)
1240
- basic_machine=i960-wrs
1241
- os=-vxworks
1049
+ parisc-*)
1050
+ cpu=hppa
1051
+ basic_os=linux
1242
1052
  ;;
1243
- vxworks68)
1244
- basic_machine=m68k-wrs
1245
- os=-vxworks
1053
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1054
+ cpu=i586
1246
1055
  ;;
1247
- vxworks29k)
1248
- basic_machine=a29k-wrs
1249
- os=-vxworks
1056
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
1057
+ cpu=i686
1250
1058
  ;;
1251
- wasm32)
1252
- basic_machine=wasm32-unknown
1059
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1060
+ cpu=i686
1253
1061
  ;;
1254
- w65*)
1255
- basic_machine=w65-wdc
1256
- os=-none
1062
+ pentium4-*)
1063
+ cpu=i786
1257
1064
  ;;
1258
- w89k-*)
1259
- basic_machine=hppa1.1-winbond
1260
- os=-proelf
1065
+ pc98-*)
1066
+ cpu=i386
1261
1067
  ;;
1262
- xbox)
1263
- basic_machine=i686-pc
1264
- os=-mingw32
1068
+ ppc-* | ppcbe-*)
1069
+ cpu=powerpc
1265
1070
  ;;
1266
- xps | xps100)
1267
- basic_machine=xps100-honeywell
1071
+ ppcle-* | powerpclittle-*)
1072
+ cpu=powerpcle
1268
1073
  ;;
1269
- xscale-* | xscalee[bl]-*)
1270
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1074
+ ppc64-*)
1075
+ cpu=powerpc64
1271
1076
  ;;
1272
- ymp)
1273
- basic_machine=ymp-cray
1274
- os=-unicos
1077
+ ppc64le-* | powerpc64little-*)
1078
+ cpu=powerpc64le
1275
1079
  ;;
1276
- z8k-*-coff)
1277
- basic_machine=z8k-unknown
1278
- os=-sim
1080
+ sb1-*)
1081
+ cpu=mipsisa64sb1
1279
1082
  ;;
1280
- z80-*-coff)
1281
- basic_machine=z80-unknown
1282
- os=-sim
1083
+ sb1el-*)
1084
+ cpu=mipsisa64sb1el
1283
1085
  ;;
1284
- none)
1285
- basic_machine=none-none
1286
- os=-none
1086
+ sh5e[lb]-*)
1087
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1287
1088
  ;;
1288
-
1289
- # Here we handle the default manufacturer of certain CPU types. It is in
1290
- # some cases the only manufacturer, in others, it is the most popular.
1291
- w89k)
1292
- basic_machine=hppa1.1-winbond
1089
+ spur-*)
1090
+ cpu=spur
1293
1091
  ;;
1294
- op50n)
1295
- basic_machine=hppa1.1-oki
1092
+ strongarm-* | thumb-*)
1093
+ cpu=arm
1296
1094
  ;;
1297
- op60c)
1298
- basic_machine=hppa1.1-oki
1095
+ tx39-*)
1096
+ cpu=mipstx39
1299
1097
  ;;
1300
- romp)
1301
- basic_machine=romp-ibm
1098
+ tx39el-*)
1099
+ cpu=mipstx39el
1302
1100
  ;;
1303
- mmix)
1304
- basic_machine=mmix-knuth
1101
+ x64-*)
1102
+ cpu=x86_64
1305
1103
  ;;
1306
- rs6000)
1307
- basic_machine=rs6000-ibm
1104
+ xscale-* | xscalee[bl]-*)
1105
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1308
1106
  ;;
1309
- vax)
1310
- basic_machine=vax-dec
1107
+ arm64-*)
1108
+ cpu=aarch64
1311
1109
  ;;
1312
- pdp10)
1313
- # there are many clones, so DEC is not a safe bet
1314
- basic_machine=pdp10-unknown
1110
+
1111
+ # Recognize the canonical CPU Types that limit and/or modify the
1112
+ # company names they are paired with.
1113
+ cr16-*)
1114
+ basic_os=${basic_os:-elf}
1315
1115
  ;;
1316
- pdp11)
1317
- basic_machine=pdp11-dec
1116
+ crisv32-* | etraxfs*-*)
1117
+ cpu=crisv32
1118
+ vendor=axis
1318
1119
  ;;
1319
- we32k)
1320
- basic_machine=we32k-att
1120
+ cris-* | etrax*-*)
1121
+ cpu=cris
1122
+ vendor=axis
1321
1123
  ;;
1322
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1323
- basic_machine=sh-unknown
1124
+ crx-*)
1125
+ basic_os=${basic_os:-elf}
1324
1126
  ;;
1325
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1326
- basic_machine=sparc-sun
1127
+ neo-tandem)
1128
+ cpu=neo
1129
+ vendor=tandem
1327
1130
  ;;
1328
- cydra)
1329
- basic_machine=cydra-cydrome
1131
+ nse-tandem)
1132
+ cpu=nse
1133
+ vendor=tandem
1330
1134
  ;;
1331
- orion)
1332
- basic_machine=orion-highlevel
1135
+ nsr-tandem)
1136
+ cpu=nsr
1137
+ vendor=tandem
1333
1138
  ;;
1334
- orion105)
1335
- basic_machine=clipper-highlevel
1139
+ nsv-tandem)
1140
+ cpu=nsv
1141
+ vendor=tandem
1336
1142
  ;;
1337
- mac | mpw | mac-mpw)
1338
- basic_machine=m68k-apple
1143
+ nsx-tandem)
1144
+ cpu=nsx
1145
+ vendor=tandem
1339
1146
  ;;
1340
- pmac | pmac-mpw)
1341
- basic_machine=powerpc-apple
1147
+ mipsallegrexel-sony)
1148
+ cpu=mipsallegrexel
1149
+ vendor=sony
1342
1150
  ;;
1343
- *-unknown)
1344
- # Make sure to match an already-canonicalized machine name.
1151
+ tile*-*)
1152
+ basic_os=${basic_os:-linux-gnu}
1345
1153
  ;;
1154
+
1346
1155
  *)
1347
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1348
- exit 1
1156
+ # Recognize the canonical CPU types that are allowed with any
1157
+ # company name.
1158
+ case $cpu in
1159
+ 1750a | 580 \
1160
+ | a29k \
1161
+ | aarch64 | aarch64_be \
1162
+ | abacus \
1163
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
1164
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
1165
+ | alphapca5[67] | alpha64pca5[67] \
1166
+ | am33_2.0 \
1167
+ | amdgcn \
1168
+ | arc | arceb \
1169
+ | arm | arm[lb]e | arme[lb] | armv* \
1170
+ | avr | avr32 \
1171
+ | asmjs \
1172
+ | ba \
1173
+ | be32 | be64 \
1174
+ | bfin | bpf | bs2000 \
1175
+ | c[123]* | c30 | [cjt]90 | c4x \
1176
+ | c8051 | clipper | craynv | csky | cydra \
1177
+ | d10v | d30v | dlx | dsp16xx \
1178
+ | e2k | elxsi | epiphany \
1179
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
1180
+ | h8300 | h8500 \
1181
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
1182
+ | hexagon \
1183
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
1184
+ | ip2k | iq2000 \
1185
+ | k1om \
1186
+ | le32 | le64 \
1187
+ | lm32 \
1188
+ | m32c | m32r | m32rle \
1189
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
1190
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
1191
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
1192
+ | microblaze | microblazeel \
1193
+ | mips | mipsbe | mipseb | mipsel | mipsle \
1194
+ | mips16 \
1195
+ | mips64 | mips64eb | mips64el \
1196
+ | mips64octeon | mips64octeonel \
1197
+ | mips64orion | mips64orionel \
1198
+ | mips64r5900 | mips64r5900el \
1199
+ | mips64vr | mips64vrel \
1200
+ | mips64vr4100 | mips64vr4100el \
1201
+ | mips64vr4300 | mips64vr4300el \
1202
+ | mips64vr5000 | mips64vr5000el \
1203
+ | mips64vr5900 | mips64vr5900el \
1204
+ | mipsisa32 | mipsisa32el \
1205
+ | mipsisa32r2 | mipsisa32r2el \
1206
+ | mipsisa32r6 | mipsisa32r6el \
1207
+ | mipsisa64 | mipsisa64el \
1208
+ | mipsisa64r2 | mipsisa64r2el \
1209
+ | mipsisa64r6 | mipsisa64r6el \
1210
+ | mipsisa64sb1 | mipsisa64sb1el \
1211
+ | mipsisa64sr71k | mipsisa64sr71kel \
1212
+ | mipsr5900 | mipsr5900el \
1213
+ | mipstx39 | mipstx39el \
1214
+ | mmix \
1215
+ | mn10200 | mn10300 \
1216
+ | moxie \
1217
+ | mt \
1218
+ | msp430 \
1219
+ | nds32 | nds32le | nds32be \
1220
+ | nfp \
1221
+ | nios | nios2 | nios2eb | nios2el \
1222
+ | none | np1 | ns16k | ns32k | nvptx \
1223
+ | open8 \
1224
+ | or1k* \
1225
+ | or32 \
1226
+ | orion \
1227
+ | picochip \
1228
+ | pdp10 | pdp11 | pj | pjl | pn | power \
1229
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
1230
+ | pru \
1231
+ | pyramid \
1232
+ | riscv | riscv32 | riscv64 \
1233
+ | rl78 | romp | rs6000 | rx \
1234
+ | s390 | s390x \
1235
+ | score \
1236
+ | sh | shl \
1237
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
1238
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
1239
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
1240
+ | sparclite \
1241
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
1242
+ | spu \
1243
+ | tahoe \
1244
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
1245
+ | tron \
1246
+ | ubicom32 \
1247
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
1248
+ | vax \
1249
+ | visium \
1250
+ | w65 \
1251
+ | wasm32 | wasm64 \
1252
+ | we32k \
1253
+ | x86 | x86_64 | xc16x | xgate | xps100 \
1254
+ | xstormy16 | xtensa* \
1255
+ | ymp \
1256
+ | z8k | z80)
1257
+ ;;
1258
+
1259
+ *)
1260
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
1261
+ exit 1
1262
+ ;;
1263
+ esac
1349
1264
  ;;
1350
1265
  esac
1351
1266
 
1352
1267
  # Here we canonicalize certain aliases for manufacturers.
1353
- case $basic_machine in
1354
- *-digital*)
1355
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1268
+ case $vendor in
1269
+ digital*)
1270
+ vendor=dec
1356
1271
  ;;
1357
- *-commodore*)
1358
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1272
+ commodore*)
1273
+ vendor=cbm
1359
1274
  ;;
1360
1275
  *)
1361
1276
  ;;
@@ -1363,203 +1278,215 @@ esac
1363
1278
 
1364
1279
  # Decode manufacturer-specific aliases for certain operating systems.
1365
1280
 
1366
- if [ x"$os" != x"" ]
1281
+ if [ x$basic_os != x ]
1367
1282
  then
1368
- case $os in
1369
- # First match some system type aliases
1370
- # that might get confused with valid system types.
1371
- # -solaris* is a basic system type, with this one exception.
1372
- -auroraux)
1373
- os=-auroraux
1283
+
1284
+ # First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
1285
+ # set os.
1286
+ case $basic_os in
1287
+ gnu/linux*)
1288
+ kernel=linux
1289
+ os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'`
1290
+ ;;
1291
+ nto-qnx*)
1292
+ kernel=nto
1293
+ os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'`
1294
+ ;;
1295
+ *-*)
1296
+ # shellcheck disable=SC2162
1297
+ IFS="-" read kernel os <<EOF
1298
+ $basic_os
1299
+ EOF
1300
+ ;;
1301
+ # Default OS when just kernel was specified
1302
+ nto*)
1303
+ kernel=nto
1304
+ os=`echo $basic_os | sed -e 's|nto|qnx|'`
1305
+ ;;
1306
+ linux*)
1307
+ kernel=linux
1308
+ os=`echo $basic_os | sed -e 's|linux|gnu|'`
1374
1309
  ;;
1375
- -solaris1 | -solaris1.*)
1376
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
1310
+ *)
1311
+ kernel=
1312
+ os=$basic_os
1377
1313
  ;;
1378
- -solaris)
1379
- os=-solaris2
1314
+ esac
1315
+
1316
+ # Now, normalize the OS (knowing we just have one component, it's not a kernel,
1317
+ # etc.)
1318
+ case $os in
1319
+ # First match some system type aliases that might get confused
1320
+ # with valid system types.
1321
+ # solaris* is a basic system type, with this one exception.
1322
+ auroraux)
1323
+ os=auroraux
1380
1324
  ;;
1381
- -svr4*)
1382
- os=-sysv4
1325
+ bluegene*)
1326
+ os=cnk
1383
1327
  ;;
1384
- -unixware*)
1385
- os=-sysv4.2uw
1328
+ solaris1 | solaris1.*)
1329
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
1386
1330
  ;;
1387
- -gnu/linux*)
1388
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1331
+ solaris)
1332
+ os=solaris2
1389
1333
  ;;
1390
- # First accept the basic system types.
1391
- # The portable systems comes first.
1392
- # Each alternative MUST END IN A *, to match a version number.
1393
- # -sysv* is not here because it comes later, after sysvr4.
1394
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1395
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1396
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1397
- | -sym* | -kopensolaris* | -plan9* \
1398
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1399
- | -aos* | -aros* | -cloudabi* | -sortix* \
1400
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1401
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1402
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1403
- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
1404
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1405
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1406
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1407
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1408
- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
1409
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1410
- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1411
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1412
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1413
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1414
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1415
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1416
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1417
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1418
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1419
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1420
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
1421
- # Remember, each alternative MUST END IN *, to match a version number.
1422
- ;;
1423
- -qnx*)
1424
- case $basic_machine in
1425
- x86-* | i*86-*)
1426
- ;;
1427
- *)
1428
- os=-nto$os
1429
- ;;
1430
- esac
1334
+ unixware*)
1335
+ os=sysv4.2uw
1431
1336
  ;;
1432
- -nto-qnx*)
1337
+ # es1800 is here to avoid being matched by es* (a different OS)
1338
+ es1800*)
1339
+ os=ose
1433
1340
  ;;
1434
- -nto*)
1435
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
1341
+ # Some version numbers need modification
1342
+ chorusos*)
1343
+ os=chorusos
1436
1344
  ;;
1437
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1438
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1439
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1345
+ isc)
1346
+ os=isc2.2
1440
1347
  ;;
1441
- -mac*)
1442
- os=`echo $os | sed -e 's|mac|macos|'`
1348
+ sco6)
1349
+ os=sco5v6
1443
1350
  ;;
1444
- -linux-dietlibc)
1445
- os=-linux-dietlibc
1351
+ sco5)
1352
+ os=sco3.2v5
1446
1353
  ;;
1447
- -linux*)
1448
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
1354
+ sco4)
1355
+ os=sco3.2v4
1449
1356
  ;;
1450
- -sunos5*)
1451
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
1357
+ sco3.2.[4-9]*)
1358
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
1452
1359
  ;;
1453
- -sunos6*)
1454
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
1360
+ sco*v* | scout)
1361
+ # Don't match below
1455
1362
  ;;
1456
- -opened*)
1457
- os=-openedition
1363
+ sco*)
1364
+ os=sco3.2v2
1458
1365
  ;;
1459
- -os400*)
1460
- os=-os400
1366
+ psos*)
1367
+ os=psos
1461
1368
  ;;
1462
- -wince*)
1463
- os=-wince
1369
+ qnx*)
1370
+ case $cpu in
1371
+ x86 | i*86)
1372
+ ;;
1373
+ *)
1374
+ os=nto-$os
1375
+ ;;
1376
+ esac
1464
1377
  ;;
1465
- -osfrose*)
1466
- os=-osfrose
1378
+ hiux*)
1379
+ os=hiuxwe2
1467
1380
  ;;
1468
- -osf*)
1469
- os=-osf
1381
+ lynx*178)
1382
+ os=lynxos178
1470
1383
  ;;
1471
- -utek*)
1472
- os=-bsd
1384
+ lynx*5)
1385
+ os=lynxos5
1473
1386
  ;;
1474
- -dynix*)
1475
- os=-bsd
1387
+ lynxos*)
1388
+ # don't get caught up in next wildcard
1476
1389
  ;;
1477
- -acis*)
1478
- os=-aos
1390
+ lynx*)
1391
+ os=lynxos
1479
1392
  ;;
1480
- -atheos*)
1481
- os=-atheos
1393
+ mac[0-9]*)
1394
+ os=`echo "$os" | sed -e 's|mac|macos|'`
1482
1395
  ;;
1483
- -syllable*)
1484
- os=-syllable
1396
+ opened*)
1397
+ os=openedition
1485
1398
  ;;
1486
- -386bsd)
1487
- os=-bsd
1399
+ os400*)
1400
+ os=os400
1488
1401
  ;;
1489
- -ctix* | -uts*)
1490
- os=-sysv
1402
+ sunos5*)
1403
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1491
1404
  ;;
1492
- -nova*)
1493
- os=-rtmk-nova
1405
+ sunos6*)
1406
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1494
1407
  ;;
1495
- -ns2 )
1496
- os=-nextstep2
1408
+ wince*)
1409
+ os=wince
1497
1410
  ;;
1498
- -nsk*)
1499
- os=-nsk
1411
+ utek*)
1412
+ os=bsd
1500
1413
  ;;
1501
- # Preserve the version number of sinix5.
1502
- -sinix5.*)
1503
- os=`echo $os | sed -e 's|sinix|sysv|'`
1414
+ dynix*)
1415
+ os=bsd
1504
1416
  ;;
1505
- -sinix*)
1506
- os=-sysv4
1417
+ acis*)
1418
+ os=aos
1507
1419
  ;;
1508
- -tpf*)
1509
- os=-tpf
1420
+ atheos*)
1421
+ os=atheos
1510
1422
  ;;
1511
- -triton*)
1512
- os=-sysv3
1423
+ syllable*)
1424
+ os=syllable
1513
1425
  ;;
1514
- -oss*)
1515
- os=-sysv3
1426
+ 386bsd)
1427
+ os=bsd
1516
1428
  ;;
1517
- -svr4)
1518
- os=-sysv4
1429
+ ctix* | uts*)
1430
+ os=sysv
1519
1431
  ;;
1520
- -svr3)
1521
- os=-sysv3
1432
+ nova*)
1433
+ os=rtmk-nova
1522
1434
  ;;
1523
- -sysvr4)
1524
- os=-sysv4
1435
+ ns2)
1436
+ os=nextstep2
1525
1437
  ;;
1526
- # This must come after -sysvr4.
1527
- -sysv*)
1438
+ # Preserve the version number of sinix5.
1439
+ sinix5.*)
1440
+ os=`echo $os | sed -e 's|sinix|sysv|'`
1528
1441
  ;;
1529
- -ose*)
1530
- os=-ose
1442
+ sinix*)
1443
+ os=sysv4
1531
1444
  ;;
1532
- -es1800*)
1533
- os=-ose
1445
+ tpf*)
1446
+ os=tpf
1534
1447
  ;;
1535
- -xenix)
1536
- os=-xenix
1448
+ triton*)
1449
+ os=sysv3
1537
1450
  ;;
1538
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1539
- os=-mint
1451
+ oss*)
1452
+ os=sysv3
1540
1453
  ;;
1541
- -aros*)
1542
- os=-aros
1454
+ svr4*)
1455
+ os=sysv4
1543
1456
  ;;
1544
- -zvmoe)
1545
- os=-zvmoe
1457
+ svr3)
1458
+ os=sysv3
1546
1459
  ;;
1547
- -dicos*)
1548
- os=-dicos
1460
+ sysvr4)
1461
+ os=sysv4
1549
1462
  ;;
1550
- -nacl*)
1463
+ ose*)
1464
+ os=ose
1551
1465
  ;;
1552
- -ios)
1466
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1467
+ os=mint
1553
1468
  ;;
1554
- -none)
1469
+ dicos*)
1470
+ os=dicos
1471
+ ;;
1472
+ pikeos*)
1473
+ # Until real need of OS specific support for
1474
+ # particular features comes up, bare metal
1475
+ # configurations are quite functional.
1476
+ case $cpu in
1477
+ arm*)
1478
+ os=eabi
1479
+ ;;
1480
+ *)
1481
+ os=elf
1482
+ ;;
1483
+ esac
1555
1484
  ;;
1556
1485
  *)
1557
- # Get rid of the `-' at the beginning of $os.
1558
- os=`echo $os | sed 's/[^-]*-//'`
1559
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1560
- exit 1
1486
+ # No normalization, but not necessarily accepted, that comes below.
1561
1487
  ;;
1562
1488
  esac
1489
+
1563
1490
  else
1564
1491
 
1565
1492
  # Here we handle the default operating systems that come with various machines.
@@ -1572,264 +1499,352 @@ else
1572
1499
  # will signal an error saying that MANUFACTURER isn't an operating
1573
1500
  # system, and we'll never get to this point.
1574
1501
 
1575
- case $basic_machine in
1502
+ kernel=
1503
+ case $cpu-$vendor in
1576
1504
  score-*)
1577
- os=-elf
1505
+ os=elf
1578
1506
  ;;
1579
1507
  spu-*)
1580
- os=-elf
1508
+ os=elf
1581
1509
  ;;
1582
1510
  *-acorn)
1583
- os=-riscix1.2
1511
+ os=riscix1.2
1584
1512
  ;;
1585
1513
  arm*-rebel)
1586
- os=-linux
1514
+ kernel=linux
1515
+ os=gnu
1587
1516
  ;;
1588
1517
  arm*-semi)
1589
- os=-aout
1518
+ os=aout
1590
1519
  ;;
1591
1520
  c4x-* | tic4x-*)
1592
- os=-coff
1521
+ os=coff
1593
1522
  ;;
1594
1523
  c8051-*)
1595
- os=-elf
1524
+ os=elf
1525
+ ;;
1526
+ clipper-intergraph)
1527
+ os=clix
1596
1528
  ;;
1597
1529
  hexagon-*)
1598
- os=-elf
1530
+ os=elf
1599
1531
  ;;
1600
1532
  tic54x-*)
1601
- os=-coff
1533
+ os=coff
1602
1534
  ;;
1603
1535
  tic55x-*)
1604
- os=-coff
1536
+ os=coff
1605
1537
  ;;
1606
1538
  tic6x-*)
1607
- os=-coff
1539
+ os=coff
1608
1540
  ;;
1609
1541
  # This must come before the *-dec entry.
1610
1542
  pdp10-*)
1611
- os=-tops20
1543
+ os=tops20
1612
1544
  ;;
1613
1545
  pdp11-*)
1614
- os=-none
1546
+ os=none
1615
1547
  ;;
1616
1548
  *-dec | vax-*)
1617
- os=-ultrix4.2
1549
+ os=ultrix4.2
1618
1550
  ;;
1619
1551
  m68*-apollo)
1620
- os=-domain
1552
+ os=domain
1621
1553
  ;;
1622
1554
  i386-sun)
1623
- os=-sunos4.0.2
1555
+ os=sunos4.0.2
1624
1556
  ;;
1625
1557
  m68000-sun)
1626
- os=-sunos3
1558
+ os=sunos3
1627
1559
  ;;
1628
1560
  m68*-cisco)
1629
- os=-aout
1561
+ os=aout
1630
1562
  ;;
1631
1563
  mep-*)
1632
- os=-elf
1564
+ os=elf
1633
1565
  ;;
1634
1566
  mips*-cisco)
1635
- os=-elf
1567
+ os=elf
1636
1568
  ;;
1637
1569
  mips*-*)
1638
- os=-elf
1570
+ os=elf
1639
1571
  ;;
1640
1572
  or32-*)
1641
- os=-coff
1573
+ os=coff
1642
1574
  ;;
1643
1575
  *-tti) # must be before sparc entry or we get the wrong os.
1644
- os=-sysv3
1576
+ os=sysv3
1645
1577
  ;;
1646
1578
  sparc-* | *-sun)
1647
- os=-sunos4.1.1
1579
+ os=sunos4.1.1
1648
1580
  ;;
1649
1581
  pru-*)
1650
- os=-elf
1582
+ os=elf
1651
1583
  ;;
1652
1584
  *-be)
1653
- os=-beos
1654
- ;;
1655
- *-haiku)
1656
- os=-haiku
1585
+ os=beos
1657
1586
  ;;
1658
1587
  *-ibm)
1659
- os=-aix
1588
+ os=aix
1660
1589
  ;;
1661
1590
  *-knuth)
1662
- os=-mmixware
1591
+ os=mmixware
1663
1592
  ;;
1664
1593
  *-wec)
1665
- os=-proelf
1594
+ os=proelf
1666
1595
  ;;
1667
1596
  *-winbond)
1668
- os=-proelf
1597
+ os=proelf
1669
1598
  ;;
1670
1599
  *-oki)
1671
- os=-proelf
1600
+ os=proelf
1672
1601
  ;;
1673
1602
  *-hp)
1674
- os=-hpux
1603
+ os=hpux
1675
1604
  ;;
1676
1605
  *-hitachi)
1677
- os=-hiux
1606
+ os=hiux
1678
1607
  ;;
1679
1608
  i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1680
- os=-sysv
1609
+ os=sysv
1681
1610
  ;;
1682
1611
  *-cbm)
1683
- os=-amigaos
1612
+ os=amigaos
1684
1613
  ;;
1685
1614
  *-dg)
1686
- os=-dgux
1615
+ os=dgux
1687
1616
  ;;
1688
1617
  *-dolphin)
1689
- os=-sysv3
1618
+ os=sysv3
1690
1619
  ;;
1691
1620
  m68k-ccur)
1692
- os=-rtu
1621
+ os=rtu
1693
1622
  ;;
1694
1623
  m88k-omron*)
1695
- os=-luna
1624
+ os=luna
1696
1625
  ;;
1697
- *-next )
1698
- os=-nextstep
1626
+ *-next)
1627
+ os=nextstep
1699
1628
  ;;
1700
1629
  *-sequent)
1701
- os=-ptx
1630
+ os=ptx
1702
1631
  ;;
1703
1632
  *-crds)
1704
- os=-unos
1633
+ os=unos
1705
1634
  ;;
1706
1635
  *-ns)
1707
- os=-genix
1636
+ os=genix
1708
1637
  ;;
1709
1638
  i370-*)
1710
- os=-mvs
1711
- ;;
1712
- *-next)
1713
- os=-nextstep3
1639
+ os=mvs
1714
1640
  ;;
1715
1641
  *-gould)
1716
- os=-sysv
1642
+ os=sysv
1717
1643
  ;;
1718
1644
  *-highlevel)
1719
- os=-bsd
1645
+ os=bsd
1720
1646
  ;;
1721
1647
  *-encore)
1722
- os=-bsd
1648
+ os=bsd
1723
1649
  ;;
1724
1650
  *-sgi)
1725
- os=-irix
1651
+ os=irix
1726
1652
  ;;
1727
1653
  *-siemens)
1728
- os=-sysv4
1654
+ os=sysv4
1729
1655
  ;;
1730
1656
  *-masscomp)
1731
- os=-rtu
1657
+ os=rtu
1732
1658
  ;;
1733
1659
  f30[01]-fujitsu | f700-fujitsu)
1734
- os=-uxpv
1660
+ os=uxpv
1735
1661
  ;;
1736
1662
  *-rom68k)
1737
- os=-coff
1663
+ os=coff
1738
1664
  ;;
1739
1665
  *-*bug)
1740
- os=-coff
1666
+ os=coff
1741
1667
  ;;
1742
1668
  *-apple)
1743
- os=-macos
1669
+ os=macos
1744
1670
  ;;
1745
1671
  *-atari*)
1746
- os=-mint
1672
+ os=mint
1673
+ ;;
1674
+ *-wrs)
1675
+ os=vxworks
1747
1676
  ;;
1748
1677
  *)
1749
- os=-none
1678
+ os=none
1750
1679
  ;;
1751
1680
  esac
1681
+
1752
1682
  fi
1753
1683
 
1684
+ # Now, validate our (potentially fixed-up) OS.
1685
+ case $os in
1686
+ # Sometimes we do "kernel-abi", so those need to count as OSes.
1687
+ musl* | newlib* | uclibc*)
1688
+ ;;
1689
+ # Likewise for "kernel-libc"
1690
+ eabi | eabisim | eabihf | gnueabi | gnueabihf)
1691
+ ;;
1692
+ # Now accept the basic system types.
1693
+ # The portable systems comes first.
1694
+ # Each alternative MUST end in a * to match a version number.
1695
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
1696
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
1697
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
1698
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
1699
+ | hiux* | abug | nacl* | netware* | windows* \
1700
+ | os9* | macos* | osx* | ios* \
1701
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
1702
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
1703
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
1704
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
1705
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
1706
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
1707
+ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
1708
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
1709
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
1710
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
1711
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
1712
+ | chorusrdb* | cegcc* | glidix* \
1713
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
1714
+ | midipix* | mingw32* | mingw64* | mint* \
1715
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
1716
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
1717
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
1718
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
1719
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
1720
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
1721
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
1722
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
1723
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
1724
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
1725
+ | nsk* | powerunix* | genode* | zvmoe* )
1726
+ ;;
1727
+ # This one is extra strict with allowed versions
1728
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
1729
+ # Don't forget version if it is 3.2v4 or newer.
1730
+ ;;
1731
+ none)
1732
+ ;;
1733
+ *)
1734
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
1735
+ exit 1
1736
+ ;;
1737
+ esac
1738
+
1739
+ # As a final step for OS-related things, validate the OS-kernel combination
1740
+ # (given a valid OS), if there is a kernel.
1741
+ case $kernel-$os in
1742
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
1743
+ ;;
1744
+ -dietlibc* | -newlib* | -musl* | -uclibc* )
1745
+ # These are just libc implementations, not actual OSes, and thus
1746
+ # require a kernel.
1747
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
1748
+ exit 1
1749
+ ;;
1750
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
1751
+ ;;
1752
+ nto-qnx*)
1753
+ ;;
1754
+ *-eabi* | *-gnueabi*)
1755
+ ;;
1756
+ -*)
1757
+ # Blank kernel with real OS is always fine.
1758
+ ;;
1759
+ *-*)
1760
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
1761
+ exit 1
1762
+ ;;
1763
+ esac
1764
+
1754
1765
  # Here we handle the case where we know the os, and the CPU type, but not the
1755
1766
  # manufacturer. We pick the logical manufacturer.
1756
- vendor=unknown
1757
- case $basic_machine in
1758
- *-unknown)
1759
- case $os in
1760
- -riscix*)
1767
+ case $vendor in
1768
+ unknown)
1769
+ case $cpu-$os in
1770
+ *-riscix*)
1761
1771
  vendor=acorn
1762
1772
  ;;
1763
- -sunos*)
1773
+ *-sunos*)
1764
1774
  vendor=sun
1765
1775
  ;;
1766
- -cnk*|-aix*)
1776
+ *-cnk* | *-aix*)
1767
1777
  vendor=ibm
1768
1778
  ;;
1769
- -beos*)
1779
+ *-beos*)
1770
1780
  vendor=be
1771
1781
  ;;
1772
- -hpux*)
1782
+ *-hpux*)
1773
1783
  vendor=hp
1774
1784
  ;;
1775
- -mpeix*)
1785
+ *-mpeix*)
1776
1786
  vendor=hp
1777
1787
  ;;
1778
- -hiux*)
1788
+ *-hiux*)
1779
1789
  vendor=hitachi
1780
1790
  ;;
1781
- -unos*)
1791
+ *-unos*)
1782
1792
  vendor=crds
1783
1793
  ;;
1784
- -dgux*)
1794
+ *-dgux*)
1785
1795
  vendor=dg
1786
1796
  ;;
1787
- -luna*)
1797
+ *-luna*)
1788
1798
  vendor=omron
1789
1799
  ;;
1790
- -genix*)
1800
+ *-genix*)
1791
1801
  vendor=ns
1792
1802
  ;;
1793
- -mvs* | -opened*)
1803
+ *-clix*)
1804
+ vendor=intergraph
1805
+ ;;
1806
+ *-mvs* | *-opened*)
1807
+ vendor=ibm
1808
+ ;;
1809
+ *-os400*)
1794
1810
  vendor=ibm
1795
1811
  ;;
1796
- -os400*)
1812
+ s390-* | s390x-*)
1797
1813
  vendor=ibm
1798
1814
  ;;
1799
- -ptx*)
1815
+ *-ptx*)
1800
1816
  vendor=sequent
1801
1817
  ;;
1802
- -tpf*)
1818
+ *-tpf*)
1803
1819
  vendor=ibm
1804
1820
  ;;
1805
- -vxsim* | -vxworks* | -windiss*)
1821
+ *-vxsim* | *-vxworks* | *-windiss*)
1806
1822
  vendor=wrs
1807
1823
  ;;
1808
- -aux*)
1824
+ *-aux*)
1809
1825
  vendor=apple
1810
1826
  ;;
1811
- -hms*)
1827
+ *-hms*)
1812
1828
  vendor=hitachi
1813
1829
  ;;
1814
- -mpw* | -macos*)
1830
+ *-mpw* | *-macos*)
1815
1831
  vendor=apple
1816
1832
  ;;
1817
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1833
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1818
1834
  vendor=atari
1819
1835
  ;;
1820
- -vos*)
1836
+ *-vos*)
1821
1837
  vendor=stratus
1822
1838
  ;;
1823
1839
  esac
1824
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1825
1840
  ;;
1826
1841
  esac
1827
1842
 
1828
- echo $basic_machine$os
1843
+ echo "$cpu-$vendor-${kernel:+$kernel-}$os"
1829
1844
  exit
1830
1845
 
1831
1846
  # Local variables:
1832
- # eval: (add-hook 'write-file-hooks 'time-stamp)
1847
+ # eval: (add-hook 'before-save-hook 'time-stamp)
1833
1848
  # time-stamp-start: "timestamp='"
1834
1849
  # time-stamp-format: "%:y-%02m-%02d"
1835
1850
  # time-stamp-end: "'"