ffi 0.5.0 → 0.6.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 (212) hide show
  1. data/LICENSE +1 -27
  2. data/Rakefile +9 -12
  3. data/ext/ffi_c/AbstractMemory.c +11 -8
  4. data/ext/ffi_c/AbstractMemory.h +23 -21
  5. data/ext/ffi_c/AutoPointer.c +0 -1
  6. data/ext/ffi_c/Buffer.c +24 -8
  7. data/ext/ffi_c/Call.c +28 -0
  8. data/ext/ffi_c/Call.h +8 -4
  9. data/ext/ffi_c/ClosurePool.c +7 -5
  10. data/ext/ffi_c/DynamicLibrary.c +0 -1
  11. data/ext/ffi_c/Function.c +19 -2
  12. data/ext/ffi_c/MemoryPointer.c +3 -3
  13. data/ext/ffi_c/MethodHandle.c +1 -1
  14. data/ext/ffi_c/Pointer.c +23 -9
  15. data/ext/ffi_c/Struct.c +142 -69
  16. data/ext/ffi_c/Struct.h +16 -7
  17. data/ext/ffi_c/StructLayout.c +92 -55
  18. data/ext/ffi_c/Type.c +5 -22
  19. data/ext/ffi_c/Type.h +1 -1
  20. data/ext/ffi_c/Types.c +8 -2
  21. data/ext/ffi_c/Types.h +2 -0
  22. data/ext/ffi_c/Variadic.c +7 -19
  23. data/ext/ffi_c/endian.h +1 -1
  24. data/ext/ffi_c/extconf.rb +20 -11
  25. data/ext/ffi_c/libffi/ChangeLog +900 -84
  26. data/ext/ffi_c/libffi/ChangeLog.libffi +311 -0
  27. data/ext/ffi_c/libffi/LICENSE +1 -1
  28. data/ext/ffi_c/libffi/Makefile.am +14 -4
  29. data/ext/ffi_c/libffi/Makefile.in +362 -211
  30. data/ext/ffi_c/libffi/README +70 -92
  31. data/ext/ffi_c/libffi/aclocal.m4 +6068 -4586
  32. data/ext/ffi_c/libffi/config.guess +125 -143
  33. data/ext/ffi_c/libffi/config.sub +103 -27
  34. data/ext/ffi_c/libffi/configure +11364 -18497
  35. data/ext/ffi_c/libffi/configure.ac +43 -4
  36. data/ext/ffi_c/libffi/doc/libffi.info +15 -15
  37. data/ext/ffi_c/libffi/doc/libffi.texi +1 -1
  38. data/ext/ffi_c/libffi/doc/stamp-vti +4 -4
  39. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  40. data/ext/ffi_c/libffi/fficonfig.h.in +24 -3
  41. data/ext/ffi_c/libffi/include/Makefile.am +1 -1
  42. data/ext/ffi_c/libffi/include/Makefile.in +97 -50
  43. data/ext/ffi_c/libffi/include/ffi.h.in +8 -2
  44. data/ext/ffi_c/libffi/include/ffi_common.h +24 -0
  45. data/ext/ffi_c/libffi/libtool-version +1 -1
  46. data/ext/ffi_c/libffi/ltmain.sh +7346 -5870
  47. data/ext/ffi_c/libffi/m4/libtool.m4 +7360 -0
  48. data/ext/ffi_c/libffi/m4/ltoptions.m4 +368 -0
  49. data/ext/ffi_c/libffi/m4/ltsugar.m4 +123 -0
  50. data/ext/ffi_c/libffi/m4/ltversion.m4 +23 -0
  51. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +92 -0
  52. data/ext/ffi_c/libffi/man/Makefile.in +115 -62
  53. data/ext/ffi_c/libffi/man/ffi_call.3 +3 -3
  54. data/ext/ffi_c/libffi/missing +15 -8
  55. data/ext/ffi_c/libffi/src/arm/sysv.S +15 -8
  56. data/ext/ffi_c/libffi/src/avr32/ffi.c +421 -0
  57. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +50 -0
  58. data/ext/ffi_c/libffi/src/avr32/sysv.S +208 -0
  59. data/ext/ffi_c/libffi/src/closures.c +47 -10
  60. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  61. data/ext/ffi_c/libffi/src/java_raw_api.c +0 -3
  62. data/ext/ffi_c/libffi/src/mips/ffi.c +135 -32
  63. data/ext/ffi_c/libffi/src/mips/ffitarget.h +37 -4
  64. data/ext/ffi_c/libffi/src/mips/n32.S +67 -10
  65. data/ext/ffi_c/libffi/src/mips/o32.S +8 -8
  66. data/ext/ffi_c/libffi/src/pa/ffi.c +7 -0
  67. data/ext/ffi_c/libffi/src/powerpc/aix.S +163 -64
  68. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +308 -112
  69. data/ext/ffi_c/libffi/src/powerpc/ffi.c +20 -7
  70. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +208 -80
  71. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +11 -3
  72. data/ext/ffi_c/libffi/src/powerpc/sysv.S +12 -23
  73. data/ext/ffi_c/libffi/src/s390/sysv.S +1 -1
  74. data/ext/ffi_c/libffi/src/sh/sysv.S +9 -9
  75. data/ext/ffi_c/libffi/src/sh64/ffi.c +37 -22
  76. data/ext/ffi_c/libffi/src/sh64/sysv.S +23 -14
  77. data/ext/ffi_c/libffi/src/sparc/ffi.c +21 -6
  78. data/ext/ffi_c/libffi/src/sparc/v8.S +55 -14
  79. data/ext/ffi_c/libffi/src/x86/darwin.S +10 -9
  80. data/ext/ffi_c/libffi/src/x86/ffi.c +293 -86
  81. data/ext/ffi_c/libffi/src/x86/ffi64.c +73 -19
  82. data/ext/ffi_c/libffi/src/x86/ffitarget.h +30 -0
  83. data/ext/ffi_c/libffi/src/x86/sysv.S +21 -4
  84. data/ext/ffi_c/libffi/src/x86/unix64.S +8 -4
  85. data/ext/ffi_c/libffi/src/x86/win32.S +633 -147
  86. data/ext/ffi_c/libffi/src/x86/win64.S +460 -0
  87. data/ext/ffi_c/libffi/testsuite/Makefile.am +63 -54
  88. data/ext/ffi_c/libffi/testsuite/Makefile.in +112 -77
  89. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +12 -1
  90. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -4
  91. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +7 -15
  92. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +7 -15
  93. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +7 -15
  94. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +7 -15
  95. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +7 -15
  96. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +7 -14
  97. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +7 -15
  98. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +95 -0
  99. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +6 -14
  100. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -12
  101. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -12
  102. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -12
  103. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -12
  104. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -12
  105. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -12
  106. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -12
  107. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +4 -12
  108. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -12
  109. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -12
  110. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -12
  111. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -12
  112. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -12
  113. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -12
  114. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -12
  115. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -12
  116. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +4 -12
  117. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -12
  118. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -12
  119. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -12
  120. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -12
  121. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -12
  122. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -12
  123. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -12
  124. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -12
  125. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -12
  126. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -12
  127. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +134 -0
  128. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +117 -0
  129. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +11 -17
  130. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -12
  131. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -12
  132. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +7 -15
  133. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -12
  134. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -12
  135. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +7 -15
  136. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +66 -0
  137. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +4 -12
  138. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +57 -0
  139. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +4 -13
  140. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +105 -0
  141. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +57 -0
  142. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +4 -12
  143. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +4 -12
  144. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +4 -12
  145. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +4 -12
  146. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +4 -12
  147. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +4 -12
  148. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +74 -0
  149. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +140 -0
  150. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +4 -12
  151. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +4 -12
  152. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +4 -12
  153. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +4 -12
  154. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +4 -12
  155. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +8 -16
  156. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +4 -12
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +37 -0
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +25 -0
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +31 -0
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +2 -1
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +342 -0
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +4 -12
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +4 -12
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +4 -12
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +4 -12
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +4 -12
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +4 -12
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +4 -12
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +4 -12
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +4 -12
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +4 -12
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +4 -12
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +4 -12
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +1 -1
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +145 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +148 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +124 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +124 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +70 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +10 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +4 -5
  183. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +17 -16
  184. data/ext/ffi_c/libffi/texinfo.tex +155 -427
  185. data/ext/ffi_c/libffi.bsd.mk +1 -1
  186. data/lib/ffi/autopointer.rb +79 -20
  187. data/lib/ffi/buffer.rb +4 -0
  188. data/lib/ffi/callback.rb +4 -10
  189. data/lib/ffi/enum.rb +28 -0
  190. data/lib/ffi/ffi.rb +0 -1
  191. data/lib/ffi/io.rb +28 -0
  192. data/lib/ffi/library.rb +237 -182
  193. data/lib/ffi/memorypointer.rb +28 -62
  194. data/lib/ffi/platform.rb +27 -0
  195. data/lib/ffi/pointer.rb +28 -0
  196. data/lib/ffi/struct.rb +55 -1
  197. data/lib/ffi/types.rb +29 -0
  198. data/lib/ffi/variadic.rb +29 -0
  199. data/spec/ffi/library_spec.rb +31 -5
  200. data/spec/ffi/managed_struct_spec.rb +1 -1
  201. data/spec/ffi/pointer_spec.rb +1 -1
  202. data/spec/ffi/rbx/attach_function_spec.rb +2 -1
  203. data/spec/ffi/rbx/memory_pointer_spec.rb +2 -1
  204. data/spec/ffi/spec_helper.rb +5 -1
  205. data/spec/ffi/struct_spec.rb +77 -0
  206. metadata +28 -18
  207. data/ext/ffi_c/libffi/TODO +0 -1
  208. data/ext/ffi_c/libffi/ltcf-c.sh +0 -861
  209. data/ext/ffi_c/libffi/ltcf-cxx.sh +0 -1069
  210. data/ext/ffi_c/libffi/ltcf-gcj.sh +0 -700
  211. data/ext/ffi_c/libffi/ltconfig +0 -2862
  212. data/ext/ffi_c/libffi/mkinstalldirs +0 -158
@@ -1,10 +1,10 @@
1
1
  #! /bin/sh
2
2
  # Configuration validation subroutine script.
3
3
  # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
- # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
5
- # Inc.
4
+ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5
+ # Free Software Foundation, Inc.
6
6
 
7
- timestamp='2007-04-29'
7
+ timestamp='2009-11-07'
8
8
 
9
9
  # This file is (in principle) common to ALL GNU software.
10
10
  # The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2007-04-29'
32
32
 
33
33
 
34
34
  # Please send patches to <config-patches@gnu.org>. Submit a context
35
- # diff and a properly formatted ChangeLog entry.
35
+ # diff and a properly formatted GNU ChangeLog entry.
36
36
  #
37
37
  # Configuration subroutine to validate and canonicalize a configuration type.
38
38
  # Supply the specified configuration type as an argument.
39
39
  # If it is invalid, we print an error message on stderr and exit with code 1.
40
40
  # Otherwise, we print the canonical config type on stdout and succeed.
41
41
 
42
+ # You can get the latest version of this script from:
43
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
44
+
42
45
  # This file is supposed to be the same for all GNU packages
43
46
  # and recognize all the CPU types, system types and aliases
44
47
  # that are meaningful with *any* GNU software.
@@ -72,8 +75,8 @@ Report bugs and patches to <config-patches@gnu.org>."
72
75
  version="\
73
76
  GNU config.sub ($timestamp)
74
77
 
75
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
76
- Free Software Foundation, Inc.
78
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
79
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
77
80
 
78
81
  This is free software; see the source for copying conditions. There is NO
79
82
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -122,6 +125,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
122
125
  case $maybe_os in
123
126
  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
124
127
  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
128
+ kopensolaris*-gnu* | \
125
129
  storm-chaos* | os2-emx* | rtmk-nova*)
126
130
  os=-$maybe_os
127
131
  basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -148,10 +152,13 @@ case $os in
148
152
  -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
149
153
  -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
150
154
  -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
151
- -apple | -axis | -knuth | -cray)
155
+ -apple | -axis | -knuth | -cray | -microblaze)
152
156
  os=
153
157
  basic_machine=$1
154
158
  ;;
159
+ -bluegene*)
160
+ os=-cnk
161
+ ;;
155
162
  -sim | -cisco | -oki | -wec | -winbond)
156
163
  os=
157
164
  basic_machine=$1
@@ -249,13 +256,16 @@ case $basic_machine in
249
256
  | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
250
257
  | i370 | i860 | i960 | ia64 \
251
258
  | ip2k | iq2000 \
259
+ | lm32 \
252
260
  | m32c | m32r | m32rle | m68000 | m68k | m88k \
253
- | maxq | mb | microblaze | mcore | mep \
261
+ | maxq | mb | microblaze | mcore | mep | metag \
254
262
  | mips | mipsbe | mipseb | mipsel | mipsle \
255
263
  | mips16 \
256
264
  | mips64 | mips64el \
257
- | mips64vr | mips64vrel \
265
+ | mips64octeon | mips64octeonel \
258
266
  | mips64orion | mips64orionel \
267
+ | mips64r5900 | mips64r5900el \
268
+ | mips64vr | mips64vrel \
259
269
  | mips64vr4100 | mips64vr4100el \
260
270
  | mips64vr4300 | mips64vr4300el \
261
271
  | mips64vr5000 | mips64vr5000el \
@@ -268,6 +278,7 @@ case $basic_machine in
268
278
  | mipsisa64sr71k | mipsisa64sr71kel \
269
279
  | mipstx39 | mipstx39el \
270
280
  | mn10200 | mn10300 \
281
+ | moxie \
271
282
  | mt \
272
283
  | msp430 \
273
284
  | nios | nios2 \
@@ -276,20 +287,22 @@ case $basic_machine in
276
287
  | pdp10 | pdp11 | pj | pjl \
277
288
  | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
278
289
  | pyramid \
290
+ | rx \
279
291
  | score \
280
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
292
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
281
293
  | sh64 | sh64le \
282
294
  | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
283
295
  | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
284
296
  | spu | strongarm \
285
297
  | tahoe | thumb | tic4x | tic80 | tron \
298
+ | ubicom32 \
286
299
  | v850 | v850e \
287
300
  | we32k \
288
301
  | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
289
- | z8k)
302
+ | z8k | z80)
290
303
  basic_machine=$basic_machine-unknown
291
304
  ;;
292
- m6811 | m68hc11 | m6812 | m68hc12)
305
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
293
306
  # Motorola 68HC11/12.
294
307
  basic_machine=$basic_machine-unknown
295
308
  os=-none
@@ -329,14 +342,17 @@ case $basic_machine in
329
342
  | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
330
343
  | i*86-* | i860-* | i960-* | ia64-* \
331
344
  | ip2k-* | iq2000-* \
345
+ | lm32-* \
332
346
  | m32c-* | m32r-* | m32rle-* \
333
347
  | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
334
- | m88110-* | m88k-* | maxq-* | mcore-* \
348
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
335
349
  | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
336
350
  | mips16-* \
337
351
  | mips64-* | mips64el-* \
338
- | mips64vr-* | mips64vrel-* \
352
+ | mips64octeon-* | mips64octeonel-* \
339
353
  | mips64orion-* | mips64orionel-* \
354
+ | mips64r5900-* | mips64r5900el-* \
355
+ | mips64vr-* | mips64vrel-* \
340
356
  | mips64vr4100-* | mips64vr4100el-* \
341
357
  | mips64vr4300-* | mips64vr4300el-* \
342
358
  | mips64vr5000-* | mips64vr5000el-* \
@@ -357,21 +373,26 @@ case $basic_machine in
357
373
  | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
358
374
  | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
359
375
  | pyramid-* \
360
- | romp-* | rs6000-* \
361
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
376
+ | romp-* | rs6000-* | rx-* \
377
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
362
378
  | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
363
379
  | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
364
380
  | sparclite-* \
365
381
  | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
366
382
  | tahoe-* | thumb-* \
367
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
383
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
368
384
  | tron-* \
385
+ | ubicom32-* \
369
386
  | v850-* | v850e-* | vax-* \
370
387
  | we32k-* \
371
388
  | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
372
- | xstormy16-* | xtensa-* \
389
+ | xstormy16-* | xtensa*-* \
373
390
  | ymp-* \
374
- | z8k-*)
391
+ | z8k-* | z80-*)
392
+ ;;
393
+ # Recognize the basic CPU types without company name, with glob match.
394
+ xtensa*)
395
+ basic_machine=$basic_machine-unknown
375
396
  ;;
376
397
  # Recognize the various machine names and aliases which stand
377
398
  # for a CPU type and a company and sometimes even an OS.
@@ -435,6 +456,10 @@ case $basic_machine in
435
456
  basic_machine=m68k-apollo
436
457
  os=-bsd
437
458
  ;;
459
+ aros)
460
+ basic_machine=i386-pc
461
+ os=-aros
462
+ ;;
438
463
  aux)
439
464
  basic_machine=m68k-apple
440
465
  os=-aux
@@ -443,10 +468,26 @@ case $basic_machine in
443
468
  basic_machine=ns32k-sequent
444
469
  os=-dynix
445
470
  ;;
471
+ blackfin)
472
+ basic_machine=bfin-unknown
473
+ os=-linux
474
+ ;;
475
+ blackfin-*)
476
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
477
+ os=-linux
478
+ ;;
479
+ bluegene*)
480
+ basic_machine=powerpc-ibm
481
+ os=-cnk
482
+ ;;
446
483
  c90)
447
484
  basic_machine=c90-cray
448
485
  os=-unicos
449
486
  ;;
487
+ cegcc)
488
+ basic_machine=arm-unknown
489
+ os=-cegcc
490
+ ;;
450
491
  convex-c1)
451
492
  basic_machine=c1-convex
452
493
  os=-bsd
@@ -475,8 +516,8 @@ case $basic_machine in
475
516
  basic_machine=craynv-cray
476
517
  os=-unicosmp
477
518
  ;;
478
- cr16c)
479
- basic_machine=cr16c-unknown
519
+ cr16)
520
+ basic_machine=cr16-unknown
480
521
  os=-elf
481
522
  ;;
482
523
  crds | unos)
@@ -514,6 +555,10 @@ case $basic_machine in
514
555
  basic_machine=m88k-motorola
515
556
  os=-sysv3
516
557
  ;;
558
+ dicos)
559
+ basic_machine=i686-pc
560
+ os=-dicos
561
+ ;;
517
562
  djgpp)
518
563
  basic_machine=i586-pc
519
564
  os=-msdosdjgpp
@@ -668,6 +713,14 @@ case $basic_machine in
668
713
  basic_machine=m68k-isi
669
714
  os=-sysv
670
715
  ;;
716
+ m68knommu)
717
+ basic_machine=m68k-unknown
718
+ os=-linux
719
+ ;;
720
+ m68knommu-*)
721
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
722
+ os=-linux
723
+ ;;
671
724
  m88k-omron*)
672
725
  basic_machine=m88k-omron
673
726
  ;;
@@ -679,6 +732,9 @@ case $basic_machine in
679
732
  basic_machine=ns32k-utek
680
733
  os=-sysv
681
734
  ;;
735
+ microblaze)
736
+ basic_machine=microblaze-xilinx
737
+ ;;
682
738
  mingw32)
683
739
  basic_machine=i386-pc
684
740
  os=-mingw32
@@ -813,6 +869,14 @@ case $basic_machine in
813
869
  basic_machine=i860-intel
814
870
  os=-osf
815
871
  ;;
872
+ parisc)
873
+ basic_machine=hppa-unknown
874
+ os=-linux
875
+ ;;
876
+ parisc-*)
877
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
878
+ os=-linux
879
+ ;;
816
880
  pbd)
817
881
  basic_machine=sparc-tti
818
882
  ;;
@@ -1021,6 +1085,10 @@ case $basic_machine in
1021
1085
  basic_machine=tic6x-unknown
1022
1086
  os=-coff
1023
1087
  ;;
1088
+ tile*)
1089
+ basic_machine=tile-unknown
1090
+ os=-linux-gnu
1091
+ ;;
1024
1092
  tx39)
1025
1093
  basic_machine=mipstx39-unknown
1026
1094
  ;;
@@ -1096,6 +1164,10 @@ case $basic_machine in
1096
1164
  basic_machine=z8k-unknown
1097
1165
  os=-sim
1098
1166
  ;;
1167
+ z80-*-coff)
1168
+ basic_machine=z80-unknown
1169
+ os=-sim
1170
+ ;;
1099
1171
  none)
1100
1172
  basic_machine=none-none
1101
1173
  os=-none
@@ -1134,7 +1206,7 @@ case $basic_machine in
1134
1206
  we32k)
1135
1207
  basic_machine=we32k-att
1136
1208
  ;;
1137
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
1209
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
1138
1210
  basic_machine=sh-unknown
1139
1211
  ;;
1140
1212
  sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1204,10 +1276,11 @@ case $os in
1204
1276
  # Each alternative MUST END IN A *, to match a version number.
1205
1277
  # -sysv* is not here because it comes later, after sysvr4.
1206
1278
  -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
1207
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
1279
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
1208
1280
  | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
1281
+ | -kopensolaris* \
1209
1282
  | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
1210
- | -aos* \
1283
+ | -aos* | -aros* \
1211
1284
  | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
1212
1285
  | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1213
1286
  | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1216,7 +1289,7 @@ case $os in
1216
1289
  | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
1217
1290
  | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
1218
1291
  | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1219
- | -chorusos* | -chorusrdb* \
1292
+ | -chorusos* | -chorusrdb* | -cegcc* \
1220
1293
  | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1221
1294
  | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1222
1295
  | -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1226,7 +1299,7 @@ case $os in
1226
1299
  | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1227
1300
  | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1228
1301
  | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1229
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
1302
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
1230
1303
  # Remember, each alternative MUST END IN *, to match a version number.
1231
1304
  ;;
1232
1305
  -qnx*)
@@ -1356,6 +1429,9 @@ case $os in
1356
1429
  -zvmoe)
1357
1430
  os=-zvmoe
1358
1431
  ;;
1432
+ -dicos*)
1433
+ os=-dicos
1434
+ ;;
1359
1435
  -none)
1360
1436
  ;;
1361
1437
  *)
@@ -1553,7 +1629,7 @@ case $basic_machine in
1553
1629
  -sunos*)
1554
1630
  vendor=sun
1555
1631
  ;;
1556
- -aix*)
1632
+ -cnk*|-aix*)
1557
1633
  vendor=ibm
1558
1634
  ;;
1559
1635
  -beos*)