vinted-memcached 1.8.4 → 1.8.6

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 (213) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_release_pipeline.yaml +53 -0
  3. data/.gitignore +33 -0
  4. data/BENCHMARKS +130 -126
  5. data/CHANGELOG +1 -6
  6. data/Gemfile +8 -1
  7. data/Gemfile.lock +25 -38
  8. data/README.md +144 -0
  9. data/Rakefile +21 -93
  10. data/ext/rlibmemcached/extconf.rb +76 -0
  11. data/ext/{rlibmemcached.i → rlibmemcached/rlibmemcached.i} +48 -69
  12. data/ext/{rlibmemcached_wrap.c → rlibmemcached/rlibmemcached_wrap.c} +146 -320
  13. data/lib/memcached/exceptions.rb +1 -12
  14. data/lib/memcached/experimental.rb +1 -33
  15. data/lib/memcached/memcached.rb +41 -34
  16. data/lib/memcached/version.rb +1 -1
  17. data/lib/memcached.rb +9 -4
  18. data/memcached.gemspec +0 -0
  19. data/memcached.pem +21 -0
  20. data/vendor/libmemcached-0.32/config/config.guess +1815 -0
  21. data/vendor/libmemcached-0.32/config/config.sub +2354 -0
  22. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_connect.c +23 -13
  23. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_io.c +18 -13
  24. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_purge.c +1 -1
  25. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_storage.c +16 -25
  26. metadata +195 -249
  27. data/Manifest +0 -209
  28. data/README.rdoc +0 -124
  29. data/ext/extconf-make.rb +0 -25
  30. data/ext/extconf.rb +0 -78
  31. data/ext/libmemcached-0.32/config/config.guess +0 -1561
  32. data/ext/libmemcached-0.32/config/config.sub +0 -1686
  33. data/lib/memcached/auth.rb +0 -16
  34. data/test/profile/benchmark.rb +0 -280
  35. data/test/profile/c_profiler.rb +0 -14
  36. data/test/profile/exercise.rb +0 -185
  37. data/test/profile/rb_profiler.rb +0 -21
  38. data/test/profile/valgrind.rb +0 -10
  39. data/test/setup.rb +0 -30
  40. data/test/teardown.rb +0 -0
  41. data/test/test_helper.rb +0 -18
  42. data/test/unit/binding_test.rb +0 -8
  43. data/test/unit/memcached_experimental_test.rb +0 -272
  44. data/test/unit/memcached_test.rb +0 -1487
  45. data/test/unit/rails_test.rb +0 -330
  46. /data/{ext → vendor}/libmemcached-0.32/AUTHORS +0 -0
  47. /data/{ext → vendor}/libmemcached-0.32/COPYING +0 -0
  48. /data/{ext → vendor}/libmemcached-0.32/ChangeLog +0 -0
  49. /data/{ext → vendor}/libmemcached-0.32/INSTALL +0 -0
  50. /data/{ext → vendor}/libmemcached-0.32/Makefile.am +0 -0
  51. /data/{ext → vendor}/libmemcached-0.32/Makefile.in +0 -0
  52. /data/{ext → vendor}/libmemcached-0.32/NEWS +0 -0
  53. /data/{ext → vendor}/libmemcached-0.32/README +0 -0
  54. /data/{ext → vendor}/libmemcached-0.32/THANKS +0 -0
  55. /data/{ext → vendor}/libmemcached-0.32/TODO +0 -0
  56. /data/{ext → vendor}/libmemcached-0.32/aclocal.m4 +0 -0
  57. /data/{ext → vendor}/libmemcached-0.32/clients/Makefile.am +0 -0
  58. /data/{ext → vendor}/libmemcached-0.32/clients/Makefile.in +0 -0
  59. /data/{ext → vendor}/libmemcached-0.32/clients/client_options.h +0 -0
  60. /data/{ext → vendor}/libmemcached-0.32/clients/execute.c +0 -0
  61. /data/{ext → vendor}/libmemcached-0.32/clients/execute.h +0 -0
  62. /data/{ext → vendor}/libmemcached-0.32/clients/generator.c +0 -0
  63. /data/{ext → vendor}/libmemcached-0.32/clients/generator.h +0 -0
  64. /data/{ext → vendor}/libmemcached-0.32/clients/memcat.c +0 -0
  65. /data/{ext → vendor}/libmemcached-0.32/clients/memcp.c +0 -0
  66. /data/{ext → vendor}/libmemcached-0.32/clients/memdump.c +0 -0
  67. /data/{ext → vendor}/libmemcached-0.32/clients/memerror.c +0 -0
  68. /data/{ext → vendor}/libmemcached-0.32/clients/memflush.c +0 -0
  69. /data/{ext → vendor}/libmemcached-0.32/clients/memrm.c +0 -0
  70. /data/{ext → vendor}/libmemcached-0.32/clients/memslap.c +0 -0
  71. /data/{ext → vendor}/libmemcached-0.32/clients/memstat.c +0 -0
  72. /data/{ext → vendor}/libmemcached-0.32/clients/utilities.c +0 -0
  73. /data/{ext → vendor}/libmemcached-0.32/clients/utilities.h +0 -0
  74. /data/{ext → vendor}/libmemcached-0.32/config/compile +0 -0
  75. /data/{ext → vendor}/libmemcached-0.32/config/config.rpath +0 -0
  76. /data/{ext → vendor}/libmemcached-0.32/config/depcomp +0 -0
  77. /data/{ext → vendor}/libmemcached-0.32/config/install-sh +0 -0
  78. /data/{ext → vendor}/libmemcached-0.32/config/ltmain.sh +0 -0
  79. /data/{ext → vendor}/libmemcached-0.32/config/missing +0 -0
  80. /data/{ext → vendor}/libmemcached-0.32/config.h.in +0 -0
  81. /data/{ext → vendor}/libmemcached-0.32/configure +0 -0
  82. /data/{ext → vendor}/libmemcached-0.32/configure.ac +0 -0
  83. /data/{ext → vendor}/libmemcached-0.32/libmemcached/Makefile.am +0 -0
  84. /data/{ext → vendor}/libmemcached-0.32/libmemcached/Makefile.in +0 -0
  85. /data/{ext → vendor}/libmemcached-0.32/libmemcached/byteorder.c +0 -0
  86. /data/{ext → vendor}/libmemcached-0.32/libmemcached/common.h +0 -0
  87. /data/{ext → vendor}/libmemcached-0.32/libmemcached/crc.c +0 -0
  88. /data/{ext → vendor}/libmemcached-0.32/libmemcached/hsieh_hash.c +0 -0
  89. /data/{ext → vendor}/libmemcached-0.32/libmemcached/jenkins_hash.c +0 -0
  90. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached.ver +0 -0
  91. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached_probes.d +0 -0
  92. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached_probes.h +0 -0
  93. /data/{ext → vendor}/libmemcached-0.32/libmemcached/md5.c +0 -0
  94. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached/README.txt +0 -0
  95. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +0 -0
  96. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.c +0 -0
  97. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.h +0 -0
  98. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.hpp +0 -0
  99. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_allocators.c +0 -0
  100. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_analyze.c +0 -0
  101. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_auto.c +0 -0
  102. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_behavior.c +0 -0
  103. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_callback.c +0 -0
  104. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_configure.h.in +0 -0
  105. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_constants.h +0 -0
  106. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  107. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_do.c +0 -0
  108. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_dump.c +0 -0
  109. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_exist.c +0 -0
  110. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_exist.h +0 -0
  111. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_fetch.c +0 -0
  112. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_flush.c +0 -0
  113. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +0 -0
  114. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_get.c +0 -0
  115. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_get.h +0 -0
  116. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_hash.c +0 -0
  117. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_hosts.c +0 -0
  118. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_internal.h +0 -0
  119. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_io.h +0 -0
  120. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_key.c +0 -0
  121. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_parse.c +0 -0
  122. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_pool.h +0 -0
  123. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_quit.c +0 -0
  124. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_response.c +0 -0
  125. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_result.c +0 -0
  126. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_result.h +0 -0
  127. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_sasl.c +0 -0
  128. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_sasl.h +0 -0
  129. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_server.c +0 -0
  130. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_server.h +0 -0
  131. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_stats.c +0 -0
  132. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_storage.h +0 -0
  133. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_strerror.c +0 -0
  134. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_string.c +0 -0
  135. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_string.h +0 -0
  136. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_touch.c +0 -0
  137. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_touch.h +0 -0
  138. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_types.h +0 -0
  139. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_util.h +0 -0
  140. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_verbosity.c +0 -0
  141. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_version.c +0 -0
  142. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_watchpoint.h +0 -0
  143. /data/{ext → vendor}/libmemcached-0.32/libmemcached/murmur_hash.c +0 -0
  144. /data/{ext → vendor}/libmemcached-0.32/libmemcached/visibility.h +0 -0
  145. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/Makefile.am +0 -0
  146. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/Makefile.in +0 -0
  147. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +0 -0
  148. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/memcached_pool.c +0 -0
  149. /data/{ext → vendor}/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +0 -0
  150. /data/{ext → vendor}/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +0 -0
  151. /data/{ext → vendor}/libmemcached-0.32/m4/acx_pthread.m4 +0 -0
  152. /data/{ext → vendor}/libmemcached-0.32/m4/byteorder.m4 +0 -0
  153. /data/{ext → vendor}/libmemcached-0.32/m4/deprecated.m4 +0 -0
  154. /data/{ext → vendor}/libmemcached-0.32/m4/enable_utillib.m4 +0 -0
  155. /data/{ext → vendor}/libmemcached-0.32/m4/extensions.m4 +0 -0
  156. /data/{ext → vendor}/libmemcached-0.32/m4/hsieh.m4 +0 -0
  157. /data/{ext → vendor}/libmemcached-0.32/m4/lib-prefix.m4 +0 -0
  158. /data/{ext → vendor}/libmemcached-0.32/m4/libtool.m4 +0 -0
  159. /data/{ext → vendor}/libmemcached-0.32/m4/ltoptions.m4 +0 -0
  160. /data/{ext → vendor}/libmemcached-0.32/m4/ltsugar.m4 +0 -0
  161. /data/{ext → vendor}/libmemcached-0.32/m4/ltversion.m4 +0 -0
  162. /data/{ext → vendor}/libmemcached-0.32/m4/lt~obsolete.m4 +0 -0
  163. /data/{ext → vendor}/libmemcached-0.32/m4/memcached.m4 +0 -0
  164. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_64bit.m4 +0 -0
  165. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_canonical.m4 +0 -0
  166. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +0 -0
  167. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +0 -0
  168. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +0 -0
  169. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +0 -0
  170. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +0 -0
  171. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_have_sasl.m4 +0 -0
  172. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_header_assert.m4 +0 -0
  173. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_libtool.m4 +0 -0
  174. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_optimize.m4 +0 -0
  175. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_shared_ptr.m4 +0 -0
  176. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_vc_build.m4 +0 -0
  177. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_warnings.m4 +0 -0
  178. /data/{ext → vendor}/libmemcached-0.32/m4/pod2man.m4 +0 -0
  179. /data/{ext → vendor}/libmemcached-0.32/m4/protocol_binary.m4 +0 -0
  180. /data/{ext → vendor}/libmemcached-0.32/m4/setsockopt.m4 +0 -0
  181. /data/{ext → vendor}/libmemcached-0.32/m4/visibility.m4 +0 -0
  182. /data/{ext → vendor}/libmemcached-0.32/support/Makefile.am +0 -0
  183. /data/{ext → vendor}/libmemcached-0.32/support/Makefile.in +0 -0
  184. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached-fc.spec.in +0 -0
  185. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.pc.in +0 -0
  186. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.spec +0 -0
  187. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.spec.in +0 -0
  188. /data/{ext → vendor}/libmemcached-0.32/support/set_benchmark.sh +0 -0
  189. /data/{ext → vendor}/libmemcached-0.32/tests/Makefile.am +0 -0
  190. /data/{ext → vendor}/libmemcached-0.32/tests/Makefile.in +0 -0
  191. /data/{ext → vendor}/libmemcached-0.32/tests/atomsmasher.c +0 -0
  192. /data/{ext → vendor}/libmemcached-0.32/tests/function.c +0 -0
  193. /data/{ext → vendor}/libmemcached-0.32/tests/ketama_test_cases.h +0 -0
  194. /data/{ext → vendor}/libmemcached-0.32/tests/output.cmp +0 -0
  195. /data/{ext → vendor}/libmemcached-0.32/tests/output.res +0 -0
  196. /data/{ext → vendor}/libmemcached-0.32/tests/output2.res +0 -0
  197. /data/{ext → vendor}/libmemcached-0.32/tests/plus.cpp +0 -0
  198. /data/{ext → vendor}/libmemcached-0.32/tests/r/memcat.res +0 -0
  199. /data/{ext → vendor}/libmemcached-0.32/tests/r/memcp.res +0 -0
  200. /data/{ext → vendor}/libmemcached-0.32/tests/r/memrm.res +0 -0
  201. /data/{ext → vendor}/libmemcached-0.32/tests/r/memslap.res +0 -0
  202. /data/{ext → vendor}/libmemcached-0.32/tests/r/memstat.res +0 -0
  203. /data/{ext → vendor}/libmemcached-0.32/tests/server.c +0 -0
  204. /data/{ext → vendor}/libmemcached-0.32/tests/server.h +0 -0
  205. /data/{ext → vendor}/libmemcached-0.32/tests/start.c +0 -0
  206. /data/{ext → vendor}/libmemcached-0.32/tests/t/memcat.test +0 -0
  207. /data/{ext → vendor}/libmemcached-0.32/tests/t/memcp.test +0 -0
  208. /data/{ext → vendor}/libmemcached-0.32/tests/t/memrm.test +0 -0
  209. /data/{ext → vendor}/libmemcached-0.32/tests/t/memslap.test +0 -0
  210. /data/{ext → vendor}/libmemcached-0.32/tests/t/memstat.test +0 -0
  211. /data/{ext → vendor}/libmemcached-0.32/tests/test.c +0 -0
  212. /data/{ext → vendor}/libmemcached-0.32/tests/test.h +0 -0
  213. /data/{ext → vendor}/libmemcached-0.32/tests/udp.c +0 -0
@@ -0,0 +1,2354 @@
1
+ #! /bin/sh
2
+ # Configuration validation subroutine script.
3
+ # Copyright 1992-2024 Free Software Foundation, Inc.
4
+
5
+ # shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
6
+
7
+ timestamp='2024-05-27'
8
+
9
+ # This file is free software; you can redistribute it and/or modify it
10
+ # under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful, but
15
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program; if not, see <https://www.gnu.org/licenses/>.
21
+ #
22
+ # As a special exception to the GNU General Public License, if you
23
+ # distribute this file as part of a program that contains a
24
+ # configuration script generated by Autoconf, you may include it under
25
+ # the same distribution terms that you use for the rest of that
26
+ # program. This Exception is an additional permission under section 7
27
+ # of the GNU General Public License, version 3 ("GPLv3").
28
+
29
+
30
+ # Please send patches to <config-patches@gnu.org>.
31
+ #
32
+ # Configuration subroutine to validate and canonicalize a configuration type.
33
+ # Supply the specified configuration type as an argument.
34
+ # If it is invalid, we print an error message on stderr and exit with code 1.
35
+ # Otherwise, we print the canonical config type on stdout and succeed.
36
+
37
+ # You can get the latest version of this script from:
38
+ # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
39
+
40
+ # This file is supposed to be the same for all GNU packages
41
+ # and recognize all the CPU types, system types and aliases
42
+ # that are meaningful with *any* GNU software.
43
+ # Each package is responsible for reporting which valid configurations
44
+ # it does not support. The user should be able to distinguish
45
+ # a failure to support a valid configuration from a meaningless
46
+ # configuration.
47
+
48
+ # The goal of this file is to map all the various variations of a given
49
+ # machine specification into a single specification in the form:
50
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
51
+ # or in some cases, the newer four-part form:
52
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
53
+ # It is wrong to echo any other type of specification.
54
+
55
+ # The "shellcheck disable" line above the timestamp inhibits complaints
56
+ # about features and limitations of the classic Bourne shell that were
57
+ # superseded or lifted in POSIX. However, this script identifies a wide
58
+ # variety of pre-POSIX systems that do not have POSIX shells at all, and
59
+ # even some reasonably current systems (Solaris 10 as case-in-point) still
60
+ # have a pre-POSIX /bin/sh.
61
+
62
+ me=`echo "$0" | sed -e 's,.*/,,'`
63
+
64
+ usage="\
65
+ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
66
+
67
+ Canonicalize a configuration name.
68
+
69
+ Options:
70
+ -h, --help print this help, then exit
71
+ -t, --time-stamp print date of last modification, then exit
72
+ -v, --version print version number, then exit
73
+
74
+ Report bugs and patches to <config-patches@gnu.org>."
75
+
76
+ version="\
77
+ GNU config.sub ($timestamp)
78
+
79
+ Copyright 1992-2024 Free Software Foundation, Inc.
80
+
81
+ This is free software; see the source for copying conditions. There is NO
82
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
83
+
84
+ help="
85
+ Try '$me --help' for more information."
86
+
87
+ # Parse command line
88
+ while test $# -gt 0 ; do
89
+ case $1 in
90
+ --time-stamp | --time* | -t )
91
+ echo "$timestamp" ; exit ;;
92
+ --version | -v )
93
+ echo "$version" ; exit ;;
94
+ --help | --h* | -h )
95
+ echo "$usage"; exit ;;
96
+ -- ) # Stop option processing
97
+ shift; break ;;
98
+ - ) # Use stdin as input.
99
+ break ;;
100
+ -* )
101
+ echo "$me: invalid option $1$help" >&2
102
+ exit 1 ;;
103
+
104
+ *local*)
105
+ # First pass through any local machine types.
106
+ echo "$1"
107
+ exit ;;
108
+
109
+ * )
110
+ break ;;
111
+ esac
112
+ done
113
+
114
+ case $# in
115
+ 0) echo "$me: missing argument$help" >&2
116
+ exit 1;;
117
+ 1) ;;
118
+ *) echo "$me: too many arguments$help" >&2
119
+ exit 1;;
120
+ esac
121
+
122
+ # Split fields of configuration type
123
+ saved_IFS=$IFS
124
+ IFS="-" read field1 field2 field3 field4 <<EOF
125
+ $1
126
+ EOF
127
+ IFS=$saved_IFS
128
+
129
+ # Separate into logical components for further validation
130
+ case $1 in
131
+ *-*-*-*-*)
132
+ echo "Invalid configuration '$1': more than four components" >&2
133
+ exit 1
134
+ ;;
135
+ *-*-*-*)
136
+ basic_machine=$field1-$field2
137
+ basic_os=$field3-$field4
138
+ ;;
139
+ *-*-*)
140
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
141
+ # parts
142
+ maybe_os=$field2-$field3
143
+ case $maybe_os in
144
+ cloudabi*-eabi* \
145
+ | kfreebsd*-gnu* \
146
+ | knetbsd*-gnu* \
147
+ | kopensolaris*-gnu* \
148
+ | linux-* \
149
+ | managarm-* \
150
+ | netbsd*-eabi* \
151
+ | netbsd*-gnu* \
152
+ | nto-qnx* \
153
+ | os2-emx* \
154
+ | rtmk-nova* \
155
+ | storm-chaos* \
156
+ | uclinux-gnu* \
157
+ | uclinux-uclibc* \
158
+ | windows-* )
159
+ basic_machine=$field1
160
+ basic_os=$maybe_os
161
+ ;;
162
+ android-linux)
163
+ basic_machine=$field1-unknown
164
+ basic_os=linux-android
165
+ ;;
166
+ *)
167
+ basic_machine=$field1-$field2
168
+ basic_os=$field3
169
+ ;;
170
+ esac
171
+ ;;
172
+ *-*)
173
+ case $field1-$field2 in
174
+ # Shorthands that happen to contain a single dash
175
+ convex-c[12] | convex-c3[248])
176
+ basic_machine=$field2-convex
177
+ basic_os=
178
+ ;;
179
+ decstation-3100)
180
+ basic_machine=mips-dec
181
+ basic_os=
182
+ ;;
183
+ *-*)
184
+ # Second component is usually, but not always the OS
185
+ case $field2 in
186
+ # Do not treat sunos as a manufacturer
187
+ sun*os*)
188
+ basic_machine=$field1
189
+ basic_os=$field2
190
+ ;;
191
+ # Manufacturers
192
+ 3100* \
193
+ | 32* \
194
+ | 3300* \
195
+ | 3600* \
196
+ | 7300* \
197
+ | acorn \
198
+ | altos* \
199
+ | apollo \
200
+ | apple \
201
+ | atari \
202
+ | att* \
203
+ | axis \
204
+ | be \
205
+ | bull \
206
+ | cbm \
207
+ | ccur \
208
+ | cisco \
209
+ | commodore \
210
+ | convergent* \
211
+ | convex* \
212
+ | cray \
213
+ | crds \
214
+ | dec* \
215
+ | delta* \
216
+ | dg \
217
+ | digital \
218
+ | dolphin \
219
+ | encore* \
220
+ | gould \
221
+ | harris \
222
+ | highlevel \
223
+ | hitachi* \
224
+ | hp \
225
+ | ibm* \
226
+ | intergraph \
227
+ | isi* \
228
+ | knuth \
229
+ | masscomp \
230
+ | microblaze* \
231
+ | mips* \
232
+ | motorola* \
233
+ | ncr* \
234
+ | news \
235
+ | next \
236
+ | ns \
237
+ | oki \
238
+ | omron* \
239
+ | pc533* \
240
+ | rebel \
241
+ | rom68k \
242
+ | rombug \
243
+ | semi \
244
+ | sequent* \
245
+ | siemens \
246
+ | sgi* \
247
+ | siemens \
248
+ | sim \
249
+ | sni \
250
+ | sony* \
251
+ | stratus \
252
+ | sun \
253
+ | sun[234]* \
254
+ | tektronix \
255
+ | tti* \
256
+ | ultra \
257
+ | unicom* \
258
+ | wec \
259
+ | winbond \
260
+ | wrs)
261
+ basic_machine=$field1-$field2
262
+ basic_os=
263
+ ;;
264
+ zephyr*)
265
+ basic_machine=$field1-unknown
266
+ basic_os=$field2
267
+ ;;
268
+ *)
269
+ basic_machine=$field1
270
+ basic_os=$field2
271
+ ;;
272
+ esac
273
+ ;;
274
+ esac
275
+ ;;
276
+ *)
277
+ # Convert single-component short-hands not valid as part of
278
+ # multi-component configurations.
279
+ case $field1 in
280
+ 386bsd)
281
+ basic_machine=i386-pc
282
+ basic_os=bsd
283
+ ;;
284
+ a29khif)
285
+ basic_machine=a29k-amd
286
+ basic_os=udi
287
+ ;;
288
+ adobe68k)
289
+ basic_machine=m68010-adobe
290
+ basic_os=scout
291
+ ;;
292
+ alliant)
293
+ basic_machine=fx80-alliant
294
+ basic_os=
295
+ ;;
296
+ altos | altos3068)
297
+ basic_machine=m68k-altos
298
+ basic_os=
299
+ ;;
300
+ am29k)
301
+ basic_machine=a29k-none
302
+ basic_os=bsd
303
+ ;;
304
+ amdahl)
305
+ basic_machine=580-amdahl
306
+ basic_os=sysv
307
+ ;;
308
+ amiga)
309
+ basic_machine=m68k-unknown
310
+ basic_os=
311
+ ;;
312
+ amigaos | amigados)
313
+ basic_machine=m68k-unknown
314
+ basic_os=amigaos
315
+ ;;
316
+ amigaunix | amix)
317
+ basic_machine=m68k-unknown
318
+ basic_os=sysv4
319
+ ;;
320
+ apollo68)
321
+ basic_machine=m68k-apollo
322
+ basic_os=sysv
323
+ ;;
324
+ apollo68bsd)
325
+ basic_machine=m68k-apollo
326
+ basic_os=bsd
327
+ ;;
328
+ aros)
329
+ basic_machine=i386-pc
330
+ basic_os=aros
331
+ ;;
332
+ aux)
333
+ basic_machine=m68k-apple
334
+ basic_os=aux
335
+ ;;
336
+ balance)
337
+ basic_machine=ns32k-sequent
338
+ basic_os=dynix
339
+ ;;
340
+ blackfin)
341
+ basic_machine=bfin-unknown
342
+ basic_os=linux
343
+ ;;
344
+ cegcc)
345
+ basic_machine=arm-unknown
346
+ basic_os=cegcc
347
+ ;;
348
+ cray)
349
+ basic_machine=j90-cray
350
+ basic_os=unicos
351
+ ;;
352
+ crds | unos)
353
+ basic_machine=m68k-crds
354
+ basic_os=
355
+ ;;
356
+ da30)
357
+ basic_machine=m68k-da30
358
+ basic_os=
359
+ ;;
360
+ decstation | pmax | pmin | dec3100 | decstatn)
361
+ basic_machine=mips-dec
362
+ basic_os=
363
+ ;;
364
+ delta88)
365
+ basic_machine=m88k-motorola
366
+ basic_os=sysv3
367
+ ;;
368
+ dicos)
369
+ basic_machine=i686-pc
370
+ basic_os=dicos
371
+ ;;
372
+ djgpp)
373
+ basic_machine=i586-pc
374
+ basic_os=msdosdjgpp
375
+ ;;
376
+ ebmon29k)
377
+ basic_machine=a29k-amd
378
+ basic_os=ebmon
379
+ ;;
380
+ es1800 | OSE68k | ose68k | ose | OSE)
381
+ basic_machine=m68k-ericsson
382
+ basic_os=ose
383
+ ;;
384
+ gmicro)
385
+ basic_machine=tron-gmicro
386
+ basic_os=sysv
387
+ ;;
388
+ go32)
389
+ basic_machine=i386-pc
390
+ basic_os=go32
391
+ ;;
392
+ h8300hms)
393
+ basic_machine=h8300-hitachi
394
+ basic_os=hms
395
+ ;;
396
+ h8300xray)
397
+ basic_machine=h8300-hitachi
398
+ basic_os=xray
399
+ ;;
400
+ h8500hms)
401
+ basic_machine=h8500-hitachi
402
+ basic_os=hms
403
+ ;;
404
+ harris)
405
+ basic_machine=m88k-harris
406
+ basic_os=sysv3
407
+ ;;
408
+ hp300 | hp300hpux)
409
+ basic_machine=m68k-hp
410
+ basic_os=hpux
411
+ ;;
412
+ hp300bsd)
413
+ basic_machine=m68k-hp
414
+ basic_os=bsd
415
+ ;;
416
+ hppaosf)
417
+ basic_machine=hppa1.1-hp
418
+ basic_os=osf
419
+ ;;
420
+ hppro)
421
+ basic_machine=hppa1.1-hp
422
+ basic_os=proelf
423
+ ;;
424
+ i386mach)
425
+ basic_machine=i386-mach
426
+ basic_os=mach
427
+ ;;
428
+ isi68 | isi)
429
+ basic_machine=m68k-isi
430
+ basic_os=sysv
431
+ ;;
432
+ m68knommu)
433
+ basic_machine=m68k-unknown
434
+ basic_os=linux
435
+ ;;
436
+ magnum | m3230)
437
+ basic_machine=mips-mips
438
+ basic_os=sysv
439
+ ;;
440
+ merlin)
441
+ basic_machine=ns32k-utek
442
+ basic_os=sysv
443
+ ;;
444
+ mingw64)
445
+ basic_machine=x86_64-pc
446
+ basic_os=mingw64
447
+ ;;
448
+ mingw32)
449
+ basic_machine=i686-pc
450
+ basic_os=mingw32
451
+ ;;
452
+ mingw32ce)
453
+ basic_machine=arm-unknown
454
+ basic_os=mingw32ce
455
+ ;;
456
+ monitor)
457
+ basic_machine=m68k-rom68k
458
+ basic_os=coff
459
+ ;;
460
+ morphos)
461
+ basic_machine=powerpc-unknown
462
+ basic_os=morphos
463
+ ;;
464
+ moxiebox)
465
+ basic_machine=moxie-unknown
466
+ basic_os=moxiebox
467
+ ;;
468
+ msdos)
469
+ basic_machine=i386-pc
470
+ basic_os=msdos
471
+ ;;
472
+ msys)
473
+ basic_machine=i686-pc
474
+ basic_os=msys
475
+ ;;
476
+ mvs)
477
+ basic_machine=i370-ibm
478
+ basic_os=mvs
479
+ ;;
480
+ nacl)
481
+ basic_machine=le32-unknown
482
+ basic_os=nacl
483
+ ;;
484
+ ncr3000)
485
+ basic_machine=i486-ncr
486
+ basic_os=sysv4
487
+ ;;
488
+ netbsd386)
489
+ basic_machine=i386-pc
490
+ basic_os=netbsd
491
+ ;;
492
+ netwinder)
493
+ basic_machine=armv4l-rebel
494
+ basic_os=linux
495
+ ;;
496
+ news | news700 | news800 | news900)
497
+ basic_machine=m68k-sony
498
+ basic_os=newsos
499
+ ;;
500
+ news1000)
501
+ basic_machine=m68030-sony
502
+ basic_os=newsos
503
+ ;;
504
+ necv70)
505
+ basic_machine=v70-nec
506
+ basic_os=sysv
507
+ ;;
508
+ nh3000)
509
+ basic_machine=m68k-harris
510
+ basic_os=cxux
511
+ ;;
512
+ nh[45]000)
513
+ basic_machine=m88k-harris
514
+ basic_os=cxux
515
+ ;;
516
+ nindy960)
517
+ basic_machine=i960-intel
518
+ basic_os=nindy
519
+ ;;
520
+ mon960)
521
+ basic_machine=i960-intel
522
+ basic_os=mon960
523
+ ;;
524
+ nonstopux)
525
+ basic_machine=mips-compaq
526
+ basic_os=nonstopux
527
+ ;;
528
+ os400)
529
+ basic_machine=powerpc-ibm
530
+ basic_os=os400
531
+ ;;
532
+ OSE68000 | ose68000)
533
+ basic_machine=m68000-ericsson
534
+ basic_os=ose
535
+ ;;
536
+ os68k)
537
+ basic_machine=m68k-none
538
+ basic_os=os68k
539
+ ;;
540
+ paragon)
541
+ basic_machine=i860-intel
542
+ basic_os=osf
543
+ ;;
544
+ parisc)
545
+ basic_machine=hppa-unknown
546
+ basic_os=linux
547
+ ;;
548
+ psp)
549
+ basic_machine=mipsallegrexel-sony
550
+ basic_os=psp
551
+ ;;
552
+ pw32)
553
+ basic_machine=i586-unknown
554
+ basic_os=pw32
555
+ ;;
556
+ rdos | rdos64)
557
+ basic_machine=x86_64-pc
558
+ basic_os=rdos
559
+ ;;
560
+ rdos32)
561
+ basic_machine=i386-pc
562
+ basic_os=rdos
563
+ ;;
564
+ rom68k)
565
+ basic_machine=m68k-rom68k
566
+ basic_os=coff
567
+ ;;
568
+ sa29200)
569
+ basic_machine=a29k-amd
570
+ basic_os=udi
571
+ ;;
572
+ sei)
573
+ basic_machine=mips-sei
574
+ basic_os=seiux
575
+ ;;
576
+ sequent)
577
+ basic_machine=i386-sequent
578
+ basic_os=
579
+ ;;
580
+ sps7)
581
+ basic_machine=m68k-bull
582
+ basic_os=sysv2
583
+ ;;
584
+ st2000)
585
+ basic_machine=m68k-tandem
586
+ basic_os=
587
+ ;;
588
+ stratus)
589
+ basic_machine=i860-stratus
590
+ basic_os=sysv4
591
+ ;;
592
+ sun2)
593
+ basic_machine=m68000-sun
594
+ basic_os=
595
+ ;;
596
+ sun2os3)
597
+ basic_machine=m68000-sun
598
+ basic_os=sunos3
599
+ ;;
600
+ sun2os4)
601
+ basic_machine=m68000-sun
602
+ basic_os=sunos4
603
+ ;;
604
+ sun3)
605
+ basic_machine=m68k-sun
606
+ basic_os=
607
+ ;;
608
+ sun3os3)
609
+ basic_machine=m68k-sun
610
+ basic_os=sunos3
611
+ ;;
612
+ sun3os4)
613
+ basic_machine=m68k-sun
614
+ basic_os=sunos4
615
+ ;;
616
+ sun4)
617
+ basic_machine=sparc-sun
618
+ basic_os=
619
+ ;;
620
+ sun4os3)
621
+ basic_machine=sparc-sun
622
+ basic_os=sunos3
623
+ ;;
624
+ sun4os4)
625
+ basic_machine=sparc-sun
626
+ basic_os=sunos4
627
+ ;;
628
+ sun4sol2)
629
+ basic_machine=sparc-sun
630
+ basic_os=solaris2
631
+ ;;
632
+ sun386 | sun386i | roadrunner)
633
+ basic_machine=i386-sun
634
+ basic_os=
635
+ ;;
636
+ sv1)
637
+ basic_machine=sv1-cray
638
+ basic_os=unicos
639
+ ;;
640
+ symmetry)
641
+ basic_machine=i386-sequent
642
+ basic_os=dynix
643
+ ;;
644
+ t3e)
645
+ basic_machine=alphaev5-cray
646
+ basic_os=unicos
647
+ ;;
648
+ t90)
649
+ basic_machine=t90-cray
650
+ basic_os=unicos
651
+ ;;
652
+ toad1)
653
+ basic_machine=pdp10-xkl
654
+ basic_os=tops20
655
+ ;;
656
+ tpf)
657
+ basic_machine=s390x-ibm
658
+ basic_os=tpf
659
+ ;;
660
+ udi29k)
661
+ basic_machine=a29k-amd
662
+ basic_os=udi
663
+ ;;
664
+ ultra3)
665
+ basic_machine=a29k-nyu
666
+ basic_os=sym1
667
+ ;;
668
+ v810 | necv810)
669
+ basic_machine=v810-nec
670
+ basic_os=none
671
+ ;;
672
+ vaxv)
673
+ basic_machine=vax-dec
674
+ basic_os=sysv
675
+ ;;
676
+ vms)
677
+ basic_machine=vax-dec
678
+ basic_os=vms
679
+ ;;
680
+ vsta)
681
+ basic_machine=i386-pc
682
+ basic_os=vsta
683
+ ;;
684
+ vxworks960)
685
+ basic_machine=i960-wrs
686
+ basic_os=vxworks
687
+ ;;
688
+ vxworks68)
689
+ basic_machine=m68k-wrs
690
+ basic_os=vxworks
691
+ ;;
692
+ vxworks29k)
693
+ basic_machine=a29k-wrs
694
+ basic_os=vxworks
695
+ ;;
696
+ xbox)
697
+ basic_machine=i686-pc
698
+ basic_os=mingw32
699
+ ;;
700
+ ymp)
701
+ basic_machine=ymp-cray
702
+ basic_os=unicos
703
+ ;;
704
+ *)
705
+ basic_machine=$1
706
+ basic_os=
707
+ ;;
708
+ esac
709
+ ;;
710
+ esac
711
+
712
+ # Decode 1-component or ad-hoc basic machines
713
+ case $basic_machine in
714
+ # Here we handle the default manufacturer of certain CPU types. It is in
715
+ # some cases the only manufacturer, in others, it is the most popular.
716
+ w89k)
717
+ cpu=hppa1.1
718
+ vendor=winbond
719
+ ;;
720
+ op50n)
721
+ cpu=hppa1.1
722
+ vendor=oki
723
+ ;;
724
+ op60c)
725
+ cpu=hppa1.1
726
+ vendor=oki
727
+ ;;
728
+ ibm*)
729
+ cpu=i370
730
+ vendor=ibm
731
+ ;;
732
+ orion105)
733
+ cpu=clipper
734
+ vendor=highlevel
735
+ ;;
736
+ mac | mpw | mac-mpw)
737
+ cpu=m68k
738
+ vendor=apple
739
+ ;;
740
+ pmac | pmac-mpw)
741
+ cpu=powerpc
742
+ vendor=apple
743
+ ;;
744
+
745
+ # Recognize the various machine names and aliases which stand
746
+ # for a CPU type and a company and sometimes even an OS.
747
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
748
+ cpu=m68000
749
+ vendor=att
750
+ ;;
751
+ 3b*)
752
+ cpu=we32k
753
+ vendor=att
754
+ ;;
755
+ bluegene*)
756
+ cpu=powerpc
757
+ vendor=ibm
758
+ basic_os=cnk
759
+ ;;
760
+ decsystem10* | dec10*)
761
+ cpu=pdp10
762
+ vendor=dec
763
+ basic_os=tops10
764
+ ;;
765
+ decsystem20* | dec20*)
766
+ cpu=pdp10
767
+ vendor=dec
768
+ basic_os=tops20
769
+ ;;
770
+ delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300)
771
+ cpu=m68k
772
+ vendor=motorola
773
+ ;;
774
+ # This used to be dpx2*, but that gets the RS6000-based
775
+ # DPX/20 and the x86-based DPX/2-100 wrong. See
776
+ # https://oldskool.silicium.org/stations/bull_dpx20.htm
777
+ # https://www.feb-patrimoine.com/english/bull_dpx2.htm
778
+ # https://www.feb-patrimoine.com/english/unix_and_bull.htm
779
+ dpx2 | dpx2[23]00 | dpx2[23]xx)
780
+ cpu=m68k
781
+ vendor=bull
782
+ ;;
783
+ dpx2100 | dpx21xx)
784
+ cpu=i386
785
+ vendor=bull
786
+ ;;
787
+ dpx20)
788
+ cpu=rs6000
789
+ vendor=bull
790
+ ;;
791
+ encore | umax | mmax)
792
+ cpu=ns32k
793
+ vendor=encore
794
+ ;;
795
+ elxsi)
796
+ cpu=elxsi
797
+ vendor=elxsi
798
+ basic_os=${basic_os:-bsd}
799
+ ;;
800
+ fx2800)
801
+ cpu=i860
802
+ vendor=alliant
803
+ ;;
804
+ genix)
805
+ cpu=ns32k
806
+ vendor=ns
807
+ ;;
808
+ h3050r* | hiux*)
809
+ cpu=hppa1.1
810
+ vendor=hitachi
811
+ basic_os=hiuxwe2
812
+ ;;
813
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
814
+ cpu=hppa1.0
815
+ vendor=hp
816
+ ;;
817
+ hp9k2[0-9][0-9] | hp9k31[0-9])
818
+ cpu=m68000
819
+ vendor=hp
820
+ ;;
821
+ hp9k3[2-9][0-9])
822
+ cpu=m68k
823
+ vendor=hp
824
+ ;;
825
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
826
+ cpu=hppa1.0
827
+ vendor=hp
828
+ ;;
829
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
830
+ cpu=hppa1.1
831
+ vendor=hp
832
+ ;;
833
+ hp9k78[0-9] | hp78[0-9])
834
+ # FIXME: really hppa2.0-hp
835
+ cpu=hppa1.1
836
+ vendor=hp
837
+ ;;
838
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
839
+ # FIXME: really hppa2.0-hp
840
+ cpu=hppa1.1
841
+ vendor=hp
842
+ ;;
843
+ hp9k8[0-9][13679] | hp8[0-9][13679])
844
+ cpu=hppa1.1
845
+ vendor=hp
846
+ ;;
847
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
848
+ cpu=hppa1.0
849
+ vendor=hp
850
+ ;;
851
+ i*86v32)
852
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
853
+ vendor=pc
854
+ basic_os=sysv32
855
+ ;;
856
+ i*86v4*)
857
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
858
+ vendor=pc
859
+ basic_os=sysv4
860
+ ;;
861
+ i*86v)
862
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
863
+ vendor=pc
864
+ basic_os=sysv
865
+ ;;
866
+ i*86sol2)
867
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
868
+ vendor=pc
869
+ basic_os=solaris2
870
+ ;;
871
+ j90 | j90-cray)
872
+ cpu=j90
873
+ vendor=cray
874
+ basic_os=${basic_os:-unicos}
875
+ ;;
876
+ iris | iris4d)
877
+ cpu=mips
878
+ vendor=sgi
879
+ case $basic_os in
880
+ irix*)
881
+ ;;
882
+ *)
883
+ basic_os=irix4
884
+ ;;
885
+ esac
886
+ ;;
887
+ miniframe)
888
+ cpu=m68000
889
+ vendor=convergent
890
+ ;;
891
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
892
+ cpu=m68k
893
+ vendor=atari
894
+ basic_os=mint
895
+ ;;
896
+ news-3600 | risc-news)
897
+ cpu=mips
898
+ vendor=sony
899
+ basic_os=newsos
900
+ ;;
901
+ next | m*-next)
902
+ cpu=m68k
903
+ vendor=next
904
+ ;;
905
+ np1)
906
+ cpu=np1
907
+ vendor=gould
908
+ ;;
909
+ op50n-* | op60c-*)
910
+ cpu=hppa1.1
911
+ vendor=oki
912
+ basic_os=proelf
913
+ ;;
914
+ pa-hitachi)
915
+ cpu=hppa1.1
916
+ vendor=hitachi
917
+ basic_os=hiuxwe2
918
+ ;;
919
+ pbd)
920
+ cpu=sparc
921
+ vendor=tti
922
+ ;;
923
+ pbb)
924
+ cpu=m68k
925
+ vendor=tti
926
+ ;;
927
+ pc532)
928
+ cpu=ns32k
929
+ vendor=pc532
930
+ ;;
931
+ pn)
932
+ cpu=pn
933
+ vendor=gould
934
+ ;;
935
+ power)
936
+ cpu=power
937
+ vendor=ibm
938
+ ;;
939
+ ps2)
940
+ cpu=i386
941
+ vendor=ibm
942
+ ;;
943
+ rm[46]00)
944
+ cpu=mips
945
+ vendor=siemens
946
+ ;;
947
+ rtpc | rtpc-*)
948
+ cpu=romp
949
+ vendor=ibm
950
+ ;;
951
+ sde)
952
+ cpu=mipsisa32
953
+ vendor=sde
954
+ basic_os=${basic_os:-elf}
955
+ ;;
956
+ simso-wrs)
957
+ cpu=sparclite
958
+ vendor=wrs
959
+ basic_os=vxworks
960
+ ;;
961
+ tower | tower-32)
962
+ cpu=m68k
963
+ vendor=ncr
964
+ ;;
965
+ vpp*|vx|vx-*)
966
+ cpu=f301
967
+ vendor=fujitsu
968
+ ;;
969
+ w65)
970
+ cpu=w65
971
+ vendor=wdc
972
+ ;;
973
+ w89k-*)
974
+ cpu=hppa1.1
975
+ vendor=winbond
976
+ basic_os=proelf
977
+ ;;
978
+ none)
979
+ cpu=none
980
+ vendor=none
981
+ ;;
982
+ leon|leon[3-9])
983
+ cpu=sparc
984
+ vendor=$basic_machine
985
+ ;;
986
+ leon-*|leon[3-9]-*)
987
+ cpu=sparc
988
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
989
+ ;;
990
+
991
+ *-*)
992
+ saved_IFS=$IFS
993
+ IFS="-" read cpu vendor <<EOF
994
+ $basic_machine
995
+ EOF
996
+ IFS=$saved_IFS
997
+ ;;
998
+ # We use 'pc' rather than 'unknown'
999
+ # because (1) that's what they normally are, and
1000
+ # (2) the word "unknown" tends to confuse beginning users.
1001
+ i*86 | x86_64)
1002
+ cpu=$basic_machine
1003
+ vendor=pc
1004
+ ;;
1005
+ # These rules are duplicated from below for sake of the special case above;
1006
+ # i.e. things that normalized to x86 arches should also default to "pc"
1007
+ pc98)
1008
+ cpu=i386
1009
+ vendor=pc
1010
+ ;;
1011
+ x64 | amd64)
1012
+ cpu=x86_64
1013
+ vendor=pc
1014
+ ;;
1015
+ # Recognize the basic CPU types without company name.
1016
+ *)
1017
+ cpu=$basic_machine
1018
+ vendor=unknown
1019
+ ;;
1020
+ esac
1021
+
1022
+ unset -v basic_machine
1023
+
1024
+ # Decode basic machines in the full and proper CPU-Company form.
1025
+ case $cpu-$vendor in
1026
+ # Here we handle the default manufacturer of certain CPU types in canonical form.
1027
+ # It is in some cases the only manufacturer, in others, it is the most popular.
1028
+ c[12]-convex | c[12]-unknown | c3[248]-convex | c3[248]-unknown)
1029
+ vendor=convex
1030
+ basic_os=${basic_os:-bsd}
1031
+ ;;
1032
+ craynv-unknown)
1033
+ vendor=cray
1034
+ basic_os=${basic_os:-unicosmp}
1035
+ ;;
1036
+ c90-unknown | c90-cray)
1037
+ vendor=cray
1038
+ basic_os=${basic_os:-unicos}
1039
+ ;;
1040
+ fx80-unknown)
1041
+ vendor=alliant
1042
+ ;;
1043
+ romp-unknown)
1044
+ vendor=ibm
1045
+ ;;
1046
+ mmix-unknown)
1047
+ vendor=knuth
1048
+ ;;
1049
+ microblaze-unknown | microblazeel-unknown)
1050
+ vendor=xilinx
1051
+ ;;
1052
+ rs6000-unknown)
1053
+ vendor=ibm
1054
+ ;;
1055
+ vax-unknown)
1056
+ vendor=dec
1057
+ ;;
1058
+ pdp11-unknown)
1059
+ vendor=dec
1060
+ ;;
1061
+ we32k-unknown)
1062
+ vendor=att
1063
+ ;;
1064
+ cydra-unknown)
1065
+ vendor=cydrome
1066
+ ;;
1067
+ i370-ibm*)
1068
+ vendor=ibm
1069
+ ;;
1070
+ orion-unknown)
1071
+ vendor=highlevel
1072
+ ;;
1073
+ xps-unknown | xps100-unknown)
1074
+ cpu=xps100
1075
+ vendor=honeywell
1076
+ ;;
1077
+
1078
+ # Here we normalize CPU types with a missing or matching vendor
1079
+ armh-unknown | armh-alt)
1080
+ cpu=armv7l
1081
+ vendor=alt
1082
+ basic_os=${basic_os:-linux-gnueabihf}
1083
+ ;;
1084
+
1085
+ # Normalized CPU+vendor pairs that imply an OS, if not otherwise specified
1086
+ m68k-isi)
1087
+ basic_os=${basic_os:-sysv}
1088
+ ;;
1089
+ m68k-sony)
1090
+ basic_os=${basic_os:-newsos}
1091
+ ;;
1092
+ m68k-tektronix)
1093
+ basic_os=${basic_os:-bsd}
1094
+ ;;
1095
+ m88k-harris)
1096
+ basic_os=${basic_os:-sysv3}
1097
+ ;;
1098
+ i386-bull | m68k-bull)
1099
+ basic_os=${basic_os:-sysv3}
1100
+ ;;
1101
+ rs6000-bull)
1102
+ basic_os=${basic_os:-bosx}
1103
+ ;;
1104
+ mips-sni)
1105
+ basic_os=${basic_os:-sysv4}
1106
+ ;;
1107
+
1108
+ # Here we normalize CPU types irrespective of the vendor
1109
+ amd64-*)
1110
+ cpu=x86_64
1111
+ ;;
1112
+ blackfin-*)
1113
+ cpu=bfin
1114
+ basic_os=${basic_os:-linux}
1115
+ ;;
1116
+ c54x-*)
1117
+ cpu=tic54x
1118
+ ;;
1119
+ c55x-*)
1120
+ cpu=tic55x
1121
+ ;;
1122
+ c6x-*)
1123
+ cpu=tic6x
1124
+ ;;
1125
+ e500v[12]-*)
1126
+ cpu=powerpc
1127
+ basic_os=${basic_os}"spe"
1128
+ ;;
1129
+ mips3*-*)
1130
+ cpu=mips64
1131
+ ;;
1132
+ ms1-*)
1133
+ cpu=mt
1134
+ ;;
1135
+ m68knommu-*)
1136
+ cpu=m68k
1137
+ basic_os=${basic_os:-linux}
1138
+ ;;
1139
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1140
+ cpu=s12z
1141
+ ;;
1142
+ openrisc-*)
1143
+ cpu=or32
1144
+ ;;
1145
+ parisc-*)
1146
+ cpu=hppa
1147
+ basic_os=${basic_os:-linux}
1148
+ ;;
1149
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1150
+ cpu=i586
1151
+ ;;
1152
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
1153
+ cpu=i686
1154
+ ;;
1155
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1156
+ cpu=i686
1157
+ ;;
1158
+ pentium4-*)
1159
+ cpu=i786
1160
+ ;;
1161
+ ppc-* | ppcbe-*)
1162
+ cpu=powerpc
1163
+ ;;
1164
+ ppcle-* | powerpclittle-*)
1165
+ cpu=powerpcle
1166
+ ;;
1167
+ ppc64-*)
1168
+ cpu=powerpc64
1169
+ ;;
1170
+ ppc64le-* | powerpc64little-*)
1171
+ cpu=powerpc64le
1172
+ ;;
1173
+ sb1-*)
1174
+ cpu=mipsisa64sb1
1175
+ ;;
1176
+ sb1el-*)
1177
+ cpu=mipsisa64sb1el
1178
+ ;;
1179
+ sh5e[lb]-*)
1180
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1181
+ ;;
1182
+ spur-*)
1183
+ cpu=spur
1184
+ ;;
1185
+ strongarm-* | thumb-*)
1186
+ cpu=arm
1187
+ ;;
1188
+ tx39-*)
1189
+ cpu=mipstx39
1190
+ ;;
1191
+ tx39el-*)
1192
+ cpu=mipstx39el
1193
+ ;;
1194
+ xscale-* | xscalee[bl]-*)
1195
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1196
+ ;;
1197
+ arm64-* | aarch64le-*)
1198
+ cpu=aarch64
1199
+ ;;
1200
+
1201
+ # Recognize the canonical CPU Types that limit and/or modify the
1202
+ # company names they are paired with.
1203
+ cr16-*)
1204
+ basic_os=${basic_os:-elf}
1205
+ ;;
1206
+ crisv32-* | etraxfs*-*)
1207
+ cpu=crisv32
1208
+ vendor=axis
1209
+ ;;
1210
+ cris-* | etrax*-*)
1211
+ cpu=cris
1212
+ vendor=axis
1213
+ ;;
1214
+ crx-*)
1215
+ basic_os=${basic_os:-elf}
1216
+ ;;
1217
+ neo-tandem)
1218
+ cpu=neo
1219
+ vendor=tandem
1220
+ ;;
1221
+ nse-tandem)
1222
+ cpu=nse
1223
+ vendor=tandem
1224
+ ;;
1225
+ nsr-tandem)
1226
+ cpu=nsr
1227
+ vendor=tandem
1228
+ ;;
1229
+ nsv-tandem)
1230
+ cpu=nsv
1231
+ vendor=tandem
1232
+ ;;
1233
+ nsx-tandem)
1234
+ cpu=nsx
1235
+ vendor=tandem
1236
+ ;;
1237
+ mipsallegrexel-sony)
1238
+ cpu=mipsallegrexel
1239
+ vendor=sony
1240
+ ;;
1241
+ tile*-*)
1242
+ basic_os=${basic_os:-linux-gnu}
1243
+ ;;
1244
+
1245
+ *)
1246
+ # Recognize the canonical CPU types that are allowed with any
1247
+ # company name.
1248
+ case $cpu in
1249
+ 1750a \
1250
+ | 580 \
1251
+ | [cjt]90 \
1252
+ | a29k \
1253
+ | aarch64 \
1254
+ | aarch64_be \
1255
+ | aarch64c \
1256
+ | abacus \
1257
+ | alpha \
1258
+ | alpha64 \
1259
+ | alpha64ev56 \
1260
+ | alpha64ev6[78] \
1261
+ | alpha64ev[4-8] \
1262
+ | alpha64pca5[67] \
1263
+ | alphaev56 \
1264
+ | alphaev6[78] \
1265
+ | alphaev[4-8] \
1266
+ | alphapca5[67] \
1267
+ | am33_2.0 \
1268
+ | amdgcn \
1269
+ | arc \
1270
+ | arc32 \
1271
+ | arc64 \
1272
+ | arceb \
1273
+ | arm \
1274
+ | arm64e \
1275
+ | arm64ec \
1276
+ | arm[lb]e \
1277
+ | arme[lb] \
1278
+ | armv* \
1279
+ | asmjs \
1280
+ | avr \
1281
+ | avr32 \
1282
+ | ba \
1283
+ | be32 \
1284
+ | be64 \
1285
+ | bfin \
1286
+ | bpf \
1287
+ | bs2000 \
1288
+ | c30 \
1289
+ | c4x \
1290
+ | c8051 \
1291
+ | c[123]* \
1292
+ | clipper \
1293
+ | craynv \
1294
+ | csky \
1295
+ | cydra \
1296
+ | d10v \
1297
+ | d30v \
1298
+ | dlx \
1299
+ | dsp16xx \
1300
+ | e2k \
1301
+ | elxsi \
1302
+ | epiphany \
1303
+ | f30[01] \
1304
+ | f700 \
1305
+ | fido \
1306
+ | fr30 \
1307
+ | frv \
1308
+ | ft32 \
1309
+ | fx80 \
1310
+ | h8300 \
1311
+ | h8500 \
1312
+ | hexagon \
1313
+ | hppa \
1314
+ | hppa1.[01] \
1315
+ | hppa2.0 \
1316
+ | hppa2.0[nw] \
1317
+ | hppa64 \
1318
+ | i*86 \
1319
+ | i370 \
1320
+ | i860 \
1321
+ | i960 \
1322
+ | ia16 \
1323
+ | ia64 \
1324
+ | ip2k \
1325
+ | iq2000 \
1326
+ | javascript \
1327
+ | k1om \
1328
+ | kvx \
1329
+ | le32 \
1330
+ | le64 \
1331
+ | lm32 \
1332
+ | loongarch32 \
1333
+ | loongarch64 \
1334
+ | m32c \
1335
+ | m32r \
1336
+ | m32rle \
1337
+ | m5200 \
1338
+ | m68000 \
1339
+ | m680[012346]0 \
1340
+ | m6811 \
1341
+ | m6812 \
1342
+ | m68360 \
1343
+ | m683?2 \
1344
+ | m68hc11 \
1345
+ | m68hc12 \
1346
+ | m68hcs12x \
1347
+ | m68k \
1348
+ | m88110 \
1349
+ | m88k \
1350
+ | maxq \
1351
+ | mb \
1352
+ | mcore \
1353
+ | mep \
1354
+ | metag \
1355
+ | microblaze \
1356
+ | microblazeel \
1357
+ | mips* \
1358
+ | mmix \
1359
+ | mn10200 \
1360
+ | mn10300 \
1361
+ | moxie \
1362
+ | msp430 \
1363
+ | mt \
1364
+ | nanomips* \
1365
+ | nds32 \
1366
+ | nds32be \
1367
+ | nds32le \
1368
+ | nfp \
1369
+ | nios \
1370
+ | nios2 \
1371
+ | nios2eb \
1372
+ | nios2el \
1373
+ | none \
1374
+ | np1 \
1375
+ | ns16k \
1376
+ | ns32k \
1377
+ | nvptx \
1378
+ | open8 \
1379
+ | or1k* \
1380
+ | or32 \
1381
+ | orion \
1382
+ | pdp10 \
1383
+ | pdp11 \
1384
+ | picochip \
1385
+ | pj \
1386
+ | pjl \
1387
+ | pn \
1388
+ | power \
1389
+ | powerpc \
1390
+ | powerpc64 \
1391
+ | powerpc64le \
1392
+ | powerpcle \
1393
+ | powerpcspe \
1394
+ | pru \
1395
+ | pyramid \
1396
+ | riscv \
1397
+ | riscv32 \
1398
+ | riscv32be \
1399
+ | riscv64 \
1400
+ | riscv64be \
1401
+ | rl78 \
1402
+ | romp \
1403
+ | rs6000 \
1404
+ | rx \
1405
+ | s390 \
1406
+ | s390x \
1407
+ | score \
1408
+ | sh \
1409
+ | sh64 \
1410
+ | sh64le \
1411
+ | sh[12345][lb]e \
1412
+ | sh[1234] \
1413
+ | sh[1234]e[lb] \
1414
+ | sh[23]e \
1415
+ | sh[23]ele \
1416
+ | sh[24]a \
1417
+ | sh[24]ae[lb] \
1418
+ | sh[lb]e \
1419
+ | she[lb] \
1420
+ | shl \
1421
+ | sparc \
1422
+ | sparc64 \
1423
+ | sparc64b \
1424
+ | sparc64v \
1425
+ | sparc86x \
1426
+ | sparclet \
1427
+ | sparclite \
1428
+ | sparcv8 \
1429
+ | sparcv9 \
1430
+ | sparcv9b \
1431
+ | sparcv9v \
1432
+ | spu \
1433
+ | sv1 \
1434
+ | sx* \
1435
+ | tahoe \
1436
+ | thumbv7* \
1437
+ | tic30 \
1438
+ | tic4x \
1439
+ | tic54x \
1440
+ | tic55x \
1441
+ | tic6x \
1442
+ | tic80 \
1443
+ | tron \
1444
+ | ubicom32 \
1445
+ | v70 \
1446
+ | v810 \
1447
+ | v850 \
1448
+ | v850e \
1449
+ | v850e1 \
1450
+ | v850e2 \
1451
+ | v850e2v3 \
1452
+ | v850es \
1453
+ | vax \
1454
+ | vc4 \
1455
+ | visium \
1456
+ | w65 \
1457
+ | wasm32 \
1458
+ | wasm64 \
1459
+ | we32k \
1460
+ | x86 \
1461
+ | x86_64 \
1462
+ | xc16x \
1463
+ | xgate \
1464
+ | xps100 \
1465
+ | xstormy16 \
1466
+ | xtensa* \
1467
+ | ymp \
1468
+ | z80 \
1469
+ | z8k)
1470
+ ;;
1471
+
1472
+ *)
1473
+ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
1474
+ exit 1
1475
+ ;;
1476
+ esac
1477
+ ;;
1478
+ esac
1479
+
1480
+ # Here we canonicalize certain aliases for manufacturers.
1481
+ case $vendor in
1482
+ digital*)
1483
+ vendor=dec
1484
+ ;;
1485
+ commodore*)
1486
+ vendor=cbm
1487
+ ;;
1488
+ *)
1489
+ ;;
1490
+ esac
1491
+
1492
+ # Decode manufacturer-specific aliases for certain operating systems.
1493
+
1494
+ if test x"$basic_os" != x
1495
+ then
1496
+
1497
+ # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
1498
+ # set os.
1499
+ obj=
1500
+ case $basic_os in
1501
+ gnu/linux*)
1502
+ kernel=linux
1503
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
1504
+ ;;
1505
+ os2-emx)
1506
+ kernel=os2
1507
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
1508
+ ;;
1509
+ nto-qnx*)
1510
+ kernel=nto
1511
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
1512
+ ;;
1513
+ *-*)
1514
+ saved_IFS=$IFS
1515
+ IFS="-" read kernel os <<EOF
1516
+ $basic_os
1517
+ EOF
1518
+ IFS=$saved_IFS
1519
+ ;;
1520
+ # Default OS when just kernel was specified
1521
+ nto*)
1522
+ kernel=nto
1523
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
1524
+ ;;
1525
+ linux*)
1526
+ kernel=linux
1527
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
1528
+ ;;
1529
+ managarm*)
1530
+ kernel=managarm
1531
+ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
1532
+ ;;
1533
+ *)
1534
+ kernel=
1535
+ os=$basic_os
1536
+ ;;
1537
+ esac
1538
+
1539
+ # Now, normalize the OS (knowing we just have one component, it's not a kernel,
1540
+ # etc.)
1541
+ case $os in
1542
+ # First match some system type aliases that might get confused
1543
+ # with valid system types.
1544
+ # solaris* is a basic system type, with this one exception.
1545
+ auroraux)
1546
+ os=auroraux
1547
+ ;;
1548
+ bluegene*)
1549
+ os=cnk
1550
+ ;;
1551
+ solaris1 | solaris1.*)
1552
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
1553
+ ;;
1554
+ solaris)
1555
+ os=solaris2
1556
+ ;;
1557
+ unixware*)
1558
+ os=sysv4.2uw
1559
+ ;;
1560
+ # The marketing names for NeXT's operating systems were
1561
+ # NeXTSTEP, NeXTSTEP 2, OpenSTEP 3, OpenSTEP 4. 'openstep' is
1562
+ # mapped to 'openstep3', but 'openstep1' and 'openstep2' are
1563
+ # mapped to 'nextstep' and 'nextstep2', consistent with the
1564
+ # treatment of SunOS/Solaris.
1565
+ ns | ns1 | nextstep | nextstep1 | openstep1)
1566
+ os=nextstep
1567
+ ;;
1568
+ ns2 | nextstep2 | openstep2)
1569
+ os=nextstep2
1570
+ ;;
1571
+ ns3 | nextstep3 | openstep | openstep3)
1572
+ os=openstep3
1573
+ ;;
1574
+ ns4 | nextstep4 | openstep4)
1575
+ os=openstep4
1576
+ ;;
1577
+ # es1800 is here to avoid being matched by es* (a different OS)
1578
+ es1800*)
1579
+ os=ose
1580
+ ;;
1581
+ # Some version numbers need modification
1582
+ chorusos*)
1583
+ os=chorusos
1584
+ ;;
1585
+ isc)
1586
+ os=isc2.2
1587
+ ;;
1588
+ sco6)
1589
+ os=sco5v6
1590
+ ;;
1591
+ sco5)
1592
+ os=sco3.2v5
1593
+ ;;
1594
+ sco4)
1595
+ os=sco3.2v4
1596
+ ;;
1597
+ sco3.2.[4-9]*)
1598
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1599
+ ;;
1600
+ sco*v* | scout)
1601
+ # Don't match below
1602
+ ;;
1603
+ sco*)
1604
+ os=sco3.2v2
1605
+ ;;
1606
+ psos*)
1607
+ os=psos
1608
+ ;;
1609
+ qnx*)
1610
+ os=qnx
1611
+ ;;
1612
+ hiux*)
1613
+ os=hiuxwe2
1614
+ ;;
1615
+ lynx*178)
1616
+ os=lynxos178
1617
+ ;;
1618
+ lynx*5)
1619
+ os=lynxos5
1620
+ ;;
1621
+ lynxos*)
1622
+ # don't get caught up in next wildcard
1623
+ ;;
1624
+ lynx*)
1625
+ os=lynxos
1626
+ ;;
1627
+ mac[0-9]*)
1628
+ os=`echo "$os" | sed -e 's|mac|macos|'`
1629
+ ;;
1630
+ opened*)
1631
+ os=openedition
1632
+ ;;
1633
+ os400*)
1634
+ os=os400
1635
+ ;;
1636
+ sunos5*)
1637
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1638
+ ;;
1639
+ sunos6*)
1640
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1641
+ ;;
1642
+ wince*)
1643
+ os=wince
1644
+ ;;
1645
+ utek*)
1646
+ os=bsd
1647
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'`
1648
+ ;;
1649
+ dynix*)
1650
+ os=bsd
1651
+ ;;
1652
+ acis*)
1653
+ os=aos
1654
+ ;;
1655
+ atheos*)
1656
+ os=atheos
1657
+ ;;
1658
+ syllable*)
1659
+ os=syllable
1660
+ ;;
1661
+ 386bsd)
1662
+ os=bsd
1663
+ ;;
1664
+ ctix*)
1665
+ os=sysv
1666
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'`
1667
+ ;;
1668
+ uts*)
1669
+ os=sysv
1670
+ ;;
1671
+ nova*)
1672
+ kernel=rtmk
1673
+ os=nova
1674
+ ;;
1675
+ # Preserve the version number of sinix5.
1676
+ sinix5.*)
1677
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
1678
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
1679
+ ;;
1680
+ sinix*)
1681
+ os=sysv4
1682
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
1683
+ ;;
1684
+ tpf*)
1685
+ os=tpf
1686
+ ;;
1687
+ triton*)
1688
+ os=sysv3
1689
+ ;;
1690
+ oss*)
1691
+ os=sysv3
1692
+ ;;
1693
+ svr4*)
1694
+ os=sysv4
1695
+ ;;
1696
+ svr3)
1697
+ os=sysv3
1698
+ ;;
1699
+ sysvr4)
1700
+ os=sysv4
1701
+ ;;
1702
+ ose*)
1703
+ os=ose
1704
+ ;;
1705
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1706
+ os=mint
1707
+ ;;
1708
+ dicos*)
1709
+ os=dicos
1710
+ ;;
1711
+ pikeos*)
1712
+ # Until real need of OS specific support for
1713
+ # particular features comes up, bare metal
1714
+ # configurations are quite functional.
1715
+ case $cpu in
1716
+ arm*)
1717
+ os=eabi
1718
+ ;;
1719
+ *)
1720
+ os=
1721
+ obj=elf
1722
+ ;;
1723
+ esac
1724
+ ;;
1725
+ aout* | coff* | elf* | pe*)
1726
+ # These are machine code file formats, not OSes
1727
+ obj=$os
1728
+ os=
1729
+ ;;
1730
+ *)
1731
+ # No normalization, but not necessarily accepted, that comes below.
1732
+ ;;
1733
+ esac
1734
+
1735
+ else
1736
+
1737
+ # Here we handle the default operating systems that come with various machines.
1738
+ # The value should be what the vendor currently ships out the door with their
1739
+ # machine or put another way, the most popular os provided with the machine.
1740
+
1741
+ # Note that if you're going to try to match "-MANUFACTURER" here (say,
1742
+ # "-sun"), then you have to tell the case statement up towards the top
1743
+ # that MANUFACTURER isn't an operating system. Otherwise, code above
1744
+ # will signal an error saying that MANUFACTURER isn't an operating
1745
+ # system, and we'll never get to this point.
1746
+
1747
+ kernel=
1748
+ obj=
1749
+ case $cpu-$vendor in
1750
+ score-*)
1751
+ os=
1752
+ obj=elf
1753
+ ;;
1754
+ spu-*)
1755
+ os=
1756
+ obj=elf
1757
+ ;;
1758
+ *-acorn)
1759
+ os=riscix1.2
1760
+ ;;
1761
+ arm*-rebel)
1762
+ kernel=linux
1763
+ os=gnu
1764
+ ;;
1765
+ arm*-semi)
1766
+ os=
1767
+ obj=aout
1768
+ ;;
1769
+ c4x-* | tic4x-*)
1770
+ os=
1771
+ obj=coff
1772
+ ;;
1773
+ c8051-*)
1774
+ os=
1775
+ obj=elf
1776
+ ;;
1777
+ clipper-intergraph)
1778
+ os=clix
1779
+ ;;
1780
+ hexagon-*)
1781
+ os=
1782
+ obj=elf
1783
+ ;;
1784
+ tic54x-*)
1785
+ os=
1786
+ obj=coff
1787
+ ;;
1788
+ tic55x-*)
1789
+ os=
1790
+ obj=coff
1791
+ ;;
1792
+ tic6x-*)
1793
+ os=
1794
+ obj=coff
1795
+ ;;
1796
+ # This must come before the *-dec entry.
1797
+ pdp10-*)
1798
+ os=tops20
1799
+ ;;
1800
+ pdp11-*)
1801
+ os=none
1802
+ ;;
1803
+ *-dec | vax-*)
1804
+ os=ultrix4.2
1805
+ ;;
1806
+ m68*-apollo)
1807
+ os=domain
1808
+ ;;
1809
+ i386-sun)
1810
+ os=sunos4.0.2
1811
+ ;;
1812
+ m68000-sun)
1813
+ os=sunos3
1814
+ ;;
1815
+ m68*-cisco)
1816
+ os=
1817
+ obj=aout
1818
+ ;;
1819
+ mep-*)
1820
+ os=
1821
+ obj=elf
1822
+ ;;
1823
+ # The -sgi and -siemens entries must be before the mips- entry
1824
+ # or we get the wrong os.
1825
+ *-sgi)
1826
+ os=irix
1827
+ ;;
1828
+ *-siemens)
1829
+ os=sysv4
1830
+ ;;
1831
+ mips*-cisco)
1832
+ os=
1833
+ obj=elf
1834
+ ;;
1835
+ mips*-*|nanomips*-*)
1836
+ os=
1837
+ obj=elf
1838
+ ;;
1839
+ or32-*)
1840
+ os=
1841
+ obj=coff
1842
+ ;;
1843
+ # This must be before the sparc-* entry or we get the wrong os.
1844
+ *-tti)
1845
+ os=sysv3
1846
+ ;;
1847
+ sparc-* | *-sun)
1848
+ os=sunos4.1.1
1849
+ ;;
1850
+ pru-*)
1851
+ os=
1852
+ obj=elf
1853
+ ;;
1854
+ *-be)
1855
+ os=beos
1856
+ ;;
1857
+ *-ibm)
1858
+ os=aix
1859
+ ;;
1860
+ *-knuth)
1861
+ os=mmixware
1862
+ ;;
1863
+ *-wec)
1864
+ os=proelf
1865
+ ;;
1866
+ *-winbond)
1867
+ os=proelf
1868
+ ;;
1869
+ *-oki)
1870
+ os=proelf
1871
+ ;;
1872
+ *-hp)
1873
+ os=hpux
1874
+ ;;
1875
+ *-hitachi)
1876
+ os=hiuxwe2
1877
+ ;;
1878
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1879
+ os=sysv
1880
+ ;;
1881
+ *-cbm)
1882
+ os=amigaos
1883
+ ;;
1884
+ *-dg)
1885
+ os=dgux
1886
+ ;;
1887
+ *-dolphin)
1888
+ os=sysv3
1889
+ ;;
1890
+ m68k-ccur)
1891
+ os=rtu
1892
+ ;;
1893
+ m88k-omron*)
1894
+ os=luna
1895
+ ;;
1896
+ *-next)
1897
+ os=nextstep
1898
+ ;;
1899
+ *-sequent)
1900
+ os=ptx
1901
+ ;;
1902
+ *-crds)
1903
+ os=unos
1904
+ ;;
1905
+ *-ns)
1906
+ os=genix
1907
+ ;;
1908
+ i370-*)
1909
+ os=mvs
1910
+ ;;
1911
+ *-gould)
1912
+ os=sysv
1913
+ ;;
1914
+ *-highlevel)
1915
+ os=bsd
1916
+ ;;
1917
+ *-encore)
1918
+ os=bsd
1919
+ ;;
1920
+ *-masscomp)
1921
+ os=rtu
1922
+ ;;
1923
+ f30[01]-fujitsu | f700-fujitsu)
1924
+ os=uxpv
1925
+ ;;
1926
+ *-rom68k)
1927
+ os=
1928
+ obj=coff
1929
+ ;;
1930
+ *-*bug)
1931
+ os=
1932
+ obj=coff
1933
+ ;;
1934
+ *-apple)
1935
+ os=macos
1936
+ ;;
1937
+ *-atari*)
1938
+ os=mint
1939
+ ;;
1940
+ *-wrs)
1941
+ os=vxworks
1942
+ ;;
1943
+ *)
1944
+ os=none
1945
+ ;;
1946
+ esac
1947
+
1948
+ fi
1949
+
1950
+ # Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
1951
+
1952
+ case $os in
1953
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
1954
+ llvm* | musl* | newlib* | relibc* | uclibc*)
1955
+ ;;
1956
+ # Likewise for "kernel-abi"
1957
+ eabi* | gnueabi*)
1958
+ ;;
1959
+ # VxWorks passes extra cpu info in the 4th filed.
1960
+ simlinux | simwindows | spe)
1961
+ ;;
1962
+ # See `case $cpu-$os` validation below
1963
+ ghcjs)
1964
+ ;;
1965
+ # Now accept the basic system types.
1966
+ # Each alternative MUST end in a * to match a version number.
1967
+ abug \
1968
+ | aix* \
1969
+ | amdhsa* \
1970
+ | amigados* \
1971
+ | amigaos* \
1972
+ | android* \
1973
+ | aof* \
1974
+ | aos* \
1975
+ | aros* \
1976
+ | atheos* \
1977
+ | auroraux* \
1978
+ | aux* \
1979
+ | beos* \
1980
+ | bitrig* \
1981
+ | bme* \
1982
+ | bosx* \
1983
+ | bsd* \
1984
+ | cegcc* \
1985
+ | chorusos* \
1986
+ | chorusrdb* \
1987
+ | clix* \
1988
+ | cloudabi* \
1989
+ | cnk* \
1990
+ | conix* \
1991
+ | cos* \
1992
+ | cxux* \
1993
+ | cygwin* \
1994
+ | darwin* \
1995
+ | dgux* \
1996
+ | dicos* \
1997
+ | dnix* \
1998
+ | domain* \
1999
+ | dragonfly* \
2000
+ | drops* \
2001
+ | ebmon* \
2002
+ | ecoff* \
2003
+ | ekkobsd* \
2004
+ | emscripten* \
2005
+ | emx* \
2006
+ | es* \
2007
+ | fiwix* \
2008
+ | freebsd* \
2009
+ | fuchsia* \
2010
+ | genix* \
2011
+ | genode* \
2012
+ | glidix* \
2013
+ | gnu* \
2014
+ | go32* \
2015
+ | haiku* \
2016
+ | hcos* \
2017
+ | hiux* \
2018
+ | hms* \
2019
+ | hpux* \
2020
+ | ieee* \
2021
+ | interix* \
2022
+ | ios* \
2023
+ | iris* \
2024
+ | irix* \
2025
+ | ironclad* \
2026
+ | isc* \
2027
+ | its* \
2028
+ | l4re* \
2029
+ | libertybsd* \
2030
+ | lites* \
2031
+ | lnews* \
2032
+ | luna* \
2033
+ | lynxos* \
2034
+ | mach* \
2035
+ | macos* \
2036
+ | magic* \
2037
+ | mbr* \
2038
+ | midipix* \
2039
+ | midnightbsd* \
2040
+ | mingw32* \
2041
+ | mingw64* \
2042
+ | minix* \
2043
+ | mint* \
2044
+ | mirbsd* \
2045
+ | mks* \
2046
+ | mlibc* \
2047
+ | mmixware* \
2048
+ | mon960* \
2049
+ | morphos* \
2050
+ | moss* \
2051
+ | moxiebox* \
2052
+ | mpeix* \
2053
+ | mpw* \
2054
+ | msdos* \
2055
+ | msys* \
2056
+ | mvs* \
2057
+ | nacl* \
2058
+ | netbsd* \
2059
+ | netware* \
2060
+ | newsos* \
2061
+ | nextstep* \
2062
+ | nindy* \
2063
+ | nonstopux* \
2064
+ | nova* \
2065
+ | nsk* \
2066
+ | nucleus* \
2067
+ | nx6 \
2068
+ | nx7 \
2069
+ | oabi* \
2070
+ | ohos* \
2071
+ | onefs* \
2072
+ | openbsd* \
2073
+ | openedition* \
2074
+ | openstep* \
2075
+ | os108* \
2076
+ | os2* \
2077
+ | os400* \
2078
+ | os68k* \
2079
+ | os9* \
2080
+ | ose* \
2081
+ | osf* \
2082
+ | oskit* \
2083
+ | osx* \
2084
+ | palmos* \
2085
+ | phoenix* \
2086
+ | plan9* \
2087
+ | powermax* \
2088
+ | powerunix* \
2089
+ | proelf* \
2090
+ | psos* \
2091
+ | psp* \
2092
+ | ptx* \
2093
+ | pw32* \
2094
+ | qnx* \
2095
+ | rdos* \
2096
+ | redox* \
2097
+ | rhapsody* \
2098
+ | riscix* \
2099
+ | riscos* \
2100
+ | rtems* \
2101
+ | rtmk* \
2102
+ | rtu* \
2103
+ | scout* \
2104
+ | secbsd* \
2105
+ | sei* \
2106
+ | serenity* \
2107
+ | sim* \
2108
+ | skyos* \
2109
+ | solaris* \
2110
+ | solidbsd* \
2111
+ | sortix* \
2112
+ | storm-chaos* \
2113
+ | sunos \
2114
+ | sunos[34]* \
2115
+ | superux* \
2116
+ | syllable* \
2117
+ | sym* \
2118
+ | sysv* \
2119
+ | tenex* \
2120
+ | tirtos* \
2121
+ | toppers* \
2122
+ | tops10* \
2123
+ | tops20* \
2124
+ | tpf* \
2125
+ | tvos* \
2126
+ | twizzler* \
2127
+ | uclinux* \
2128
+ | udi* \
2129
+ | udk* \
2130
+ | ultrix* \
2131
+ | unicos* \
2132
+ | uniplus* \
2133
+ | unleashed* \
2134
+ | unos* \
2135
+ | uwin* \
2136
+ | uxpv* \
2137
+ | v88r* \
2138
+ |*vms* \
2139
+ | vos* \
2140
+ | vsta* \
2141
+ | vxsim* \
2142
+ | vxworks* \
2143
+ | wasi* \
2144
+ | watchos* \
2145
+ | wince* \
2146
+ | windiss* \
2147
+ | windows* \
2148
+ | winnt* \
2149
+ | xenix* \
2150
+ | xray* \
2151
+ | zephyr* \
2152
+ | zvmoe* )
2153
+ ;;
2154
+ # This one is extra strict with allowed versions
2155
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
2156
+ # Don't forget version if it is 3.2v4 or newer.
2157
+ ;;
2158
+ # This refers to builds using the UEFI calling convention
2159
+ # (which depends on the architecture) and PE file format.
2160
+ # Note that this is both a different calling convention and
2161
+ # different file format than that of GNU-EFI
2162
+ # (x86_64-w64-mingw32).
2163
+ uefi)
2164
+ ;;
2165
+ none)
2166
+ ;;
2167
+ kernel* | msvc* )
2168
+ # Restricted further below
2169
+ ;;
2170
+ '')
2171
+ if test x"$obj" = x
2172
+ then
2173
+ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
2174
+ fi
2175
+ ;;
2176
+ *)
2177
+ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
2178
+ exit 1
2179
+ ;;
2180
+ esac
2181
+
2182
+ case $obj in
2183
+ aout* | coff* | elf* | pe*)
2184
+ ;;
2185
+ '')
2186
+ # empty is fine
2187
+ ;;
2188
+ *)
2189
+ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
2190
+ exit 1
2191
+ ;;
2192
+ esac
2193
+
2194
+ # Here we handle the constraint that a (synthetic) cpu and os are
2195
+ # valid only in combination with each other and nowhere else.
2196
+ case $cpu-$os in
2197
+ # The "javascript-unknown-ghcjs" triple is used by GHC; we
2198
+ # accept it here in order to tolerate that, but reject any
2199
+ # variations.
2200
+ javascript-ghcjs)
2201
+ ;;
2202
+ javascript-* | *-ghcjs)
2203
+ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
2204
+ exit 1
2205
+ ;;
2206
+ esac
2207
+
2208
+ # As a final step for OS-related things, validate the OS-kernel combination
2209
+ # (given a valid OS), if there is a kernel.
2210
+ case $kernel-$os-$obj in
2211
+ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
2212
+ | linux-mlibc*- | linux-musl*- | linux-newlib*- \
2213
+ | linux-relibc*- | linux-uclibc*- | linux-ohos*- )
2214
+ ;;
2215
+ uclinux-uclibc*- | uclinux-gnu*- )
2216
+ ;;
2217
+ managarm-mlibc*- | managarm-kernel*- )
2218
+ ;;
2219
+ windows*-msvc*-)
2220
+ ;;
2221
+ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
2222
+ | -uclibc*- )
2223
+ # These are just libc implementations, not actual OSes, and thus
2224
+ # require a kernel.
2225
+ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
2226
+ exit 1
2227
+ ;;
2228
+ -kernel*- )
2229
+ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
2230
+ exit 1
2231
+ ;;
2232
+ *-kernel*- )
2233
+ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
2234
+ exit 1
2235
+ ;;
2236
+ *-msvc*- )
2237
+ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
2238
+ exit 1
2239
+ ;;
2240
+ kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-)
2241
+ ;;
2242
+ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
2243
+ ;;
2244
+ nto-qnx*-)
2245
+ ;;
2246
+ os2-emx-)
2247
+ ;;
2248
+ rtmk-nova-)
2249
+ ;;
2250
+ *-eabi*- | *-gnueabi*-)
2251
+ ;;
2252
+ none--*)
2253
+ # None (no kernel, i.e. freestanding / bare metal),
2254
+ # can be paired with an machine code file format
2255
+ ;;
2256
+ -*-)
2257
+ # Blank kernel with real OS is always fine.
2258
+ ;;
2259
+ --*)
2260
+ # Blank kernel and OS with real machine code file format is always fine.
2261
+ ;;
2262
+ *-*-*)
2263
+ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
2264
+ exit 1
2265
+ ;;
2266
+ esac
2267
+
2268
+ # Here we handle the case where we know the os, and the CPU type, but not the
2269
+ # manufacturer. We pick the logical manufacturer.
2270
+ case $vendor in
2271
+ unknown)
2272
+ case $cpu-$os in
2273
+ *-riscix*)
2274
+ vendor=acorn
2275
+ ;;
2276
+ *-sunos* | *-solaris*)
2277
+ vendor=sun
2278
+ ;;
2279
+ *-cnk* | *-aix*)
2280
+ vendor=ibm
2281
+ ;;
2282
+ *-beos*)
2283
+ vendor=be
2284
+ ;;
2285
+ *-hpux*)
2286
+ vendor=hp
2287
+ ;;
2288
+ *-mpeix*)
2289
+ vendor=hp
2290
+ ;;
2291
+ *-hiux*)
2292
+ vendor=hitachi
2293
+ ;;
2294
+ *-unos*)
2295
+ vendor=crds
2296
+ ;;
2297
+ *-dgux*)
2298
+ vendor=dg
2299
+ ;;
2300
+ *-luna*)
2301
+ vendor=omron
2302
+ ;;
2303
+ *-genix*)
2304
+ vendor=ns
2305
+ ;;
2306
+ *-clix*)
2307
+ vendor=intergraph
2308
+ ;;
2309
+ *-mvs* | *-opened*)
2310
+ vendor=ibm
2311
+ ;;
2312
+ *-os400*)
2313
+ vendor=ibm
2314
+ ;;
2315
+ s390-* | s390x-*)
2316
+ vendor=ibm
2317
+ ;;
2318
+ *-ptx*)
2319
+ vendor=sequent
2320
+ ;;
2321
+ *-tpf*)
2322
+ vendor=ibm
2323
+ ;;
2324
+ *-vxsim* | *-vxworks* | *-windiss*)
2325
+ vendor=wrs
2326
+ ;;
2327
+ *-aux*)
2328
+ vendor=apple
2329
+ ;;
2330
+ *-hms*)
2331
+ vendor=hitachi
2332
+ ;;
2333
+ *-mpw* | *-macos*)
2334
+ vendor=apple
2335
+ ;;
2336
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
2337
+ vendor=atari
2338
+ ;;
2339
+ *-vos*)
2340
+ vendor=stratus
2341
+ ;;
2342
+ esac
2343
+ ;;
2344
+ esac
2345
+
2346
+ echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
2347
+ exit
2348
+
2349
+ # Local variables:
2350
+ # eval: (add-hook 'before-save-hook 'time-stamp)
2351
+ # time-stamp-start: "timestamp='"
2352
+ # time-stamp-format: "%:y-%02m-%02d"
2353
+ # time-stamp-end: "'"
2354
+ # End: