ffi 1.15.5 → 1.17.0

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 (343) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +118 -0
  4. data/Gemfile +10 -3
  5. data/README.md +4 -3
  6. data/Rakefile +25 -10
  7. data/ext/ffi_c/AbstractMemory.c +99 -74
  8. data/ext/ffi_c/AbstractMemory.h +3 -2
  9. data/ext/ffi_c/ArrayType.c +51 -15
  10. data/ext/ffi_c/ArrayType.h +1 -0
  11. data/ext/ffi_c/Buffer.c +90 -33
  12. data/ext/ffi_c/Call.c +29 -12
  13. data/ext/ffi_c/Call.h +3 -2
  14. data/ext/ffi_c/DynamicLibrary.c +90 -27
  15. data/ext/ffi_c/Function.c +244 -98
  16. data/ext/ffi_c/Function.h +1 -0
  17. data/ext/ffi_c/FunctionInfo.c +81 -25
  18. data/ext/ffi_c/LastError.c +29 -11
  19. data/ext/ffi_c/MappedType.c +66 -23
  20. data/ext/ffi_c/MappedType.h +0 -2
  21. data/ext/ffi_c/MemoryPointer.c +36 -9
  22. data/ext/ffi_c/MethodHandle.c +3 -1
  23. data/ext/ffi_c/Pointer.c +82 -40
  24. data/ext/ffi_c/Pointer.h +1 -0
  25. data/ext/ffi_c/Struct.c +166 -84
  26. data/ext/ffi_c/Struct.h +7 -4
  27. data/ext/ffi_c/StructByValue.c +48 -16
  28. data/ext/ffi_c/StructLayout.c +130 -61
  29. data/ext/ffi_c/Type.c +120 -51
  30. data/ext/ffi_c/Type.h +3 -1
  31. data/ext/ffi_c/Types.c +8 -2
  32. data/ext/ffi_c/Types.h +0 -1
  33. data/ext/ffi_c/Variadic.c +71 -26
  34. data/ext/ffi_c/compat.h +22 -22
  35. data/ext/ffi_c/extconf.rb +19 -2
  36. data/ext/ffi_c/ffi.c +4 -0
  37. data/ext/ffi_c/libffi/.allow-ai-service +0 -0
  38. data/ext/ffi_c/libffi/.appveyor/site.exp +16 -0
  39. data/ext/ffi_c/libffi/.appveyor/unix-noexec.exp +7 -0
  40. data/ext/ffi_c/libffi/.appveyor.yml +27 -9
  41. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +18 -0
  42. data/ext/ffi_c/libffi/{.travis → .ci}/build-in-container.sh +4 -6
  43. data/ext/ffi_c/libffi/.ci/build.sh +124 -0
  44. data/ext/ffi_c/libffi/{.travis → .ci}/install.sh +14 -7
  45. data/ext/ffi_c/libffi/.ci/msvs-detect +1103 -0
  46. data/ext/ffi_c/libffi/{.travis → .ci}/site.exp +5 -3
  47. data/ext/ffi_c/libffi/.circleci/config.yml +156 -0
  48. data/ext/ffi_c/libffi/.github/workflows/build.yml +479 -0
  49. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +172 -0
  50. data/ext/ffi_c/libffi/.gitignore +10 -2
  51. data/ext/ffi_c/libffi/LICENSE +1 -1
  52. data/ext/ffi_c/libffi/Makefile.am +12 -5
  53. data/ext/ffi_c/libffi/Makefile.in +118 -51
  54. data/ext/ffi_c/libffi/README.md +150 -105
  55. data/ext/ffi_c/libffi/acinclude.m4 +10 -112
  56. data/ext/ffi_c/libffi/compile +348 -0
  57. data/ext/ffi_c/libffi/config.guess +623 -556
  58. data/ext/ffi_c/libffi/config.sub +75 -34
  59. data/ext/ffi_c/libffi/configure +4571 -3830
  60. data/ext/ffi_c/libffi/configure.ac +64 -28
  61. data/ext/ffi_c/libffi/configure.host +26 -7
  62. data/ext/ffi_c/libffi/doc/Makefile.in +9 -6
  63. data/ext/ffi_c/libffi/doc/libffi.texi +82 -33
  64. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  65. data/ext/ffi_c/libffi/fficonfig.h.in +12 -47
  66. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +163 -52
  67. data/ext/ffi_c/libffi/include/Makefile.am +1 -1
  68. data/ext/ffi_c/libffi/include/Makefile.in +10 -9
  69. data/ext/ffi_c/libffi/include/ffi.h.in +55 -60
  70. data/ext/ffi_c/libffi/include/ffi_cfi.h +21 -0
  71. data/ext/ffi_c/libffi/include/ffi_common.h +33 -2
  72. data/ext/ffi_c/libffi/include/tramp.h +45 -0
  73. data/ext/ffi_c/libffi/install-sh +92 -69
  74. data/ext/ffi_c/libffi/libffi.map.in +5 -0
  75. data/ext/ffi_c/libffi/libtool-version +2 -2
  76. data/ext/ffi_c/libffi/ltmain.sh +518 -333
  77. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +18 -14
  78. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +108 -72
  79. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +76 -45
  80. data/ext/ffi_c/libffi/m4/ax_prepend_flag.m4 +51 -0
  81. data/ext/ffi_c/libffi/man/Makefile.in +9 -6
  82. data/ext/ffi_c/libffi/missing +1 -1
  83. data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +2 -2
  84. data/ext/ffi_c/libffi/msvcc.sh +1 -1
  85. data/ext/ffi_c/libffi/src/aarch64/ffi.c +172 -55
  86. data/ext/ffi_c/libffi/src/aarch64/internal.h +32 -0
  87. data/ext/ffi_c/libffi/src/aarch64/sysv.S +331 -87
  88. data/ext/ffi_c/libffi/src/arc/arcompact.S +169 -94
  89. data/ext/ffi_c/libffi/src/arc/ffi.c +325 -148
  90. data/ext/ffi_c/libffi/src/arc/ffitarget.h +14 -0
  91. data/ext/ffi_c/libffi/src/arm/ffi.c +62 -17
  92. data/ext/ffi_c/libffi/src/arm/ffitarget.h +3 -3
  93. data/ext/ffi_c/libffi/src/arm/internal.h +10 -0
  94. data/ext/ffi_c/libffi/src/arm/sysv.S +113 -42
  95. data/ext/ffi_c/libffi/src/closures.c +136 -50
  96. data/ext/ffi_c/libffi/src/debug.c +2 -2
  97. data/ext/ffi_c/libffi/src/dlmalloc.c +6 -1
  98. data/ext/ffi_c/libffi/src/ia64/ffi.c +12 -0
  99. data/ext/ffi_c/libffi/src/ia64/unix.S +20 -2
  100. data/ext/ffi_c/libffi/src/loongarch64/ffi.c +624 -0
  101. data/ext/ffi_c/libffi/src/loongarch64/ffitarget.h +82 -0
  102. data/ext/ffi_c/libffi/src/loongarch64/sysv.S +327 -0
  103. data/ext/ffi_c/libffi/src/m32r/ffi.c +31 -14
  104. data/ext/ffi_c/libffi/src/mips/ffi.c +250 -67
  105. data/ext/ffi_c/libffi/src/mips/ffitarget.h +7 -0
  106. data/ext/ffi_c/libffi/src/mips/n32.S +193 -33
  107. data/ext/ffi_c/libffi/src/mips/o32.S +61 -4
  108. data/ext/ffi_c/libffi/src/moxie/ffi.c +47 -22
  109. data/ext/ffi_c/libffi/src/or1k/ffi.c +25 -12
  110. data/ext/ffi_c/libffi/src/pa/ffi.c +32 -33
  111. data/ext/ffi_c/libffi/src/pa/ffi64.c +614 -0
  112. data/ext/ffi_c/libffi/src/pa/ffitarget.h +22 -8
  113. data/ext/ffi_c/libffi/src/pa/hpux32.S +83 -36
  114. data/ext/ffi_c/libffi/src/pa/hpux64.S +681 -0
  115. data/ext/ffi_c/libffi/src/pa/linux.S +82 -35
  116. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +36 -24
  117. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +1 -1
  118. data/ext/ffi_c/libffi/src/powerpc/linux64.S +2 -0
  119. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +2 -0
  120. data/ext/ffi_c/libffi/src/powerpc/t-aix +5 -0
  121. data/ext/ffi_c/libffi/src/prep_cif.c +22 -2
  122. data/ext/ffi_c/libffi/src/riscv/ffi.c +37 -4
  123. data/ext/ffi_c/libffi/src/sparc/ffi64.c +23 -1
  124. data/ext/ffi_c/libffi/src/tramp.c +716 -0
  125. data/ext/ffi_c/libffi/src/types.c +4 -6
  126. data/ext/ffi_c/libffi/src/wasm32/ffi.c +947 -0
  127. data/ext/ffi_c/libffi/src/wasm32/ffitarget.h +62 -0
  128. data/ext/ffi_c/libffi/src/x86/ffi.c +99 -37
  129. data/ext/ffi_c/libffi/src/x86/ffi64.c +67 -12
  130. data/ext/ffi_c/libffi/src/x86/ffitarget.h +9 -5
  131. data/ext/ffi_c/libffi/src/x86/ffiw64.c +44 -1
  132. data/ext/ffi_c/libffi/src/x86/internal.h +14 -0
  133. data/ext/ffi_c/libffi/src/x86/internal64.h +14 -0
  134. data/ext/ffi_c/libffi/src/x86/sysv.S +172 -38
  135. data/ext/ffi_c/libffi/src/x86/sysv_intel.S +91 -88
  136. data/ext/ffi_c/libffi/src/x86/unix64.S +96 -6
  137. data/ext/ffi_c/libffi/src/x86/win64.S +20 -7
  138. data/ext/ffi_c/libffi/src/xtensa/ffi.c +16 -8
  139. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +4 -0
  140. data/ext/ffi_c/libffi/src/xtensa/sysv.S +26 -16
  141. data/ext/ffi_c/libffi/testsuite/Makefile.am +79 -114
  142. data/ext/ffi_c/libffi/testsuite/Makefile.in +89 -121
  143. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +54 -0
  144. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +63 -0
  145. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +86 -0
  146. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +48 -0
  147. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +7 -0
  148. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +51 -0
  149. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +43 -21
  150. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +2 -2
  151. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +1 -0
  152. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +5 -1
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +41 -0
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +99 -0
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +108 -0
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +114 -0
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +119 -0
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +28 -3
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +3 -0
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +5 -0
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +4 -0
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +4 -0
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +60 -0
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +8 -9
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +2 -2
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +2 -2
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +2 -2
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +1 -1
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +63 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +65 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +65 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +67 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +67 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +93 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +61 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +63 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +90 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +1 -119
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +220 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +154 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +13 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +11 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +15 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +3 -2
  185. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +2 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +2 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +21 -1
  188. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +2 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +2 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +2 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +7 -6
  192. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +6 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +18 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +22 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +24 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +29 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +4 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +19 -1
  199. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +21 -1
  200. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +35 -3
  201. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +13 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +19 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +13 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +13 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +18 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +22 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +13 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +29 -1
  209. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +19 -1
  210. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +24 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +28 -1
  212. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +24 -2
  213. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +39 -1
  214. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +25 -1
  215. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +14 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +14 -1
  217. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +14 -2
  218. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +19 -1
  219. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +19 -1
  220. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +20 -1
  221. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +40 -25
  222. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +40 -3
  223. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +19 -1
  224. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +18 -1
  225. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +18 -3
  226. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +18 -1
  227. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +18 -1
  228. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +19 -1
  229. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +19 -1
  230. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +3 -1
  231. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +9 -1
  232. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +4 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +11 -1
  234. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +22 -3
  235. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +5 -1
  236. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +6 -1
  237. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +9 -1
  238. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +9 -1
  239. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +6 -2
  240. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +9 -1
  241. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +5 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +10 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +3 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +2 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +3 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +11 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +3 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +4 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +4 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +4 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +2 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +3 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +1 -138
  254. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +21 -21
  255. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +32 -9
  256. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +1 -1
  257. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +12 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +21 -5
  259. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +86 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +115 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +10 -1
  262. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +10 -1
  263. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +9 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +9 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +11 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +9 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +11 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +11 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +86 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +102 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +101 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +1 -1
  273. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +1 -1
  274. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +6 -1
  275. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +2 -1
  276. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +1 -0
  277. data/ext/ffi_c/libffi.bsd.mk +2 -2
  278. data/ext/ffi_c/libffi.darwin.mk +2 -2
  279. data/ext/ffi_c/libffi.gnu.mk +2 -2
  280. data/ext/ffi_c/rbffi.h +1 -1
  281. data/ffi.gemspec +3 -3
  282. data/lib/ffi/autopointer.rb +8 -31
  283. data/lib/ffi/compat.rb +43 -0
  284. data/lib/ffi/data_converter.rb +2 -2
  285. data/lib/ffi/dynamic_library.rb +118 -0
  286. data/lib/ffi/enum.rb +18 -12
  287. data/lib/ffi/ffi.rb +3 -0
  288. data/lib/ffi/function.rb +71 -0
  289. data/lib/ffi/io.rb +2 -2
  290. data/lib/ffi/library.rb +72 -88
  291. data/lib/ffi/library_path.rb +109 -0
  292. data/lib/ffi/managedstruct.rb +1 -1
  293. data/lib/ffi/platform/aarch64-linux/types.conf +74 -3
  294. data/lib/ffi/platform/aarch64-windows/types.conf +52 -0
  295. data/lib/ffi/platform/hppa1.1-linux/types.conf +178 -0
  296. data/lib/ffi/platform/hppa2.0-linux/types.conf +178 -0
  297. data/lib/ffi/platform/loongarch64-linux/types.conf +141 -0
  298. data/lib/ffi/platform/sw_64-linux/types.conf +141 -0
  299. data/lib/ffi/platform.rb +15 -13
  300. data/lib/ffi/pointer.rb +6 -6
  301. data/lib/ffi/struct.rb +6 -5
  302. data/lib/ffi/struct_layout.rb +3 -3
  303. data/lib/ffi/struct_layout_builder.rb +9 -9
  304. data/lib/ffi/types.rb +65 -37
  305. data/lib/ffi/variadic.rb +19 -8
  306. data/lib/ffi/version.rb +1 -1
  307. data/samples/hello_ractor.rb +11 -0
  308. data/samples/qsort_ractor.rb +28 -0
  309. data/sig/ffi/abstract_memory.rbs +165 -0
  310. data/sig/ffi/auto_pointer.rbs +27 -0
  311. data/sig/ffi/buffer.rbs +18 -0
  312. data/sig/ffi/data_converter.rbs +10 -0
  313. data/sig/ffi/dynamic_library.rbs +9 -0
  314. data/sig/ffi/enum.rbs +38 -0
  315. data/sig/ffi/function.rbs +39 -0
  316. data/sig/ffi/library.rbs +42 -0
  317. data/sig/ffi/native_type.rbs +86 -0
  318. data/sig/ffi/pointer.rbs +42 -0
  319. data/sig/ffi/struct.rbs +76 -0
  320. data/sig/ffi/struct_by_reference.rbs +11 -0
  321. data/sig/ffi/struct_by_value.rbs +7 -0
  322. data/sig/ffi/struct_layout.rbs +9 -0
  323. data/sig/ffi/struct_layout_builder.rbs +5 -0
  324. data/sig/ffi/type.rbs +39 -0
  325. data/sig/ffi.rbs +26 -0
  326. data.tar.gz.sig +0 -0
  327. metadata +122 -28
  328. metadata.gz.sig +1 -0
  329. data/ext/ffi_c/libffi/.travis/build-cross-in-container.sh +0 -14
  330. data/ext/ffi_c/libffi/.travis/build.sh +0 -142
  331. data/ext/ffi_c/libffi/.travis.yml +0 -83
  332. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar_va.c +0 -44
  333. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort_va.c +0 -44
  334. /data/ext/ffi_c/libffi/{.travis → .ci}/ar-lib +0 -0
  335. /data/ext/ffi_c/libffi/{.travis → .ci}/bfin-sim.exp +0 -0
  336. /data/ext/ffi_c/libffi/{.travis → .ci}/compile +0 -0
  337. /data/ext/ffi_c/libffi/{.travis → .ci}/m32r-sim.exp +0 -0
  338. /data/ext/ffi_c/libffi/{.travis → .ci}/moxie-sim.exp +0 -0
  339. /data/ext/ffi_c/libffi/{.travis → .ci}/or1k-sim.exp +0 -0
  340. /data/ext/ffi_c/libffi/{.travis → .ci}/powerpc-eabisim.exp +0 -0
  341. /data/ext/ffi_c/libffi/{.travis → .ci}/wine-sim.exp +0 -0
  342. /data/ext/ffi_c/libffi/testsuite/libffi.call/{pyobjc-tc.c → pyobjc_tc.c} +0 -0
  343. /data/lib/ffi/platform/{sparc64-linux → sparcv9-linux}/types.conf +0 -0
@@ -1,12 +1,14 @@
1
1
  #! /bin/sh
2
2
  # Attempt to guess a canonical system name.
3
- # Copyright 1992-2020 Free Software Foundation, Inc.
3
+ # Copyright 1992-2022 Free Software Foundation, Inc.
4
4
 
5
- timestamp='2020-07-12'
5
+ # shellcheck disable=SC2006,SC2268 # see below for rationale
6
+
7
+ timestamp='2022-01-09'
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
@@ -27,11 +29,19 @@ timestamp='2020-07-12'
27
29
  # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
28
30
  #
29
31
  # You can get the latest version of this script from:
30
- # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
32
+ # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
31
33
  #
32
34
  # Please send patches to <config-patches@gnu.org>.
33
35
 
34
36
 
37
+ # The "shellcheck disable" line above the timestamp inhibits complaints
38
+ # about features and limitations of the classic Bourne shell that were
39
+ # superseded or lifted in POSIX. However, this script identifies a wide
40
+ # variety of pre-POSIX systems that do not have POSIX shells at all, and
41
+ # even some reasonably current systems (Solaris 10 as case-in-point) still
42
+ # have a pre-POSIX /bin/sh.
43
+
44
+
35
45
  me=`echo "$0" | sed -e 's,.*/,,'`
36
46
 
37
47
  usage="\
@@ -50,7 +60,7 @@ version="\
50
60
  GNU config.guess ($timestamp)
51
61
 
52
62
  Originally written by Per Bothner.
53
- Copyright 1992-2020 Free Software Foundation, Inc.
63
+ Copyright 1992-2022 Free Software Foundation, Inc.
54
64
 
55
65
  This is free software; see the source for copying conditions. There is NO
56
66
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,6 +94,9 @@ if test $# != 0; then
84
94
  exit 1
85
95
  fi
86
96
 
97
+ # Just in case it came from the environment.
98
+ GUESS=
99
+
87
100
  # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
88
101
  # compiler to aid in system detection is discouraged as it requires
89
102
  # temporary files to be created and, as you can see below, it is a
@@ -102,7 +115,7 @@ set_cc_for_build() {
102
115
  # prevent multiple calls if $tmp is already set
103
116
  test "$tmp" && return 0
104
117
  : "${TMPDIR=/tmp}"
105
- # shellcheck disable=SC2039
118
+ # shellcheck disable=SC2039,SC3028
106
119
  { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
107
120
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
108
121
  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
@@ -112,7 +125,7 @@ set_cc_for_build() {
112
125
  ,,) echo "int x;" > "$dummy.c"
113
126
  for driver in cc gcc c89 c99 ; do
114
127
  if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
115
- CC_FOR_BUILD="$driver"
128
+ CC_FOR_BUILD=$driver
116
129
  break
117
130
  fi
118
131
  done
@@ -133,14 +146,12 @@ fi
133
146
 
134
147
  UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
135
148
  UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
136
- UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
149
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
137
150
  UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
138
151
 
139
- case "$UNAME_SYSTEM" in
152
+ case $UNAME_SYSTEM in
140
153
  Linux|GNU|GNU/*)
141
- # If the system lacks a compiler, then just pick glibc.
142
- # We could probably try harder.
143
- LIBC=gnu
154
+ LIBC=unknown
144
155
 
145
156
  set_cc_for_build
146
157
  cat <<-EOF > "$dummy.c"
@@ -149,24 +160,37 @@ Linux|GNU|GNU/*)
149
160
  LIBC=uclibc
150
161
  #elif defined(__dietlibc__)
151
162
  LIBC=dietlibc
152
- #else
163
+ #elif defined(__GLIBC__)
153
164
  LIBC=gnu
165
+ #else
166
+ #include <stdarg.h>
167
+ /* First heuristic to detect musl libc. */
168
+ #ifdef __DEFINED_va_list
169
+ LIBC=musl
170
+ #endif
154
171
  #endif
155
172
  EOF
156
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
173
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
174
+ eval "$cc_set_libc"
157
175
 
158
- # If ldd exists, use it to detect musl libc.
159
- if command -v ldd >/dev/null && \
160
- ldd --version 2>&1 | grep -q ^musl
161
- then
162
- LIBC=musl
176
+ # Second heuristic to detect musl libc.
177
+ if [ "$LIBC" = unknown ] &&
178
+ command -v ldd >/dev/null &&
179
+ ldd --version 2>&1 | grep -q ^musl; then
180
+ LIBC=musl
181
+ fi
182
+
183
+ # If the system lacks a compiler, then just pick glibc.
184
+ # We could probably try harder.
185
+ if [ "$LIBC" = unknown ]; then
186
+ LIBC=gnu
163
187
  fi
164
188
  ;;
165
189
  esac
166
190
 
167
191
  # Note: order is significant - the case branches are not exclusive.
168
192
 
169
- case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
193
+ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
170
194
  *:NetBSD:*:*)
171
195
  # NetBSD (nbsd) targets should (where applicable) match one or
172
196
  # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -178,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
178
202
  #
179
203
  # Note: NetBSD doesn't particularly care about the vendor
180
204
  # portion of the name. We always set it to "unknown".
181
- sysctl="sysctl -n hw.machine_arch"
182
205
  UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
183
- "/sbin/$sysctl" 2>/dev/null || \
184
- "/usr/sbin/$sysctl" 2>/dev/null || \
206
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
207
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
185
208
  echo unknown)`
186
- case "$UNAME_MACHINE_ARCH" in
209
+ case $UNAME_MACHINE_ARCH in
210
+ aarch64eb) machine=aarch64_be-unknown ;;
187
211
  armeb) machine=armeb-unknown ;;
188
212
  arm*) machine=arm-unknown ;;
189
213
  sh3el) machine=shl-unknown ;;
@@ -192,13 +216,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
192
216
  earmv*)
193
217
  arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
194
218
  endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
195
- machine="${arch}${endian}"-unknown
219
+ machine=${arch}${endian}-unknown
196
220
  ;;
197
- *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
221
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
198
222
  esac
199
223
  # The Operating System including object format, if it has switched
200
224
  # to ELF recently (or will in the future) and ABI.
201
- case "$UNAME_MACHINE_ARCH" in
225
+ case $UNAME_MACHINE_ARCH in
202
226
  earm*)
203
227
  os=netbsdelf
204
228
  ;;
@@ -219,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
219
243
  ;;
220
244
  esac
221
245
  # Determine ABI tags.
222
- case "$UNAME_MACHINE_ARCH" in
246
+ case $UNAME_MACHINE_ARCH in
223
247
  earm*)
224
248
  expr='s/^earmv[0-9]/-eabi/;s/eb$//'
225
249
  abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -230,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
230
254
  # thus, need a distinct triplet. However, they do not need
231
255
  # kernel version information, so it can be replaced with a
232
256
  # suitable tag, in the style of linux-gnu.
233
- case "$UNAME_VERSION" in
257
+ case $UNAME_VERSION in
234
258
  Debian*)
235
259
  release='-gnu'
236
260
  ;;
@@ -241,51 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
241
265
  # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
242
266
  # contains redundant information, the shorter form:
243
267
  # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
244
- echo "$machine-${os}${release}${abi-}"
245
- exit ;;
268
+ GUESS=$machine-${os}${release}${abi-}
269
+ ;;
246
270
  *:Bitrig:*:*)
247
271
  UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
248
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
249
- exit ;;
272
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
273
+ ;;
250
274
  *:OpenBSD:*:*)
251
275
  UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
252
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
253
- exit ;;
276
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
277
+ ;;
278
+ *:SecBSD:*:*)
279
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
280
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
281
+ ;;
254
282
  *:LibertyBSD:*:*)
255
283
  UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
256
- echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
257
- exit ;;
284
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
285
+ ;;
258
286
  *:MidnightBSD:*:*)
259
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
260
- exit ;;
287
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
288
+ ;;
261
289
  *:ekkoBSD:*:*)
262
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
263
- exit ;;
290
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
291
+ ;;
264
292
  *:SolidBSD:*:*)
265
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
266
- exit ;;
293
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
294
+ ;;
267
295
  *:OS108:*:*)
268
- echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
269
- exit ;;
296
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
297
+ ;;
270
298
  macppc:MirBSD:*:*)
271
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
272
- exit ;;
299
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
300
+ ;;
273
301
  *:MirBSD:*:*)
274
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
275
- exit ;;
302
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
303
+ ;;
276
304
  *:Sortix:*:*)
277
- echo "$UNAME_MACHINE"-unknown-sortix
278
- exit ;;
305
+ GUESS=$UNAME_MACHINE-unknown-sortix
306
+ ;;
279
307
  *:Twizzler:*:*)
280
- echo "$UNAME_MACHINE"-unknown-twizzler
281
- exit ;;
308
+ GUESS=$UNAME_MACHINE-unknown-twizzler
309
+ ;;
282
310
  *:Redox:*:*)
283
- echo "$UNAME_MACHINE"-unknown-redox
284
- exit ;;
311
+ GUESS=$UNAME_MACHINE-unknown-redox
312
+ ;;
285
313
  mips:OSF1:*.*)
286
- echo mips-dec-osf1
287
- exit ;;
314
+ GUESS=mips-dec-osf1
315
+ ;;
288
316
  alpha:OSF1:*:*)
317
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
318
+ trap '' 0
289
319
  case $UNAME_RELEASE in
290
320
  *4.0)
291
321
  UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -299,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
299
329
  # covers most systems running today. This code pipes the CPU
300
330
  # types through head -n 1, so we only detect the type of CPU 0.
301
331
  ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
302
- case "$ALPHA_CPU_TYPE" in
332
+ case $ALPHA_CPU_TYPE in
303
333
  "EV4 (21064)")
304
334
  UNAME_MACHINE=alpha ;;
305
335
  "EV4.5 (21064)")
@@ -336,117 +366,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
336
366
  # A Tn.n version is a released field test version.
337
367
  # A Xn.n version is an unreleased experimental baselevel.
338
368
  # 1.2 uses "1.2" for uname -r.
339
- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
340
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
341
- exitcode=$?
342
- trap '' 0
343
- exit $exitcode ;;
369
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
370
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
371
+ ;;
344
372
  Amiga*:UNIX_System_V:4.0:*)
345
- echo m68k-unknown-sysv4
346
- exit ;;
373
+ GUESS=m68k-unknown-sysv4
374
+ ;;
347
375
  *:[Aa]miga[Oo][Ss]:*:*)
348
- echo "$UNAME_MACHINE"-unknown-amigaos
349
- exit ;;
376
+ GUESS=$UNAME_MACHINE-unknown-amigaos
377
+ ;;
350
378
  *:[Mm]orph[Oo][Ss]:*:*)
351
- echo "$UNAME_MACHINE"-unknown-morphos
352
- exit ;;
379
+ GUESS=$UNAME_MACHINE-unknown-morphos
380
+ ;;
353
381
  *:OS/390:*:*)
354
- echo i370-ibm-openedition
355
- exit ;;
382
+ GUESS=i370-ibm-openedition
383
+ ;;
356
384
  *:z/VM:*:*)
357
- echo s390-ibm-zvmoe
358
- exit ;;
385
+ GUESS=s390-ibm-zvmoe
386
+ ;;
359
387
  *:OS400:*:*)
360
- echo powerpc-ibm-os400
361
- exit ;;
388
+ GUESS=powerpc-ibm-os400
389
+ ;;
362
390
  arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
363
- echo arm-acorn-riscix"$UNAME_RELEASE"
364
- exit ;;
391
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
392
+ ;;
365
393
  arm*:riscos:*:*|arm*:RISCOS:*:*)
366
- echo arm-unknown-riscos
367
- exit ;;
394
+ GUESS=arm-unknown-riscos
395
+ ;;
368
396
  SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
369
- echo hppa1.1-hitachi-hiuxmpp
370
- exit ;;
397
+ GUESS=hppa1.1-hitachi-hiuxmpp
398
+ ;;
371
399
  Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
372
400
  # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
373
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
374
- echo pyramid-pyramid-sysv3
375
- else
376
- echo pyramid-pyramid-bsd
377
- fi
378
- exit ;;
401
+ case `(/bin/universe) 2>/dev/null` in
402
+ att) GUESS=pyramid-pyramid-sysv3 ;;
403
+ *) GUESS=pyramid-pyramid-bsd ;;
404
+ esac
405
+ ;;
379
406
  NILE*:*:*:dcosx)
380
- echo pyramid-pyramid-svr4
381
- exit ;;
407
+ GUESS=pyramid-pyramid-svr4
408
+ ;;
382
409
  DRS?6000:unix:4.0:6*)
383
- echo sparc-icl-nx6
384
- exit ;;
410
+ GUESS=sparc-icl-nx6
411
+ ;;
385
412
  DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
386
413
  case `/usr/bin/uname -p` in
387
- sparc) echo sparc-icl-nx7; exit ;;
388
- esac ;;
414
+ sparc) GUESS=sparc-icl-nx7 ;;
415
+ esac
416
+ ;;
389
417
  s390x:SunOS:*:*)
390
- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
391
- exit ;;
418
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
419
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
420
+ ;;
392
421
  sun4H:SunOS:5.*:*)
393
- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
394
- exit ;;
422
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
423
+ GUESS=sparc-hal-solaris2$SUN_REL
424
+ ;;
395
425
  sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
396
- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
397
- exit ;;
426
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
427
+ GUESS=sparc-sun-solaris2$SUN_REL
428
+ ;;
398
429
  i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
399
- echo i386-pc-auroraux"$UNAME_RELEASE"
400
- exit ;;
430
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
431
+ ;;
401
432
  i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
402
433
  set_cc_for_build
403
434
  SUN_ARCH=i386
404
435
  # If there is a compiler, see if it is configured for 64-bit objects.
405
436
  # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
406
437
  # This test works for both compilers.
407
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
438
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
408
439
  if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
409
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
440
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
410
441
  grep IS_64BIT_ARCH >/dev/null
411
442
  then
412
443
  SUN_ARCH=x86_64
413
444
  fi
414
445
  fi
415
- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
416
- exit ;;
446
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
447
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
448
+ ;;
417
449
  sun4*:SunOS:6*:*)
418
450
  # According to config.sub, this is the proper way to canonicalize
419
451
  # SunOS6. Hard to guess exactly what SunOS6 will be like, but
420
452
  # it's likely to be more like Solaris than SunOS4.
421
- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
422
- exit ;;
453
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
454
+ GUESS=sparc-sun-solaris3$SUN_REL
455
+ ;;
423
456
  sun4*:SunOS:*:*)
424
- case "`/usr/bin/arch -k`" in
457
+ case `/usr/bin/arch -k` in
425
458
  Series*|S4*)
426
459
  UNAME_RELEASE=`uname -v`
427
460
  ;;
428
461
  esac
429
462
  # Japanese Language versions have a version number like `4.1.3-JL'.
430
- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
431
- exit ;;
463
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
464
+ GUESS=sparc-sun-sunos$SUN_REL
465
+ ;;
432
466
  sun3*:SunOS:*:*)
433
- echo m68k-sun-sunos"$UNAME_RELEASE"
434
- exit ;;
467
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
468
+ ;;
435
469
  sun*:*:4.2BSD:*)
436
470
  UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
437
471
  test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
438
- case "`/bin/arch`" in
472
+ case `/bin/arch` in
439
473
  sun3)
440
- echo m68k-sun-sunos"$UNAME_RELEASE"
474
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
441
475
  ;;
442
476
  sun4)
443
- echo sparc-sun-sunos"$UNAME_RELEASE"
477
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
444
478
  ;;
445
479
  esac
446
- exit ;;
480
+ ;;
447
481
  aushp:SunOS:*:*)
448
- echo sparc-auspex-sunos"$UNAME_RELEASE"
449
- exit ;;
482
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
483
+ ;;
450
484
  # The situation for MiNT is a little confusing. The machine name
451
485
  # can be virtually everything (everything which is not
452
486
  # "atarist" or "atariste" at least should have a processor
@@ -456,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
456
490
  # MiNT. But MiNT is downward compatible to TOS, so this should
457
491
  # be no problem.
458
492
  atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
459
- echo m68k-atari-mint"$UNAME_RELEASE"
460
- exit ;;
493
+ GUESS=m68k-atari-mint$UNAME_RELEASE
494
+ ;;
461
495
  atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
462
- echo m68k-atari-mint"$UNAME_RELEASE"
463
- exit ;;
496
+ GUESS=m68k-atari-mint$UNAME_RELEASE
497
+ ;;
464
498
  *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
465
- echo m68k-atari-mint"$UNAME_RELEASE"
466
- exit ;;
499
+ GUESS=m68k-atari-mint$UNAME_RELEASE
500
+ ;;
467
501
  milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
468
- echo m68k-milan-mint"$UNAME_RELEASE"
469
- exit ;;
502
+ GUESS=m68k-milan-mint$UNAME_RELEASE
503
+ ;;
470
504
  hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
471
- echo m68k-hades-mint"$UNAME_RELEASE"
472
- exit ;;
505
+ GUESS=m68k-hades-mint$UNAME_RELEASE
506
+ ;;
473
507
  *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
474
- echo m68k-unknown-mint"$UNAME_RELEASE"
475
- exit ;;
508
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
509
+ ;;
476
510
  m68k:machten:*:*)
477
- echo m68k-apple-machten"$UNAME_RELEASE"
478
- exit ;;
511
+ GUESS=m68k-apple-machten$UNAME_RELEASE
512
+ ;;
479
513
  powerpc:machten:*:*)
480
- echo powerpc-apple-machten"$UNAME_RELEASE"
481
- exit ;;
514
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
515
+ ;;
482
516
  RISC*:Mach:*:*)
483
- echo mips-dec-mach_bsd4.3
484
- exit ;;
517
+ GUESS=mips-dec-mach_bsd4.3
518
+ ;;
485
519
  RISC*:ULTRIX:*:*)
486
- echo mips-dec-ultrix"$UNAME_RELEASE"
487
- exit ;;
520
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
521
+ ;;
488
522
  VAX*:ULTRIX*:*:*)
489
- echo vax-dec-ultrix"$UNAME_RELEASE"
490
- exit ;;
523
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
524
+ ;;
491
525
  2020:CLIX:*:* | 2430:CLIX:*:*)
492
- echo clipper-intergraph-clix"$UNAME_RELEASE"
493
- exit ;;
526
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
527
+ ;;
494
528
  mips:*:*:UMIPS | mips:*:*:RISCos)
495
529
  set_cc_for_build
496
530
  sed 's/^ //' << EOF > "$dummy.c"
@@ -518,75 +552,76 @@ EOF
518
552
  dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
519
553
  SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
520
554
  { echo "$SYSTEM_NAME"; exit; }
521
- echo mips-mips-riscos"$UNAME_RELEASE"
522
- exit ;;
555
+ GUESS=mips-mips-riscos$UNAME_RELEASE
556
+ ;;
523
557
  Motorola:PowerMAX_OS:*:*)
524
- echo powerpc-motorola-powermax
525
- exit ;;
558
+ GUESS=powerpc-motorola-powermax
559
+ ;;
526
560
  Motorola:*:4.3:PL8-*)
527
- echo powerpc-harris-powermax
528
- exit ;;
561
+ GUESS=powerpc-harris-powermax
562
+ ;;
529
563
  Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
530
- echo powerpc-harris-powermax
531
- exit ;;
564
+ GUESS=powerpc-harris-powermax
565
+ ;;
532
566
  Night_Hawk:Power_UNIX:*:*)
533
- echo powerpc-harris-powerunix
534
- exit ;;
567
+ GUESS=powerpc-harris-powerunix
568
+ ;;
535
569
  m88k:CX/UX:7*:*)
536
- echo m88k-harris-cxux7
537
- exit ;;
570
+ GUESS=m88k-harris-cxux7
571
+ ;;
538
572
  m88k:*:4*:R4*)
539
- echo m88k-motorola-sysv4
540
- exit ;;
573
+ GUESS=m88k-motorola-sysv4
574
+ ;;
541
575
  m88k:*:3*:R3*)
542
- echo m88k-motorola-sysv3
543
- exit ;;
576
+ GUESS=m88k-motorola-sysv3
577
+ ;;
544
578
  AViiON:dgux:*:*)
545
579
  # DG/UX returns AViiON for all architectures
546
580
  UNAME_PROCESSOR=`/usr/bin/uname -p`
547
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
581
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
548
582
  then
549
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
550
- [ "$TARGET_BINARY_INTERFACE"x = x ]
583
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
584
+ test "$TARGET_BINARY_INTERFACE"x = x
551
585
  then
552
- echo m88k-dg-dgux"$UNAME_RELEASE"
586
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
553
587
  else
554
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
588
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
555
589
  fi
556
590
  else
557
- echo i586-dg-dgux"$UNAME_RELEASE"
591
+ GUESS=i586-dg-dgux$UNAME_RELEASE
558
592
  fi
559
- exit ;;
593
+ ;;
560
594
  M88*:DolphinOS:*:*) # DolphinOS (SVR3)
561
- echo m88k-dolphin-sysv3
562
- exit ;;
595
+ GUESS=m88k-dolphin-sysv3
596
+ ;;
563
597
  M88*:*:R3*:*)
564
598
  # Delta 88k system running SVR3
565
- echo m88k-motorola-sysv3
566
- exit ;;
599
+ GUESS=m88k-motorola-sysv3
600
+ ;;
567
601
  XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
568
- echo m88k-tektronix-sysv3
569
- exit ;;
602
+ GUESS=m88k-tektronix-sysv3
603
+ ;;
570
604
  Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
571
- echo m68k-tektronix-bsd
572
- exit ;;
605
+ GUESS=m68k-tektronix-bsd
606
+ ;;
573
607
  *:IRIX*:*:*)
574
- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
575
- exit ;;
608
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
609
+ GUESS=mips-sgi-irix$IRIX_REL
610
+ ;;
576
611
  ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
577
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
578
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
612
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
613
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
579
614
  i*86:AIX:*:*)
580
- echo i386-ibm-aix
581
- exit ;;
615
+ GUESS=i386-ibm-aix
616
+ ;;
582
617
  ia64:AIX:*:*)
583
- if [ -x /usr/bin/oslevel ] ; then
618
+ if test -x /usr/bin/oslevel ; then
584
619
  IBM_REV=`/usr/bin/oslevel`
585
620
  else
586
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
621
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
587
622
  fi
588
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
589
- exit ;;
623
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
624
+ ;;
590
625
  *:AIX:2:3)
591
626
  if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
592
627
  set_cc_for_build
@@ -603,16 +638,16 @@ EOF
603
638
  EOF
604
639
  if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
605
640
  then
606
- echo "$SYSTEM_NAME"
641
+ GUESS=$SYSTEM_NAME
607
642
  else
608
- echo rs6000-ibm-aix3.2.5
643
+ GUESS=rs6000-ibm-aix3.2.5
609
644
  fi
610
645
  elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
611
- echo rs6000-ibm-aix3.2.4
646
+ GUESS=rs6000-ibm-aix3.2.4
612
647
  else
613
- echo rs6000-ibm-aix3.2
648
+ GUESS=rs6000-ibm-aix3.2
614
649
  fi
615
- exit ;;
650
+ ;;
616
651
  *:AIX:*:[4567])
617
652
  IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
618
653
  if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -620,56 +655,56 @@ EOF
620
655
  else
621
656
  IBM_ARCH=powerpc
622
657
  fi
623
- if [ -x /usr/bin/lslpp ] ; then
624
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
658
+ if test -x /usr/bin/lslpp ; then
659
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
625
660
  awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
626
661
  else
627
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
662
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
628
663
  fi
629
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
630
- exit ;;
664
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
665
+ ;;
631
666
  *:AIX:*:*)
632
- echo rs6000-ibm-aix
633
- exit ;;
667
+ GUESS=rs6000-ibm-aix
668
+ ;;
634
669
  ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
635
- echo romp-ibm-bsd4.4
636
- exit ;;
670
+ GUESS=romp-ibm-bsd4.4
671
+ ;;
637
672
  ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
638
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
639
- exit ;; # report: romp-ibm BSD 4.3
673
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
674
+ ;; # report: romp-ibm BSD 4.3
640
675
  *:BOSX:*:*)
641
- echo rs6000-bull-bosx
642
- exit ;;
676
+ GUESS=rs6000-bull-bosx
677
+ ;;
643
678
  DPX/2?00:B.O.S.:*:*)
644
- echo m68k-bull-sysv3
645
- exit ;;
679
+ GUESS=m68k-bull-sysv3
680
+ ;;
646
681
  9000/[34]??:4.3bsd:1.*:*)
647
- echo m68k-hp-bsd
648
- exit ;;
682
+ GUESS=m68k-hp-bsd
683
+ ;;
649
684
  hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
650
- echo m68k-hp-bsd4.4
651
- exit ;;
685
+ GUESS=m68k-hp-bsd4.4
686
+ ;;
652
687
  9000/[34678]??:HP-UX:*:*)
653
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
654
- case "$UNAME_MACHINE" in
688
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
689
+ case $UNAME_MACHINE in
655
690
  9000/31?) HP_ARCH=m68000 ;;
656
691
  9000/[34]??) HP_ARCH=m68k ;;
657
692
  9000/[678][0-9][0-9])
658
- if [ -x /usr/bin/getconf ]; then
693
+ if test -x /usr/bin/getconf; then
659
694
  sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
660
695
  sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
661
- case "$sc_cpu_version" in
696
+ case $sc_cpu_version in
662
697
  523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
663
698
  528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
664
699
  532) # CPU_PA_RISC2_0
665
- case "$sc_kernel_bits" in
700
+ case $sc_kernel_bits in
666
701
  32) HP_ARCH=hppa2.0n ;;
667
702
  64) HP_ARCH=hppa2.0w ;;
668
703
  '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
669
704
  esac ;;
670
705
  esac
671
706
  fi
672
- if [ "$HP_ARCH" = "" ]; then
707
+ if test "$HP_ARCH" = ""; then
673
708
  set_cc_for_build
674
709
  sed 's/^ //' << EOF > "$dummy.c"
675
710
 
@@ -708,7 +743,7 @@ EOF
708
743
  test -z "$HP_ARCH" && HP_ARCH=hppa
709
744
  fi ;;
710
745
  esac
711
- if [ "$HP_ARCH" = hppa2.0w ]
746
+ if test "$HP_ARCH" = hppa2.0w
712
747
  then
713
748
  set_cc_for_build
714
749
 
@@ -729,12 +764,12 @@ EOF
729
764
  HP_ARCH=hppa64
730
765
  fi
731
766
  fi
732
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
733
- exit ;;
767
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
768
+ ;;
734
769
  ia64:HP-UX:*:*)
735
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
736
- echo ia64-hp-hpux"$HPUX_REV"
737
- exit ;;
770
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
771
+ GUESS=ia64-hp-hpux$HPUX_REV
772
+ ;;
738
773
  3050*:HI-UX:*:*)
739
774
  set_cc_for_build
740
775
  sed 's/^ //' << EOF > "$dummy.c"
@@ -764,36 +799,36 @@ EOF
764
799
  EOF
765
800
  $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
766
801
  { echo "$SYSTEM_NAME"; exit; }
767
- echo unknown-hitachi-hiuxwe2
768
- exit ;;
802
+ GUESS=unknown-hitachi-hiuxwe2
803
+ ;;
769
804
  9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
770
- echo hppa1.1-hp-bsd
771
- exit ;;
805
+ GUESS=hppa1.1-hp-bsd
806
+ ;;
772
807
  9000/8??:4.3bsd:*:*)
773
- echo hppa1.0-hp-bsd
774
- exit ;;
808
+ GUESS=hppa1.0-hp-bsd
809
+ ;;
775
810
  *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
776
- echo hppa1.0-hp-mpeix
777
- exit ;;
811
+ GUESS=hppa1.0-hp-mpeix
812
+ ;;
778
813
  hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
779
- echo hppa1.1-hp-osf
780
- exit ;;
814
+ GUESS=hppa1.1-hp-osf
815
+ ;;
781
816
  hp8??:OSF1:*:*)
782
- echo hppa1.0-hp-osf
783
- exit ;;
817
+ GUESS=hppa1.0-hp-osf
818
+ ;;
784
819
  i*86:OSF1:*:*)
785
- if [ -x /usr/sbin/sysversion ] ; then
786
- echo "$UNAME_MACHINE"-unknown-osf1mk
820
+ if test -x /usr/sbin/sysversion ; then
821
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
787
822
  else
788
- echo "$UNAME_MACHINE"-unknown-osf1
823
+ GUESS=$UNAME_MACHINE-unknown-osf1
789
824
  fi
790
- exit ;;
825
+ ;;
791
826
  parisc*:Lites*:*:*)
792
- echo hppa1.1-hp-lites
793
- exit ;;
827
+ GUESS=hppa1.1-hp-lites
828
+ ;;
794
829
  C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
795
- echo c1-convex-bsd
796
- exit ;;
830
+ GUESS=c1-convex-bsd
831
+ ;;
797
832
  C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
798
833
  if getsysinfo -f scalar_acc
799
834
  then echo c32-convex-bsd
@@ -801,17 +836,18 @@ EOF
801
836
  fi
802
837
  exit ;;
803
838
  C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
804
- echo c34-convex-bsd
805
- exit ;;
839
+ GUESS=c34-convex-bsd
840
+ ;;
806
841
  C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
807
- echo c38-convex-bsd
808
- exit ;;
842
+ GUESS=c38-convex-bsd
843
+ ;;
809
844
  C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
810
- echo c4-convex-bsd
811
- exit ;;
845
+ GUESS=c4-convex-bsd
846
+ ;;
812
847
  CRAY*Y-MP:*:*:*)
813
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
814
- exit ;;
848
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
849
+ GUESS=ymp-cray-unicos$CRAY_REL
850
+ ;;
815
851
  CRAY*[A-Z]90:*:*:*)
816
852
  echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
817
853
  | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -819,112 +855,127 @@ EOF
819
855
  -e 's/\.[^.]*$/.X/'
820
856
  exit ;;
821
857
  CRAY*TS:*:*:*)
822
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
823
- exit ;;
858
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
859
+ GUESS=t90-cray-unicos$CRAY_REL
860
+ ;;
824
861
  CRAY*T3E:*:*:*)
825
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
826
- exit ;;
862
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
863
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
864
+ ;;
827
865
  CRAY*SV1:*:*:*)
828
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
829
- exit ;;
866
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
867
+ GUESS=sv1-cray-unicos$CRAY_REL
868
+ ;;
830
869
  *:UNICOS/mp:*:*)
831
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
832
- exit ;;
870
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
871
+ GUESS=craynv-cray-unicosmp$CRAY_REL
872
+ ;;
833
873
  F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
834
874
  FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
835
875
  FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
836
876
  FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
837
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
838
- exit ;;
877
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
878
+ ;;
839
879
  5000:UNIX_System_V:4.*:*)
840
880
  FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
841
881
  FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
842
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
843
- exit ;;
882
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
883
+ ;;
844
884
  i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
845
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
846
- exit ;;
885
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
886
+ ;;
847
887
  sparc*:BSD/OS:*:*)
848
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
849
- exit ;;
888
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
889
+ ;;
850
890
  *:BSD/OS:*:*)
851
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
852
- exit ;;
891
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
892
+ ;;
853
893
  arm:FreeBSD:*:*)
854
894
  UNAME_PROCESSOR=`uname -p`
855
895
  set_cc_for_build
856
896
  if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
857
897
  | grep -q __ARM_PCS_VFP
858
898
  then
859
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
899
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
900
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
860
901
  else
861
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
902
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
903
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
862
904
  fi
863
- exit ;;
905
+ ;;
864
906
  *:FreeBSD:*:*)
865
907
  UNAME_PROCESSOR=`/usr/bin/uname -p`
866
- case "$UNAME_PROCESSOR" in
908
+ case $UNAME_PROCESSOR in
867
909
  amd64)
868
910
  UNAME_PROCESSOR=x86_64 ;;
869
911
  i386)
870
912
  UNAME_PROCESSOR=i586 ;;
871
913
  esac
872
- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
873
- exit ;;
914
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
915
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
916
+ ;;
874
917
  i*:CYGWIN*:*)
875
- echo "$UNAME_MACHINE"-pc-cygwin
876
- exit ;;
918
+ GUESS=$UNAME_MACHINE-pc-cygwin
919
+ ;;
877
920
  *:MINGW64*:*)
878
- echo "$UNAME_MACHINE"-pc-mingw64
879
- exit ;;
921
+ GUESS=$UNAME_MACHINE-pc-mingw64
922
+ ;;
880
923
  *:MINGW*:*)
881
- echo "$UNAME_MACHINE"-pc-mingw32
882
- exit ;;
924
+ GUESS=$UNAME_MACHINE-pc-mingw32
925
+ ;;
883
926
  *:MSYS*:*)
884
- echo "$UNAME_MACHINE"-pc-msys
885
- exit ;;
927
+ GUESS=$UNAME_MACHINE-pc-msys
928
+ ;;
886
929
  i*:PW*:*)
887
- echo "$UNAME_MACHINE"-pc-pw32
888
- exit ;;
930
+ GUESS=$UNAME_MACHINE-pc-pw32
931
+ ;;
932
+ *:SerenityOS:*:*)
933
+ GUESS=$UNAME_MACHINE-pc-serenity
934
+ ;;
889
935
  *:Interix*:*)
890
- case "$UNAME_MACHINE" in
936
+ case $UNAME_MACHINE in
891
937
  x86)
892
- echo i586-pc-interix"$UNAME_RELEASE"
893
- exit ;;
938
+ GUESS=i586-pc-interix$UNAME_RELEASE
939
+ ;;
894
940
  authenticamd | genuineintel | EM64T)
895
- echo x86_64-unknown-interix"$UNAME_RELEASE"
896
- exit ;;
941
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
942
+ ;;
897
943
  IA64)
898
- echo ia64-unknown-interix"$UNAME_RELEASE"
899
- exit ;;
944
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
945
+ ;;
900
946
  esac ;;
901
947
  i*:UWIN*:*)
902
- echo "$UNAME_MACHINE"-pc-uwin
903
- exit ;;
948
+ GUESS=$UNAME_MACHINE-pc-uwin
949
+ ;;
904
950
  amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
905
- echo x86_64-pc-cygwin
906
- exit ;;
951
+ GUESS=x86_64-pc-cygwin
952
+ ;;
907
953
  prep*:SunOS:5.*:*)
908
- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
909
- exit ;;
954
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
955
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
956
+ ;;
910
957
  *:GNU:*:*)
911
958
  # the GNU system
912
- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
913
- exit ;;
959
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
960
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
961
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
962
+ ;;
914
963
  *:GNU/*:*:*)
915
964
  # other systems with GNU libc and userland
916
- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
917
- exit ;;
965
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
966
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
967
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
968
+ ;;
918
969
  *:Minix:*:*)
919
- echo "$UNAME_MACHINE"-unknown-minix
920
- exit ;;
970
+ GUESS=$UNAME_MACHINE-unknown-minix
971
+ ;;
921
972
  aarch64:Linux:*:*)
922
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
923
- exit ;;
973
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
974
+ ;;
924
975
  aarch64_be:Linux:*:*)
925
976
  UNAME_MACHINE=aarch64_be
926
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
927
- exit ;;
977
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
978
+ ;;
928
979
  alpha:Linux:*:*)
929
980
  case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
930
981
  EV5) UNAME_MACHINE=alphaev5 ;;
@@ -937,60 +988,63 @@ EOF
937
988
  esac
938
989
  objdump --private-headers /bin/sh | grep -q ld.so.1
939
990
  if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
940
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
941
- exit ;;
942
- arc:Linux:*:* | arceb:Linux:*:*)
943
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
944
- exit ;;
991
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
992
+ ;;
993
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
994
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
995
+ ;;
945
996
  arm*:Linux:*:*)
946
997
  set_cc_for_build
947
998
  if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
948
999
  | grep -q __ARM_EABI__
949
1000
  then
950
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1001
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
951
1002
  else
952
1003
  if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
953
1004
  | grep -q __ARM_PCS_VFP
954
1005
  then
955
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
1006
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
956
1007
  else
957
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
1008
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
958
1009
  fi
959
1010
  fi
960
- exit ;;
1011
+ ;;
961
1012
  avr32*:Linux:*:*)
962
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
963
- exit ;;
1013
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1014
+ ;;
964
1015
  cris:Linux:*:*)
965
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
966
- exit ;;
1016
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
1017
+ ;;
967
1018
  crisv32:Linux:*:*)
968
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
969
- exit ;;
1019
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
1020
+ ;;
970
1021
  e2k:Linux:*:*)
971
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
972
- exit ;;
1022
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1023
+ ;;
973
1024
  frv:Linux:*:*)
974
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
975
- exit ;;
1025
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1026
+ ;;
976
1027
  hexagon:Linux:*:*)
977
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
978
- exit ;;
1028
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1029
+ ;;
979
1030
  i*86:Linux:*:*)
980
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
981
- exit ;;
1031
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
1032
+ ;;
982
1033
  ia64:Linux:*:*)
983
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
984
- exit ;;
1034
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1035
+ ;;
985
1036
  k1om:Linux:*:*)
986
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
987
- exit ;;
1037
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1038
+ ;;
1039
+ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
1040
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1041
+ ;;
988
1042
  m32r*:Linux:*:*)
989
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
990
- exit ;;
1043
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1044
+ ;;
991
1045
  m68*:Linux:*:*)
992
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
993
- exit ;;
1046
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1047
+ ;;
994
1048
  mips:Linux:*:* | mips64:Linux:*:*)
995
1049
  set_cc_for_build
996
1050
  IS_GLIBC=0
@@ -1035,123 +1089,124 @@ EOF
1035
1089
  #endif
1036
1090
  #endif
1037
1091
  EOF
1038
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
1092
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
1093
+ eval "$cc_set_vars"
1039
1094
  test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
1040
1095
  ;;
1041
1096
  mips64el:Linux:*:*)
1042
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1043
- exit ;;
1097
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1098
+ ;;
1044
1099
  openrisc*:Linux:*:*)
1045
- echo or1k-unknown-linux-"$LIBC"
1046
- exit ;;
1100
+ GUESS=or1k-unknown-linux-$LIBC
1101
+ ;;
1047
1102
  or32:Linux:*:* | or1k*:Linux:*:*)
1048
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1049
- exit ;;
1103
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1104
+ ;;
1050
1105
  padre:Linux:*:*)
1051
- echo sparc-unknown-linux-"$LIBC"
1052
- exit ;;
1106
+ GUESS=sparc-unknown-linux-$LIBC
1107
+ ;;
1053
1108
  parisc64:Linux:*:* | hppa64:Linux:*:*)
1054
- echo hppa64-unknown-linux-"$LIBC"
1055
- exit ;;
1109
+ GUESS=hppa64-unknown-linux-$LIBC
1110
+ ;;
1056
1111
  parisc:Linux:*:* | hppa:Linux:*:*)
1057
1112
  # Look for CPU level
1058
1113
  case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1059
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
1060
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
1061
- *) echo hppa-unknown-linux-"$LIBC" ;;
1114
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
1115
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
1116
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
1062
1117
  esac
1063
- exit ;;
1118
+ ;;
1064
1119
  ppc64:Linux:*:*)
1065
- echo powerpc64-unknown-linux-"$LIBC"
1066
- exit ;;
1120
+ GUESS=powerpc64-unknown-linux-$LIBC
1121
+ ;;
1067
1122
  ppc:Linux:*:*)
1068
- echo powerpc-unknown-linux-"$LIBC"
1069
- exit ;;
1123
+ GUESS=powerpc-unknown-linux-$LIBC
1124
+ ;;
1070
1125
  ppc64le:Linux:*:*)
1071
- echo powerpc64le-unknown-linux-"$LIBC"
1072
- exit ;;
1126
+ GUESS=powerpc64le-unknown-linux-$LIBC
1127
+ ;;
1073
1128
  ppcle:Linux:*:*)
1074
- echo powerpcle-unknown-linux-"$LIBC"
1075
- exit ;;
1076
- riscv32:Linux:*:* | riscv64:Linux:*:*)
1077
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1078
- exit ;;
1129
+ GUESS=powerpcle-unknown-linux-$LIBC
1130
+ ;;
1131
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
1132
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1133
+ ;;
1079
1134
  s390:Linux:*:* | s390x:Linux:*:*)
1080
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
1081
- exit ;;
1135
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
1136
+ ;;
1082
1137
  sh64*:Linux:*:*)
1083
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1084
- exit ;;
1138
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1139
+ ;;
1085
1140
  sh*:Linux:*:*)
1086
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1087
- exit ;;
1141
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1142
+ ;;
1088
1143
  sparc:Linux:*:* | sparc64:Linux:*:*)
1089
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1090
- exit ;;
1144
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1145
+ ;;
1091
1146
  tile*:Linux:*:*)
1092
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1093
- exit ;;
1147
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1148
+ ;;
1094
1149
  vax:Linux:*:*)
1095
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
1096
- exit ;;
1150
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
1151
+ ;;
1097
1152
  x86_64:Linux:*:*)
1098
1153
  set_cc_for_build
1099
1154
  LIBCABI=$LIBC
1100
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1155
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
1101
1156
  if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
1102
1157
  (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1103
1158
  grep IS_X32 >/dev/null
1104
1159
  then
1105
- LIBCABI="$LIBC"x32
1160
+ LIBCABI=${LIBC}x32
1106
1161
  fi
1107
1162
  fi
1108
- echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
1109
- exit ;;
1163
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
1164
+ ;;
1110
1165
  xtensa*:Linux:*:*)
1111
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
1112
- exit ;;
1166
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
1167
+ ;;
1113
1168
  i*86:DYNIX/ptx:4*:*)
1114
1169
  # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1115
1170
  # earlier versions are messed up and put the nodename in both
1116
1171
  # sysname and nodename.
1117
- echo i386-sequent-sysv4
1118
- exit ;;
1172
+ GUESS=i386-sequent-sysv4
1173
+ ;;
1119
1174
  i*86:UNIX_SV:4.2MP:2.*)
1120
1175
  # Unixware is an offshoot of SVR4, but it has its own version
1121
1176
  # number series starting with 2...
1122
1177
  # I am not positive that other SVR4 systems won't match this,
1123
1178
  # I just have to hope. -- rms.
1124
1179
  # Use sysv4.2uw... so that sysv4* matches it.
1125
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
1126
- exit ;;
1180
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
1181
+ ;;
1127
1182
  i*86:OS/2:*:*)
1128
1183
  # If we were able to find `uname', then EMX Unix compatibility
1129
1184
  # is probably installed.
1130
- echo "$UNAME_MACHINE"-pc-os2-emx
1131
- exit ;;
1185
+ GUESS=$UNAME_MACHINE-pc-os2-emx
1186
+ ;;
1132
1187
  i*86:XTS-300:*:STOP)
1133
- echo "$UNAME_MACHINE"-unknown-stop
1134
- exit ;;
1188
+ GUESS=$UNAME_MACHINE-unknown-stop
1189
+ ;;
1135
1190
  i*86:atheos:*:*)
1136
- echo "$UNAME_MACHINE"-unknown-atheos
1137
- exit ;;
1191
+ GUESS=$UNAME_MACHINE-unknown-atheos
1192
+ ;;
1138
1193
  i*86:syllable:*:*)
1139
- echo "$UNAME_MACHINE"-pc-syllable
1140
- exit ;;
1194
+ GUESS=$UNAME_MACHINE-pc-syllable
1195
+ ;;
1141
1196
  i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1142
- echo i386-unknown-lynxos"$UNAME_RELEASE"
1143
- exit ;;
1197
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
1198
+ ;;
1144
1199
  i*86:*DOS:*:*)
1145
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
1146
- exit ;;
1200
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
1201
+ ;;
1147
1202
  i*86:*:4.*:*)
1148
1203
  UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
1149
1204
  if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1150
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
1205
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
1151
1206
  else
1152
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
1207
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
1153
1208
  fi
1154
- exit ;;
1209
+ ;;
1155
1210
  i*86:*:5:[678]*)
1156
1211
  # UnixWare 7.x, OpenUNIX and OpenServer 6.
1157
1212
  case `/bin/uname -X | grep "^Machine"` in
@@ -1159,12 +1214,12 @@ EOF
1159
1214
  *Pentium) UNAME_MACHINE=i586 ;;
1160
1215
  *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1161
1216
  esac
1162
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
1163
- exit ;;
1217
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1218
+ ;;
1164
1219
  i*86:*:3.2:*)
1165
1220
  if test -f /usr/options/cb.name; then
1166
1221
  UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1167
- echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
1222
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
1168
1223
  elif /bin/uname -X 2>/dev/null >/dev/null ; then
1169
1224
  UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1170
1225
  (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1174,11 +1229,11 @@ EOF
1174
1229
  && UNAME_MACHINE=i686
1175
1230
  (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1176
1231
  && UNAME_MACHINE=i686
1177
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
1232
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
1178
1233
  else
1179
- echo "$UNAME_MACHINE"-pc-sysv32
1234
+ GUESS=$UNAME_MACHINE-pc-sysv32
1180
1235
  fi
1181
- exit ;;
1236
+ ;;
1182
1237
  pc:*:*:*)
1183
1238
  # Left here for compatibility:
1184
1239
  # uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1186,31 +1241,31 @@ EOF
1186
1241
  # Note: whatever this is, it MUST be the same as what config.sub
1187
1242
  # prints for the "djgpp" host, or else GDB configure will decide that
1188
1243
  # this is a cross-build.
1189
- echo i586-pc-msdosdjgpp
1190
- exit ;;
1244
+ GUESS=i586-pc-msdosdjgpp
1245
+ ;;
1191
1246
  Intel:Mach:3*:*)
1192
- echo i386-pc-mach3
1193
- exit ;;
1247
+ GUESS=i386-pc-mach3
1248
+ ;;
1194
1249
  paragon:*:*:*)
1195
- echo i860-intel-osf1
1196
- exit ;;
1250
+ GUESS=i860-intel-osf1
1251
+ ;;
1197
1252
  i860:*:4.*:*) # i860-SVR4
1198
1253
  if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1199
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
1254
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
1200
1255
  else # Add other i860-SVR4 vendors below as they are discovered.
1201
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
1256
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
1202
1257
  fi
1203
- exit ;;
1258
+ ;;
1204
1259
  mini*:CTIX:SYS*5:*)
1205
1260
  # "miniframe"
1206
- echo m68010-convergent-sysv
1207
- exit ;;
1261
+ GUESS=m68010-convergent-sysv
1262
+ ;;
1208
1263
  mc68k:UNIX:SYSTEM5:3.51m)
1209
- echo m68k-convergent-sysv
1210
- exit ;;
1264
+ GUESS=m68k-convergent-sysv
1265
+ ;;
1211
1266
  M680?0:D-NIX:5.3:*)
1212
- echo m68k-diab-dnix
1213
- exit ;;
1267
+ GUESS=m68k-diab-dnix
1268
+ ;;
1214
1269
  M68*:*:R3V[5678]*:*)
1215
1270
  test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1216
1271
  3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1235,116 +1290,116 @@ EOF
1235
1290
  /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1236
1291
  && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
1237
1292
  m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1238
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
1239
- exit ;;
1293
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
1294
+ ;;
1240
1295
  mc68030:UNIX_System_V:4.*:*)
1241
- echo m68k-atari-sysv4
1242
- exit ;;
1296
+ GUESS=m68k-atari-sysv4
1297
+ ;;
1243
1298
  TSUNAMI:LynxOS:2.*:*)
1244
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
1245
- exit ;;
1299
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
1300
+ ;;
1246
1301
  rs6000:LynxOS:2.*:*)
1247
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
1248
- exit ;;
1302
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
1303
+ ;;
1249
1304
  PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1250
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
1251
- exit ;;
1305
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
1306
+ ;;
1252
1307
  SM[BE]S:UNIX_SV:*:*)
1253
- echo mips-dde-sysv"$UNAME_RELEASE"
1254
- exit ;;
1308
+ GUESS=mips-dde-sysv$UNAME_RELEASE
1309
+ ;;
1255
1310
  RM*:ReliantUNIX-*:*:*)
1256
- echo mips-sni-sysv4
1257
- exit ;;
1311
+ GUESS=mips-sni-sysv4
1312
+ ;;
1258
1313
  RM*:SINIX-*:*:*)
1259
- echo mips-sni-sysv4
1260
- exit ;;
1314
+ GUESS=mips-sni-sysv4
1315
+ ;;
1261
1316
  *:SINIX-*:*:*)
1262
1317
  if uname -p 2>/dev/null >/dev/null ; then
1263
1318
  UNAME_MACHINE=`(uname -p) 2>/dev/null`
1264
- echo "$UNAME_MACHINE"-sni-sysv4
1319
+ GUESS=$UNAME_MACHINE-sni-sysv4
1265
1320
  else
1266
- echo ns32k-sni-sysv
1321
+ GUESS=ns32k-sni-sysv
1267
1322
  fi
1268
- exit ;;
1323
+ ;;
1269
1324
  PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1270
1325
  # says <Richard.M.Bartel@ccMail.Census.GOV>
1271
- echo i586-unisys-sysv4
1272
- exit ;;
1326
+ GUESS=i586-unisys-sysv4
1327
+ ;;
1273
1328
  *:UNIX_System_V:4*:FTX*)
1274
1329
  # From Gerald Hewes <hewes@openmarket.com>.
1275
1330
  # How about differentiating between stratus architectures? -djm
1276
- echo hppa1.1-stratus-sysv4
1277
- exit ;;
1331
+ GUESS=hppa1.1-stratus-sysv4
1332
+ ;;
1278
1333
  *:*:*:FTX*)
1279
1334
  # From seanf@swdc.stratus.com.
1280
- echo i860-stratus-sysv4
1281
- exit ;;
1335
+ GUESS=i860-stratus-sysv4
1336
+ ;;
1282
1337
  i*86:VOS:*:*)
1283
1338
  # From Paul.Green@stratus.com.
1284
- echo "$UNAME_MACHINE"-stratus-vos
1285
- exit ;;
1339
+ GUESS=$UNAME_MACHINE-stratus-vos
1340
+ ;;
1286
1341
  *:VOS:*:*)
1287
1342
  # From Paul.Green@stratus.com.
1288
- echo hppa1.1-stratus-vos
1289
- exit ;;
1343
+ GUESS=hppa1.1-stratus-vos
1344
+ ;;
1290
1345
  mc68*:A/UX:*:*)
1291
- echo m68k-apple-aux"$UNAME_RELEASE"
1292
- exit ;;
1346
+ GUESS=m68k-apple-aux$UNAME_RELEASE
1347
+ ;;
1293
1348
  news*:NEWS-OS:6*:*)
1294
- echo mips-sony-newsos6
1295
- exit ;;
1349
+ GUESS=mips-sony-newsos6
1350
+ ;;
1296
1351
  R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1297
- if [ -d /usr/nec ]; then
1298
- echo mips-nec-sysv"$UNAME_RELEASE"
1352
+ if test -d /usr/nec; then
1353
+ GUESS=mips-nec-sysv$UNAME_RELEASE
1299
1354
  else
1300
- echo mips-unknown-sysv"$UNAME_RELEASE"
1355
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
1301
1356
  fi
1302
- exit ;;
1357
+ ;;
1303
1358
  BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1304
- echo powerpc-be-beos
1305
- exit ;;
1359
+ GUESS=powerpc-be-beos
1360
+ ;;
1306
1361
  BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1307
- echo powerpc-apple-beos
1308
- exit ;;
1362
+ GUESS=powerpc-apple-beos
1363
+ ;;
1309
1364
  BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1310
- echo i586-pc-beos
1311
- exit ;;
1365
+ GUESS=i586-pc-beos
1366
+ ;;
1312
1367
  BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
1313
- echo i586-pc-haiku
1314
- exit ;;
1368
+ GUESS=i586-pc-haiku
1369
+ ;;
1315
1370
  x86_64:Haiku:*:*)
1316
- echo x86_64-unknown-haiku
1317
- exit ;;
1371
+ GUESS=x86_64-unknown-haiku
1372
+ ;;
1318
1373
  SX-4:SUPER-UX:*:*)
1319
- echo sx4-nec-superux"$UNAME_RELEASE"
1320
- exit ;;
1374
+ GUESS=sx4-nec-superux$UNAME_RELEASE
1375
+ ;;
1321
1376
  SX-5:SUPER-UX:*:*)
1322
- echo sx5-nec-superux"$UNAME_RELEASE"
1323
- exit ;;
1377
+ GUESS=sx5-nec-superux$UNAME_RELEASE
1378
+ ;;
1324
1379
  SX-6:SUPER-UX:*:*)
1325
- echo sx6-nec-superux"$UNAME_RELEASE"
1326
- exit ;;
1380
+ GUESS=sx6-nec-superux$UNAME_RELEASE
1381
+ ;;
1327
1382
  SX-7:SUPER-UX:*:*)
1328
- echo sx7-nec-superux"$UNAME_RELEASE"
1329
- exit ;;
1383
+ GUESS=sx7-nec-superux$UNAME_RELEASE
1384
+ ;;
1330
1385
  SX-8:SUPER-UX:*:*)
1331
- echo sx8-nec-superux"$UNAME_RELEASE"
1332
- exit ;;
1386
+ GUESS=sx8-nec-superux$UNAME_RELEASE
1387
+ ;;
1333
1388
  SX-8R:SUPER-UX:*:*)
1334
- echo sx8r-nec-superux"$UNAME_RELEASE"
1335
- exit ;;
1389
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
1390
+ ;;
1336
1391
  SX-ACE:SUPER-UX:*:*)
1337
- echo sxace-nec-superux"$UNAME_RELEASE"
1338
- exit ;;
1392
+ GUESS=sxace-nec-superux$UNAME_RELEASE
1393
+ ;;
1339
1394
  Power*:Rhapsody:*:*)
1340
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
1341
- exit ;;
1395
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
1396
+ ;;
1342
1397
  *:Rhapsody:*:*)
1343
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
1344
- exit ;;
1398
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
1399
+ ;;
1345
1400
  arm64:Darwin:*:*)
1346
- echo aarch64-apple-darwin"$UNAME_RELEASE"
1347
- exit ;;
1401
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
1402
+ ;;
1348
1403
  *:Darwin:*:*)
1349
1404
  UNAME_PROCESSOR=`uname -p`
1350
1405
  case $UNAME_PROCESSOR in
@@ -1359,7 +1414,7 @@ EOF
1359
1414
  else
1360
1415
  set_cc_for_build
1361
1416
  fi
1362
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
1417
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
1363
1418
  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1364
1419
  (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1365
1420
  grep IS_64BIT_ARCH >/dev/null
@@ -1380,109 +1435,119 @@ EOF
1380
1435
  # uname -m returns i386 or x86_64
1381
1436
  UNAME_PROCESSOR=$UNAME_MACHINE
1382
1437
  fi
1383
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
1384
- exit ;;
1438
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
1439
+ ;;
1385
1440
  *:procnto*:*:* | *:QNX:[0123456789]*:*)
1386
1441
  UNAME_PROCESSOR=`uname -p`
1387
1442
  if test "$UNAME_PROCESSOR" = x86; then
1388
1443
  UNAME_PROCESSOR=i386
1389
1444
  UNAME_MACHINE=pc
1390
1445
  fi
1391
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
1392
- exit ;;
1446
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
1447
+ ;;
1393
1448
  *:QNX:*:4*)
1394
- echo i386-pc-qnx
1395
- exit ;;
1449
+ GUESS=i386-pc-qnx
1450
+ ;;
1396
1451
  NEO-*:NONSTOP_KERNEL:*:*)
1397
- echo neo-tandem-nsk"$UNAME_RELEASE"
1398
- exit ;;
1452
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
1453
+ ;;
1399
1454
  NSE-*:NONSTOP_KERNEL:*:*)
1400
- echo nse-tandem-nsk"$UNAME_RELEASE"
1401
- exit ;;
1455
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
1456
+ ;;
1402
1457
  NSR-*:NONSTOP_KERNEL:*:*)
1403
- echo nsr-tandem-nsk"$UNAME_RELEASE"
1404
- exit ;;
1458
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
1459
+ ;;
1405
1460
  NSV-*:NONSTOP_KERNEL:*:*)
1406
- echo nsv-tandem-nsk"$UNAME_RELEASE"
1407
- exit ;;
1461
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
1462
+ ;;
1408
1463
  NSX-*:NONSTOP_KERNEL:*:*)
1409
- echo nsx-tandem-nsk"$UNAME_RELEASE"
1410
- exit ;;
1464
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
1465
+ ;;
1411
1466
  *:NonStop-UX:*:*)
1412
- echo mips-compaq-nonstopux
1413
- exit ;;
1467
+ GUESS=mips-compaq-nonstopux
1468
+ ;;
1414
1469
  BS2000:POSIX*:*:*)
1415
- echo bs2000-siemens-sysv
1416
- exit ;;
1470
+ GUESS=bs2000-siemens-sysv
1471
+ ;;
1417
1472
  DS/*:UNIX_System_V:*:*)
1418
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
1419
- exit ;;
1473
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
1474
+ ;;
1420
1475
  *:Plan9:*:*)
1421
1476
  # "uname -m" is not consistent, so use $cputype instead. 386
1422
1477
  # is converted to i386 for consistency with other x86
1423
1478
  # operating systems.
1424
- # shellcheck disable=SC2154
1425
- if test "$cputype" = 386; then
1479
+ if test "${cputype-}" = 386; then
1426
1480
  UNAME_MACHINE=i386
1427
- else
1428
- UNAME_MACHINE="$cputype"
1481
+ elif test "x${cputype-}" != x; then
1482
+ UNAME_MACHINE=$cputype
1429
1483
  fi
1430
- echo "$UNAME_MACHINE"-unknown-plan9
1431
- exit ;;
1484
+ GUESS=$UNAME_MACHINE-unknown-plan9
1485
+ ;;
1432
1486
  *:TOPS-10:*:*)
1433
- echo pdp10-unknown-tops10
1434
- exit ;;
1487
+ GUESS=pdp10-unknown-tops10
1488
+ ;;
1435
1489
  *:TENEX:*:*)
1436
- echo pdp10-unknown-tenex
1437
- exit ;;
1490
+ GUESS=pdp10-unknown-tenex
1491
+ ;;
1438
1492
  KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1439
- echo pdp10-dec-tops20
1440
- exit ;;
1493
+ GUESS=pdp10-dec-tops20
1494
+ ;;
1441
1495
  XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1442
- echo pdp10-xkl-tops20
1443
- exit ;;
1496
+ GUESS=pdp10-xkl-tops20
1497
+ ;;
1444
1498
  *:TOPS-20:*:*)
1445
- echo pdp10-unknown-tops20
1446
- exit ;;
1499
+ GUESS=pdp10-unknown-tops20
1500
+ ;;
1447
1501
  *:ITS:*:*)
1448
- echo pdp10-unknown-its
1449
- exit ;;
1502
+ GUESS=pdp10-unknown-its
1503
+ ;;
1450
1504
  SEI:*:*:SEIUX)
1451
- echo mips-sei-seiux"$UNAME_RELEASE"
1452
- exit ;;
1505
+ GUESS=mips-sei-seiux$UNAME_RELEASE
1506
+ ;;
1453
1507
  *:DragonFly:*:*)
1454
- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
1455
- exit ;;
1508
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
1509
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
1510
+ ;;
1456
1511
  *:*VMS:*:*)
1457
1512
  UNAME_MACHINE=`(uname -p) 2>/dev/null`
1458
- case "$UNAME_MACHINE" in
1459
- A*) echo alpha-dec-vms ; exit ;;
1460
- I*) echo ia64-dec-vms ; exit ;;
1461
- V*) echo vax-dec-vms ; exit ;;
1513
+ case $UNAME_MACHINE in
1514
+ A*) GUESS=alpha-dec-vms ;;
1515
+ I*) GUESS=ia64-dec-vms ;;
1516
+ V*) GUESS=vax-dec-vms ;;
1462
1517
  esac ;;
1463
1518
  *:XENIX:*:SysV)
1464
- echo i386-pc-xenix
1465
- exit ;;
1519
+ GUESS=i386-pc-xenix
1520
+ ;;
1466
1521
  i*86:skyos:*:*)
1467
- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
1468
- exit ;;
1522
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
1523
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
1524
+ ;;
1469
1525
  i*86:rdos:*:*)
1470
- echo "$UNAME_MACHINE"-pc-rdos
1471
- exit ;;
1472
- i*86:AROS:*:*)
1473
- echo "$UNAME_MACHINE"-pc-aros
1474
- exit ;;
1526
+ GUESS=$UNAME_MACHINE-pc-rdos
1527
+ ;;
1528
+ i*86:Fiwix:*:*)
1529
+ GUESS=$UNAME_MACHINE-pc-fiwix
1530
+ ;;
1531
+ *:AROS:*:*)
1532
+ GUESS=$UNAME_MACHINE-unknown-aros
1533
+ ;;
1475
1534
  x86_64:VMkernel:*:*)
1476
- echo "$UNAME_MACHINE"-unknown-esx
1477
- exit ;;
1535
+ GUESS=$UNAME_MACHINE-unknown-esx
1536
+ ;;
1478
1537
  amd64:Isilon\ OneFS:*:*)
1479
- echo x86_64-unknown-onefs
1480
- exit ;;
1538
+ GUESS=x86_64-unknown-onefs
1539
+ ;;
1481
1540
  *:Unleashed:*:*)
1482
- echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
1483
- exit ;;
1541
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
1542
+ ;;
1484
1543
  esac
1485
1544
 
1545
+ # Do we have a guess based on uname results?
1546
+ if test "x$GUESS" != x; then
1547
+ echo "$GUESS"
1548
+ exit
1549
+ fi
1550
+
1486
1551
  # No uname command or uname output not recognized.
1487
1552
  set_cc_for_build
1488
1553
  cat > "$dummy.c" <<EOF
@@ -1614,7 +1679,7 @@ main ()
1614
1679
  }
1615
1680
  EOF
1616
1681
 
1617
- $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1682
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
1618
1683
  { echo "$SYSTEM_NAME"; exit; }
1619
1684
 
1620
1685
  # Apollos put the system type in the environment.
@@ -1622,7 +1687,7 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
1622
1687
 
1623
1688
  echo "$0: unable to guess system type" >&2
1624
1689
 
1625
- case "$UNAME_MACHINE:$UNAME_SYSTEM" in
1690
+ case $UNAME_MACHINE:$UNAME_SYSTEM in
1626
1691
  mips:Linux | mips64:Linux)
1627
1692
  # If we got here on MIPS GNU/Linux, output extra information.
1628
1693
  cat >&2 <<EOF
@@ -1639,14 +1704,16 @@ This script (version $timestamp), has failed to recognize the
1639
1704
  operating system you are using. If your script is old, overwrite *all*
1640
1705
  copies of config.guess and config.sub with the latest versions from:
1641
1706
 
1642
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
1707
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
1643
1708
  and
1644
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1709
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
1645
1710
  EOF
1646
1711
 
1647
- year=`echo $timestamp | sed 's,-.*,,'`
1712
+ our_year=`echo $timestamp | sed 's,-.*,,'`
1713
+ thisyear=`date +%Y`
1648
1714
  # shellcheck disable=SC2003
1649
- if test "`expr "\`date +%Y\`" - "$year"`" -lt 3 ; then
1715
+ script_age=`expr "$thisyear" - "$our_year"`
1716
+ if test "$script_age" -lt 3 ; then
1650
1717
  cat >&2 <<EOF
1651
1718
 
1652
1719
  If $0 has already been updated, send the following data and any