contrast-agent 3.8.4

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 (500) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +5 -0
  3. data/.dockerignore +10 -0
  4. data/.gitignore +58 -0
  5. data/.gitmodules +6 -0
  6. data/.rspec +6 -0
  7. data/.simplecov +4 -0
  8. data/Gemfile +7 -0
  9. data/LICENSE.txt +12 -0
  10. data/Rakefile +15 -0
  11. data/exe/contrast_service +29 -0
  12. data/ext/build_funchook.rb +48 -0
  13. data/ext/cs__assess_active_record_named/cs__active_record_named.c +47 -0
  14. data/ext/cs__assess_active_record_named/cs__active_record_named.h +10 -0
  15. data/ext/cs__assess_active_record_named/extconf.rb +2 -0
  16. data/ext/cs__assess_array/cs__assess_array.c +38 -0
  17. data/ext/cs__assess_array/cs__assess_array.h +9 -0
  18. data/ext/cs__assess_array/extconf.rb +2 -0
  19. data/ext/cs__assess_basic_object/cs__assess_basic_object.c +50 -0
  20. data/ext/cs__assess_basic_object/cs__assess_basic_object.h +17 -0
  21. data/ext/cs__assess_basic_object/extconf.rb +2 -0
  22. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.c +86 -0
  23. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.h +34 -0
  24. data/ext/cs__assess_fiber_track/extconf.rb +2 -0
  25. data/ext/cs__assess_hash/cs__assess_hash.c +64 -0
  26. data/ext/cs__assess_hash/cs__assess_hash.h +24 -0
  27. data/ext/cs__assess_hash/extconf.rb +2 -0
  28. data/ext/cs__assess_kernel/cs__assess_kernel.c +36 -0
  29. data/ext/cs__assess_kernel/cs__assess_kernel.h +10 -0
  30. data/ext/cs__assess_kernel/extconf.rb +2 -0
  31. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.c +47 -0
  32. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.h +18 -0
  33. data/ext/cs__assess_marshal_module/extconf.rb +2 -0
  34. data/ext/cs__assess_module/cs__assess_module.c +78 -0
  35. data/ext/cs__assess_module/cs__assess_module.h +25 -0
  36. data/ext/cs__assess_module/extconf.rb +2 -0
  37. data/ext/cs__assess_regexp/cs__assess_regexp.c +48 -0
  38. data/ext/cs__assess_regexp/cs__assess_regexp.h +22 -0
  39. data/ext/cs__assess_regexp/extconf.rb +2 -0
  40. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.c +63 -0
  41. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.h +29 -0
  42. data/ext/cs__assess_regexp_track/extconf.rb +2 -0
  43. data/ext/cs__assess_string/cs__assess_string.c +38 -0
  44. data/ext/cs__assess_string/cs__assess_string.h +19 -0
  45. data/ext/cs__assess_string/extconf.rb +2 -0
  46. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.c +31 -0
  47. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.h +13 -0
  48. data/ext/cs__assess_string_interpolation26/extconf.rb +2 -0
  49. data/ext/cs__common/cs__common.c +60 -0
  50. data/ext/cs__common/cs__common.h +28 -0
  51. data/ext/cs__common/extconf.rb +20 -0
  52. data/ext/cs__contrast_patch/cs__contrast_patch.c +445 -0
  53. data/ext/cs__contrast_patch/cs__contrast_patch.h +196 -0
  54. data/ext/cs__contrast_patch/extconf.rb +2 -0
  55. data/ext/cs__protect_kernel/cs__protect_kernel.c +37 -0
  56. data/ext/cs__protect_kernel/cs__protect_kernel.h +11 -0
  57. data/ext/cs__protect_kernel/extconf.rb +2 -0
  58. data/ext/cs__scope/cs__scope.c +96 -0
  59. data/ext/cs__scope/cs__scope.h +33 -0
  60. data/ext/cs__scope/extconf.rb +2 -0
  61. data/ext/extconf_common.rb +49 -0
  62. data/funchook/LICENSE +360 -0
  63. data/funchook/Makefile +29 -0
  64. data/funchook/Makefile.in +29 -0
  65. data/funchook/README.md +121 -0
  66. data/funchook/appveyor.yml +42 -0
  67. data/funchook/autogen.sh +3 -0
  68. data/funchook/autom4te.cache/output.0 +4976 -0
  69. data/funchook/autom4te.cache/requests +78 -0
  70. data/funchook/autom4te.cache/traces.0 +364 -0
  71. data/funchook/config.guess +1530 -0
  72. data/funchook/config.log +490 -0
  73. data/funchook/config.status +1016 -0
  74. data/funchook/config.sub +1773 -0
  75. data/funchook/configure +4976 -0
  76. data/funchook/configure.ac +59 -0
  77. data/funchook/distorm/COPYING +26 -0
  78. data/funchook/distorm/MANIFEST +25 -0
  79. data/funchook/distorm/MANIFEST.in +4 -0
  80. data/funchook/distorm/README.md +12 -0
  81. data/funchook/distorm/disOps/disOps.py +795 -0
  82. data/funchook/distorm/disOps/x86db.py +404 -0
  83. data/funchook/distorm/disOps/x86header.py +247 -0
  84. data/funchook/distorm/disOps/x86sets.py +1664 -0
  85. data/funchook/distorm/examples/cs/TestdiStorm/Program.cs +79 -0
  86. data/funchook/distorm/examples/cs/TestdiStorm/Properties/AssemblyInfo.cs +36 -0
  87. data/funchook/distorm/examples/cs/TestdiStorm/TestdiStorm.csproj +69 -0
  88. data/funchook/distorm/examples/cs/distorm-net.sln +26 -0
  89. data/funchook/distorm/examples/cs/distorm-net/CodeInfo.cs +23 -0
  90. data/funchook/distorm/examples/cs/distorm-net/DecodedInst.cs +15 -0
  91. data/funchook/distorm/examples/cs/distorm-net/DecodedResult.cs +14 -0
  92. data/funchook/distorm/examples/cs/distorm-net/DecomposedInst.cs +36 -0
  93. data/funchook/distorm/examples/cs/distorm-net/DecomposedResult.cs +14 -0
  94. data/funchook/distorm/examples/cs/distorm-net/Opcodes.cs +1268 -0
  95. data/funchook/distorm/examples/cs/distorm-net/Opcodes.tt +37 -0
  96. data/funchook/distorm/examples/cs/distorm-net/Operand.cs +25 -0
  97. data/funchook/distorm/examples/cs/distorm-net/Properties/AssemblyInfo.cs +36 -0
  98. data/funchook/distorm/examples/cs/distorm-net/diStorm3.cs +411 -0
  99. data/funchook/distorm/examples/cs/distorm-net/distorm-net.csproj +80 -0
  100. data/funchook/distorm/examples/cs/readme +3 -0
  101. data/funchook/distorm/examples/ddk/README +48 -0
  102. data/funchook/distorm/examples/ddk/distorm.ini +11 -0
  103. data/funchook/distorm/examples/ddk/dummy.c +15 -0
  104. data/funchook/distorm/examples/ddk/main.c +91 -0
  105. data/funchook/distorm/examples/ddk/makefile +1 -0
  106. data/funchook/distorm/examples/ddk/sources +10 -0
  107. data/funchook/distorm/examples/java/Makefile +23 -0
  108. data/funchook/distorm/examples/java/distorm/src/Main.java +43 -0
  109. data/funchook/distorm/examples/java/distorm/src/diStorm3/CodeInfo.java +27 -0
  110. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedInst.java +32 -0
  111. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedResult.java +11 -0
  112. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedInst.java +89 -0
  113. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedResult.java +11 -0
  114. data/funchook/distorm/examples/java/distorm/src/diStorm3/OpcodeEnum.java +131 -0
  115. data/funchook/distorm/examples/java/distorm/src/diStorm3/Opcodes.java +1123 -0
  116. data/funchook/distorm/examples/java/distorm/src/diStorm3/Operand.java +24 -0
  117. data/funchook/distorm/examples/java/distorm/src/diStorm3/distorm3.java +41 -0
  118. data/funchook/distorm/examples/java/jdistorm.c +405 -0
  119. data/funchook/distorm/examples/java/jdistorm.h +40 -0
  120. data/funchook/distorm/examples/java/jdistorm.sln +20 -0
  121. data/funchook/distorm/examples/java/jdistorm.vcproj +208 -0
  122. data/funchook/distorm/examples/linux/Makefile +15 -0
  123. data/funchook/distorm/examples/linux/main.c +181 -0
  124. data/funchook/distorm/examples/tests/Makefile +15 -0
  125. data/funchook/distorm/examples/tests/main.cpp +42 -0
  126. data/funchook/distorm/examples/tests/main.py +66 -0
  127. data/funchook/distorm/examples/tests/test_distorm3.py +1672 -0
  128. data/funchook/distorm/examples/tests/tests.sln +20 -0
  129. data/funchook/distorm/examples/tests/tests.vcxproj +82 -0
  130. data/funchook/distorm/examples/tests/tests.vcxproj.filters +22 -0
  131. data/funchook/distorm/examples/win32/disasm.sln +25 -0
  132. data/funchook/distorm/examples/win32/disasm.vcxproj +201 -0
  133. data/funchook/distorm/examples/win32/disasm.vcxproj.filters +14 -0
  134. data/funchook/distorm/examples/win32/main.cpp +163 -0
  135. data/funchook/distorm/include/distorm.h +482 -0
  136. data/funchook/distorm/include/mnemonics.h +301 -0
  137. data/funchook/distorm/make/linux/Makefile +28 -0
  138. data/funchook/distorm/make/mac/Makefile +24 -0
  139. data/funchook/distorm/make/win32/cdistorm.vcxproj +239 -0
  140. data/funchook/distorm/make/win32/cdistorm.vcxproj.filters +80 -0
  141. data/funchook/distorm/make/win32/distorm.sln +25 -0
  142. data/funchook/distorm/make/win32/resource.h +14 -0
  143. data/funchook/distorm/make/win32/resource.rc +99 -0
  144. data/funchook/distorm/python/distorm3/__init__.py +957 -0
  145. data/funchook/distorm/python/distorm3/sample.py +51 -0
  146. data/funchook/distorm/setup.cfg +10 -0
  147. data/funchook/distorm/setup.py +266 -0
  148. data/funchook/distorm/src/config.h +169 -0
  149. data/funchook/distorm/src/decoder.c +641 -0
  150. data/funchook/distorm/src/decoder.h +33 -0
  151. data/funchook/distorm/src/distorm.c +413 -0
  152. data/funchook/distorm/src/instructions.c +597 -0
  153. data/funchook/distorm/src/instructions.h +463 -0
  154. data/funchook/distorm/src/insts.c +7939 -0
  155. data/funchook/distorm/src/insts.h +64 -0
  156. data/funchook/distorm/src/mnemonics.c +284 -0
  157. data/funchook/distorm/src/operands.c +1290 -0
  158. data/funchook/distorm/src/operands.h +28 -0
  159. data/funchook/distorm/src/prefix.c +368 -0
  160. data/funchook/distorm/src/prefix.h +64 -0
  161. data/funchook/distorm/src/textdefs.c +172 -0
  162. data/funchook/distorm/src/textdefs.h +57 -0
  163. data/funchook/distorm/src/wstring.c +47 -0
  164. data/funchook/distorm/src/wstring.h +35 -0
  165. data/funchook/distorm/src/x86defs.h +82 -0
  166. data/funchook/include/funchook.h +123 -0
  167. data/funchook/install-sh +527 -0
  168. data/funchook/src/Makefile +70 -0
  169. data/funchook/src/Makefile.in +70 -0
  170. data/funchook/src/__strerror.h +109 -0
  171. data/funchook/src/config.h +101 -0
  172. data/funchook/src/config.h.in +100 -0
  173. data/funchook/src/decoder.o +0 -0
  174. data/funchook/src/distorm.o +0 -0
  175. data/funchook/src/funchook.c +440 -0
  176. data/funchook/src/funchook.o +0 -0
  177. data/funchook/src/funchook_internal.h +155 -0
  178. data/funchook/src/funchook_io.c +182 -0
  179. data/funchook/src/funchook_io.h +64 -0
  180. data/funchook/src/funchook_io.o +0 -0
  181. data/funchook/src/funchook_syscall.S +134 -0
  182. data/funchook/src/funchook_syscall.o +0 -0
  183. data/funchook/src/funchook_unix.c +480 -0
  184. data/funchook/src/funchook_unix.o +0 -0
  185. data/funchook/src/funchook_windows.c +397 -0
  186. data/funchook/src/funchook_x86.c +622 -0
  187. data/funchook/src/funchook_x86.o +0 -0
  188. data/funchook/src/instructions.o +0 -0
  189. data/funchook/src/insts.o +0 -0
  190. data/funchook/src/libfunchook.so +0 -0
  191. data/funchook/src/mnemonics.o +0 -0
  192. data/funchook/src/operands.o +0 -0
  193. data/funchook/src/os_func.c +115 -0
  194. data/funchook/src/os_func.h +75 -0
  195. data/funchook/src/os_func.o +0 -0
  196. data/funchook/src/os_func_unix.c +94 -0
  197. data/funchook/src/os_func_unix.o +0 -0
  198. data/funchook/src/os_func_windows.c +32 -0
  199. data/funchook/src/prefix.o +0 -0
  200. data/funchook/src/printf_base.c +1688 -0
  201. data/funchook/src/printf_base.h +46 -0
  202. data/funchook/src/printf_base.o +0 -0
  203. data/funchook/src/textdefs.o +0 -0
  204. data/funchook/src/wstring.o +0 -0
  205. data/funchook/test/Makefile +43 -0
  206. data/funchook/test/Makefile.in +43 -0
  207. data/funchook/test/funchook_test +0 -0
  208. data/funchook/test/libfunchook_test.c +25 -0
  209. data/funchook/test/libfunchook_test.so +0 -0
  210. data/funchook/test/libfunchook_test2.c +18 -0
  211. data/funchook/test/suffix.list +600 -0
  212. data/funchook/test/test_main.c +430 -0
  213. data/funchook/test/test_main.o +0 -0
  214. data/funchook/test/x86_64_test.S +10 -0
  215. data/funchook/test/x86_64_test.o +0 -0
  216. data/funchook/test/x86_test.S +339 -0
  217. data/funchook/win32/config.h +1 -0
  218. data/funchook/win32/funchook.sln +52 -0
  219. data/funchook/win32/funchook.vcxproj +188 -0
  220. data/funchook/win32/funchook.vcxproj.filters +84 -0
  221. data/funchook/win32/funchook_test.vcxproj +170 -0
  222. data/funchook/win32/funchook_test.vcxproj.filters +22 -0
  223. data/funchook/win32/funchook_test_dll.vcxproj +184 -0
  224. data/funchook/win32/funchook_test_dll.vcxproj.filters +30 -0
  225. data/funchook/win32/funchook_test_exe.def +3 -0
  226. data/lib/contrast-agent.rb +8 -0
  227. data/lib/contrast.rb +57 -0
  228. data/lib/contrast/agent.rb +80 -0
  229. data/lib/contrast/agent/assess.rb +45 -0
  230. data/lib/contrast/agent/assess/adjusted_span.rb +25 -0
  231. data/lib/contrast/agent/assess/class_reverter.rb +82 -0
  232. data/lib/contrast/agent/assess/contrast_event.rb +398 -0
  233. data/lib/contrast/agent/assess/frozen_properties.rb +41 -0
  234. data/lib/contrast/agent/assess/insulator.rb +53 -0
  235. data/lib/contrast/agent/assess/policy/dynamic_source_factory.rb +78 -0
  236. data/lib/contrast/agent/assess/policy/patcher.rb +85 -0
  237. data/lib/contrast/agent/assess/policy/policy.rb +116 -0
  238. data/lib/contrast/agent/assess/policy/policy_node.rb +289 -0
  239. data/lib/contrast/agent/assess/policy/policy_scanner.rb +44 -0
  240. data/lib/contrast/agent/assess/policy/preshift.rb +94 -0
  241. data/lib/contrast/agent/assess/policy/propagation_method.rb +260 -0
  242. data/lib/contrast/agent/assess/policy/propagation_node.rb +127 -0
  243. data/lib/contrast/agent/assess/policy/propagator.rb +35 -0
  244. data/lib/contrast/agent/assess/policy/propagator/append.rb +54 -0
  245. data/lib/contrast/agent/assess/policy/propagator/base.rb +37 -0
  246. data/lib/contrast/agent/assess/policy/propagator/center.rb +73 -0
  247. data/lib/contrast/agent/assess/policy/propagator/custom.rb +36 -0
  248. data/lib/contrast/agent/assess/policy/propagator/database_write.rb +62 -0
  249. data/lib/contrast/agent/assess/policy/propagator/insert.rb +55 -0
  250. data/lib/contrast/agent/assess/policy/propagator/keep.rb +26 -0
  251. data/lib/contrast/agent/assess/policy/propagator/next.rb +42 -0
  252. data/lib/contrast/agent/assess/policy/propagator/prepend.rb +50 -0
  253. data/lib/contrast/agent/assess/policy/propagator/remove.rb +76 -0
  254. data/lib/contrast/agent/assess/policy/propagator/replace.rb +27 -0
  255. data/lib/contrast/agent/assess/policy/propagator/reverse.rb +38 -0
  256. data/lib/contrast/agent/assess/policy/propagator/select.rb +86 -0
  257. data/lib/contrast/agent/assess/policy/propagator/splat.rb +60 -0
  258. data/lib/contrast/agent/assess/policy/propagator/split.rb +49 -0
  259. data/lib/contrast/agent/assess/policy/propagator/substitution.rb +169 -0
  260. data/lib/contrast/agent/assess/policy/propagator/trim.rb +81 -0
  261. data/lib/contrast/agent/assess/policy/rewriter_patch.rb +79 -0
  262. data/lib/contrast/agent/assess/policy/source_method.rb +209 -0
  263. data/lib/contrast/agent/assess/policy/source_node.rb +62 -0
  264. data/lib/contrast/agent/assess/policy/trigger_method.rb +209 -0
  265. data/lib/contrast/agent/assess/policy/trigger_node.rb +198 -0
  266. data/lib/contrast/agent/assess/policy/trigger_validation/ssrf_validator.rb +77 -0
  267. data/lib/contrast/agent/assess/policy/trigger_validation/trigger_validation.rb +31 -0
  268. data/lib/contrast/agent/assess/policy/trigger_validation/xss_validator.rb +40 -0
  269. data/lib/contrast/agent/assess/properties.rb +392 -0
  270. data/lib/contrast/agent/assess/rule.rb +18 -0
  271. data/lib/contrast/agent/assess/rule/base.rb +72 -0
  272. data/lib/contrast/agent/assess/rule/csrf.rb +66 -0
  273. data/lib/contrast/agent/assess/rule/csrf/csrf_action.rb +28 -0
  274. data/lib/contrast/agent/assess/rule/csrf/csrf_applicator.rb +69 -0
  275. data/lib/contrast/agent/assess/rule/csrf/csrf_watcher.rb +132 -0
  276. data/lib/contrast/agent/assess/rule/provider.rb +21 -0
  277. data/lib/contrast/agent/assess/rule/provider/hardcoded_key.rb +62 -0
  278. data/lib/contrast/agent/assess/rule/provider/hardcoded_password.rb +73 -0
  279. data/lib/contrast/agent/assess/rule/provider/hardcoded_value_rule.rb +121 -0
  280. data/lib/contrast/agent/assess/rule/redos.rb +68 -0
  281. data/lib/contrast/agent/assess/rule/response_scanning_rule.rb +47 -0
  282. data/lib/contrast/agent/assess/rule/response_watcher.rb +36 -0
  283. data/lib/contrast/agent/assess/rule/watcher.rb +36 -0
  284. data/lib/contrast/agent/assess/tag.rb +151 -0
  285. data/lib/contrast/agent/at_exit_hook.rb +33 -0
  286. data/lib/contrast/agent/class_reopener.rb +195 -0
  287. data/lib/contrast/agent/deadzone/policy/deadzone_node.rb +26 -0
  288. data/lib/contrast/agent/deadzone/policy/policy.rb +57 -0
  289. data/lib/contrast/agent/disable_reaction.rb +24 -0
  290. data/lib/contrast/agent/exclusion_matcher.rb +190 -0
  291. data/lib/contrast/agent/feature_state.rb +379 -0
  292. data/lib/contrast/agent/inventory/policy/policy.rb +32 -0
  293. data/lib/contrast/agent/inventory/policy/trigger_node.rb +22 -0
  294. data/lib/contrast/agent/logger_manager.rb +116 -0
  295. data/lib/contrast/agent/middleware.rb +352 -0
  296. data/lib/contrast/agent/module_data.rb +16 -0
  297. data/lib/contrast/agent/patching/policy/after_load_patch.rb +37 -0
  298. data/lib/contrast/agent/patching/policy/after_load_patcher.rb +58 -0
  299. data/lib/contrast/agent/patching/policy/method_policy.rb +94 -0
  300. data/lib/contrast/agent/patching/policy/module_policy.rb +116 -0
  301. data/lib/contrast/agent/patching/policy/patch.rb +312 -0
  302. data/lib/contrast/agent/patching/policy/patch_status.rb +192 -0
  303. data/lib/contrast/agent/patching/policy/patcher.rb +310 -0
  304. data/lib/contrast/agent/patching/policy/policy.rb +138 -0
  305. data/lib/contrast/agent/patching/policy/policy_node.rb +80 -0
  306. data/lib/contrast/agent/patching/policy/policy_unpatcher.rb +28 -0
  307. data/lib/contrast/agent/patching/policy/trigger_node.rb +81 -0
  308. data/lib/contrast/agent/protect/policy/policy.rb +37 -0
  309. data/lib/contrast/agent/protect/policy/trigger_node.rb +23 -0
  310. data/lib/contrast/agent/protect/rule.rb +58 -0
  311. data/lib/contrast/agent/protect/rule/base.rb +300 -0
  312. data/lib/contrast/agent/protect/rule/base_service.rb +88 -0
  313. data/lib/contrast/agent/protect/rule/cmd_injection.rb +156 -0
  314. data/lib/contrast/agent/protect/rule/csrf.rb +118 -0
  315. data/lib/contrast/agent/protect/rule/csrf/csrf_evaluator.rb +103 -0
  316. data/lib/contrast/agent/protect/rule/csrf/csrf_token_injector.rb +85 -0
  317. data/lib/contrast/agent/protect/rule/default_scanner.rb +300 -0
  318. data/lib/contrast/agent/protect/rule/deserialization.rb +193 -0
  319. data/lib/contrast/agent/protect/rule/http_method_tampering.rb +80 -0
  320. data/lib/contrast/agent/protect/rule/no_sqli.rb +101 -0
  321. data/lib/contrast/agent/protect/rule/no_sqli/mongo_no_sql_scanner.rb +40 -0
  322. data/lib/contrast/agent/protect/rule/path_traversal.rb +143 -0
  323. data/lib/contrast/agent/protect/rule/sqli.rb +101 -0
  324. data/lib/contrast/agent/protect/rule/sqli/default_sql_scanner.rb +16 -0
  325. data/lib/contrast/agent/protect/rule/sqli/mysql_sql_scanner.rb +38 -0
  326. data/lib/contrast/agent/protect/rule/sqli/postgres_sql_scanner.rb +22 -0
  327. data/lib/contrast/agent/protect/rule/sqli/sqlite_sql_scanner.rb +19 -0
  328. data/lib/contrast/agent/protect/rule/unsafe_file_upload.rb +20 -0
  329. data/lib/contrast/agent/protect/rule/xss.rb +24 -0
  330. data/lib/contrast/agent/protect/rule/xxe.rb +120 -0
  331. data/lib/contrast/agent/protect/rule/xxe/entity_wrapper.rb +82 -0
  332. data/lib/contrast/agent/railtie.rb +30 -0
  333. data/lib/contrast/agent/reaction_processor.rb +47 -0
  334. data/lib/contrast/agent/request.rb +493 -0
  335. data/lib/contrast/agent/request_context.rb +225 -0
  336. data/lib/contrast/agent/require_state.rb +61 -0
  337. data/lib/contrast/agent/response.rb +215 -0
  338. data/lib/contrast/agent/rewriter.rb +244 -0
  339. data/lib/contrast/agent/scope.rb +28 -0
  340. data/lib/contrast/agent/service_heartbeat.rb +37 -0
  341. data/lib/contrast/agent/settings_state.rb +148 -0
  342. data/lib/contrast/agent/socket_client.rb +125 -0
  343. data/lib/contrast/agent/thread.rb +26 -0
  344. data/lib/contrast/agent/tracepoint_hook.rb +51 -0
  345. data/lib/contrast/agent/version.rb +8 -0
  346. data/lib/contrast/api.rb +17 -0
  347. data/lib/contrast/api/.gitkeep +0 -0
  348. data/lib/contrast/api/connection_status.rb +49 -0
  349. data/lib/contrast/api/socket.rb +43 -0
  350. data/lib/contrast/api/speedracer.rb +206 -0
  351. data/lib/contrast/api/tcp_socket.rb +31 -0
  352. data/lib/contrast/api/unix_socket.rb +25 -0
  353. data/lib/contrast/common_agent_configuration.rb +86 -0
  354. data/lib/contrast/components/agent.rb +85 -0
  355. data/lib/contrast/components/app_context.rb +188 -0
  356. data/lib/contrast/components/assess.rb +67 -0
  357. data/lib/contrast/components/config.rb +135 -0
  358. data/lib/contrast/components/contrast_service.rb +113 -0
  359. data/lib/contrast/components/heap_dump.rb +34 -0
  360. data/lib/contrast/components/interface.rb +178 -0
  361. data/lib/contrast/components/inventory.rb +23 -0
  362. data/lib/contrast/components/logger.rb +92 -0
  363. data/lib/contrast/components/protect.rb +38 -0
  364. data/lib/contrast/components/sampling.rb +41 -0
  365. data/lib/contrast/components/scope.rb +106 -0
  366. data/lib/contrast/components/settings.rb +140 -0
  367. data/lib/contrast/config.rb +33 -0
  368. data/lib/contrast/config/agent_configuration.rb +24 -0
  369. data/lib/contrast/config/application_configuration.rb +27 -0
  370. data/lib/contrast/config/assess_configuration.rb +22 -0
  371. data/lib/contrast/config/assess_rules_configuration.rb +18 -0
  372. data/lib/contrast/config/base_configuration.rb +105 -0
  373. data/lib/contrast/config/default_value.rb +16 -0
  374. data/lib/contrast/config/exception_configuration.rb +21 -0
  375. data/lib/contrast/config/heap_dump_configuration.rb +23 -0
  376. data/lib/contrast/config/inventory_configuration.rb +20 -0
  377. data/lib/contrast/config/logger_configuration.rb +20 -0
  378. data/lib/contrast/config/protect_configuration.rb +20 -0
  379. data/lib/contrast/config/protect_rule_configuration.rb +37 -0
  380. data/lib/contrast/config/protect_rules_configuration.rb +30 -0
  381. data/lib/contrast/config/root_configuration.rb +26 -0
  382. data/lib/contrast/config/ruby_configuration.rb +39 -0
  383. data/lib/contrast/config/sampling_configuration.rb +22 -0
  384. data/lib/contrast/config/server_configuration.rb +23 -0
  385. data/lib/contrast/config/service_configuration.rb +22 -0
  386. data/lib/contrast/configuration.rb +214 -0
  387. data/lib/contrast/core_extensions/assess.rb +51 -0
  388. data/lib/contrast/core_extensions/assess/array.rb +58 -0
  389. data/lib/contrast/core_extensions/assess/assess_extension.rb +145 -0
  390. data/lib/contrast/core_extensions/assess/basic_object.rb +15 -0
  391. data/lib/contrast/core_extensions/assess/erb.rb +42 -0
  392. data/lib/contrast/core_extensions/assess/exec_trigger.rb +48 -0
  393. data/lib/contrast/core_extensions/assess/fiber.rb +125 -0
  394. data/lib/contrast/core_extensions/assess/hash.rb +22 -0
  395. data/lib/contrast/core_extensions/assess/kernel.rb +95 -0
  396. data/lib/contrast/core_extensions/assess/module.rb +14 -0
  397. data/lib/contrast/core_extensions/assess/regexp.rb +206 -0
  398. data/lib/contrast/core_extensions/assess/string.rb +75 -0
  399. data/lib/contrast/core_extensions/assess/tilt_template_trigger.rb +73 -0
  400. data/lib/contrast/core_extensions/delegator.rb +14 -0
  401. data/lib/contrast/core_extensions/eval_trigger.rb +52 -0
  402. data/lib/contrast/core_extensions/inventory.rb +22 -0
  403. data/lib/contrast/core_extensions/inventory/datastores.rb +37 -0
  404. data/lib/contrast/core_extensions/module.rb +42 -0
  405. data/lib/contrast/core_extensions/object.rb +27 -0
  406. data/lib/contrast/core_extensions/protect.rb +20 -0
  407. data/lib/contrast/core_extensions/protect/applies_command_injection_rule.rb +70 -0
  408. data/lib/contrast/core_extensions/protect/applies_deserialization_rule.rb +58 -0
  409. data/lib/contrast/core_extensions/protect/applies_no_sqli_rule.rb +81 -0
  410. data/lib/contrast/core_extensions/protect/applies_path_traversal_rule.rb +119 -0
  411. data/lib/contrast/core_extensions/protect/applies_sqli_rule.rb +63 -0
  412. data/lib/contrast/core_extensions/protect/applies_xxe_rule.rb +141 -0
  413. data/lib/contrast/core_extensions/protect/kernel.rb +30 -0
  414. data/lib/contrast/core_extensions/protect/psych.rb +7 -0
  415. data/lib/contrast/core_extensions/thread.rb +31 -0
  416. data/lib/contrast/internal_exception.rb +8 -0
  417. data/lib/contrast/rails_extensions/assess/action_controller_inheritance.rb +48 -0
  418. data/lib/contrast/rails_extensions/assess/active_record.rb +32 -0
  419. data/lib/contrast/rails_extensions/assess/active_record_named.rb +61 -0
  420. data/lib/contrast/rails_extensions/assess/configuration.rb +26 -0
  421. data/lib/contrast/rails_extensions/buffer.rb +30 -0
  422. data/lib/contrast/rails_extensions/rack.rb +45 -0
  423. data/lib/contrast/security_exception.rb +14 -0
  424. data/lib/contrast/sinatra_extensions/assess/cookie.rb +26 -0
  425. data/lib/contrast/sinatra_extensions/inventory/sinatra_base.rb +59 -0
  426. data/lib/contrast/tasks/service.rb +95 -0
  427. data/lib/contrast/utils/assess/sampling_util.rb +96 -0
  428. data/lib/contrast/utils/assess/tracking_util.rb +39 -0
  429. data/lib/contrast/utils/boolean_util.rb +33 -0
  430. data/lib/contrast/utils/cache.rb +69 -0
  431. data/lib/contrast/utils/class_util.rb +58 -0
  432. data/lib/contrast/utils/comment_range.rb +19 -0
  433. data/lib/contrast/utils/data_store_util.rb +23 -0
  434. data/lib/contrast/utils/duck_utils.rb +58 -0
  435. data/lib/contrast/utils/env_configuration_item.rb +52 -0
  436. data/lib/contrast/utils/environment_util.rb +152 -0
  437. data/lib/contrast/utils/freeze_util.rb +36 -0
  438. data/lib/contrast/utils/gemfile_reader.rb +191 -0
  439. data/lib/contrast/utils/hash_digest.rb +148 -0
  440. data/lib/contrast/utils/heap_dump_util.rb +113 -0
  441. data/lib/contrast/utils/invalid_configuration_util.rb +88 -0
  442. data/lib/contrast/utils/inventory_util.rb +126 -0
  443. data/lib/contrast/utils/io_util.rb +61 -0
  444. data/lib/contrast/utils/object_share.rb +117 -0
  445. data/lib/contrast/utils/operating_environment.rb +38 -0
  446. data/lib/contrast/utils/os.rb +49 -0
  447. data/lib/contrast/utils/path_util.rb +151 -0
  448. data/lib/contrast/utils/performs_logging.rb +152 -0
  449. data/lib/contrast/utils/preflight_util.rb +13 -0
  450. data/lib/contrast/utils/prevent_serialization.rb +52 -0
  451. data/lib/contrast/utils/rack_assess_session_cookie.rb +104 -0
  452. data/lib/contrast/utils/rails_assess_configuration.rb +95 -0
  453. data/lib/contrast/utils/random_util.rb +22 -0
  454. data/lib/contrast/utils/resource_loader.rb +23 -0
  455. data/lib/contrast/utils/ruby_ast_rewriter.rb +74 -0
  456. data/lib/contrast/utils/scope_util.rb +99 -0
  457. data/lib/contrast/utils/service_response_util.rb +116 -0
  458. data/lib/contrast/utils/service_sender_util.rb +98 -0
  459. data/lib/contrast/utils/sha256_builder.rb +69 -0
  460. data/lib/contrast/utils/sinatra_helper.rb +49 -0
  461. data/lib/contrast/utils/stack_trace_utils.rb +209 -0
  462. data/lib/contrast/utils/string_utils.rb +72 -0
  463. data/lib/contrast/utils/tag_util.rb +139 -0
  464. data/lib/contrast/utils/thread_tracker.rb +54 -0
  465. data/lib/contrast/utils/timer.rb +78 -0
  466. data/resources/assess/policy.json +1673 -0
  467. data/resources/csrf/inject.js +44 -0
  468. data/resources/deadzone/policy.json +55 -0
  469. data/resources/factory-bot-spec/spec_helper.rb +30 -0
  470. data/resources/inventory/policy.json +110 -0
  471. data/resources/protect/policy.json +417 -0
  472. data/resources/rubocops/kernel/catch_cop.rb +37 -0
  473. data/resources/rubocops/kernel/require_cop.rb +37 -0
  474. data/resources/rubocops/kernel/require_relative_cop.rb +33 -0
  475. data/resources/rubocops/module/autoload_cop.rb +37 -0
  476. data/resources/rubocops/module/const_defined_cop.rb +37 -0
  477. data/resources/rubocops/module/const_get_cop.rb +37 -0
  478. data/resources/rubocops/module/const_set_cop.rb +37 -0
  479. data/resources/rubocops/module/constants_cop.rb +37 -0
  480. data/resources/rubocops/module/name_cop.rb +37 -0
  481. data/resources/rubocops/object/class_cop.rb +37 -0
  482. data/resources/rubocops/object/freeze_cop.rb +37 -0
  483. data/resources/rubocops/object/frozen_cop.rb +37 -0
  484. data/resources/rubocops/object/is_a_cop.rb +37 -0
  485. data/resources/rubocops/object/method_cop.rb +37 -0
  486. data/resources/rubocops/object/respond_to_cop.rb +37 -0
  487. data/resources/rubocops/object/singleton_class_cop.rb +37 -0
  488. data/resources/rubocops/regexp/spelling_cop.rb +44 -0
  489. data/resources/rubocops/thread/new_cop.rb +39 -0
  490. data/resources/ruby-spec/ancestors_spec.rb +70 -0
  491. data/resources/ruby-spec/modulo_spec.rb +831 -0
  492. data/resources/ruby-spec/parameters_spec.rb +261 -0
  493. data/resources/ruby-spec/ruby_spec_spec_helper.rb +35 -0
  494. data/resources/test_marker.txt +1 -0
  495. data/ruby-agent.gemspec +129 -0
  496. data/service_executables/.gitkeep +0 -0
  497. data/service_executables/VERSION +1 -0
  498. data/service_executables/linux/contrast-service +0 -0
  499. data/service_executables/mac/contrast-service +0 -0
  500. metadata +945 -0
@@ -0,0 +1,1773 @@
1
+ #! /bin/sh
2
+ # Configuration validation subroutine script.
3
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
+ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
5
+ # 2011, 2012 Free Software Foundation, Inc.
6
+
7
+ timestamp='2012-02-10'
8
+
9
+ # This file is (in principle) common to ALL GNU software.
10
+ # The presence of a machine in this file suggests that SOME GNU software
11
+ # can handle that machine. It does not imply ALL GNU software can.
12
+ #
13
+ # This file is free software; you can redistribute it and/or modify
14
+ # it under the terms of the GNU General Public License as published by
15
+ # the Free Software Foundation; either version 2 of the License, or
16
+ # (at your option) any later version.
17
+ #
18
+ # This program is distributed in the hope that it will be useful,
19
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
+ # GNU General Public License for more details.
22
+ #
23
+ # You should have received a copy of the GNU General Public License
24
+ # along with this program; if not, see <http://www.gnu.org/licenses/>.
25
+ #
26
+ # As a special exception to the GNU General Public License, if you
27
+ # distribute this file as part of a program that contains a
28
+ # configuration script generated by Autoconf, you may include it under
29
+ # the same distribution terms that you use for the rest of that program.
30
+
31
+
32
+ # Please send patches to <config-patches@gnu.org>. Submit a context
33
+ # diff and a properly formatted GNU ChangeLog entry.
34
+ #
35
+ # Configuration subroutine to validate and canonicalize a configuration type.
36
+ # Supply the specified configuration type as an argument.
37
+ # If it is invalid, we print an error message on stderr and exit with code 1.
38
+ # Otherwise, we print the canonical config type on stdout and succeed.
39
+
40
+ # You can get the latest version of this script from:
41
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
42
+
43
+ # This file is supposed to be the same for all GNU packages
44
+ # and recognize all the CPU types, system types and aliases
45
+ # that are meaningful with *any* GNU software.
46
+ # Each package is responsible for reporting which valid configurations
47
+ # it does not support. The user should be able to distinguish
48
+ # a failure to support a valid configuration from a meaningless
49
+ # configuration.
50
+
51
+ # The goal of this file is to map all the various variations of a given
52
+ # machine specification into a single specification in the form:
53
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
54
+ # or in some cases, the newer four-part form:
55
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
56
+ # It is wrong to echo any other type of specification.
57
+
58
+ me=`echo "$0" | sed -e 's,.*/,,'`
59
+
60
+ usage="\
61
+ Usage: $0 [OPTION] CPU-MFR-OPSYS
62
+ $0 [OPTION] ALIAS
63
+
64
+ Canonicalize a configuration name.
65
+
66
+ Operation modes:
67
+ -h, --help print this help, then exit
68
+ -t, --time-stamp print date of last modification, then exit
69
+ -v, --version print version number, then exit
70
+
71
+ Report bugs and patches to <config-patches@gnu.org>."
72
+
73
+ version="\
74
+ GNU config.sub ($timestamp)
75
+
76
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
77
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
78
+ Free Software Foundation, Inc.
79
+
80
+ This is free software; see the source for copying conditions. There is NO
81
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
82
+
83
+ help="
84
+ Try \`$me --help' for more information."
85
+
86
+ # Parse command line
87
+ while test $# -gt 0 ; do
88
+ case $1 in
89
+ --time-stamp | --time* | -t )
90
+ echo "$timestamp" ; exit ;;
91
+ --version | -v )
92
+ echo "$version" ; exit ;;
93
+ --help | --h* | -h )
94
+ echo "$usage"; exit ;;
95
+ -- ) # Stop option processing
96
+ shift; break ;;
97
+ - ) # Use stdin as input.
98
+ break ;;
99
+ -* )
100
+ echo "$me: invalid option $1$help"
101
+ exit 1 ;;
102
+
103
+ *local*)
104
+ # First pass through any local machine types.
105
+ echo $1
106
+ exit ;;
107
+
108
+ * )
109
+ break ;;
110
+ esac
111
+ done
112
+
113
+ case $# in
114
+ 0) echo "$me: missing argument$help" >&2
115
+ exit 1;;
116
+ 1) ;;
117
+ *) echo "$me: too many arguments$help" >&2
118
+ exit 1;;
119
+ esac
120
+
121
+ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
122
+ # Here we must recognize all the valid KERNEL-OS combinations.
123
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
124
+ case $maybe_os in
125
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
126
+ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
127
+ knetbsd*-gnu* | netbsd*-gnu* | \
128
+ kopensolaris*-gnu* | \
129
+ storm-chaos* | os2-emx* | rtmk-nova*)
130
+ os=-$maybe_os
131
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
132
+ ;;
133
+ android-linux)
134
+ os=-linux-android
135
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
136
+ ;;
137
+ *)
138
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
139
+ if [ $basic_machine != $1 ]
140
+ then os=`echo $1 | sed 's/.*-/-/'`
141
+ else os=; fi
142
+ ;;
143
+ esac
144
+
145
+ ### Let's recognize common machines as not being operating systems so
146
+ ### that things like config.sub decstation-3100 work. We also
147
+ ### recognize some manufacturers as not being operating systems, so we
148
+ ### can provide default operating systems below.
149
+ case $os in
150
+ -sun*os*)
151
+ # Prevent following clause from handling this invalid input.
152
+ ;;
153
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
154
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
155
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
156
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
157
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
158
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
159
+ -apple | -axis | -knuth | -cray | -microblaze)
160
+ os=
161
+ basic_machine=$1
162
+ ;;
163
+ -bluegene*)
164
+ os=-cnk
165
+ ;;
166
+ -sim | -cisco | -oki | -wec | -winbond)
167
+ os=
168
+ basic_machine=$1
169
+ ;;
170
+ -scout)
171
+ ;;
172
+ -wrs)
173
+ os=-vxworks
174
+ basic_machine=$1
175
+ ;;
176
+ -chorusos*)
177
+ os=-chorusos
178
+ basic_machine=$1
179
+ ;;
180
+ -chorusrdb)
181
+ os=-chorusrdb
182
+ basic_machine=$1
183
+ ;;
184
+ -hiux*)
185
+ os=-hiuxwe2
186
+ ;;
187
+ -sco6)
188
+ os=-sco5v6
189
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
190
+ ;;
191
+ -sco5)
192
+ os=-sco3.2v5
193
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
194
+ ;;
195
+ -sco4)
196
+ os=-sco3.2v4
197
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
198
+ ;;
199
+ -sco3.2.[4-9]*)
200
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
201
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
202
+ ;;
203
+ -sco3.2v[4-9]*)
204
+ # Don't forget version if it is 3.2v4 or newer.
205
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
206
+ ;;
207
+ -sco5v6*)
208
+ # Don't forget version if it is 3.2v4 or newer.
209
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
210
+ ;;
211
+ -sco*)
212
+ os=-sco3.2v2
213
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
214
+ ;;
215
+ -udk*)
216
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
217
+ ;;
218
+ -isc)
219
+ os=-isc2.2
220
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
221
+ ;;
222
+ -clix*)
223
+ basic_machine=clipper-intergraph
224
+ ;;
225
+ -isc*)
226
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
227
+ ;;
228
+ -lynx*)
229
+ os=-lynxos
230
+ ;;
231
+ -ptx*)
232
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
233
+ ;;
234
+ -windowsnt*)
235
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
236
+ ;;
237
+ -psos*)
238
+ os=-psos
239
+ ;;
240
+ -mint | -mint[0-9]*)
241
+ basic_machine=m68k-atari
242
+ os=-mint
243
+ ;;
244
+ esac
245
+
246
+ # Decode aliases for certain CPU-COMPANY combinations.
247
+ case $basic_machine in
248
+ # Recognize the basic CPU types without company name.
249
+ # Some are omitted here because they have special meanings below.
250
+ 1750a | 580 \
251
+ | a29k \
252
+ | aarch64 | aarch64_be \
253
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
254
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
255
+ | am33_2.0 \
256
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
257
+ | be32 | be64 \
258
+ | bfin \
259
+ | c4x | clipper \
260
+ | d10v | d30v | dlx | dsp16xx \
261
+ | epiphany \
262
+ | fido | fr30 | frv \
263
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
264
+ | hexagon \
265
+ | i370 | i860 | i960 | ia64 \
266
+ | ip2k | iq2000 \
267
+ | le32 | le64 \
268
+ | lm32 \
269
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
270
+ | maxq | mb | microblaze | mcore | mep | metag \
271
+ | mips | mipsbe | mipseb | mipsel | mipsle \
272
+ | mips16 \
273
+ | mips64 | mips64el \
274
+ | mips64octeon | mips64octeonel \
275
+ | mips64orion | mips64orionel \
276
+ | mips64r5900 | mips64r5900el \
277
+ | mips64vr | mips64vrel \
278
+ | mips64vr4100 | mips64vr4100el \
279
+ | mips64vr4300 | mips64vr4300el \
280
+ | mips64vr5000 | mips64vr5000el \
281
+ | mips64vr5900 | mips64vr5900el \
282
+ | mipsisa32 | mipsisa32el \
283
+ | mipsisa32r2 | mipsisa32r2el \
284
+ | mipsisa64 | mipsisa64el \
285
+ | mipsisa64r2 | mipsisa64r2el \
286
+ | mipsisa64sb1 | mipsisa64sb1el \
287
+ | mipsisa64sr71k | mipsisa64sr71kel \
288
+ | mipstx39 | mipstx39el \
289
+ | mn10200 | mn10300 \
290
+ | moxie \
291
+ | mt \
292
+ | msp430 \
293
+ | nds32 | nds32le | nds32be \
294
+ | nios | nios2 \
295
+ | ns16k | ns32k \
296
+ | open8 \
297
+ | or32 \
298
+ | pdp10 | pdp11 | pj | pjl \
299
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
300
+ | pyramid \
301
+ | rl78 | rx \
302
+ | score \
303
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
304
+ | sh64 | sh64le \
305
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
306
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
307
+ | spu \
308
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
309
+ | ubicom32 \
310
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
311
+ | we32k \
312
+ | x86 | xc16x | xstormy16 | xtensa \
313
+ | z8k | z80)
314
+ basic_machine=$basic_machine-unknown
315
+ ;;
316
+ c54x)
317
+ basic_machine=tic54x-unknown
318
+ ;;
319
+ c55x)
320
+ basic_machine=tic55x-unknown
321
+ ;;
322
+ c6x)
323
+ basic_machine=tic6x-unknown
324
+ ;;
325
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
326
+ basic_machine=$basic_machine-unknown
327
+ os=-none
328
+ ;;
329
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
330
+ ;;
331
+ ms1)
332
+ basic_machine=mt-unknown
333
+ ;;
334
+
335
+ strongarm | thumb | xscale)
336
+ basic_machine=arm-unknown
337
+ ;;
338
+ xgate)
339
+ basic_machine=$basic_machine-unknown
340
+ os=-none
341
+ ;;
342
+ xscaleeb)
343
+ basic_machine=armeb-unknown
344
+ ;;
345
+
346
+ xscaleel)
347
+ basic_machine=armel-unknown
348
+ ;;
349
+
350
+ # We use `pc' rather than `unknown'
351
+ # because (1) that's what they normally are, and
352
+ # (2) the word "unknown" tends to confuse beginning users.
353
+ i*86 | x86_64)
354
+ basic_machine=$basic_machine-pc
355
+ ;;
356
+ # Object if more than one company name word.
357
+ *-*-*)
358
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
359
+ exit 1
360
+ ;;
361
+ # Recognize the basic CPU types with company name.
362
+ 580-* \
363
+ | a29k-* \
364
+ | aarch64-* | aarch64_be-* \
365
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
366
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
367
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
368
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
369
+ | avr-* | avr32-* \
370
+ | be32-* | be64-* \
371
+ | bfin-* | bs2000-* \
372
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
373
+ | clipper-* | craynv-* | cydra-* \
374
+ | d10v-* | d30v-* | dlx-* \
375
+ | elxsi-* \
376
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
377
+ | h8300-* | h8500-* \
378
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
379
+ | hexagon-* \
380
+ | i*86-* | i860-* | i960-* | ia64-* \
381
+ | ip2k-* | iq2000-* \
382
+ | le32-* | le64-* \
383
+ | lm32-* \
384
+ | m32c-* | m32r-* | m32rle-* \
385
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
386
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
387
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
388
+ | mips16-* \
389
+ | mips64-* | mips64el-* \
390
+ | mips64octeon-* | mips64octeonel-* \
391
+ | mips64orion-* | mips64orionel-* \
392
+ | mips64r5900-* | mips64r5900el-* \
393
+ | mips64vr-* | mips64vrel-* \
394
+ | mips64vr4100-* | mips64vr4100el-* \
395
+ | mips64vr4300-* | mips64vr4300el-* \
396
+ | mips64vr5000-* | mips64vr5000el-* \
397
+ | mips64vr5900-* | mips64vr5900el-* \
398
+ | mipsisa32-* | mipsisa32el-* \
399
+ | mipsisa32r2-* | mipsisa32r2el-* \
400
+ | mipsisa64-* | mipsisa64el-* \
401
+ | mipsisa64r2-* | mipsisa64r2el-* \
402
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
403
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
404
+ | mipstx39-* | mipstx39el-* \
405
+ | mmix-* \
406
+ | mt-* \
407
+ | msp430-* \
408
+ | nds32-* | nds32le-* | nds32be-* \
409
+ | nios-* | nios2-* \
410
+ | none-* | np1-* | ns16k-* | ns32k-* \
411
+ | open8-* \
412
+ | orion-* \
413
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
414
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
415
+ | pyramid-* \
416
+ | rl78-* | romp-* | rs6000-* | rx-* \
417
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
418
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
419
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
420
+ | sparclite-* \
421
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
422
+ | tahoe-* \
423
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
424
+ | tile*-* \
425
+ | tron-* \
426
+ | ubicom32-* \
427
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
428
+ | vax-* \
429
+ | we32k-* \
430
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
431
+ | xstormy16-* | xtensa*-* \
432
+ | ymp-* \
433
+ | z8k-* | z80-*)
434
+ ;;
435
+ # Recognize the basic CPU types without company name, with glob match.
436
+ xtensa*)
437
+ basic_machine=$basic_machine-unknown
438
+ ;;
439
+ # Recognize the various machine names and aliases which stand
440
+ # for a CPU type and a company and sometimes even an OS.
441
+ 386bsd)
442
+ basic_machine=i386-unknown
443
+ os=-bsd
444
+ ;;
445
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
446
+ basic_machine=m68000-att
447
+ ;;
448
+ 3b*)
449
+ basic_machine=we32k-att
450
+ ;;
451
+ a29khif)
452
+ basic_machine=a29k-amd
453
+ os=-udi
454
+ ;;
455
+ abacus)
456
+ basic_machine=abacus-unknown
457
+ ;;
458
+ adobe68k)
459
+ basic_machine=m68010-adobe
460
+ os=-scout
461
+ ;;
462
+ alliant | fx80)
463
+ basic_machine=fx80-alliant
464
+ ;;
465
+ altos | altos3068)
466
+ basic_machine=m68k-altos
467
+ ;;
468
+ am29k)
469
+ basic_machine=a29k-none
470
+ os=-bsd
471
+ ;;
472
+ amd64)
473
+ basic_machine=x86_64-pc
474
+ ;;
475
+ amd64-*)
476
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
477
+ ;;
478
+ amdahl)
479
+ basic_machine=580-amdahl
480
+ os=-sysv
481
+ ;;
482
+ amiga | amiga-*)
483
+ basic_machine=m68k-unknown
484
+ ;;
485
+ amigaos | amigados)
486
+ basic_machine=m68k-unknown
487
+ os=-amigaos
488
+ ;;
489
+ amigaunix | amix)
490
+ basic_machine=m68k-unknown
491
+ os=-sysv4
492
+ ;;
493
+ apollo68)
494
+ basic_machine=m68k-apollo
495
+ os=-sysv
496
+ ;;
497
+ apollo68bsd)
498
+ basic_machine=m68k-apollo
499
+ os=-bsd
500
+ ;;
501
+ aros)
502
+ basic_machine=i386-pc
503
+ os=-aros
504
+ ;;
505
+ aux)
506
+ basic_machine=m68k-apple
507
+ os=-aux
508
+ ;;
509
+ balance)
510
+ basic_machine=ns32k-sequent
511
+ os=-dynix
512
+ ;;
513
+ blackfin)
514
+ basic_machine=bfin-unknown
515
+ os=-linux
516
+ ;;
517
+ blackfin-*)
518
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
519
+ os=-linux
520
+ ;;
521
+ bluegene*)
522
+ basic_machine=powerpc-ibm
523
+ os=-cnk
524
+ ;;
525
+ c54x-*)
526
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
527
+ ;;
528
+ c55x-*)
529
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
530
+ ;;
531
+ c6x-*)
532
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
533
+ ;;
534
+ c90)
535
+ basic_machine=c90-cray
536
+ os=-unicos
537
+ ;;
538
+ cegcc)
539
+ basic_machine=arm-unknown
540
+ os=-cegcc
541
+ ;;
542
+ convex-c1)
543
+ basic_machine=c1-convex
544
+ os=-bsd
545
+ ;;
546
+ convex-c2)
547
+ basic_machine=c2-convex
548
+ os=-bsd
549
+ ;;
550
+ convex-c32)
551
+ basic_machine=c32-convex
552
+ os=-bsd
553
+ ;;
554
+ convex-c34)
555
+ basic_machine=c34-convex
556
+ os=-bsd
557
+ ;;
558
+ convex-c38)
559
+ basic_machine=c38-convex
560
+ os=-bsd
561
+ ;;
562
+ cray | j90)
563
+ basic_machine=j90-cray
564
+ os=-unicos
565
+ ;;
566
+ craynv)
567
+ basic_machine=craynv-cray
568
+ os=-unicosmp
569
+ ;;
570
+ cr16 | cr16-*)
571
+ basic_machine=cr16-unknown
572
+ os=-elf
573
+ ;;
574
+ crds | unos)
575
+ basic_machine=m68k-crds
576
+ ;;
577
+ crisv32 | crisv32-* | etraxfs*)
578
+ basic_machine=crisv32-axis
579
+ ;;
580
+ cris | cris-* | etrax*)
581
+ basic_machine=cris-axis
582
+ ;;
583
+ crx)
584
+ basic_machine=crx-unknown
585
+ os=-elf
586
+ ;;
587
+ da30 | da30-*)
588
+ basic_machine=m68k-da30
589
+ ;;
590
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
591
+ basic_machine=mips-dec
592
+ ;;
593
+ decsystem10* | dec10*)
594
+ basic_machine=pdp10-dec
595
+ os=-tops10
596
+ ;;
597
+ decsystem20* | dec20*)
598
+ basic_machine=pdp10-dec
599
+ os=-tops20
600
+ ;;
601
+ delta | 3300 | motorola-3300 | motorola-delta \
602
+ | 3300-motorola | delta-motorola)
603
+ basic_machine=m68k-motorola
604
+ ;;
605
+ delta88)
606
+ basic_machine=m88k-motorola
607
+ os=-sysv3
608
+ ;;
609
+ dicos)
610
+ basic_machine=i686-pc
611
+ os=-dicos
612
+ ;;
613
+ djgpp)
614
+ basic_machine=i586-pc
615
+ os=-msdosdjgpp
616
+ ;;
617
+ dpx20 | dpx20-*)
618
+ basic_machine=rs6000-bull
619
+ os=-bosx
620
+ ;;
621
+ dpx2* | dpx2*-bull)
622
+ basic_machine=m68k-bull
623
+ os=-sysv3
624
+ ;;
625
+ ebmon29k)
626
+ basic_machine=a29k-amd
627
+ os=-ebmon
628
+ ;;
629
+ elxsi)
630
+ basic_machine=elxsi-elxsi
631
+ os=-bsd
632
+ ;;
633
+ encore | umax | mmax)
634
+ basic_machine=ns32k-encore
635
+ ;;
636
+ es1800 | OSE68k | ose68k | ose | OSE)
637
+ basic_machine=m68k-ericsson
638
+ os=-ose
639
+ ;;
640
+ fx2800)
641
+ basic_machine=i860-alliant
642
+ ;;
643
+ genix)
644
+ basic_machine=ns32k-ns
645
+ ;;
646
+ gmicro)
647
+ basic_machine=tron-gmicro
648
+ os=-sysv
649
+ ;;
650
+ go32)
651
+ basic_machine=i386-pc
652
+ os=-go32
653
+ ;;
654
+ h3050r* | hiux*)
655
+ basic_machine=hppa1.1-hitachi
656
+ os=-hiuxwe2
657
+ ;;
658
+ h8300hms)
659
+ basic_machine=h8300-hitachi
660
+ os=-hms
661
+ ;;
662
+ h8300xray)
663
+ basic_machine=h8300-hitachi
664
+ os=-xray
665
+ ;;
666
+ h8500hms)
667
+ basic_machine=h8500-hitachi
668
+ os=-hms
669
+ ;;
670
+ harris)
671
+ basic_machine=m88k-harris
672
+ os=-sysv3
673
+ ;;
674
+ hp300-*)
675
+ basic_machine=m68k-hp
676
+ ;;
677
+ hp300bsd)
678
+ basic_machine=m68k-hp
679
+ os=-bsd
680
+ ;;
681
+ hp300hpux)
682
+ basic_machine=m68k-hp
683
+ os=-hpux
684
+ ;;
685
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
686
+ basic_machine=hppa1.0-hp
687
+ ;;
688
+ hp9k2[0-9][0-9] | hp9k31[0-9])
689
+ basic_machine=m68000-hp
690
+ ;;
691
+ hp9k3[2-9][0-9])
692
+ basic_machine=m68k-hp
693
+ ;;
694
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
695
+ basic_machine=hppa1.0-hp
696
+ ;;
697
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
698
+ basic_machine=hppa1.1-hp
699
+ ;;
700
+ hp9k78[0-9] | hp78[0-9])
701
+ # FIXME: really hppa2.0-hp
702
+ basic_machine=hppa1.1-hp
703
+ ;;
704
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
705
+ # FIXME: really hppa2.0-hp
706
+ basic_machine=hppa1.1-hp
707
+ ;;
708
+ hp9k8[0-9][13679] | hp8[0-9][13679])
709
+ basic_machine=hppa1.1-hp
710
+ ;;
711
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
712
+ basic_machine=hppa1.0-hp
713
+ ;;
714
+ hppa-next)
715
+ os=-nextstep3
716
+ ;;
717
+ hppaosf)
718
+ basic_machine=hppa1.1-hp
719
+ os=-osf
720
+ ;;
721
+ hppro)
722
+ basic_machine=hppa1.1-hp
723
+ os=-proelf
724
+ ;;
725
+ i370-ibm* | ibm*)
726
+ basic_machine=i370-ibm
727
+ ;;
728
+ i*86v32)
729
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
730
+ os=-sysv32
731
+ ;;
732
+ i*86v4*)
733
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
734
+ os=-sysv4
735
+ ;;
736
+ i*86v)
737
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
738
+ os=-sysv
739
+ ;;
740
+ i*86sol2)
741
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
742
+ os=-solaris2
743
+ ;;
744
+ i386mach)
745
+ basic_machine=i386-mach
746
+ os=-mach
747
+ ;;
748
+ i386-vsta | vsta)
749
+ basic_machine=i386-unknown
750
+ os=-vsta
751
+ ;;
752
+ iris | iris4d)
753
+ basic_machine=mips-sgi
754
+ case $os in
755
+ -irix*)
756
+ ;;
757
+ *)
758
+ os=-irix4
759
+ ;;
760
+ esac
761
+ ;;
762
+ isi68 | isi)
763
+ basic_machine=m68k-isi
764
+ os=-sysv
765
+ ;;
766
+ m68knommu)
767
+ basic_machine=m68k-unknown
768
+ os=-linux
769
+ ;;
770
+ m68knommu-*)
771
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
772
+ os=-linux
773
+ ;;
774
+ m88k-omron*)
775
+ basic_machine=m88k-omron
776
+ ;;
777
+ magnum | m3230)
778
+ basic_machine=mips-mips
779
+ os=-sysv
780
+ ;;
781
+ merlin)
782
+ basic_machine=ns32k-utek
783
+ os=-sysv
784
+ ;;
785
+ microblaze)
786
+ basic_machine=microblaze-xilinx
787
+ ;;
788
+ mingw32)
789
+ basic_machine=i386-pc
790
+ os=-mingw32
791
+ ;;
792
+ mingw32ce)
793
+ basic_machine=arm-unknown
794
+ os=-mingw32ce
795
+ ;;
796
+ miniframe)
797
+ basic_machine=m68000-convergent
798
+ ;;
799
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
800
+ basic_machine=m68k-atari
801
+ os=-mint
802
+ ;;
803
+ mips3*-*)
804
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
805
+ ;;
806
+ mips3*)
807
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
808
+ ;;
809
+ monitor)
810
+ basic_machine=m68k-rom68k
811
+ os=-coff
812
+ ;;
813
+ morphos)
814
+ basic_machine=powerpc-unknown
815
+ os=-morphos
816
+ ;;
817
+ msdos)
818
+ basic_machine=i386-pc
819
+ os=-msdos
820
+ ;;
821
+ ms1-*)
822
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
823
+ ;;
824
+ msys)
825
+ basic_machine=i386-pc
826
+ os=-msys
827
+ ;;
828
+ mvs)
829
+ basic_machine=i370-ibm
830
+ os=-mvs
831
+ ;;
832
+ nacl)
833
+ basic_machine=le32-unknown
834
+ os=-nacl
835
+ ;;
836
+ ncr3000)
837
+ basic_machine=i486-ncr
838
+ os=-sysv4
839
+ ;;
840
+ netbsd386)
841
+ basic_machine=i386-unknown
842
+ os=-netbsd
843
+ ;;
844
+ netwinder)
845
+ basic_machine=armv4l-rebel
846
+ os=-linux
847
+ ;;
848
+ news | news700 | news800 | news900)
849
+ basic_machine=m68k-sony
850
+ os=-newsos
851
+ ;;
852
+ news1000)
853
+ basic_machine=m68030-sony
854
+ os=-newsos
855
+ ;;
856
+ news-3600 | risc-news)
857
+ basic_machine=mips-sony
858
+ os=-newsos
859
+ ;;
860
+ necv70)
861
+ basic_machine=v70-nec
862
+ os=-sysv
863
+ ;;
864
+ next | m*-next )
865
+ basic_machine=m68k-next
866
+ case $os in
867
+ -nextstep* )
868
+ ;;
869
+ -ns2*)
870
+ os=-nextstep2
871
+ ;;
872
+ *)
873
+ os=-nextstep3
874
+ ;;
875
+ esac
876
+ ;;
877
+ nh3000)
878
+ basic_machine=m68k-harris
879
+ os=-cxux
880
+ ;;
881
+ nh[45]000)
882
+ basic_machine=m88k-harris
883
+ os=-cxux
884
+ ;;
885
+ nindy960)
886
+ basic_machine=i960-intel
887
+ os=-nindy
888
+ ;;
889
+ mon960)
890
+ basic_machine=i960-intel
891
+ os=-mon960
892
+ ;;
893
+ nonstopux)
894
+ basic_machine=mips-compaq
895
+ os=-nonstopux
896
+ ;;
897
+ np1)
898
+ basic_machine=np1-gould
899
+ ;;
900
+ neo-tandem)
901
+ basic_machine=neo-tandem
902
+ ;;
903
+ nse-tandem)
904
+ basic_machine=nse-tandem
905
+ ;;
906
+ nsr-tandem)
907
+ basic_machine=nsr-tandem
908
+ ;;
909
+ op50n-* | op60c-*)
910
+ basic_machine=hppa1.1-oki
911
+ os=-proelf
912
+ ;;
913
+ openrisc | openrisc-*)
914
+ basic_machine=or32-unknown
915
+ ;;
916
+ os400)
917
+ basic_machine=powerpc-ibm
918
+ os=-os400
919
+ ;;
920
+ OSE68000 | ose68000)
921
+ basic_machine=m68000-ericsson
922
+ os=-ose
923
+ ;;
924
+ os68k)
925
+ basic_machine=m68k-none
926
+ os=-os68k
927
+ ;;
928
+ pa-hitachi)
929
+ basic_machine=hppa1.1-hitachi
930
+ os=-hiuxwe2
931
+ ;;
932
+ paragon)
933
+ basic_machine=i860-intel
934
+ os=-osf
935
+ ;;
936
+ parisc)
937
+ basic_machine=hppa-unknown
938
+ os=-linux
939
+ ;;
940
+ parisc-*)
941
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
942
+ os=-linux
943
+ ;;
944
+ pbd)
945
+ basic_machine=sparc-tti
946
+ ;;
947
+ pbb)
948
+ basic_machine=m68k-tti
949
+ ;;
950
+ pc532 | pc532-*)
951
+ basic_machine=ns32k-pc532
952
+ ;;
953
+ pc98)
954
+ basic_machine=i386-pc
955
+ ;;
956
+ pc98-*)
957
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
958
+ ;;
959
+ pentium | p5 | k5 | k6 | nexgen | viac3)
960
+ basic_machine=i586-pc
961
+ ;;
962
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
963
+ basic_machine=i686-pc
964
+ ;;
965
+ pentiumii | pentium2 | pentiumiii | pentium3)
966
+ basic_machine=i686-pc
967
+ ;;
968
+ pentium4)
969
+ basic_machine=i786-pc
970
+ ;;
971
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
972
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
973
+ ;;
974
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
975
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
976
+ ;;
977
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
978
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
979
+ ;;
980
+ pentium4-*)
981
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
982
+ ;;
983
+ pn)
984
+ basic_machine=pn-gould
985
+ ;;
986
+ power) basic_machine=power-ibm
987
+ ;;
988
+ ppc | ppcbe) basic_machine=powerpc-unknown
989
+ ;;
990
+ ppc-* | ppcbe-*)
991
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
992
+ ;;
993
+ ppcle | powerpclittle | ppc-le | powerpc-little)
994
+ basic_machine=powerpcle-unknown
995
+ ;;
996
+ ppcle-* | powerpclittle-*)
997
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
998
+ ;;
999
+ ppc64) basic_machine=powerpc64-unknown
1000
+ ;;
1001
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1002
+ ;;
1003
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1004
+ basic_machine=powerpc64le-unknown
1005
+ ;;
1006
+ ppc64le-* | powerpc64little-*)
1007
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1008
+ ;;
1009
+ ps2)
1010
+ basic_machine=i386-ibm
1011
+ ;;
1012
+ pw32)
1013
+ basic_machine=i586-unknown
1014
+ os=-pw32
1015
+ ;;
1016
+ rdos)
1017
+ basic_machine=i386-pc
1018
+ os=-rdos
1019
+ ;;
1020
+ rom68k)
1021
+ basic_machine=m68k-rom68k
1022
+ os=-coff
1023
+ ;;
1024
+ rm[46]00)
1025
+ basic_machine=mips-siemens
1026
+ ;;
1027
+ rtpc | rtpc-*)
1028
+ basic_machine=romp-ibm
1029
+ ;;
1030
+ s390 | s390-*)
1031
+ basic_machine=s390-ibm
1032
+ ;;
1033
+ s390x | s390x-*)
1034
+ basic_machine=s390x-ibm
1035
+ ;;
1036
+ sa29200)
1037
+ basic_machine=a29k-amd
1038
+ os=-udi
1039
+ ;;
1040
+ sb1)
1041
+ basic_machine=mipsisa64sb1-unknown
1042
+ ;;
1043
+ sb1el)
1044
+ basic_machine=mipsisa64sb1el-unknown
1045
+ ;;
1046
+ sde)
1047
+ basic_machine=mipsisa32-sde
1048
+ os=-elf
1049
+ ;;
1050
+ sei)
1051
+ basic_machine=mips-sei
1052
+ os=-seiux
1053
+ ;;
1054
+ sequent)
1055
+ basic_machine=i386-sequent
1056
+ ;;
1057
+ sh)
1058
+ basic_machine=sh-hitachi
1059
+ os=-hms
1060
+ ;;
1061
+ sh5el)
1062
+ basic_machine=sh5le-unknown
1063
+ ;;
1064
+ sh64)
1065
+ basic_machine=sh64-unknown
1066
+ ;;
1067
+ sparclite-wrs | simso-wrs)
1068
+ basic_machine=sparclite-wrs
1069
+ os=-vxworks
1070
+ ;;
1071
+ sps7)
1072
+ basic_machine=m68k-bull
1073
+ os=-sysv2
1074
+ ;;
1075
+ spur)
1076
+ basic_machine=spur-unknown
1077
+ ;;
1078
+ st2000)
1079
+ basic_machine=m68k-tandem
1080
+ ;;
1081
+ stratus)
1082
+ basic_machine=i860-stratus
1083
+ os=-sysv4
1084
+ ;;
1085
+ strongarm-* | thumb-*)
1086
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1087
+ ;;
1088
+ sun2)
1089
+ basic_machine=m68000-sun
1090
+ ;;
1091
+ sun2os3)
1092
+ basic_machine=m68000-sun
1093
+ os=-sunos3
1094
+ ;;
1095
+ sun2os4)
1096
+ basic_machine=m68000-sun
1097
+ os=-sunos4
1098
+ ;;
1099
+ sun3os3)
1100
+ basic_machine=m68k-sun
1101
+ os=-sunos3
1102
+ ;;
1103
+ sun3os4)
1104
+ basic_machine=m68k-sun
1105
+ os=-sunos4
1106
+ ;;
1107
+ sun4os3)
1108
+ basic_machine=sparc-sun
1109
+ os=-sunos3
1110
+ ;;
1111
+ sun4os4)
1112
+ basic_machine=sparc-sun
1113
+ os=-sunos4
1114
+ ;;
1115
+ sun4sol2)
1116
+ basic_machine=sparc-sun
1117
+ os=-solaris2
1118
+ ;;
1119
+ sun3 | sun3-*)
1120
+ basic_machine=m68k-sun
1121
+ ;;
1122
+ sun4)
1123
+ basic_machine=sparc-sun
1124
+ ;;
1125
+ sun386 | sun386i | roadrunner)
1126
+ basic_machine=i386-sun
1127
+ ;;
1128
+ sv1)
1129
+ basic_machine=sv1-cray
1130
+ os=-unicos
1131
+ ;;
1132
+ symmetry)
1133
+ basic_machine=i386-sequent
1134
+ os=-dynix
1135
+ ;;
1136
+ t3e)
1137
+ basic_machine=alphaev5-cray
1138
+ os=-unicos
1139
+ ;;
1140
+ t90)
1141
+ basic_machine=t90-cray
1142
+ os=-unicos
1143
+ ;;
1144
+ tile*)
1145
+ basic_machine=$basic_machine-unknown
1146
+ os=-linux-gnu
1147
+ ;;
1148
+ tx39)
1149
+ basic_machine=mipstx39-unknown
1150
+ ;;
1151
+ tx39el)
1152
+ basic_machine=mipstx39el-unknown
1153
+ ;;
1154
+ toad1)
1155
+ basic_machine=pdp10-xkl
1156
+ os=-tops20
1157
+ ;;
1158
+ tower | tower-32)
1159
+ basic_machine=m68k-ncr
1160
+ ;;
1161
+ tpf)
1162
+ basic_machine=s390x-ibm
1163
+ os=-tpf
1164
+ ;;
1165
+ udi29k)
1166
+ basic_machine=a29k-amd
1167
+ os=-udi
1168
+ ;;
1169
+ ultra3)
1170
+ basic_machine=a29k-nyu
1171
+ os=-sym1
1172
+ ;;
1173
+ v810 | necv810)
1174
+ basic_machine=v810-nec
1175
+ os=-none
1176
+ ;;
1177
+ vaxv)
1178
+ basic_machine=vax-dec
1179
+ os=-sysv
1180
+ ;;
1181
+ vms)
1182
+ basic_machine=vax-dec
1183
+ os=-vms
1184
+ ;;
1185
+ vpp*|vx|vx-*)
1186
+ basic_machine=f301-fujitsu
1187
+ ;;
1188
+ vxworks960)
1189
+ basic_machine=i960-wrs
1190
+ os=-vxworks
1191
+ ;;
1192
+ vxworks68)
1193
+ basic_machine=m68k-wrs
1194
+ os=-vxworks
1195
+ ;;
1196
+ vxworks29k)
1197
+ basic_machine=a29k-wrs
1198
+ os=-vxworks
1199
+ ;;
1200
+ w65*)
1201
+ basic_machine=w65-wdc
1202
+ os=-none
1203
+ ;;
1204
+ w89k-*)
1205
+ basic_machine=hppa1.1-winbond
1206
+ os=-proelf
1207
+ ;;
1208
+ xbox)
1209
+ basic_machine=i686-pc
1210
+ os=-mingw32
1211
+ ;;
1212
+ xps | xps100)
1213
+ basic_machine=xps100-honeywell
1214
+ ;;
1215
+ xscale-* | xscalee[bl]-*)
1216
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1217
+ ;;
1218
+ ymp)
1219
+ basic_machine=ymp-cray
1220
+ os=-unicos
1221
+ ;;
1222
+ z8k-*-coff)
1223
+ basic_machine=z8k-unknown
1224
+ os=-sim
1225
+ ;;
1226
+ z80-*-coff)
1227
+ basic_machine=z80-unknown
1228
+ os=-sim
1229
+ ;;
1230
+ none)
1231
+ basic_machine=none-none
1232
+ os=-none
1233
+ ;;
1234
+
1235
+ # Here we handle the default manufacturer of certain CPU types. It is in
1236
+ # some cases the only manufacturer, in others, it is the most popular.
1237
+ w89k)
1238
+ basic_machine=hppa1.1-winbond
1239
+ ;;
1240
+ op50n)
1241
+ basic_machine=hppa1.1-oki
1242
+ ;;
1243
+ op60c)
1244
+ basic_machine=hppa1.1-oki
1245
+ ;;
1246
+ romp)
1247
+ basic_machine=romp-ibm
1248
+ ;;
1249
+ mmix)
1250
+ basic_machine=mmix-knuth
1251
+ ;;
1252
+ rs6000)
1253
+ basic_machine=rs6000-ibm
1254
+ ;;
1255
+ vax)
1256
+ basic_machine=vax-dec
1257
+ ;;
1258
+ pdp10)
1259
+ # there are many clones, so DEC is not a safe bet
1260
+ basic_machine=pdp10-unknown
1261
+ ;;
1262
+ pdp11)
1263
+ basic_machine=pdp11-dec
1264
+ ;;
1265
+ we32k)
1266
+ basic_machine=we32k-att
1267
+ ;;
1268
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1269
+ basic_machine=sh-unknown
1270
+ ;;
1271
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1272
+ basic_machine=sparc-sun
1273
+ ;;
1274
+ cydra)
1275
+ basic_machine=cydra-cydrome
1276
+ ;;
1277
+ orion)
1278
+ basic_machine=orion-highlevel
1279
+ ;;
1280
+ orion105)
1281
+ basic_machine=clipper-highlevel
1282
+ ;;
1283
+ mac | mpw | mac-mpw)
1284
+ basic_machine=m68k-apple
1285
+ ;;
1286
+ pmac | pmac-mpw)
1287
+ basic_machine=powerpc-apple
1288
+ ;;
1289
+ *-unknown)
1290
+ # Make sure to match an already-canonicalized machine name.
1291
+ ;;
1292
+ *)
1293
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1294
+ exit 1
1295
+ ;;
1296
+ esac
1297
+
1298
+ # Here we canonicalize certain aliases for manufacturers.
1299
+ case $basic_machine in
1300
+ *-digital*)
1301
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1302
+ ;;
1303
+ *-commodore*)
1304
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1305
+ ;;
1306
+ *)
1307
+ ;;
1308
+ esac
1309
+
1310
+ # Decode manufacturer-specific aliases for certain operating systems.
1311
+
1312
+ if [ x"$os" != x"" ]
1313
+ then
1314
+ case $os in
1315
+ # First match some system type aliases
1316
+ # that might get confused with valid system types.
1317
+ # -solaris* is a basic system type, with this one exception.
1318
+ -auroraux)
1319
+ os=-auroraux
1320
+ ;;
1321
+ -solaris1 | -solaris1.*)
1322
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
1323
+ ;;
1324
+ -solaris)
1325
+ os=-solaris2
1326
+ ;;
1327
+ -svr4*)
1328
+ os=-sysv4
1329
+ ;;
1330
+ -unixware*)
1331
+ os=-sysv4.2uw
1332
+ ;;
1333
+ -gnu/linux*)
1334
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
1335
+ ;;
1336
+ # First accept the basic system types.
1337
+ # The portable systems comes first.
1338
+ # Each alternative MUST END IN A *, to match a version number.
1339
+ # -sysv* is not here because it comes later, after sysvr4.
1340
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1341
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1342
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
1343
+ | -sym* | -kopensolaris* \
1344
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1345
+ | -aos* | -aros* \
1346
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1347
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1348
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1349
+ | -openbsd* | -solidbsd* \
1350
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
1351
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1352
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1353
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1354
+ | -chorusos* | -chorusrdb* | -cegcc* \
1355
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1356
+ | -mingw32* | -linux-gnu* | -linux-android* \
1357
+ | -linux-newlib* | -linux-uclibc* \
1358
+ | -uxpv* | -beos* | -mpeix* | -udk* \
1359
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1360
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1361
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
1362
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1363
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1364
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1365
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1366
+ # Remember, each alternative MUST END IN *, to match a version number.
1367
+ ;;
1368
+ -qnx*)
1369
+ case $basic_machine in
1370
+ x86-* | i*86-*)
1371
+ ;;
1372
+ *)
1373
+ os=-nto$os
1374
+ ;;
1375
+ esac
1376
+ ;;
1377
+ -nto-qnx*)
1378
+ ;;
1379
+ -nto*)
1380
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
1381
+ ;;
1382
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1383
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1384
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
1385
+ ;;
1386
+ -mac*)
1387
+ os=`echo $os | sed -e 's|mac|macos|'`
1388
+ ;;
1389
+ -linux-dietlibc)
1390
+ os=-linux-dietlibc
1391
+ ;;
1392
+ -linux*)
1393
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
1394
+ ;;
1395
+ -sunos5*)
1396
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
1397
+ ;;
1398
+ -sunos6*)
1399
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
1400
+ ;;
1401
+ -opened*)
1402
+ os=-openedition
1403
+ ;;
1404
+ -os400*)
1405
+ os=-os400
1406
+ ;;
1407
+ -wince*)
1408
+ os=-wince
1409
+ ;;
1410
+ -osfrose*)
1411
+ os=-osfrose
1412
+ ;;
1413
+ -osf*)
1414
+ os=-osf
1415
+ ;;
1416
+ -utek*)
1417
+ os=-bsd
1418
+ ;;
1419
+ -dynix*)
1420
+ os=-bsd
1421
+ ;;
1422
+ -acis*)
1423
+ os=-aos
1424
+ ;;
1425
+ -atheos*)
1426
+ os=-atheos
1427
+ ;;
1428
+ -syllable*)
1429
+ os=-syllable
1430
+ ;;
1431
+ -386bsd)
1432
+ os=-bsd
1433
+ ;;
1434
+ -ctix* | -uts*)
1435
+ os=-sysv
1436
+ ;;
1437
+ -nova*)
1438
+ os=-rtmk-nova
1439
+ ;;
1440
+ -ns2 )
1441
+ os=-nextstep2
1442
+ ;;
1443
+ -nsk*)
1444
+ os=-nsk
1445
+ ;;
1446
+ # Preserve the version number of sinix5.
1447
+ -sinix5.*)
1448
+ os=`echo $os | sed -e 's|sinix|sysv|'`
1449
+ ;;
1450
+ -sinix*)
1451
+ os=-sysv4
1452
+ ;;
1453
+ -tpf*)
1454
+ os=-tpf
1455
+ ;;
1456
+ -triton*)
1457
+ os=-sysv3
1458
+ ;;
1459
+ -oss*)
1460
+ os=-sysv3
1461
+ ;;
1462
+ -svr4)
1463
+ os=-sysv4
1464
+ ;;
1465
+ -svr3)
1466
+ os=-sysv3
1467
+ ;;
1468
+ -sysvr4)
1469
+ os=-sysv4
1470
+ ;;
1471
+ # This must come after -sysvr4.
1472
+ -sysv*)
1473
+ ;;
1474
+ -ose*)
1475
+ os=-ose
1476
+ ;;
1477
+ -es1800*)
1478
+ os=-ose
1479
+ ;;
1480
+ -xenix)
1481
+ os=-xenix
1482
+ ;;
1483
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1484
+ os=-mint
1485
+ ;;
1486
+ -aros*)
1487
+ os=-aros
1488
+ ;;
1489
+ -kaos*)
1490
+ os=-kaos
1491
+ ;;
1492
+ -zvmoe)
1493
+ os=-zvmoe
1494
+ ;;
1495
+ -dicos*)
1496
+ os=-dicos
1497
+ ;;
1498
+ -nacl*)
1499
+ ;;
1500
+ -none)
1501
+ ;;
1502
+ *)
1503
+ # Get rid of the `-' at the beginning of $os.
1504
+ os=`echo $os | sed 's/[^-]*-//'`
1505
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1506
+ exit 1
1507
+ ;;
1508
+ esac
1509
+ else
1510
+
1511
+ # Here we handle the default operating systems that come with various machines.
1512
+ # The value should be what the vendor currently ships out the door with their
1513
+ # machine or put another way, the most popular os provided with the machine.
1514
+
1515
+ # Note that if you're going to try to match "-MANUFACTURER" here (say,
1516
+ # "-sun"), then you have to tell the case statement up towards the top
1517
+ # that MANUFACTURER isn't an operating system. Otherwise, code above
1518
+ # will signal an error saying that MANUFACTURER isn't an operating
1519
+ # system, and we'll never get to this point.
1520
+
1521
+ case $basic_machine in
1522
+ score-*)
1523
+ os=-elf
1524
+ ;;
1525
+ spu-*)
1526
+ os=-elf
1527
+ ;;
1528
+ *-acorn)
1529
+ os=-riscix1.2
1530
+ ;;
1531
+ arm*-rebel)
1532
+ os=-linux
1533
+ ;;
1534
+ arm*-semi)
1535
+ os=-aout
1536
+ ;;
1537
+ c4x-* | tic4x-*)
1538
+ os=-coff
1539
+ ;;
1540
+ tic54x-*)
1541
+ os=-coff
1542
+ ;;
1543
+ tic55x-*)
1544
+ os=-coff
1545
+ ;;
1546
+ tic6x-*)
1547
+ os=-coff
1548
+ ;;
1549
+ # This must come before the *-dec entry.
1550
+ pdp10-*)
1551
+ os=-tops20
1552
+ ;;
1553
+ pdp11-*)
1554
+ os=-none
1555
+ ;;
1556
+ *-dec | vax-*)
1557
+ os=-ultrix4.2
1558
+ ;;
1559
+ m68*-apollo)
1560
+ os=-domain
1561
+ ;;
1562
+ i386-sun)
1563
+ os=-sunos4.0.2
1564
+ ;;
1565
+ m68000-sun)
1566
+ os=-sunos3
1567
+ ;;
1568
+ m68*-cisco)
1569
+ os=-aout
1570
+ ;;
1571
+ mep-*)
1572
+ os=-elf
1573
+ ;;
1574
+ mips*-cisco)
1575
+ os=-elf
1576
+ ;;
1577
+ mips*-*)
1578
+ os=-elf
1579
+ ;;
1580
+ or32-*)
1581
+ os=-coff
1582
+ ;;
1583
+ *-tti) # must be before sparc entry or we get the wrong os.
1584
+ os=-sysv3
1585
+ ;;
1586
+ sparc-* | *-sun)
1587
+ os=-sunos4.1.1
1588
+ ;;
1589
+ *-be)
1590
+ os=-beos
1591
+ ;;
1592
+ *-haiku)
1593
+ os=-haiku
1594
+ ;;
1595
+ *-ibm)
1596
+ os=-aix
1597
+ ;;
1598
+ *-knuth)
1599
+ os=-mmixware
1600
+ ;;
1601
+ *-wec)
1602
+ os=-proelf
1603
+ ;;
1604
+ *-winbond)
1605
+ os=-proelf
1606
+ ;;
1607
+ *-oki)
1608
+ os=-proelf
1609
+ ;;
1610
+ *-hp)
1611
+ os=-hpux
1612
+ ;;
1613
+ *-hitachi)
1614
+ os=-hiux
1615
+ ;;
1616
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
1617
+ os=-sysv
1618
+ ;;
1619
+ *-cbm)
1620
+ os=-amigaos
1621
+ ;;
1622
+ *-dg)
1623
+ os=-dgux
1624
+ ;;
1625
+ *-dolphin)
1626
+ os=-sysv3
1627
+ ;;
1628
+ m68k-ccur)
1629
+ os=-rtu
1630
+ ;;
1631
+ m88k-omron*)
1632
+ os=-luna
1633
+ ;;
1634
+ *-next )
1635
+ os=-nextstep
1636
+ ;;
1637
+ *-sequent)
1638
+ os=-ptx
1639
+ ;;
1640
+ *-crds)
1641
+ os=-unos
1642
+ ;;
1643
+ *-ns)
1644
+ os=-genix
1645
+ ;;
1646
+ i370-*)
1647
+ os=-mvs
1648
+ ;;
1649
+ *-next)
1650
+ os=-nextstep3
1651
+ ;;
1652
+ *-gould)
1653
+ os=-sysv
1654
+ ;;
1655
+ *-highlevel)
1656
+ os=-bsd
1657
+ ;;
1658
+ *-encore)
1659
+ os=-bsd
1660
+ ;;
1661
+ *-sgi)
1662
+ os=-irix
1663
+ ;;
1664
+ *-siemens)
1665
+ os=-sysv4
1666
+ ;;
1667
+ *-masscomp)
1668
+ os=-rtu
1669
+ ;;
1670
+ f30[01]-fujitsu | f700-fujitsu)
1671
+ os=-uxpv
1672
+ ;;
1673
+ *-rom68k)
1674
+ os=-coff
1675
+ ;;
1676
+ *-*bug)
1677
+ os=-coff
1678
+ ;;
1679
+ *-apple)
1680
+ os=-macos
1681
+ ;;
1682
+ *-atari*)
1683
+ os=-mint
1684
+ ;;
1685
+ *)
1686
+ os=-none
1687
+ ;;
1688
+ esac
1689
+ fi
1690
+
1691
+ # Here we handle the case where we know the os, and the CPU type, but not the
1692
+ # manufacturer. We pick the logical manufacturer.
1693
+ vendor=unknown
1694
+ case $basic_machine in
1695
+ *-unknown)
1696
+ case $os in
1697
+ -riscix*)
1698
+ vendor=acorn
1699
+ ;;
1700
+ -sunos*)
1701
+ vendor=sun
1702
+ ;;
1703
+ -cnk*|-aix*)
1704
+ vendor=ibm
1705
+ ;;
1706
+ -beos*)
1707
+ vendor=be
1708
+ ;;
1709
+ -hpux*)
1710
+ vendor=hp
1711
+ ;;
1712
+ -mpeix*)
1713
+ vendor=hp
1714
+ ;;
1715
+ -hiux*)
1716
+ vendor=hitachi
1717
+ ;;
1718
+ -unos*)
1719
+ vendor=crds
1720
+ ;;
1721
+ -dgux*)
1722
+ vendor=dg
1723
+ ;;
1724
+ -luna*)
1725
+ vendor=omron
1726
+ ;;
1727
+ -genix*)
1728
+ vendor=ns
1729
+ ;;
1730
+ -mvs* | -opened*)
1731
+ vendor=ibm
1732
+ ;;
1733
+ -os400*)
1734
+ vendor=ibm
1735
+ ;;
1736
+ -ptx*)
1737
+ vendor=sequent
1738
+ ;;
1739
+ -tpf*)
1740
+ vendor=ibm
1741
+ ;;
1742
+ -vxsim* | -vxworks* | -windiss*)
1743
+ vendor=wrs
1744
+ ;;
1745
+ -aux*)
1746
+ vendor=apple
1747
+ ;;
1748
+ -hms*)
1749
+ vendor=hitachi
1750
+ ;;
1751
+ -mpw* | -macos*)
1752
+ vendor=apple
1753
+ ;;
1754
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
1755
+ vendor=atari
1756
+ ;;
1757
+ -vos*)
1758
+ vendor=stratus
1759
+ ;;
1760
+ esac
1761
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1762
+ ;;
1763
+ esac
1764
+
1765
+ echo $basic_machine$os
1766
+ exit
1767
+
1768
+ # Local variables:
1769
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
1770
+ # time-stamp-start: "timestamp='"
1771
+ # time-stamp-format: "%:y-%02m-%02d"
1772
+ # time-stamp-end: "'"
1773
+ # End: