passenger 6.2.0 → 6.2.1

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 (650) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +33 -1
  3. data/CONTRIBUTING.md +7 -311
  4. data/CONTRIBUTORS +1 -0
  5. data/LICENSE +1 -1
  6. data/README.md +1 -1
  7. data/Rakefile +1 -1
  8. data/bin/passenger +1 -1
  9. data/bin/passenger-config +1 -1
  10. data/bin/passenger-install-apache2-module +1 -1
  11. data/bin/passenger-install-nginx-module +4 -9
  12. data/bin/passenger-memory-stats +1 -1
  13. data/bin/passenger-status +1 -1
  14. data/build/agent.rb +13 -15
  15. data/build/apache2.rb +13 -16
  16. data/build/basics.rb +10 -13
  17. data/build/common_library.rb +5 -9
  18. data/build/cxx_tests.rb +37 -12
  19. data/build/integration_tests.rb +5 -2
  20. data/build/misc.rb +1 -1
  21. data/build/nginx.rb +1 -1
  22. data/build/node_tests.rb +1 -1
  23. data/build/oxt_tests.rb +6 -8
  24. data/build/packaging.rb +1 -1
  25. data/build/ruby_extension.rb +1 -1
  26. data/build/ruby_tests.rb +1 -1
  27. data/build/schema_printer.rb +13 -15
  28. data/build/support/cplusplus.rb +61 -69
  29. data/build/support/cxx_dependency_map.rb +2 -1
  30. data/build/support/general.rb +1 -1
  31. data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
  32. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +1 -1
  33. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +1 -1
  34. data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
  35. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  36. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +1 -1
  37. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +1 -1
  38. data/build/test_basics.rb +1 -1
  39. data/dev/copy_boost_headers +1 -1
  40. data/dev/index_cxx_dependencies.rb +5 -1
  41. data/dev/libev-changes.patch +108 -0
  42. data/dev/nginx_version_sha256 +1 -1
  43. data/dev/ruby_server.rb +1 -6
  44. data/dev/upgrading_libuv.sh +16 -0
  45. data/doc/BasicArchitectureOverview.md +55 -0
  46. data/doc/BuildCaching.md +23 -0
  47. data/doc/BuildSystem.md +49 -0
  48. data/doc/DebuggingAndStressTesting.md +2 -0
  49. data/doc/DesignAspects/LimitedGemDependencies.md +1 -0
  50. data/doc/DevEnvironmentSetup.md +46 -0
  51. data/doc/DevHandbook.md +28 -0
  52. data/doc/Packaging.md +1 -1
  53. data/doc/RunningTests.md +88 -0
  54. data/doc/{TempFileHandling.md → SecureTempFileHandling.md} +1 -1
  55. data/doc/{CxxTestingGuide.md → WritingCxxTests.md} +1 -20
  56. data/src/agent/AgentMain.cpp +1 -1
  57. data/src/agent/Core/ApiServer.h +1 -1
  58. data/src/agent/Core/ApplicationPool/AbstractSession.h +1 -1
  59. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +1 -1
  60. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +1 -1
  61. data/src/agent/Core/ApplicationPool/Common.h +1 -1
  62. data/src/agent/Core/ApplicationPool/Context.h +1 -1
  63. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +1 -1
  64. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +1 -1
  65. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
  66. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +1 -1
  67. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
  68. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  69. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +1 -1
  70. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +1 -1
  71. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -1
  72. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +1 -1
  73. data/src/agent/Core/ApplicationPool/Group.h +1 -1
  74. data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
  75. data/src/agent/Core/ApplicationPool/Options.h +1 -1
  76. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -1
  77. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  78. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +1 -1
  79. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +1 -1
  80. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +1 -1
  81. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +1 -1
  82. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
  83. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  84. data/src/agent/Core/ApplicationPool/Pool.h +1 -1
  85. data/src/agent/Core/ApplicationPool/Process.cpp +1 -1
  86. data/src/agent/Core/ApplicationPool/Process.h +1 -1
  87. data/src/agent/Core/ApplicationPool/Session.h +1 -1
  88. data/src/agent/Core/ApplicationPool/Socket.h +1 -1
  89. data/src/agent/Core/ApplicationPool/TestSession.h +1 -1
  90. data/src/agent/Core/Config.h +3 -2
  91. data/src/agent/Core/ConfigChange.cpp +1 -1
  92. data/src/agent/Core/ConfigChange.h +1 -1
  93. data/src/agent/Core/Controller/AppResponse.h +1 -1
  94. data/src/agent/Core/Controller/BufferBody.cpp +1 -1
  95. data/src/agent/Core/Controller/CheckoutSession.cpp +8 -5
  96. data/src/agent/Core/Controller/Client.h +1 -1
  97. data/src/agent/Core/Controller/Config.cpp +1 -1
  98. data/src/agent/Core/Controller/Config.h +2 -2
  99. data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
  100. data/src/agent/Core/Controller/Hooks.cpp +12 -9
  101. data/src/agent/Core/Controller/Implementation.cpp +1 -1
  102. data/src/agent/Core/Controller/InitRequest.cpp +1 -1
  103. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -1
  104. data/src/agent/Core/Controller/InternalUtils.cpp +1 -1
  105. data/src/agent/Core/Controller/Miscellaneous.cpp +1 -1
  106. data/src/agent/Core/Controller/Request.h +1 -1
  107. data/src/agent/Core/Controller/SendRequest.cpp +1 -1
  108. data/src/agent/Core/Controller/StateInspection.cpp +1 -1
  109. data/src/agent/Core/Controller/TurboCaching.h +1 -1
  110. data/src/agent/Core/Controller.h +1 -1
  111. data/src/agent/Core/CoreMain.cpp +1 -1
  112. data/src/agent/Core/OptionParser.h +1 -1
  113. data/src/agent/Core/ResponseCache.h +1 -1
  114. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  115. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
  116. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +1 -1
  117. data/src/agent/Core/SpawningKit/Config.h +1 -1
  118. data/src/agent/Core/SpawningKit/Context.h +1 -1
  119. data/src/agent/Core/SpawningKit/DirectSpawner.h +1 -1
  120. data/src/agent/Core/SpawningKit/DummySpawner.h +1 -1
  121. data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
  122. data/src/agent/Core/SpawningKit/Exceptions.h +63 -2
  123. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  124. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  125. data/src/agent/Core/SpawningKit/Handshake/Perform.h +3 -2
  126. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  127. data/src/agent/Core/SpawningKit/Handshake/Session.h +1 -1
  128. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
  129. data/src/agent/Core/SpawningKit/Journey.h +1 -1
  130. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  131. data/src/agent/Core/SpawningKit/README.md +3 -3
  132. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
  133. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +1 -1
  134. data/src/agent/Core/SpawningKit/Result.h +1 -1
  135. data/src/agent/Core/SpawningKit/SmartSpawner.h +17 -17
  136. data/src/agent/Core/SpawningKit/Spawner.h +1 -1
  137. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -1
  138. data/src/agent/Core/TelemetryCollector.h +1 -1
  139. data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
  140. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +1 -1
  141. data/src/agent/MainFunctions.h +1 -1
  142. data/src/agent/Shared/ApiAccountUtils.h +4 -3
  143. data/src/agent/Shared/ApiServerUtils.h +1 -2
  144. data/src/agent/Shared/ApplicationPoolApiKey.h +1 -1
  145. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +1 -1
  146. data/src/agent/Shared/Fundamentals/AbortHandler.h +1 -1
  147. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  148. data/src/agent/Shared/Fundamentals/Initialization.h +1 -1
  149. data/src/agent/Shared/Fundamentals/Utils.cpp +1 -1
  150. data/src/agent/Shared/Fundamentals/Utils.h +1 -1
  151. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
  152. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -1
  153. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
  154. data/src/agent/Watchdog/ApiServer.h +7 -6
  155. data/src/agent/Watchdog/Config.h +2 -2
  156. data/src/apache2_module/Bucket.cpp +1 -1
  157. data/src/apache2_module/Bucket.h +1 -1
  158. data/src/apache2_module/CBindings.cpp +1 -1
  159. data/src/apache2_module/Config.cpp +1 -1
  160. data/src/apache2_module/Config.h +1 -1
  161. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +104 -104
  162. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
  163. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +1 -1
  164. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +1 -1
  165. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +1 -1
  166. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +1 -1
  167. data/src/apache2_module/ConfigGeneral/Common.h +1 -1
  168. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +1 -1
  169. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +1 -1
  170. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +1 -1
  171. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +1 -1
  172. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +1 -1
  173. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +1 -1
  174. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +1 -1
  175. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
  176. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +1 -1
  177. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +1 -1
  178. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +1 -1
  179. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  180. data/src/apache2_module/DirectoryMapper.h +1 -1
  181. data/src/apache2_module/Hooks.cpp +8 -2
  182. data/src/apache2_module/Hooks.h +1 -1
  183. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +1 -1
  184. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
  185. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +1 -1
  186. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  187. data/src/apache2_module/Utils.h +1 -1
  188. data/src/apache2_module/mod_passenger.c +1 -1
  189. data/src/cxx_supportlib/Algorithms/Hasher.cpp +1 -1
  190. data/src/cxx_supportlib/Algorithms/Hasher.h +1 -1
  191. data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -1
  192. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +1 -1
  193. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +1 -1
  194. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +1 -1
  195. data/src/cxx_supportlib/AppTypeDetector/Detector.h +1 -1
  196. data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
  197. data/src/cxx_supportlib/BackgroundEventLoop.h +1 -1
  198. data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +1 -1
  199. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  200. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
  201. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +1 -1
  202. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +1 -3
  203. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +3 -3
  204. data/src/cxx_supportlib/ConfigKit/Schema.h +1 -1
  205. data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +1 -1
  206. data/src/cxx_supportlib/ConfigKit/Store.h +1 -1
  207. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +1 -1
  208. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +1 -1
  209. data/src/cxx_supportlib/ConfigKit/Translator.h +1 -1
  210. data/src/cxx_supportlib/ConfigKit/Utils.h +1 -1
  211. data/src/cxx_supportlib/Constants.h +2 -2
  212. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +1 -1
  213. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +1 -1
  214. data/src/cxx_supportlib/DataStructures/LString.cpp +1 -1
  215. data/src/cxx_supportlib/DataStructures/LString.h +1 -1
  216. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  217. data/src/cxx_supportlib/DataStructures/StringMap.h +1 -1
  218. data/src/cxx_supportlib/Exceptions.cpp +1 -1
  219. data/src/cxx_supportlib/Exceptions.h +1 -1
  220. data/src/cxx_supportlib/FileDescriptor.h +1 -1
  221. data/src/cxx_supportlib/FileTools/FileManip.cpp +1 -1
  222. data/src/cxx_supportlib/FileTools/FileManip.h +1 -1
  223. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  224. data/src/cxx_supportlib/FileTools/PathManip.h +1 -1
  225. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +1 -1
  226. data/src/cxx_supportlib/FileTools/PathManipCBindings.h +1 -1
  227. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
  228. data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +1 -1
  229. data/src/cxx_supportlib/Hooks.h +1 -1
  230. data/src/cxx_supportlib/IOTools/BufferedIO.h +1 -1
  231. data/src/cxx_supportlib/IOTools/IOUtils.cpp +10 -10
  232. data/src/cxx_supportlib/IOTools/IOUtils.h +1 -1
  233. data/src/cxx_supportlib/IOTools/MessageIO.h +1 -1
  234. data/src/cxx_supportlib/IOTools/MessageSerialization.h +1 -1
  235. data/src/cxx_supportlib/InstanceDirectory.h +1 -1
  236. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +1 -1
  237. data/src/cxx_supportlib/JsonTools/Autocast.h +1 -1
  238. data/src/cxx_supportlib/JsonTools/CBindings.cpp +1 -1
  239. data/src/cxx_supportlib/JsonTools/CBindings.h +1 -1
  240. data/src/cxx_supportlib/JsonTools/JsonUtils.h +1 -1
  241. data/src/cxx_supportlib/LoggingKit/Assert.h +1 -1
  242. data/src/cxx_supportlib/LoggingKit/Config.h +2 -1
  243. data/src/cxx_supportlib/LoggingKit/Context.h +1 -1
  244. data/src/cxx_supportlib/LoggingKit/Forward.h +1 -1
  245. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +11 -1
  246. data/src/cxx_supportlib/LoggingKit/Logging.h +1 -1
  247. data/src/cxx_supportlib/LoggingKit/LoggingKit.h +1 -1
  248. data/src/cxx_supportlib/LveLoggingDecorator.h +1 -1
  249. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +1 -1
  250. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  251. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  252. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  253. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +1 -1
  254. data/src/cxx_supportlib/ProcessManagement/Ruby.h +1 -1
  255. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +1 -1
  256. data/src/cxx_supportlib/ProcessManagement/Spawn.h +1 -1
  257. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  258. data/src/cxx_supportlib/ProcessManagement/Utils.h +1 -1
  259. data/src/cxx_supportlib/RandomGenerator.h +1 -1
  260. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  261. data/src/cxx_supportlib/SafeLibev.h +1 -1
  262. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +9 -27
  263. data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -2
  264. data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +1 -1
  265. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
  266. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  267. data/src/cxx_supportlib/ServerKit/Client.h +1 -1
  268. data/src/cxx_supportlib/ServerKit/ClientRef.h +1 -1
  269. data/src/cxx_supportlib/ServerKit/Config.h +1 -1
  270. data/src/cxx_supportlib/ServerKit/Context.h +1 -1
  271. data/src/cxx_supportlib/ServerKit/CookieUtils.h +1 -1
  272. data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
  273. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +1 -1
  274. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +1 -1
  275. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +54 -2
  276. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +1 -1
  277. data/src/cxx_supportlib/ServerKit/HeaderTable.h +1 -1
  278. data/src/cxx_supportlib/ServerKit/Hooks.h +1 -1
  279. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  280. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +1 -1
  281. data/src/cxx_supportlib/ServerKit/HttpClient.h +1 -1
  282. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
  283. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
  284. data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
  285. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +1 -1
  286. data/src/cxx_supportlib/ServerKit/HttpServer.h +1 -1
  287. data/src/cxx_supportlib/ServerKit/Implementation.cpp +1 -1
  288. data/src/cxx_supportlib/ServerKit/Server.h +4 -2
  289. data/src/cxx_supportlib/StaticString.h +1 -1
  290. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  291. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +1 -1
  292. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +1 -1
  293. data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +1 -1
  294. data/src/cxx_supportlib/StrIntTools/StringScanning.h +1 -1
  295. data/src/cxx_supportlib/StrIntTools/Template.h +1 -1
  296. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +1 -1
  297. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +1 -1
  298. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +1 -1
  299. data/src/cxx_supportlib/SystemTools/SystemTime.cpp +1 -1
  300. data/src/cxx_supportlib/SystemTools/SystemTime.h +1 -1
  301. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +1 -1
  302. data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
  303. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +1 -1
  304. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +1 -1
  305. data/src/cxx_supportlib/Utils/BlockingQueue.h +1 -1
  306. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +1 -1
  307. data/src/cxx_supportlib/Utils/CachedFileStat.h +1 -1
  308. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +1 -1
  309. data/src/cxx_supportlib/Utils/ClassUtils.h +1 -1
  310. data/src/cxx_supportlib/Utils/Curl.h +1 -1
  311. data/src/cxx_supportlib/Utils/FastStringStream.h +1 -1
  312. data/src/cxx_supportlib/Utils/FileChangeChecker.h +1 -1
  313. data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
  314. data/src/cxx_supportlib/Utils/IniFile.h +1 -1
  315. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  316. data/src/cxx_supportlib/Utils/OptionParsing.h +1 -1
  317. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +1 -1
  318. data/src/cxx_supportlib/Utils/ScopeGuard.h +1 -1
  319. data/src/cxx_supportlib/Utils/SpeedMeter.h +1 -1
  320. data/src/cxx_supportlib/Utils/Timer.h +1 -1
  321. data/src/cxx_supportlib/Utils/VariantMap.h +1 -1
  322. data/src/cxx_supportlib/Utils.cpp +1 -1
  323. data/src/cxx_supportlib/Utils.h +1 -1
  324. data/src/cxx_supportlib/WatchdogLauncher.cpp +1 -1
  325. data/src/cxx_supportlib/WatchdogLauncher.h +1 -1
  326. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +1 -1
  327. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +1 -1
  328. data/src/cxx_supportlib/WrapperRegistry/Entry.h +1 -1
  329. data/src/cxx_supportlib/WrapperRegistry/Registry.h +1 -1
  330. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  331. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  332. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  333. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  334. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
  335. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
  336. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
  337. data/src/cxx_supportlib/oxt/implementation.cpp +1 -1
  338. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  339. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  340. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  341. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  342. data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
  343. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  344. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  345. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -1
  346. data/src/cxx_supportlib/vendor-copy/libuv/AUTHORS +353 -3
  347. data/src/cxx_supportlib/vendor-copy/libuv/ChangeLog +3981 -2
  348. data/src/cxx_supportlib/vendor-copy/libuv/LICENSE +1 -28
  349. data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-docs +396 -0
  350. data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-extra +36 -0
  351. data/src/cxx_supportlib/vendor-copy/libuv/Makefile.am +275 -58
  352. data/src/cxx_supportlib/vendor-copy/libuv/Makefile.in +4380 -2125
  353. data/src/cxx_supportlib/vendor-copy/libuv/aclocal.m4 +425 -221
  354. data/src/cxx_supportlib/vendor-copy/libuv/ar-lib +30 -10
  355. data/src/cxx_supportlib/vendor-copy/libuv/compile +31 -14
  356. data/src/cxx_supportlib/vendor-copy/libuv/config.guess +1084 -690
  357. data/src/cxx_supportlib/vendor-copy/libuv/config.sub +1844 -1297
  358. data/src/cxx_supportlib/vendor-copy/libuv/configure +6935 -3664
  359. data/src/cxx_supportlib/vendor-copy/libuv/configure.ac +43 -19
  360. data/src/cxx_supportlib/vendor-copy/libuv/depcomp +12 -11
  361. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-darwin.h → uv/darwin.h} +3 -3
  362. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-errno.h → uv/errno.h} +119 -60
  363. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-linux.h → uv/linux.h} +1 -1
  364. data/src/cxx_supportlib/vendor-copy/libuv/include/uv/os390.h +33 -0
  365. data/src/cxx_supportlib/vendor-copy/libuv/include/uv/posix.h +31 -0
  366. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-threadpool.h → uv/threadpool.h} +1 -1
  367. data/src/cxx_supportlib/vendor-copy/libuv/include/{tree.h → uv/tree.h} +3 -250
  368. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-unix.h → uv/unix.h} +186 -60
  369. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-version.h → uv/version.h} +3 -3
  370. data/src/cxx_supportlib/vendor-copy/libuv/include/uv/win.h +703 -0
  371. data/src/cxx_supportlib/vendor-copy/libuv/include/uv.h +528 -40
  372. data/src/cxx_supportlib/vendor-copy/libuv/install-sh +110 -70
  373. data/src/cxx_supportlib/vendor-copy/libuv/libuv-static.pc.in +12 -0
  374. data/src/cxx_supportlib/vendor-copy/libuv/libuv.pc.in +4 -2
  375. data/src/cxx_supportlib/vendor-copy/libuv/ltmain.sh +995 -619
  376. data/src/cxx_supportlib/vendor-copy/libuv/m4/ax_pthread.m4 +485 -0
  377. data/src/cxx_supportlib/vendor-copy/libuv/m4/libtool.m4 +438 -289
  378. data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-flags.m4 +21 -4
  379. data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-versions.m4 +7 -0
  380. data/src/cxx_supportlib/vendor-copy/libuv/m4/ltoptions.m4 +69 -39
  381. data/src/cxx_supportlib/vendor-copy/libuv/m4/ltsugar.m4 +1 -1
  382. data/src/cxx_supportlib/vendor-copy/libuv/m4/ltversion.m4 +7 -6
  383. data/src/cxx_supportlib/vendor-copy/libuv/m4/lt~obsolete.m4 +2 -2
  384. data/src/cxx_supportlib/vendor-copy/libuv/missing +55 -34
  385. data/src/cxx_supportlib/vendor-copy/libuv/src/fs-poll.c +52 -20
  386. data/src/cxx_supportlib/vendor-copy/libuv/src/idna.c +560 -0
  387. data/src/cxx_supportlib/vendor-copy/libuv/src/idna.h +31 -0
  388. data/src/cxx_supportlib/vendor-copy/libuv/src/inet.c +5 -16
  389. data/src/cxx_supportlib/vendor-copy/libuv/src/queue.h +68 -86
  390. data/src/cxx_supportlib/vendor-copy/libuv/src/random.c +123 -0
  391. data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.c +38 -0
  392. data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.h +39 -0
  393. data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.c +52 -0
  394. data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.h +27 -0
  395. data/src/cxx_supportlib/vendor-copy/libuv/src/thread-common.c +175 -0
  396. data/src/cxx_supportlib/vendor-copy/libuv/src/threadpool.c +172 -57
  397. data/src/cxx_supportlib/vendor-copy/libuv/src/{unix/timer.c → timer.c} +57 -29
  398. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix-common.c +89 -0
  399. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix.c +418 -256
  400. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/async.c +168 -129
  401. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-ifaddrs.c +163 -0
  402. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-proctitle.c +99 -0
  403. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/core.c +1312 -378
  404. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/cygwin.c +93 -0
  405. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-proctitle.c +18 -32
  406. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-stub.h +97 -0
  407. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-syscalls.h +17 -0
  408. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin.c +41 -139
  409. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/dl.c +1 -1
  410. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/freebsd.c +75 -235
  411. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fs.c +1308 -299
  412. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fsevents.c +150 -148
  413. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getaddrinfo.c +58 -8
  414. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getnameinfo.c +3 -2
  415. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/haiku.c +172 -0
  416. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/hurd.c +172 -0
  417. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/ibmi.c +542 -0
  418. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/internal.h +297 -106
  419. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/kqueue.c +325 -94
  420. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux.c +2708 -0
  421. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop-watcher.c +11 -11
  422. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop.c +105 -24
  423. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/netbsd.c +51 -157
  424. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-fsevents.c +42 -0
  425. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-proctitle.c +45 -0
  426. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/openbsd.c +42 -183
  427. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-proctitle.c +136 -0
  428. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.c +536 -0
  429. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.h +75 -0
  430. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390.c +1070 -0
  431. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pipe.c +324 -55
  432. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/poll.c +58 -11
  433. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-hrtime.c +36 -0
  434. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-poll.c +385 -0
  435. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/process.c +795 -248
  436. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/procfs-exepath.c +45 -0
  437. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/proctitle.c +77 -22
  438. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/qnx.c +142 -0
  439. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-devurandom.c +93 -0
  440. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getentropy.c +57 -0
  441. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getrandom.c +86 -0
  442. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-sysctl-linux.c +99 -0
  443. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/signal.c +147 -39
  444. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/stream.c +426 -474
  445. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sunos.c +240 -98
  446. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-loadavg.c +36 -0
  447. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-memory.c +42 -0
  448. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tcp.c +402 -91
  449. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/thread.c +497 -145
  450. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tty.c +269 -45
  451. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/udp.c +695 -165
  452. data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.c +463 -61
  453. data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.h +248 -44
  454. data/src/cxx_supportlib/vendor-copy/libuv/src/uv-data-getter-setters.c +119 -0
  455. data/src/cxx_supportlib/vendor-copy/libuv/tsansupp.txt +2 -0
  456. data/src/cxx_supportlib/vendor-modified/libev/Changes +109 -0
  457. data/src/cxx_supportlib/vendor-modified/libev/Makefile.am +2 -1
  458. data/src/cxx_supportlib/vendor-modified/libev/Makefile.in +47 -33
  459. data/src/cxx_supportlib/vendor-modified/libev/README +2 -1
  460. data/src/cxx_supportlib/vendor-modified/libev/aclocal.m4 +1653 -1224
  461. data/src/cxx_supportlib/vendor-modified/libev/config.guess +376 -316
  462. data/src/cxx_supportlib/vendor-modified/libev/config.h.in +13 -2
  463. data/src/cxx_supportlib/vendor-modified/libev/config.sub +156 -154
  464. data/src/cxx_supportlib/vendor-modified/libev/configure +1431 -940
  465. data/src/cxx_supportlib/vendor-modified/libev/configure.ac +3 -3
  466. data/src/cxx_supportlib/vendor-modified/libev/depcomp +5 -5
  467. data/src/cxx_supportlib/vendor-modified/libev/ev++.h +109 -107
  468. data/src/cxx_supportlib/vendor-modified/libev/ev.c +807 -319
  469. data/src/cxx_supportlib/vendor-modified/libev/ev.h +111 -105
  470. data/src/cxx_supportlib/vendor-modified/libev/ev_epoll.c +42 -29
  471. data/src/cxx_supportlib/vendor-modified/libev/ev_iouring.c +694 -0
  472. data/src/cxx_supportlib/vendor-modified/libev/ev_kqueue.c +15 -9
  473. data/src/cxx_supportlib/vendor-modified/libev/ev_linuxaio.c +620 -0
  474. data/src/cxx_supportlib/vendor-modified/libev/ev_poll.c +19 -14
  475. data/src/cxx_supportlib/vendor-modified/libev/ev_port.c +8 -5
  476. data/src/cxx_supportlib/vendor-modified/libev/ev_select.c +6 -6
  477. data/src/cxx_supportlib/vendor-modified/libev/ev_vars.h +48 -3
  478. data/src/cxx_supportlib/vendor-modified/libev/ev_win32.c +2 -2
  479. data/src/cxx_supportlib/vendor-modified/libev/ev_wrap.h +72 -0
  480. data/src/cxx_supportlib/vendor-modified/libev/install-sh +23 -13
  481. data/src/cxx_supportlib/vendor-modified/libev/libev.m4 +6 -1
  482. data/src/cxx_supportlib/vendor-modified/libev/ltmain.sh +3581 -1993
  483. data/src/cxx_supportlib/vendor-modified/libev/missing +8 -8
  484. data/src/cxx_supportlib/vendor-modified/libev/mkinstalldirs +3 -3
  485. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +1 -1
  486. data/src/helper-scripts/backtrace-sanitizer.rb +1 -1
  487. data/src/helper-scripts/crash-watch.rb +1 -1
  488. data/src/helper-scripts/download_binaries/extconf.rb +1 -1
  489. data/src/helper-scripts/meteor-loader.rb +1 -1
  490. data/src/helper-scripts/node-loader.js +1 -1
  491. data/src/helper-scripts/prespawn +1 -1
  492. data/src/helper-scripts/rack-loader.rb +1 -1
  493. data/src/helper-scripts/rack-preloader.rb +1 -1
  494. data/src/helper-scripts/wsgi-loader.py +1 -1
  495. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +1 -1
  496. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +1 -1
  497. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +1 -1
  498. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +1 -1
  499. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +1 -1
  500. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +1 -1
  501. data/src/nginx_module/Configuration.c +1 -1
  502. data/src/nginx_module/Configuration.h +1 -1
  503. data/src/nginx_module/ContentHandler.c +1 -1
  504. data/src/nginx_module/ContentHandler.h +1 -1
  505. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +1 -1
  506. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
  507. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +1 -1
  508. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +1 -1
  509. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +1 -1
  510. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
  511. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +1 -1
  512. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +1 -1
  513. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +1 -1
  514. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  515. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +1 -1
  516. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
  517. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +1 -1
  518. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
  519. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +1 -1
  520. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  521. data/src/nginx_module/StaticContentHandler.c +1 -1
  522. data/src/nginx_module/StaticContentHandler.h +1 -1
  523. data/src/nginx_module/ngx_http_passenger_module.c +1 -1
  524. data/src/nginx_module/ngx_http_passenger_module.h +1 -1
  525. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +1 -1
  526. data/src/ruby_native_extension/extconf.rb +1 -1
  527. data/src/ruby_native_extension/passenger_native_support.c +1 -1
  528. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +1 -1
  529. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +1 -1
  530. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +1 -1
  531. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -12
  532. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
  533. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -1
  534. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
  535. data/src/ruby_supportlib/phusion_passenger/common_library.rb +8 -10
  536. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +1 -1
  537. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +1 -1
  538. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  539. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +1 -1
  540. data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
  541. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
  542. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +1 -1
  543. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
  544. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
  545. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
  546. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +1 -1
  547. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +1 -1
  548. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  549. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +1 -1
  550. data/src/ruby_supportlib/phusion_passenger/config/main.rb +1 -1
  551. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
  552. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +6 -1
  553. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +1 -1
  554. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +1 -1
  555. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +1 -1
  556. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
  557. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +1 -1
  558. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +1 -1
  559. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
  560. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
  561. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -1
  562. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +1 -1
  563. data/src/ruby_supportlib/phusion_passenger/message_client.rb +1 -1
  564. data/src/ruby_supportlib/phusion_passenger/native_support.rb +1 -1
  565. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +1 -1
  566. data/src/ruby_supportlib/phusion_passenger/packaging.rb +4 -3
  567. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
  568. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +1 -1
  569. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
  570. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +195 -11
  571. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +1 -1
  572. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +1 -1
  573. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +1 -1
  574. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +1 -1
  575. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +1 -1
  576. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  577. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
  578. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
  579. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +1 -1
  580. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +1 -1
  581. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +1 -1
  582. data/src/ruby_supportlib/phusion_passenger/plugin.rb +1 -1
  583. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +1 -1
  584. data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
  585. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
  586. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +1 -1
  587. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +1 -1
  588. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +1 -1
  589. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -7
  590. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +1 -1
  591. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +1 -1
  592. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +1 -1
  593. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +1 -1
  594. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -1
  595. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
  596. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
  597. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
  598. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +1 -1
  599. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +1 -1
  600. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +2 -2
  601. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +4 -8
  602. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -1
  603. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +1 -1
  604. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +1 -1
  605. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
  606. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +1 -1
  607. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +1 -1
  608. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +1 -1
  609. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +1 -1
  610. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +1 -1
  611. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +1 -1
  612. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
  613. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -1
  614. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  615. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +3 -13
  616. data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -1
  617. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  618. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  619. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  620. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +1 -1
  621. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  622. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  623. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +8 -6
  624. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +4 -3
  625. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +6 -4
  626. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +395 -579
  627. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  628. data/src/schema_printer/SchemaPrinterMain.cpp +1 -1
  629. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +1 -1
  630. metadata +69 -32
  631. data/doc/DeveloperQuickstart.md +0 -70
  632. data/src/README.md +0 -7
  633. data/src/cxx_supportlib/vendor-copy/libuv/README.md +0 -245
  634. data/src/cxx_supportlib/vendor-copy/libuv/checksparse.sh +0 -234
  635. data/src/cxx_supportlib/vendor-copy/libuv/common.gypi +0 -210
  636. data/src/cxx_supportlib/vendor-copy/libuv/gyp_uv.py +0 -93
  637. data/src/cxx_supportlib/vendor-copy/libuv/include/android-ifaddrs.h +0 -54
  638. data/src/cxx_supportlib/vendor-copy/libuv/include/pthread-fixes.h +0 -72
  639. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/android-ifaddrs.c +0 -703
  640. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/atomic-ops.h +0 -77
  641. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-core.c +0 -899
  642. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-inotify.c +0 -285
  643. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.c +0 -471
  644. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.h +0 -158
  645. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pthread-fixes.c +0 -104
  646. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/spinlock.h +0 -53
  647. data/src/cxx_supportlib/vendor-copy/libuv/uv.gyp +0 -508
  648. /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-aix.h → uv/aix.h} +0 -0
  649. /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-bsd.h → uv/bsd.h} +0 -0
  650. /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-sunos.h → uv/sunos.h} +0 -0
@@ -1,12 +1,14 @@
1
1
  #! /bin/sh
2
2
  # Configuration validation subroutine script.
3
- # Copyright 1992-2014 Free Software Foundation, Inc.
3
+ # Copyright 1992-2024 Free Software Foundation, Inc.
4
4
 
5
- timestamp='2014-12-03'
5
+ # shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
6
+
7
+ timestamp='2024-05-27'
6
8
 
7
9
  # This file is free software; you can redistribute it and/or modify it
8
10
  # under the terms of the GNU General Public License as published by
9
- # the Free Software Foundation; either version 3 of the License, or
11
+ # the Free Software Foundation, either version 3 of the License, or
10
12
  # (at your option) any later version.
11
13
  #
12
14
  # This program is distributed in the hope that it will be useful, but
@@ -15,7 +17,7 @@ timestamp='2014-12-03'
15
17
  # General Public License for more details.
16
18
  #
17
19
  # 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/>.
20
+ # along with this program; if not, see <https://www.gnu.org/licenses/>.
19
21
  #
20
22
  # As a special exception to the GNU General Public License, if you
21
23
  # distribute this file as part of a program that contains a
@@ -33,7 +35,7 @@ timestamp='2014-12-03'
33
35
  # Otherwise, we print the canonical config type on stdout and succeed.
34
36
 
35
37
  # 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;hb=HEAD
38
+ # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
37
39
 
38
40
  # This file is supposed to be the same for all GNU packages
39
41
  # and recognize all the CPU types, system types and aliases
@@ -50,15 +52,21 @@ timestamp='2014-12-03'
50
52
  # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
51
53
  # It is wrong to echo any other type of specification.
52
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
+
53
62
  me=`echo "$0" | sed -e 's,.*/,,'`
54
63
 
55
64
  usage="\
56
- Usage: $0 [OPTION] CPU-MFR-OPSYS
57
- $0 [OPTION] ALIAS
65
+ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
58
66
 
59
67
  Canonicalize a configuration name.
60
68
 
61
- Operation modes:
69
+ Options:
62
70
  -h, --help print this help, then exit
63
71
  -t, --time-stamp print date of last modification, then exit
64
72
  -v, --version print version number, then exit
@@ -68,13 +76,13 @@ Report bugs and patches to <config-patches@gnu.org>."
68
76
  version="\
69
77
  GNU config.sub ($timestamp)
70
78
 
71
- Copyright 1992-2014 Free Software Foundation, Inc.
79
+ Copyright 1992-2024 Free Software Foundation, Inc.
72
80
 
73
81
  This is free software; see the source for copying conditions. There is NO
74
82
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
75
83
 
76
84
  help="
77
- Try \`$me --help' for more information."
85
+ Try '$me --help' for more information."
78
86
 
79
87
  # Parse command line
80
88
  while test $# -gt 0 ; do
@@ -90,12 +98,12 @@ while test $# -gt 0 ; do
90
98
  - ) # Use stdin as input.
91
99
  break ;;
92
100
  -* )
93
- echo "$me: invalid option $1$help"
101
+ echo "$me: invalid option $1$help" >&2
94
102
  exit 1 ;;
95
103
 
96
104
  *local*)
97
105
  # First pass through any local machine types.
98
- echo $1
106
+ echo "$1"
99
107
  exit ;;
100
108
 
101
109
  * )
@@ -111,1429 +119,1619 @@ case $# in
111
119
  exit 1;;
112
120
  esac
113
121
 
114
- # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
115
- # Here we must recognize all the valid KERNEL-OS combinations.
116
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
117
- case $maybe_os in
118
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
119
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
120
- knetbsd*-gnu* | netbsd*-gnu* | \
121
- kopensolaris*-gnu* | \
122
- storm-chaos* | os2-emx* | rtmk-nova*)
123
- os=-$maybe_os
124
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
125
- ;;
126
- android-linux)
127
- os=-linux-android
128
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
129
- ;;
130
- *)
131
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
132
- if [ $basic_machine != $1 ]
133
- then os=`echo $1 | sed 's/.*-/-/'`
134
- else os=; fi
135
- ;;
136
- esac
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
137
128
 
138
- ### Let's recognize common machines as not being operating systems so
139
- ### that things like config.sub decstation-3100 work. We also
140
- ### recognize some manufacturers as not being operating systems, so we
141
- ### can provide default operating systems below.
142
- case $os in
143
- -sun*os*)
144
- # Prevent following clause from handling this invalid input.
145
- ;;
146
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
147
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
148
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
149
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
150
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
151
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
152
- -apple | -axis | -knuth | -cray | -microblaze*)
153
- os=
154
- basic_machine=$1
155
- ;;
156
- -bluegene*)
157
- os=-cnk
158
- ;;
159
- -sim | -cisco | -oki | -wec | -winbond)
160
- os=
161
- basic_machine=$1
162
- ;;
163
- -scout)
164
- ;;
165
- -wrs)
166
- os=-vxworks
167
- basic_machine=$1
168
- ;;
169
- -chorusos*)
170
- os=-chorusos
171
- basic_machine=$1
172
- ;;
173
- -chorusrdb)
174
- os=-chorusrdb
175
- basic_machine=$1
176
- ;;
177
- -hiux*)
178
- os=-hiuxwe2
179
- ;;
180
- -sco6)
181
- os=-sco5v6
182
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
183
- ;;
184
- -sco5)
185
- os=-sco3.2v5
186
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
187
- ;;
188
- -sco4)
189
- os=-sco3.2v4
190
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
191
- ;;
192
- -sco3.2.[4-9]*)
193
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
194
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
195
- ;;
196
- -sco3.2v[4-9]*)
197
- # Don't forget version if it is 3.2v4 or newer.
198
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
199
- ;;
200
- -sco5v6*)
201
- # Don't forget version if it is 3.2v4 or newer.
202
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
203
- ;;
204
- -sco*)
205
- os=-sco3.2v2
206
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
207
- ;;
208
- -udk*)
209
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
210
- ;;
211
- -isc)
212
- os=-isc2.2
213
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
214
- ;;
215
- -clix*)
216
- basic_machine=clipper-intergraph
217
- ;;
218
- -isc*)
219
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
220
- ;;
221
- -lynx*178)
222
- os=-lynxos178
223
- ;;
224
- -lynx*5)
225
- os=-lynxos5
226
- ;;
227
- -lynx*)
228
- os=-lynxos
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
229
134
  ;;
230
- -ptx*)
231
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
135
+ *-*-*-*)
136
+ basic_machine=$field1-$field2
137
+ basic_os=$field3-$field4
232
138
  ;;
233
- -windowsnt*)
234
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
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
235
171
  ;;
236
- -psos*)
237
- os=-psos
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
238
275
  ;;
239
- -mint | -mint[0-9]*)
240
- basic_machine=m68k-atari
241
- os=-mint
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
242
709
  ;;
243
710
  esac
244
711
 
245
- # Decode aliases for certain CPU-COMPANY combinations.
712
+ # Decode 1-component or ad-hoc basic machines
246
713
  case $basic_machine in
247
- # Recognize the basic CPU types without company name.
248
- # Some are omitted here because they have special meanings below.
249
- 1750a | 580 \
250
- | a29k \
251
- | aarch64 | aarch64_be \
252
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
253
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
254
- | am33_2.0 \
255
- | arc | arceb \
256
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
257
- | avr | avr32 \
258
- | be32 | be64 \
259
- | bfin \
260
- | c4x | c8051 | clipper \
261
- | d10v | d30v | dlx | dsp16xx \
262
- | epiphany \
263
- | fido | fr30 | frv \
264
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265
- | hexagon \
266
- | i370 | i860 | i960 | 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
- | pyramid \
305
- | riscv32 | riscv64 \
306
- | rl78 | rx \
307
- | score \
308
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
309
- | sh64 | sh64le \
310
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
311
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
312
- | spu \
313
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
314
- | ubicom32 \
315
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
316
- | visium \
317
- | we32k \
318
- | x86 | xc16x | xstormy16 | xtensa \
319
- | z8k | z80)
320
- basic_machine=$basic_machine-unknown
321
- ;;
322
- c54x)
323
- basic_machine=tic54x-unknown
324
- ;;
325
- c55x)
326
- basic_machine=tic55x-unknown
327
- ;;
328
- c6x)
329
- basic_machine=tic6x-unknown
330
- ;;
331
- leon|leon[3-9])
332
- basic_machine=sparc-$basic_machine
333
- ;;
334
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
335
- basic_machine=$basic_machine-unknown
336
- os=-none
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
337
719
  ;;
338
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
720
+ op50n)
721
+ cpu=hppa1.1
722
+ vendor=oki
339
723
  ;;
340
- ms1)
341
- basic_machine=mt-unknown
724
+ op60c)
725
+ cpu=hppa1.1
726
+ vendor=oki
342
727
  ;;
343
-
344
- strongarm | thumb | xscale)
345
- basic_machine=arm-unknown
728
+ ibm*)
729
+ cpu=i370
730
+ vendor=ibm
346
731
  ;;
347
- xgate)
348
- basic_machine=$basic_machine-unknown
349
- os=-none
732
+ orion105)
733
+ cpu=clipper
734
+ vendor=highlevel
350
735
  ;;
351
- xscaleeb)
352
- basic_machine=armeb-unknown
736
+ mac | mpw | mac-mpw)
737
+ cpu=m68k
738
+ vendor=apple
353
739
  ;;
354
-
355
- xscaleel)
356
- basic_machine=armel-unknown
740
+ pmac | pmac-mpw)
741
+ cpu=powerpc
742
+ vendor=apple
357
743
  ;;
358
744
 
359
- # We use `pc' rather than `unknown'
360
- # because (1) that's what they normally are, and
361
- # (2) the word "unknown" tends to confuse beginning users.
362
- i*86 | x86_64)
363
- basic_machine=$basic_machine-pc
364
- ;;
365
- # Object if more than one company name word.
366
- *-*-*)
367
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
368
- exit 1
369
- ;;
370
- # Recognize the basic CPU types with company name.
371
- 580-* \
372
- | a29k-* \
373
- | aarch64-* | aarch64_be-* \
374
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
375
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
376
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
377
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
378
- | avr-* | avr32-* \
379
- | be32-* | be64-* \
380
- | bfin-* | bs2000-* \
381
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
382
- | c8051-* | clipper-* | craynv-* | cydra-* \
383
- | d10v-* | d30v-* | dlx-* \
384
- | elxsi-* \
385
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
386
- | h8300-* | h8500-* \
387
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
388
- | hexagon-* \
389
- | i*86-* | i860-* | i960-* | ia64-* \
390
- | ip2k-* | iq2000-* \
391
- | k1om-* \
392
- | le32-* | le64-* \
393
- | lm32-* \
394
- | m32c-* | m32r-* | m32rle-* \
395
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
396
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
397
- | microblaze-* | microblazeel-* \
398
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
399
- | mips16-* \
400
- | mips64-* | mips64el-* \
401
- | mips64octeon-* | mips64octeonel-* \
402
- | mips64orion-* | mips64orionel-* \
403
- | mips64r5900-* | mips64r5900el-* \
404
- | mips64vr-* | mips64vrel-* \
405
- | mips64vr4100-* | mips64vr4100el-* \
406
- | mips64vr4300-* | mips64vr4300el-* \
407
- | mips64vr5000-* | mips64vr5000el-* \
408
- | mips64vr5900-* | mips64vr5900el-* \
409
- | mipsisa32-* | mipsisa32el-* \
410
- | mipsisa32r2-* | mipsisa32r2el-* \
411
- | mipsisa32r6-* | mipsisa32r6el-* \
412
- | mipsisa64-* | mipsisa64el-* \
413
- | mipsisa64r2-* | mipsisa64r2el-* \
414
- | mipsisa64r6-* | mipsisa64r6el-* \
415
- | mipsisa64sb1-* | mipsisa64sb1el-* \
416
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
417
- | mipsr5900-* | mipsr5900el-* \
418
- | mipstx39-* | mipstx39el-* \
419
- | mmix-* \
420
- | mt-* \
421
- | msp430-* \
422
- | nds32-* | nds32le-* | nds32be-* \
423
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
424
- | none-* | np1-* | ns16k-* | ns32k-* \
425
- | open8-* \
426
- | or1k*-* \
427
- | orion-* \
428
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
429
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
430
- | pyramid-* \
431
- | rl78-* | romp-* | rs6000-* | rx-* \
432
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
433
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
434
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
435
- | sparclite-* \
436
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
437
- | tahoe-* \
438
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
439
- | tile*-* \
440
- | tron-* \
441
- | ubicom32-* \
442
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
443
- | vax-* \
444
- | visium-* \
445
- | we32k-* \
446
- | x86-* | x86_64-* | xc16x-* | xps100-* \
447
- | xstormy16-* | xtensa*-* \
448
- | ymp-* \
449
- | z8k-* | z80-*)
450
- ;;
451
- # Recognize the basic CPU types without company name, with glob match.
452
- xtensa*)
453
- basic_machine=$basic_machine-unknown
454
- ;;
455
745
  # Recognize the various machine names and aliases which stand
456
746
  # for a CPU type and a company and sometimes even an OS.
457
- 386bsd)
458
- basic_machine=i386-unknown
459
- os=-bsd
460
- ;;
461
747
  3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
462
- basic_machine=m68000-att
748
+ cpu=m68000
749
+ vendor=att
463
750
  ;;
464
751
  3b*)
465
- basic_machine=we32k-att
466
- ;;
467
- a29khif)
468
- basic_machine=a29k-amd
469
- os=-udi
470
- ;;
471
- abacus)
472
- basic_machine=abacus-unknown
473
- ;;
474
- adobe68k)
475
- basic_machine=m68010-adobe
476
- os=-scout
477
- ;;
478
- alliant | fx80)
479
- basic_machine=fx80-alliant
480
- ;;
481
- altos | altos3068)
482
- basic_machine=m68k-altos
483
- ;;
484
- am29k)
485
- basic_machine=a29k-none
486
- os=-bsd
487
- ;;
488
- amd64)
489
- basic_machine=x86_64-pc
490
- ;;
491
- amd64-*)
492
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
493
- ;;
494
- amdahl)
495
- basic_machine=580-amdahl
496
- os=-sysv
497
- ;;
498
- amiga | amiga-*)
499
- basic_machine=m68k-unknown
500
- ;;
501
- amigaos | amigados)
502
- basic_machine=m68k-unknown
503
- os=-amigaos
504
- ;;
505
- amigaunix | amix)
506
- basic_machine=m68k-unknown
507
- os=-sysv4
508
- ;;
509
- apollo68)
510
- basic_machine=m68k-apollo
511
- os=-sysv
512
- ;;
513
- apollo68bsd)
514
- basic_machine=m68k-apollo
515
- os=-bsd
516
- ;;
517
- aros)
518
- basic_machine=i386-pc
519
- os=-aros
520
- ;;
521
- aux)
522
- basic_machine=m68k-apple
523
- os=-aux
524
- ;;
525
- balance)
526
- basic_machine=ns32k-sequent
527
- os=-dynix
528
- ;;
529
- blackfin)
530
- basic_machine=bfin-unknown
531
- os=-linux
532
- ;;
533
- blackfin-*)
534
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
535
- os=-linux
752
+ cpu=we32k
753
+ vendor=att
536
754
  ;;
537
755
  bluegene*)
538
- basic_machine=powerpc-ibm
539
- os=-cnk
540
- ;;
541
- c54x-*)
542
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
543
- ;;
544
- c55x-*)
545
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
546
- ;;
547
- c6x-*)
548
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
549
- ;;
550
- c90)
551
- basic_machine=c90-cray
552
- os=-unicos
553
- ;;
554
- cegcc)
555
- basic_machine=arm-unknown
556
- os=-cegcc
557
- ;;
558
- convex-c1)
559
- basic_machine=c1-convex
560
- os=-bsd
561
- ;;
562
- convex-c2)
563
- basic_machine=c2-convex
564
- os=-bsd
565
- ;;
566
- convex-c32)
567
- basic_machine=c32-convex
568
- os=-bsd
569
- ;;
570
- convex-c34)
571
- basic_machine=c34-convex
572
- os=-bsd
573
- ;;
574
- convex-c38)
575
- basic_machine=c38-convex
576
- os=-bsd
577
- ;;
578
- cray | j90)
579
- basic_machine=j90-cray
580
- os=-unicos
581
- ;;
582
- craynv)
583
- basic_machine=craynv-cray
584
- os=-unicosmp
585
- ;;
586
- cr16 | cr16-*)
587
- basic_machine=cr16-unknown
588
- os=-elf
589
- ;;
590
- crds | unos)
591
- basic_machine=m68k-crds
592
- ;;
593
- crisv32 | crisv32-* | etraxfs*)
594
- basic_machine=crisv32-axis
595
- ;;
596
- cris | cris-* | etrax*)
597
- basic_machine=cris-axis
598
- ;;
599
- crx)
600
- basic_machine=crx-unknown
601
- os=-elf
602
- ;;
603
- da30 | da30-*)
604
- basic_machine=m68k-da30
605
- ;;
606
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
607
- basic_machine=mips-dec
756
+ cpu=powerpc
757
+ vendor=ibm
758
+ basic_os=cnk
608
759
  ;;
609
760
  decsystem10* | dec10*)
610
- basic_machine=pdp10-dec
611
- os=-tops10
761
+ cpu=pdp10
762
+ vendor=dec
763
+ basic_os=tops10
612
764
  ;;
613
765
  decsystem20* | dec20*)
614
- basic_machine=pdp10-dec
615
- os=-tops20
616
- ;;
617
- delta | 3300 | motorola-3300 | motorola-delta \
618
- | 3300-motorola | delta-motorola)
619
- basic_machine=m68k-motorola
620
- ;;
621
- delta88)
622
- basic_machine=m88k-motorola
623
- os=-sysv3
624
- ;;
625
- dicos)
626
- basic_machine=i686-pc
627
- os=-dicos
628
- ;;
629
- djgpp)
630
- basic_machine=i586-pc
631
- os=-msdosdjgpp
632
- ;;
633
- dpx20 | dpx20-*)
634
- basic_machine=rs6000-bull
635
- os=-bosx
636
- ;;
637
- dpx2* | dpx2*-bull)
638
- basic_machine=m68k-bull
639
- os=-sysv3
640
- ;;
641
- ebmon29k)
642
- basic_machine=a29k-amd
643
- os=-ebmon
644
- ;;
645
- elxsi)
646
- basic_machine=elxsi-elxsi
647
- os=-bsd
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
648
790
  ;;
649
791
  encore | umax | mmax)
650
- basic_machine=ns32k-encore
792
+ cpu=ns32k
793
+ vendor=encore
651
794
  ;;
652
- es1800 | OSE68k | ose68k | ose | OSE)
653
- basic_machine=m68k-ericsson
654
- os=-ose
795
+ elxsi)
796
+ cpu=elxsi
797
+ vendor=elxsi
798
+ basic_os=${basic_os:-bsd}
655
799
  ;;
656
800
  fx2800)
657
- basic_machine=i860-alliant
801
+ cpu=i860
802
+ vendor=alliant
658
803
  ;;
659
804
  genix)
660
- basic_machine=ns32k-ns
661
- ;;
662
- gmicro)
663
- basic_machine=tron-gmicro
664
- os=-sysv
665
- ;;
666
- go32)
667
- basic_machine=i386-pc
668
- os=-go32
805
+ cpu=ns32k
806
+ vendor=ns
669
807
  ;;
670
808
  h3050r* | hiux*)
671
- basic_machine=hppa1.1-hitachi
672
- os=-hiuxwe2
673
- ;;
674
- h8300hms)
675
- basic_machine=h8300-hitachi
676
- os=-hms
677
- ;;
678
- h8300xray)
679
- basic_machine=h8300-hitachi
680
- os=-xray
681
- ;;
682
- h8500hms)
683
- basic_machine=h8500-hitachi
684
- os=-hms
685
- ;;
686
- harris)
687
- basic_machine=m88k-harris
688
- os=-sysv3
689
- ;;
690
- hp300-*)
691
- basic_machine=m68k-hp
692
- ;;
693
- hp300bsd)
694
- basic_machine=m68k-hp
695
- os=-bsd
696
- ;;
697
- hp300hpux)
698
- basic_machine=m68k-hp
699
- os=-hpux
809
+ cpu=hppa1.1
810
+ vendor=hitachi
811
+ basic_os=hiuxwe2
700
812
  ;;
701
813
  hp3k9[0-9][0-9] | hp9[0-9][0-9])
702
- basic_machine=hppa1.0-hp
814
+ cpu=hppa1.0
815
+ vendor=hp
703
816
  ;;
704
817
  hp9k2[0-9][0-9] | hp9k31[0-9])
705
- basic_machine=m68000-hp
818
+ cpu=m68000
819
+ vendor=hp
706
820
  ;;
707
821
  hp9k3[2-9][0-9])
708
- basic_machine=m68k-hp
822
+ cpu=m68k
823
+ vendor=hp
709
824
  ;;
710
825
  hp9k6[0-9][0-9] | hp6[0-9][0-9])
711
- basic_machine=hppa1.0-hp
826
+ cpu=hppa1.0
827
+ vendor=hp
712
828
  ;;
713
829
  hp9k7[0-79][0-9] | hp7[0-79][0-9])
714
- basic_machine=hppa1.1-hp
830
+ cpu=hppa1.1
831
+ vendor=hp
715
832
  ;;
716
833
  hp9k78[0-9] | hp78[0-9])
717
834
  # FIXME: really hppa2.0-hp
718
- basic_machine=hppa1.1-hp
835
+ cpu=hppa1.1
836
+ vendor=hp
719
837
  ;;
720
838
  hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
721
839
  # FIXME: really hppa2.0-hp
722
- basic_machine=hppa1.1-hp
840
+ cpu=hppa1.1
841
+ vendor=hp
723
842
  ;;
724
843
  hp9k8[0-9][13679] | hp8[0-9][13679])
725
- basic_machine=hppa1.1-hp
844
+ cpu=hppa1.1
845
+ vendor=hp
726
846
  ;;
727
847
  hp9k8[0-9][0-9] | hp8[0-9][0-9])
728
- basic_machine=hppa1.0-hp
729
- ;;
730
- hppa-next)
731
- os=-nextstep3
732
- ;;
733
- hppaosf)
734
- basic_machine=hppa1.1-hp
735
- os=-osf
736
- ;;
737
- hppro)
738
- basic_machine=hppa1.1-hp
739
- os=-proelf
740
- ;;
741
- i370-ibm* | ibm*)
742
- basic_machine=i370-ibm
848
+ cpu=hppa1.0
849
+ vendor=hp
743
850
  ;;
744
851
  i*86v32)
745
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
746
- os=-sysv32
852
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
853
+ vendor=pc
854
+ basic_os=sysv32
747
855
  ;;
748
856
  i*86v4*)
749
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
750
- os=-sysv4
857
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
858
+ vendor=pc
859
+ basic_os=sysv4
751
860
  ;;
752
861
  i*86v)
753
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
754
- os=-sysv
862
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
863
+ vendor=pc
864
+ basic_os=sysv
755
865
  ;;
756
866
  i*86sol2)
757
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
758
- os=-solaris2
759
- ;;
760
- i386mach)
761
- basic_machine=i386-mach
762
- os=-mach
867
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
868
+ vendor=pc
869
+ basic_os=solaris2
763
870
  ;;
764
- i386-vsta | vsta)
765
- basic_machine=i386-unknown
766
- os=-vsta
871
+ j90 | j90-cray)
872
+ cpu=j90
873
+ vendor=cray
874
+ basic_os=${basic_os:-unicos}
767
875
  ;;
768
876
  iris | iris4d)
769
- basic_machine=mips-sgi
770
- case $os in
771
- -irix*)
877
+ cpu=mips
878
+ vendor=sgi
879
+ case $basic_os in
880
+ irix*)
772
881
  ;;
773
882
  *)
774
- os=-irix4
883
+ basic_os=irix4
775
884
  ;;
776
885
  esac
777
886
  ;;
778
- isi68 | isi)
779
- basic_machine=m68k-isi
780
- os=-sysv
781
- ;;
782
- leon-*|leon[3-9]-*)
783
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
784
- ;;
785
- m68knommu)
786
- basic_machine=m68k-unknown
787
- os=-linux
788
- ;;
789
- m68knommu-*)
790
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
791
- os=-linux
792
- ;;
793
- m88k-omron*)
794
- basic_machine=m88k-omron
795
- ;;
796
- magnum | m3230)
797
- basic_machine=mips-mips
798
- os=-sysv
799
- ;;
800
- merlin)
801
- basic_machine=ns32k-utek
802
- os=-sysv
803
- ;;
804
- microblaze*)
805
- basic_machine=microblaze-xilinx
806
- ;;
807
- mingw64)
808
- basic_machine=x86_64-pc
809
- os=-mingw64
810
- ;;
811
- mingw32)
812
- basic_machine=i686-pc
813
- os=-mingw32
814
- ;;
815
- mingw32ce)
816
- basic_machine=arm-unknown
817
- os=-mingw32ce
818
- ;;
819
887
  miniframe)
820
- basic_machine=m68000-convergent
821
- ;;
822
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
823
- basic_machine=m68k-atari
824
- os=-mint
888
+ cpu=m68000
889
+ vendor=convergent
825
890
  ;;
826
- mips3*-*)
827
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
828
- ;;
829
- mips3*)
830
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
831
- ;;
832
- monitor)
833
- basic_machine=m68k-rom68k
834
- os=-coff
835
- ;;
836
- morphos)
837
- basic_machine=powerpc-unknown
838
- os=-morphos
839
- ;;
840
- moxiebox)
841
- basic_machine=moxie-unknown
842
- os=-moxiebox
843
- ;;
844
- msdos)
845
- basic_machine=i386-pc
846
- os=-msdos
847
- ;;
848
- ms1-*)
849
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
850
- ;;
851
- msys)
852
- basic_machine=i686-pc
853
- os=-msys
854
- ;;
855
- mvs)
856
- basic_machine=i370-ibm
857
- os=-mvs
858
- ;;
859
- nacl)
860
- basic_machine=le32-unknown
861
- os=-nacl
862
- ;;
863
- ncr3000)
864
- basic_machine=i486-ncr
865
- os=-sysv4
866
- ;;
867
- netbsd386)
868
- basic_machine=i386-unknown
869
- os=-netbsd
870
- ;;
871
- netwinder)
872
- basic_machine=armv4l-rebel
873
- os=-linux
874
- ;;
875
- news | news700 | news800 | news900)
876
- basic_machine=m68k-sony
877
- os=-newsos
878
- ;;
879
- news1000)
880
- basic_machine=m68030-sony
881
- os=-newsos
891
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
892
+ cpu=m68k
893
+ vendor=atari
894
+ basic_os=mint
882
895
  ;;
883
896
  news-3600 | risc-news)
884
- basic_machine=mips-sony
885
- os=-newsos
897
+ cpu=mips
898
+ vendor=sony
899
+ basic_os=newsos
886
900
  ;;
887
- necv70)
888
- basic_machine=v70-nec
889
- os=-sysv
890
- ;;
891
- next | m*-next )
892
- basic_machine=m68k-next
893
- case $os in
894
- -nextstep* )
895
- ;;
896
- -ns2*)
897
- os=-nextstep2
898
- ;;
899
- *)
900
- os=-nextstep3
901
- ;;
902
- esac
903
- ;;
904
- nh3000)
905
- basic_machine=m68k-harris
906
- os=-cxux
907
- ;;
908
- nh[45]000)
909
- basic_machine=m88k-harris
910
- os=-cxux
911
- ;;
912
- nindy960)
913
- basic_machine=i960-intel
914
- os=-nindy
915
- ;;
916
- mon960)
917
- basic_machine=i960-intel
918
- os=-mon960
919
- ;;
920
- nonstopux)
921
- basic_machine=mips-compaq
922
- os=-nonstopux
901
+ next | m*-next)
902
+ cpu=m68k
903
+ vendor=next
923
904
  ;;
924
905
  np1)
925
- basic_machine=np1-gould
926
- ;;
927
- neo-tandem)
928
- basic_machine=neo-tandem
929
- ;;
930
- nse-tandem)
931
- basic_machine=nse-tandem
932
- ;;
933
- nsr-tandem)
934
- basic_machine=nsr-tandem
906
+ cpu=np1
907
+ vendor=gould
935
908
  ;;
936
909
  op50n-* | op60c-*)
937
- basic_machine=hppa1.1-oki
938
- os=-proelf
939
- ;;
940
- openrisc | openrisc-*)
941
- basic_machine=or32-unknown
942
- ;;
943
- os400)
944
- basic_machine=powerpc-ibm
945
- os=-os400
946
- ;;
947
- OSE68000 | ose68000)
948
- basic_machine=m68000-ericsson
949
- os=-ose
950
- ;;
951
- os68k)
952
- basic_machine=m68k-none
953
- os=-os68k
910
+ cpu=hppa1.1
911
+ vendor=oki
912
+ basic_os=proelf
954
913
  ;;
955
914
  pa-hitachi)
956
- basic_machine=hppa1.1-hitachi
957
- os=-hiuxwe2
958
- ;;
959
- paragon)
960
- basic_machine=i860-intel
961
- os=-osf
962
- ;;
963
- parisc)
964
- basic_machine=hppa-unknown
965
- os=-linux
966
- ;;
967
- parisc-*)
968
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
969
- os=-linux
915
+ cpu=hppa1.1
916
+ vendor=hitachi
917
+ basic_os=hiuxwe2
970
918
  ;;
971
919
  pbd)
972
- basic_machine=sparc-tti
920
+ cpu=sparc
921
+ vendor=tti
973
922
  ;;
974
923
  pbb)
975
- basic_machine=m68k-tti
976
- ;;
977
- pc532 | pc532-*)
978
- basic_machine=ns32k-pc532
979
- ;;
980
- pc98)
981
- basic_machine=i386-pc
924
+ cpu=m68k
925
+ vendor=tti
982
926
  ;;
983
- pc98-*)
984
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
927
+ pc532)
928
+ cpu=ns32k
929
+ vendor=pc532
985
930
  ;;
986
- pentium | p5 | k5 | k6 | nexgen | viac3)
987
- basic_machine=i586-pc
931
+ pn)
932
+ cpu=pn
933
+ vendor=gould
988
934
  ;;
989
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
990
- basic_machine=i686-pc
935
+ power)
936
+ cpu=power
937
+ vendor=ibm
991
938
  ;;
992
- pentiumii | pentium2 | pentiumiii | pentium3)
993
- basic_machine=i686-pc
939
+ ps2)
940
+ cpu=i386
941
+ vendor=ibm
994
942
  ;;
995
- pentium4)
996
- basic_machine=i786-pc
943
+ rm[46]00)
944
+ cpu=mips
945
+ vendor=siemens
997
946
  ;;
998
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
999
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
947
+ rtpc | rtpc-*)
948
+ cpu=romp
949
+ vendor=ibm
1000
950
  ;;
1001
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
1002
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
951
+ sde)
952
+ cpu=mipsisa32
953
+ vendor=sde
954
+ basic_os=${basic_os:-elf}
1003
955
  ;;
1004
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1005
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
956
+ simso-wrs)
957
+ cpu=sparclite
958
+ vendor=wrs
959
+ basic_os=vxworks
1006
960
  ;;
1007
- pentium4-*)
1008
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
961
+ tower | tower-32)
962
+ cpu=m68k
963
+ vendor=ncr
1009
964
  ;;
1010
- pn)
1011
- basic_machine=pn-gould
965
+ vpp*|vx|vx-*)
966
+ cpu=f301
967
+ vendor=fujitsu
1012
968
  ;;
1013
- power) basic_machine=power-ibm
969
+ w65)
970
+ cpu=w65
971
+ vendor=wdc
1014
972
  ;;
1015
- ppc | ppcbe) basic_machine=powerpc-unknown
973
+ w89k-*)
974
+ cpu=hppa1.1
975
+ vendor=winbond
976
+ basic_os=proelf
1016
977
  ;;
1017
- ppc-* | ppcbe-*)
1018
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
978
+ none)
979
+ cpu=none
980
+ vendor=none
1019
981
  ;;
1020
- ppcle | powerpclittle | ppc-le | powerpc-little)
1021
- basic_machine=powerpcle-unknown
982
+ leon|leon[3-9])
983
+ cpu=sparc
984
+ vendor=$basic_machine
1022
985
  ;;
1023
- ppcle-* | powerpclittle-*)
1024
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
986
+ leon-*|leon[3-9]-*)
987
+ cpu=sparc
988
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
1025
989
  ;;
1026
- ppc64) basic_machine=powerpc64-unknown
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
1027
1004
  ;;
1028
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
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
1029
1010
  ;;
1030
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1031
- basic_machine=powerpc64le-unknown
1011
+ x64 | amd64)
1012
+ cpu=x86_64
1013
+ vendor=pc
1032
1014
  ;;
1033
- ppc64le-* | powerpc64little-*)
1034
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1015
+ # Recognize the basic CPU types without company name.
1016
+ *)
1017
+ cpu=$basic_machine
1018
+ vendor=unknown
1035
1019
  ;;
1036
- ps2)
1037
- basic_machine=i386-ibm
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}
1038
1031
  ;;
1039
- pw32)
1040
- basic_machine=i586-unknown
1041
- os=-pw32
1032
+ craynv-unknown)
1033
+ vendor=cray
1034
+ basic_os=${basic_os:-unicosmp}
1042
1035
  ;;
1043
- rdos | rdos64)
1044
- basic_machine=x86_64-pc
1045
- os=-rdos
1036
+ c90-unknown | c90-cray)
1037
+ vendor=cray
1038
+ basic_os=${basic_os:-unicos}
1046
1039
  ;;
1047
- rdos32)
1048
- basic_machine=i386-pc
1049
- os=-rdos
1040
+ fx80-unknown)
1041
+ vendor=alliant
1050
1042
  ;;
1051
- rom68k)
1052
- basic_machine=m68k-rom68k
1053
- os=-coff
1043
+ romp-unknown)
1044
+ vendor=ibm
1054
1045
  ;;
1055
- rm[46]00)
1056
- basic_machine=mips-siemens
1046
+ mmix-unknown)
1047
+ vendor=knuth
1057
1048
  ;;
1058
- rtpc | rtpc-*)
1059
- basic_machine=romp-ibm
1049
+ microblaze-unknown | microblazeel-unknown)
1050
+ vendor=xilinx
1060
1051
  ;;
1061
- s390 | s390-*)
1062
- basic_machine=s390-ibm
1052
+ rs6000-unknown)
1053
+ vendor=ibm
1063
1054
  ;;
1064
- s390x | s390x-*)
1065
- basic_machine=s390x-ibm
1055
+ vax-unknown)
1056
+ vendor=dec
1066
1057
  ;;
1067
- sa29200)
1068
- basic_machine=a29k-amd
1069
- os=-udi
1058
+ pdp11-unknown)
1059
+ vendor=dec
1070
1060
  ;;
1071
- sb1)
1072
- basic_machine=mipsisa64sb1-unknown
1061
+ we32k-unknown)
1062
+ vendor=att
1073
1063
  ;;
1074
- sb1el)
1075
- basic_machine=mipsisa64sb1el-unknown
1064
+ cydra-unknown)
1065
+ vendor=cydrome
1076
1066
  ;;
1077
- sde)
1078
- basic_machine=mipsisa32-sde
1079
- os=-elf
1067
+ i370-ibm*)
1068
+ vendor=ibm
1080
1069
  ;;
1081
- sei)
1082
- basic_machine=mips-sei
1083
- os=-seiux
1070
+ orion-unknown)
1071
+ vendor=highlevel
1084
1072
  ;;
1085
- sequent)
1086
- basic_machine=i386-sequent
1073
+ xps-unknown | xps100-unknown)
1074
+ cpu=xps100
1075
+ vendor=honeywell
1087
1076
  ;;
1088
- sh)
1089
- basic_machine=sh-hitachi
1090
- os=-hms
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}
1091
1083
  ;;
1092
- sh5el)
1093
- basic_machine=sh5le-unknown
1084
+
1085
+ # Normalized CPU+vendor pairs that imply an OS, if not otherwise specified
1086
+ m68k-isi)
1087
+ basic_os=${basic_os:-sysv}
1094
1088
  ;;
1095
- sh64)
1096
- basic_machine=sh64-unknown
1089
+ m68k-sony)
1090
+ basic_os=${basic_os:-newsos}
1097
1091
  ;;
1098
- sparclite-wrs | simso-wrs)
1099
- basic_machine=sparclite-wrs
1100
- os=-vxworks
1092
+ m68k-tektronix)
1093
+ basic_os=${basic_os:-bsd}
1101
1094
  ;;
1102
- sps7)
1103
- basic_machine=m68k-bull
1104
- os=-sysv2
1095
+ m88k-harris)
1096
+ basic_os=${basic_os:-sysv3}
1105
1097
  ;;
1106
- spur)
1107
- basic_machine=spur-unknown
1098
+ i386-bull | m68k-bull)
1099
+ basic_os=${basic_os:-sysv3}
1108
1100
  ;;
1109
- st2000)
1110
- basic_machine=m68k-tandem
1101
+ rs6000-bull)
1102
+ basic_os=${basic_os:-bosx}
1111
1103
  ;;
1112
- stratus)
1113
- basic_machine=i860-stratus
1114
- os=-sysv4
1104
+ mips-sni)
1105
+ basic_os=${basic_os:-sysv4}
1115
1106
  ;;
1116
- strongarm-* | thumb-*)
1117
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1107
+
1108
+ # Here we normalize CPU types irrespective of the vendor
1109
+ amd64-*)
1110
+ cpu=x86_64
1118
1111
  ;;
1119
- sun2)
1120
- basic_machine=m68000-sun
1112
+ blackfin-*)
1113
+ cpu=bfin
1114
+ basic_os=${basic_os:-linux}
1121
1115
  ;;
1122
- sun2os3)
1123
- basic_machine=m68000-sun
1124
- os=-sunos3
1116
+ c54x-*)
1117
+ cpu=tic54x
1125
1118
  ;;
1126
- sun2os4)
1127
- basic_machine=m68000-sun
1128
- os=-sunos4
1119
+ c55x-*)
1120
+ cpu=tic55x
1129
1121
  ;;
1130
- sun3os3)
1131
- basic_machine=m68k-sun
1132
- os=-sunos3
1122
+ c6x-*)
1123
+ cpu=tic6x
1133
1124
  ;;
1134
- sun3os4)
1135
- basic_machine=m68k-sun
1136
- os=-sunos4
1125
+ e500v[12]-*)
1126
+ cpu=powerpc
1127
+ basic_os=${basic_os}"spe"
1137
1128
  ;;
1138
- sun4os3)
1139
- basic_machine=sparc-sun
1140
- os=-sunos3
1129
+ mips3*-*)
1130
+ cpu=mips64
1141
1131
  ;;
1142
- sun4os4)
1143
- basic_machine=sparc-sun
1144
- os=-sunos4
1132
+ ms1-*)
1133
+ cpu=mt
1145
1134
  ;;
1146
- sun4sol2)
1147
- basic_machine=sparc-sun
1148
- os=-solaris2
1135
+ m68knommu-*)
1136
+ cpu=m68k
1137
+ basic_os=${basic_os:-linux}
1149
1138
  ;;
1150
- sun3 | sun3-*)
1151
- basic_machine=m68k-sun
1139
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
1140
+ cpu=s12z
1152
1141
  ;;
1153
- sun4)
1154
- basic_machine=sparc-sun
1142
+ openrisc-*)
1143
+ cpu=or32
1155
1144
  ;;
1156
- sun386 | sun386i | roadrunner)
1157
- basic_machine=i386-sun
1145
+ parisc-*)
1146
+ cpu=hppa
1147
+ basic_os=${basic_os:-linux}
1158
1148
  ;;
1159
- sv1)
1160
- basic_machine=sv1-cray
1161
- os=-unicos
1149
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1150
+ cpu=i586
1162
1151
  ;;
1163
- symmetry)
1164
- basic_machine=i386-sequent
1165
- os=-dynix
1152
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
1153
+ cpu=i686
1166
1154
  ;;
1167
- t3e)
1168
- basic_machine=alphaev5-cray
1169
- os=-unicos
1155
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1156
+ cpu=i686
1170
1157
  ;;
1171
- t90)
1172
- basic_machine=t90-cray
1173
- os=-unicos
1158
+ pentium4-*)
1159
+ cpu=i786
1174
1160
  ;;
1175
- tile*)
1176
- basic_machine=$basic_machine-unknown
1177
- os=-linux-gnu
1161
+ ppc-* | ppcbe-*)
1162
+ cpu=powerpc
1178
1163
  ;;
1179
- tx39)
1180
- basic_machine=mipstx39-unknown
1164
+ ppcle-* | powerpclittle-*)
1165
+ cpu=powerpcle
1181
1166
  ;;
1182
- tx39el)
1183
- basic_machine=mipstx39el-unknown
1167
+ ppc64-*)
1168
+ cpu=powerpc64
1184
1169
  ;;
1185
- toad1)
1186
- basic_machine=pdp10-xkl
1187
- os=-tops20
1170
+ ppc64le-* | powerpc64little-*)
1171
+ cpu=powerpc64le
1188
1172
  ;;
1189
- tower | tower-32)
1190
- basic_machine=m68k-ncr
1173
+ sb1-*)
1174
+ cpu=mipsisa64sb1
1191
1175
  ;;
1192
- tpf)
1193
- basic_machine=s390x-ibm
1194
- os=-tpf
1176
+ sb1el-*)
1177
+ cpu=mipsisa64sb1el
1195
1178
  ;;
1196
- udi29k)
1197
- basic_machine=a29k-amd
1198
- os=-udi
1179
+ sh5e[lb]-*)
1180
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
1199
1181
  ;;
1200
- ultra3)
1201
- basic_machine=a29k-nyu
1202
- os=-sym1
1182
+ spur-*)
1183
+ cpu=spur
1203
1184
  ;;
1204
- v810 | necv810)
1205
- basic_machine=v810-nec
1206
- os=-none
1185
+ strongarm-* | thumb-*)
1186
+ cpu=arm
1207
1187
  ;;
1208
- vaxv)
1209
- basic_machine=vax-dec
1210
- os=-sysv
1188
+ tx39-*)
1189
+ cpu=mipstx39
1211
1190
  ;;
1212
- vms)
1213
- basic_machine=vax-dec
1214
- os=-vms
1191
+ tx39el-*)
1192
+ cpu=mipstx39el
1215
1193
  ;;
1216
- vpp*|vx|vx-*)
1217
- basic_machine=f301-fujitsu
1194
+ xscale-* | xscalee[bl]-*)
1195
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
1218
1196
  ;;
1219
- vxworks960)
1220
- basic_machine=i960-wrs
1221
- os=-vxworks
1197
+ arm64-* | aarch64le-*)
1198
+ cpu=aarch64
1222
1199
  ;;
1223
- vxworks68)
1224
- basic_machine=m68k-wrs
1225
- os=-vxworks
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}
1226
1205
  ;;
1227
- vxworks29k)
1228
- basic_machine=a29k-wrs
1229
- os=-vxworks
1206
+ crisv32-* | etraxfs*-*)
1207
+ cpu=crisv32
1208
+ vendor=axis
1230
1209
  ;;
1231
- w65*)
1232
- basic_machine=w65-wdc
1233
- os=-none
1210
+ cris-* | etrax*-*)
1211
+ cpu=cris
1212
+ vendor=axis
1234
1213
  ;;
1235
- w89k-*)
1236
- basic_machine=hppa1.1-winbond
1237
- os=-proelf
1214
+ crx-*)
1215
+ basic_os=${basic_os:-elf}
1238
1216
  ;;
1239
- xbox)
1240
- basic_machine=i686-pc
1241
- os=-mingw32
1217
+ neo-tandem)
1218
+ cpu=neo
1219
+ vendor=tandem
1242
1220
  ;;
1243
- xps | xps100)
1244
- basic_machine=xps100-honeywell
1221
+ nse-tandem)
1222
+ cpu=nse
1223
+ vendor=tandem
1245
1224
  ;;
1246
- xscale-* | xscalee[bl]-*)
1247
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1225
+ nsr-tandem)
1226
+ cpu=nsr
1227
+ vendor=tandem
1248
1228
  ;;
1249
- ymp)
1250
- basic_machine=ymp-cray
1251
- os=-unicos
1229
+ nsv-tandem)
1230
+ cpu=nsv
1231
+ vendor=tandem
1252
1232
  ;;
1253
- z8k-*-coff)
1254
- basic_machine=z8k-unknown
1255
- os=-sim
1233
+ nsx-tandem)
1234
+ cpu=nsx
1235
+ vendor=tandem
1256
1236
  ;;
1257
- z80-*-coff)
1258
- basic_machine=z80-unknown
1259
- os=-sim
1237
+ mipsallegrexel-sony)
1238
+ cpu=mipsallegrexel
1239
+ vendor=sony
1260
1240
  ;;
1261
- none)
1262
- basic_machine=none-none
1263
- os=-none
1241
+ tile*-*)
1242
+ basic_os=${basic_os:-linux-gnu}
1264
1243
  ;;
1265
1244
 
1266
- # Here we handle the default manufacturer of certain CPU types. It is in
1267
- # some cases the only manufacturer, in others, it is the most popular.
1268
- w89k)
1269
- basic_machine=hppa1.1-winbond
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
1270
1477
  ;;
1271
- op50n)
1272
- basic_machine=hppa1.1-oki
1478
+ esac
1479
+
1480
+ # Here we canonicalize certain aliases for manufacturers.
1481
+ case $vendor in
1482
+ digital*)
1483
+ vendor=dec
1273
1484
  ;;
1274
- op60c)
1275
- basic_machine=hppa1.1-oki
1485
+ commodore*)
1486
+ vendor=cbm
1276
1487
  ;;
1277
- romp)
1278
- basic_machine=romp-ibm
1488
+ *)
1279
1489
  ;;
1280
- mmix)
1281
- basic_machine=mmix-knuth
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|'`
1282
1532
  ;;
1283
- rs6000)
1284
- basic_machine=rs6000-ibm
1533
+ *)
1534
+ kernel=
1535
+ os=$basic_os
1285
1536
  ;;
1286
- vax)
1287
- basic_machine=vax-dec
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
1288
1547
  ;;
1289
- pdp10)
1290
- # there are many clones, so DEC is not a safe bet
1291
- basic_machine=pdp10-unknown
1548
+ bluegene*)
1549
+ os=cnk
1292
1550
  ;;
1293
- pdp11)
1294
- basic_machine=pdp11-dec
1551
+ solaris1 | solaris1.*)
1552
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
1295
1553
  ;;
1296
- we32k)
1297
- basic_machine=we32k-att
1554
+ solaris)
1555
+ os=solaris2
1298
1556
  ;;
1299
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1300
- basic_machine=sh-unknown
1557
+ unixware*)
1558
+ os=sysv4.2uw
1301
1559
  ;;
1302
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1303
- basic_machine=sparc-sun
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
1304
1567
  ;;
1305
- cydra)
1306
- basic_machine=cydra-cydrome
1568
+ ns2 | nextstep2 | openstep2)
1569
+ os=nextstep2
1307
1570
  ;;
1308
- orion)
1309
- basic_machine=orion-highlevel
1571
+ ns3 | nextstep3 | openstep | openstep3)
1572
+ os=openstep3
1310
1573
  ;;
1311
- orion105)
1312
- basic_machine=clipper-highlevel
1574
+ ns4 | nextstep4 | openstep4)
1575
+ os=openstep4
1313
1576
  ;;
1314
- mac | mpw | mac-mpw)
1315
- basic_machine=m68k-apple
1577
+ # es1800 is here to avoid being matched by es* (a different OS)
1578
+ es1800*)
1579
+ os=ose
1316
1580
  ;;
1317
- pmac | pmac-mpw)
1318
- basic_machine=powerpc-apple
1581
+ # Some version numbers need modification
1582
+ chorusos*)
1583
+ os=chorusos
1319
1584
  ;;
1320
- *-unknown)
1321
- # Make sure to match an already-canonicalized machine name.
1585
+ isc)
1586
+ os=isc2.2
1322
1587
  ;;
1323
- *)
1324
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1325
- exit 1
1588
+ sco6)
1589
+ os=sco5v6
1326
1590
  ;;
1327
- esac
1328
-
1329
- # Here we canonicalize certain aliases for manufacturers.
1330
- case $basic_machine in
1331
- *-digital*)
1332
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1591
+ sco5)
1592
+ os=sco3.2v5
1333
1593
  ;;
1334
- *-commodore*)
1335
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1594
+ sco4)
1595
+ os=sco3.2v4
1336
1596
  ;;
1337
- *)
1597
+ sco3.2.[4-9]*)
1598
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
1338
1599
  ;;
1339
- esac
1340
-
1341
- # Decode manufacturer-specific aliases for certain operating systems.
1342
-
1343
- if [ x"$os" != x"" ]
1344
- then
1345
- case $os in
1346
- # First match some system type aliases
1347
- # that might get confused with valid system types.
1348
- # -solaris* is a basic system type, with this one exception.
1349
- -auroraux)
1350
- os=-auroraux
1351
- ;;
1352
- -solaris1 | -solaris1.*)
1353
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
1354
- ;;
1355
- -solaris)
1356
- os=-solaris2
1357
- ;;
1358
- -svr4*)
1359
- os=-sysv4
1360
- ;;
1361
- -unixware*)
1362
- os=-sysv4.2uw
1363
- ;;
1364
- -gnu/linux*)
1365
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1366
- ;;
1367
- # First accept the basic system types.
1368
- # The portable systems comes first.
1369
- # Each alternative MUST END IN A *, to match a version number.
1370
- # -sysv* is not here because it comes later, after sysvr4.
1371
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1372
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1373
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1374
- | -sym* | -kopensolaris* | -plan9* \
1375
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1376
- | -aos* | -aros* \
1377
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1378
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1379
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1380
- | -bitrig* | -openbsd* | -solidbsd* \
1381
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1382
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1383
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1384
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1385
- | -chorusos* | -chorusrdb* | -cegcc* \
1386
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1387
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1388
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
1389
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1390
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1391
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1392
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1393
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1394
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1395
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1396
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
1397
- # Remember, each alternative MUST END IN *, to match a version number.
1398
- ;;
1399
- -qnx*)
1400
- case $basic_machine in
1401
- x86-* | i*86-*)
1402
- ;;
1403
- *)
1404
- os=-nto$os
1405
- ;;
1406
- esac
1600
+ sco*v* | scout)
1601
+ # Don't match below
1407
1602
  ;;
1408
- -nto-qnx*)
1603
+ sco*)
1604
+ os=sco3.2v2
1409
1605
  ;;
1410
- -nto*)
1411
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
1606
+ psos*)
1607
+ os=psos
1412
1608
  ;;
1413
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1414
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1415
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1609
+ qnx*)
1610
+ os=qnx
1416
1611
  ;;
1417
- -mac*)
1418
- os=`echo $os | sed -e 's|mac|macos|'`
1612
+ hiux*)
1613
+ os=hiuxwe2
1419
1614
  ;;
1420
- -linux-dietlibc)
1421
- os=-linux-dietlibc
1615
+ lynx*178)
1616
+ os=lynxos178
1422
1617
  ;;
1423
- -linux*)
1424
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
1618
+ lynx*5)
1619
+ os=lynxos5
1425
1620
  ;;
1426
- -sunos5*)
1427
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
1621
+ lynxos*)
1622
+ # don't get caught up in next wildcard
1428
1623
  ;;
1429
- -sunos6*)
1430
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
1624
+ lynx*)
1625
+ os=lynxos
1431
1626
  ;;
1432
- -opened*)
1433
- os=-openedition
1627
+ mac[0-9]*)
1628
+ os=`echo "$os" | sed -e 's|mac|macos|'`
1434
1629
  ;;
1435
- -os400*)
1436
- os=-os400
1630
+ opened*)
1631
+ os=openedition
1437
1632
  ;;
1438
- -wince*)
1439
- os=-wince
1633
+ os400*)
1634
+ os=os400
1440
1635
  ;;
1441
- -osfrose*)
1442
- os=-osfrose
1636
+ sunos5*)
1637
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
1443
1638
  ;;
1444
- -osf*)
1445
- os=-osf
1639
+ sunos6*)
1640
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
1446
1641
  ;;
1447
- -utek*)
1448
- os=-bsd
1642
+ wince*)
1643
+ os=wince
1449
1644
  ;;
1450
- -dynix*)
1451
- os=-bsd
1645
+ utek*)
1646
+ os=bsd
1647
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'`
1452
1648
  ;;
1453
- -acis*)
1454
- os=-aos
1649
+ dynix*)
1650
+ os=bsd
1455
1651
  ;;
1456
- -atheos*)
1457
- os=-atheos
1652
+ acis*)
1653
+ os=aos
1458
1654
  ;;
1459
- -syllable*)
1460
- os=-syllable
1655
+ atheos*)
1656
+ os=atheos
1461
1657
  ;;
1462
- -386bsd)
1463
- os=-bsd
1658
+ syllable*)
1659
+ os=syllable
1464
1660
  ;;
1465
- -ctix* | -uts*)
1466
- os=-sysv
1661
+ 386bsd)
1662
+ os=bsd
1467
1663
  ;;
1468
- -nova*)
1469
- os=-rtmk-nova
1664
+ ctix*)
1665
+ os=sysv
1666
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'`
1470
1667
  ;;
1471
- -ns2 )
1472
- os=-nextstep2
1668
+ uts*)
1669
+ os=sysv
1473
1670
  ;;
1474
- -nsk*)
1475
- os=-nsk
1671
+ nova*)
1672
+ kernel=rtmk
1673
+ os=nova
1476
1674
  ;;
1477
1675
  # Preserve the version number of sinix5.
1478
- -sinix5.*)
1479
- os=`echo $os | sed -e 's|sinix|sysv|'`
1676
+ sinix5.*)
1677
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
1678
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
1480
1679
  ;;
1481
- -sinix*)
1482
- os=-sysv4
1680
+ sinix*)
1681
+ os=sysv4
1682
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
1483
1683
  ;;
1484
- -tpf*)
1485
- os=-tpf
1684
+ tpf*)
1685
+ os=tpf
1486
1686
  ;;
1487
- -triton*)
1488
- os=-sysv3
1687
+ triton*)
1688
+ os=sysv3
1489
1689
  ;;
1490
- -oss*)
1491
- os=-sysv3
1690
+ oss*)
1691
+ os=sysv3
1492
1692
  ;;
1493
- -svr4)
1494
- os=-sysv4
1693
+ svr4*)
1694
+ os=sysv4
1495
1695
  ;;
1496
- -svr3)
1497
- os=-sysv3
1696
+ svr3)
1697
+ os=sysv3
1498
1698
  ;;
1499
- -sysvr4)
1500
- os=-sysv4
1699
+ sysvr4)
1700
+ os=sysv4
1501
1701
  ;;
1502
- # This must come after -sysvr4.
1503
- -sysv*)
1702
+ ose*)
1703
+ os=ose
1504
1704
  ;;
1505
- -ose*)
1506
- os=-ose
1705
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
1706
+ os=mint
1507
1707
  ;;
1508
- -es1800*)
1509
- os=-ose
1708
+ dicos*)
1709
+ os=dicos
1510
1710
  ;;
1511
- -xenix)
1512
- os=-xenix
1513
- ;;
1514
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1515
- os=-mint
1516
- ;;
1517
- -aros*)
1518
- os=-aros
1519
- ;;
1520
- -zvmoe)
1521
- os=-zvmoe
1522
- ;;
1523
- -dicos*)
1524
- os=-dicos
1525
- ;;
1526
- -nacl*)
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
1527
1724
  ;;
1528
- -none)
1725
+ aout* | coff* | elf* | pe*)
1726
+ # These are machine code file formats, not OSes
1727
+ obj=$os
1728
+ os=
1529
1729
  ;;
1530
1730
  *)
1531
- # Get rid of the `-' at the beginning of $os.
1532
- os=`echo $os | sed 's/[^-]*-//'`
1533
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1534
- exit 1
1731
+ # No normalization, but not necessarily accepted, that comes below.
1535
1732
  ;;
1536
1733
  esac
1734
+
1537
1735
  else
1538
1736
 
1539
1737
  # Here we handle the default operating systems that come with various machines.
@@ -1546,261 +1744,610 @@ else
1546
1744
  # will signal an error saying that MANUFACTURER isn't an operating
1547
1745
  # system, and we'll never get to this point.
1548
1746
 
1549
- case $basic_machine in
1747
+ kernel=
1748
+ obj=
1749
+ case $cpu-$vendor in
1550
1750
  score-*)
1551
- os=-elf
1751
+ os=
1752
+ obj=elf
1552
1753
  ;;
1553
1754
  spu-*)
1554
- os=-elf
1755
+ os=
1756
+ obj=elf
1555
1757
  ;;
1556
1758
  *-acorn)
1557
- os=-riscix1.2
1759
+ os=riscix1.2
1558
1760
  ;;
1559
1761
  arm*-rebel)
1560
- os=-linux
1762
+ kernel=linux
1763
+ os=gnu
1561
1764
  ;;
1562
1765
  arm*-semi)
1563
- os=-aout
1766
+ os=
1767
+ obj=aout
1564
1768
  ;;
1565
1769
  c4x-* | tic4x-*)
1566
- os=-coff
1770
+ os=
1771
+ obj=coff
1567
1772
  ;;
1568
1773
  c8051-*)
1569
- os=-elf
1774
+ os=
1775
+ obj=elf
1776
+ ;;
1777
+ clipper-intergraph)
1778
+ os=clix
1570
1779
  ;;
1571
1780
  hexagon-*)
1572
- os=-elf
1781
+ os=
1782
+ obj=elf
1573
1783
  ;;
1574
1784
  tic54x-*)
1575
- os=-coff
1785
+ os=
1786
+ obj=coff
1576
1787
  ;;
1577
1788
  tic55x-*)
1578
- os=-coff
1789
+ os=
1790
+ obj=coff
1579
1791
  ;;
1580
1792
  tic6x-*)
1581
- os=-coff
1793
+ os=
1794
+ obj=coff
1582
1795
  ;;
1583
1796
  # This must come before the *-dec entry.
1584
1797
  pdp10-*)
1585
- os=-tops20
1798
+ os=tops20
1586
1799
  ;;
1587
1800
  pdp11-*)
1588
- os=-none
1801
+ os=none
1589
1802
  ;;
1590
1803
  *-dec | vax-*)
1591
- os=-ultrix4.2
1804
+ os=ultrix4.2
1592
1805
  ;;
1593
1806
  m68*-apollo)
1594
- os=-domain
1807
+ os=domain
1595
1808
  ;;
1596
1809
  i386-sun)
1597
- os=-sunos4.0.2
1810
+ os=sunos4.0.2
1598
1811
  ;;
1599
1812
  m68000-sun)
1600
- os=-sunos3
1813
+ os=sunos3
1601
1814
  ;;
1602
1815
  m68*-cisco)
1603
- os=-aout
1816
+ os=
1817
+ obj=aout
1604
1818
  ;;
1605
1819
  mep-*)
1606
- os=-elf
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
1607
1830
  ;;
1608
1831
  mips*-cisco)
1609
- os=-elf
1832
+ os=
1833
+ obj=elf
1610
1834
  ;;
1611
- mips*-*)
1612
- os=-elf
1835
+ mips*-*|nanomips*-*)
1836
+ os=
1837
+ obj=elf
1613
1838
  ;;
1614
1839
  or32-*)
1615
- os=-coff
1840
+ os=
1841
+ obj=coff
1616
1842
  ;;
1617
- *-tti) # must be before sparc entry or we get the wrong os.
1618
- os=-sysv3
1843
+ # This must be before the sparc-* entry or we get the wrong os.
1844
+ *-tti)
1845
+ os=sysv3
1619
1846
  ;;
1620
1847
  sparc-* | *-sun)
1621
- os=-sunos4.1.1
1848
+ os=sunos4.1.1
1622
1849
  ;;
1623
- *-be)
1624
- os=-beos
1850
+ pru-*)
1851
+ os=
1852
+ obj=elf
1625
1853
  ;;
1626
- *-haiku)
1627
- os=-haiku
1854
+ *-be)
1855
+ os=beos
1628
1856
  ;;
1629
1857
  *-ibm)
1630
- os=-aix
1858
+ os=aix
1631
1859
  ;;
1632
1860
  *-knuth)
1633
- os=-mmixware
1861
+ os=mmixware
1634
1862
  ;;
1635
1863
  *-wec)
1636
- os=-proelf
1864
+ os=proelf
1637
1865
  ;;
1638
1866
  *-winbond)
1639
- os=-proelf
1867
+ os=proelf
1640
1868
  ;;
1641
1869
  *-oki)
1642
- os=-proelf
1870
+ os=proelf
1643
1871
  ;;
1644
1872
  *-hp)
1645
- os=-hpux
1873
+ os=hpux
1646
1874
  ;;
1647
1875
  *-hitachi)
1648
- os=-hiux
1876
+ os=hiuxwe2
1649
1877
  ;;
1650
1878
  i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1651
- os=-sysv
1879
+ os=sysv
1652
1880
  ;;
1653
1881
  *-cbm)
1654
- os=-amigaos
1882
+ os=amigaos
1655
1883
  ;;
1656
1884
  *-dg)
1657
- os=-dgux
1885
+ os=dgux
1658
1886
  ;;
1659
1887
  *-dolphin)
1660
- os=-sysv3
1888
+ os=sysv3
1661
1889
  ;;
1662
1890
  m68k-ccur)
1663
- os=-rtu
1891
+ os=rtu
1664
1892
  ;;
1665
1893
  m88k-omron*)
1666
- os=-luna
1894
+ os=luna
1667
1895
  ;;
1668
- *-next )
1669
- os=-nextstep
1896
+ *-next)
1897
+ os=nextstep
1670
1898
  ;;
1671
1899
  *-sequent)
1672
- os=-ptx
1900
+ os=ptx
1673
1901
  ;;
1674
1902
  *-crds)
1675
- os=-unos
1903
+ os=unos
1676
1904
  ;;
1677
1905
  *-ns)
1678
- os=-genix
1906
+ os=genix
1679
1907
  ;;
1680
1908
  i370-*)
1681
- os=-mvs
1682
- ;;
1683
- *-next)
1684
- os=-nextstep3
1909
+ os=mvs
1685
1910
  ;;
1686
1911
  *-gould)
1687
- os=-sysv
1912
+ os=sysv
1688
1913
  ;;
1689
1914
  *-highlevel)
1690
- os=-bsd
1915
+ os=bsd
1691
1916
  ;;
1692
1917
  *-encore)
1693
- os=-bsd
1694
- ;;
1695
- *-sgi)
1696
- os=-irix
1697
- ;;
1698
- *-siemens)
1699
- os=-sysv4
1918
+ os=bsd
1700
1919
  ;;
1701
1920
  *-masscomp)
1702
- os=-rtu
1921
+ os=rtu
1703
1922
  ;;
1704
1923
  f30[01]-fujitsu | f700-fujitsu)
1705
- os=-uxpv
1924
+ os=uxpv
1706
1925
  ;;
1707
1926
  *-rom68k)
1708
- os=-coff
1927
+ os=
1928
+ obj=coff
1709
1929
  ;;
1710
1930
  *-*bug)
1711
- os=-coff
1931
+ os=
1932
+ obj=coff
1712
1933
  ;;
1713
1934
  *-apple)
1714
- os=-macos
1935
+ os=macos
1715
1936
  ;;
1716
1937
  *-atari*)
1717
- os=-mint
1938
+ os=mint
1939
+ ;;
1940
+ *-wrs)
1941
+ os=vxworks
1718
1942
  ;;
1719
1943
  *)
1720
- os=-none
1944
+ os=none
1721
1945
  ;;
1722
1946
  esac
1947
+
1723
1948
  fi
1724
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
+
1725
2268
  # Here we handle the case where we know the os, and the CPU type, but not the
1726
2269
  # manufacturer. We pick the logical manufacturer.
1727
- vendor=unknown
1728
- case $basic_machine in
1729
- *-unknown)
1730
- case $os in
1731
- -riscix*)
2270
+ case $vendor in
2271
+ unknown)
2272
+ case $cpu-$os in
2273
+ *-riscix*)
1732
2274
  vendor=acorn
1733
2275
  ;;
1734
- -sunos*)
2276
+ *-sunos* | *-solaris*)
1735
2277
  vendor=sun
1736
2278
  ;;
1737
- -cnk*|-aix*)
2279
+ *-cnk* | *-aix*)
1738
2280
  vendor=ibm
1739
2281
  ;;
1740
- -beos*)
2282
+ *-beos*)
1741
2283
  vendor=be
1742
2284
  ;;
1743
- -hpux*)
2285
+ *-hpux*)
1744
2286
  vendor=hp
1745
2287
  ;;
1746
- -mpeix*)
2288
+ *-mpeix*)
1747
2289
  vendor=hp
1748
2290
  ;;
1749
- -hiux*)
2291
+ *-hiux*)
1750
2292
  vendor=hitachi
1751
2293
  ;;
1752
- -unos*)
2294
+ *-unos*)
1753
2295
  vendor=crds
1754
2296
  ;;
1755
- -dgux*)
2297
+ *-dgux*)
1756
2298
  vendor=dg
1757
2299
  ;;
1758
- -luna*)
2300
+ *-luna*)
1759
2301
  vendor=omron
1760
2302
  ;;
1761
- -genix*)
2303
+ *-genix*)
1762
2304
  vendor=ns
1763
2305
  ;;
1764
- -mvs* | -opened*)
2306
+ *-clix*)
2307
+ vendor=intergraph
2308
+ ;;
2309
+ *-mvs* | *-opened*)
2310
+ vendor=ibm
2311
+ ;;
2312
+ *-os400*)
1765
2313
  vendor=ibm
1766
2314
  ;;
1767
- -os400*)
2315
+ s390-* | s390x-*)
1768
2316
  vendor=ibm
1769
2317
  ;;
1770
- -ptx*)
2318
+ *-ptx*)
1771
2319
  vendor=sequent
1772
2320
  ;;
1773
- -tpf*)
2321
+ *-tpf*)
1774
2322
  vendor=ibm
1775
2323
  ;;
1776
- -vxsim* | -vxworks* | -windiss*)
2324
+ *-vxsim* | *-vxworks* | *-windiss*)
1777
2325
  vendor=wrs
1778
2326
  ;;
1779
- -aux*)
2327
+ *-aux*)
1780
2328
  vendor=apple
1781
2329
  ;;
1782
- -hms*)
2330
+ *-hms*)
1783
2331
  vendor=hitachi
1784
2332
  ;;
1785
- -mpw* | -macos*)
2333
+ *-mpw* | *-macos*)
1786
2334
  vendor=apple
1787
2335
  ;;
1788
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
2336
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
1789
2337
  vendor=atari
1790
2338
  ;;
1791
- -vos*)
2339
+ *-vos*)
1792
2340
  vendor=stratus
1793
2341
  ;;
1794
2342
  esac
1795
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1796
2343
  ;;
1797
2344
  esac
1798
2345
 
1799
- echo $basic_machine$os
2346
+ echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
1800
2347
  exit
1801
2348
 
1802
2349
  # Local variables:
1803
- # eval: (add-hook 'write-file-hooks 'time-stamp)
2350
+ # eval: (add-hook 'before-save-hook 'time-stamp)
1804
2351
  # time-stamp-start: "timestamp='"
1805
2352
  # time-stamp-format: "%:y-%02m-%02d"
1806
2353
  # time-stamp-end: "'"