ffi 1.9.18-x64-mingw32 → 1.9.21-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

Files changed (384) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +3 -2
  3. data/Rakefile +14 -4
  4. data/ext/ffi_c/AbstractMemory.c +6 -1
  5. data/ext/ffi_c/Platform.c +10 -2
  6. data/ext/ffi_c/extconf.rb +7 -2
  7. data/ext/ffi_c/libffi.bsd.mk +9 -3
  8. data/ext/ffi_c/libffi.darwin.mk +14 -4
  9. data/ext/ffi_c/libffi.gnu.mk +2 -1
  10. data/ext/ffi_c/libffi.mk +9 -4
  11. data/ext/ffi_c/libffi/ChangeLog.libffi +2 -2
  12. data/ext/ffi_c/libffi/{ChangeLog → ChangeLog.libffi-3.1} +1402 -2
  13. data/ext/ffi_c/libffi/ChangeLog.v1 +1 -1
  14. data/ext/ffi_c/libffi/LICENSE +1 -1
  15. data/ext/ffi_c/libffi/Makefile.am +166 -157
  16. data/ext/ffi_c/libffi/Makefile.in +923 -938
  17. data/ext/ffi_c/libffi/README +164 -52
  18. data/ext/ffi_c/libffi/acinclude.m4 +381 -0
  19. data/ext/ffi_c/libffi/aclocal.m4 +645 -384
  20. data/ext/ffi_c/libffi/autogen.sh +2 -0
  21. data/ext/ffi_c/libffi/autom4te.cache/output.0 +21972 -0
  22. data/ext/ffi_c/libffi/autom4te.cache/output.1 +21972 -0
  23. data/ext/ffi_c/libffi/autom4te.cache/output.2 +21972 -0
  24. data/ext/ffi_c/libffi/autom4te.cache/output.3 +21972 -0
  25. data/ext/ffi_c/libffi/autom4te.cache/requests +331 -0
  26. data/ext/ffi_c/libffi/autom4te.cache/traces.0 +4010 -0
  27. data/ext/ffi_c/libffi/autom4te.cache/traces.1 +1005 -0
  28. data/ext/ffi_c/libffi/autom4te.cache/traces.2 +4010 -0
  29. data/ext/ffi_c/libffi/autom4te.cache/traces.3 +4010 -0
  30. data/ext/ffi_c/libffi/compile +218 -14
  31. data/ext/ffi_c/libffi/config.guess +329 -368
  32. data/ext/ffi_c/libffi/config.sub +232 -112
  33. data/ext/ffi_c/libffi/configure +6970 -2189
  34. data/ext/ffi_c/libffi/configure.ac +148 -256
  35. data/ext/ffi_c/libffi/configure.host +265 -4
  36. data/ext/ffi_c/libffi/depcomp +346 -185
  37. data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  38. data/ext/ffi_c/libffi/doc/Makefile.in +811 -0
  39. data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
  40. data/ext/ffi_c/libffi/{mdate-sh → doc/mdate-sh} +40 -13
  41. data/ext/ffi_c/libffi/{texinfo.tex → doc/texinfo.tex} +3990 -1121
  42. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  43. data/ext/ffi_c/libffi/fficonfig.h.in +24 -13
  44. data/ext/ffi_c/libffi/fficonfig.h.in~ +210 -0
  45. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +207 -0
  46. data/ext/ffi_c/libffi/include/Makefile.am +3 -3
  47. data/ext/ffi_c/libffi/include/Makefile.in +188 -71
  48. data/ext/ffi_c/libffi/include/ffi.h.in +107 -50
  49. data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  50. data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
  51. data/ext/ffi_c/libffi/install-sh +190 -202
  52. data/ext/ffi_c/libffi/libffi.map.in +80 -0
  53. data/ext/ffi_c/libffi/libffi.pc.in +3 -2
  54. data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +637 -0
  55. data/ext/ffi_c/libffi/libtool-ldflags +106 -0
  56. data/ext/ffi_c/libffi/libtool-version +1 -1
  57. data/ext/ffi_c/libffi/ltmain.sh +3553 -2033
  58. data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  59. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
  60. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
  61. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
  62. data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
  63. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
  64. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
  65. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
  66. data/ext/ffi_c/libffi/m4/libtool.m4 +1691 -1135
  67. data/ext/ffi_c/libffi/m4/ltoptions.m4 +104 -36
  68. data/ext/ffi_c/libffi/m4/ltsugar.m4 +4 -3
  69. data/ext/ffi_c/libffi/m4/ltversion.m4 +6 -6
  70. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +4 -3
  71. data/ext/ffi_c/libffi/man/Makefile.am +2 -2
  72. data/ext/ffi_c/libffi/man/Makefile.in +141 -49
  73. data/ext/ffi_c/libffi/man/ffi.3 +10 -0
  74. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
  75. data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  76. data/ext/ffi_c/libffi/missing +150 -311
  77. data/ext/ffi_c/libffi/msvcc.sh +72 -9
  78. data/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
  79. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  80. data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  81. data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  82. data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
  83. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
  84. data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  85. data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
  86. data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  87. data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  88. data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  89. data/ext/ffi_c/libffi/src/arm/ffi.c +597 -517
  90. data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
  91. data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  92. data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
  93. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
  94. data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  95. data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  96. data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  97. data/ext/ffi_c/libffi/src/closures.c +319 -44
  98. data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
  99. data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
  100. data/ext/ffi_c/libffi/src/debug.c +6 -1
  101. data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
  102. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  103. data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
  104. data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
  105. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
  106. data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
  107. data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
  108. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
  109. data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
  110. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
  111. data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
  112. data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  113. data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  114. data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  115. data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  116. data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
  117. data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  118. data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  119. data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  120. data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  121. data/ext/ffi_c/libffi/src/mips/ffi.c +95 -28
  122. data/ext/ffi_c/libffi/src/mips/ffitarget.h +9 -2
  123. data/ext/ffi_c/libffi/src/mips/n32.S +126 -56
  124. data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
  125. data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
  126. data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
  127. data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  128. data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  129. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  130. data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  131. data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  132. data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  133. data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  134. data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
  135. data/ext/ffi_c/libffi/src/powerpc/aix.S +6 -6
  136. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +3 -1
  137. data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
  138. data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
  139. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
  140. data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
  141. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +25 -25
  142. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
  143. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  144. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  145. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +100 -44
  146. data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
  147. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
  148. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
  149. data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
  150. data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
  151. data/ext/ffi_c/libffi/src/raw_api.c +18 -5
  152. data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
  153. data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
  154. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  155. data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
  156. data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
  157. data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
  158. data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
  159. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
  160. data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
  161. data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  162. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
  163. data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  164. data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
  165. data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
  166. data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  167. data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  168. data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  169. data/ext/ffi_c/libffi/src/types.c +43 -14
  170. data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  171. data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  172. data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  173. data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  174. data/ext/ffi_c/libffi/src/x86/ffi.c +589 -500
  175. data/ext/ffi_c/libffi/src/x86/ffi64.c +338 -116
  176. data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
  177. data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
  178. data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  179. data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  180. data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
  181. data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
  182. data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
  183. data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  184. data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  185. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  186. data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
  187. data/ext/ffi_c/libffi/stamp-h.in +1 -0
  188. data/ext/ffi_c/libffi/testsuite/Makefile.am +78 -73
  189. data/ext/ffi_c/libffi/testsuite/Makefile.in +218 -111
  190. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +120 -25
  191. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
  274. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
  275. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
  276. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
  277. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
  278. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
  279. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
  280. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  281. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  282. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  283. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
  284. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
  285. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
  286. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
  287. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
  288. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
  289. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
  290. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
  291. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
  292. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
  293. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  294. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
  295. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
  296. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  297. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  298. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  299. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  300. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  301. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  302. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  303. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  304. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  305. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  306. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  307. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  308. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  309. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  310. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  311. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  312. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  313. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  314. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  315. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  316. data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
  317. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  318. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  319. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  320. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  321. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  322. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  323. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  324. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  325. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  326. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  327. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  328. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  329. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  330. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  331. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  332. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  333. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  334. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  335. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  336. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  337. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  338. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  339. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  340. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  341. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  342. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  343. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  344. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  345. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  346. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  347. data/ffi.gemspec +2 -2
  348. data/lib/2.0/ffi_c.so +0 -0
  349. data/lib/2.1/ffi_c.so +0 -0
  350. data/lib/2.2/ffi_c.so +0 -0
  351. data/lib/2.3/ffi_c.so +0 -0
  352. data/lib/2.4/ffi_c.so +0 -0
  353. data/lib/2.5/ffi_c.so +0 -0
  354. data/lib/ffi/enum.rb +124 -0
  355. data/lib/ffi/library.rb +65 -13
  356. data/lib/ffi/platform.rb +7 -2
  357. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  358. data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
  359. data/lib/ffi/pointer.rb +1 -0
  360. data/lib/ffi/struct.rb +0 -2
  361. data/lib/ffi/version.rb +1 -1
  362. data/spec/ffi/bitmask_spec.rb +575 -0
  363. data/spec/ffi/embed-test/ext/Makefile +242 -0
  364. data/spec/ffi/fixtures/BitmaskTest.c +51 -0
  365. data/spec/ffi/rbx/memory_pointer_spec.rb +4 -0
  366. data/spec/ffi/struct_spec.rb +0 -4
  367. metadata +158 -32
  368. data/ext/ffi_c/libffi/Makefile.vc +0 -141
  369. data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
  370. data/ext/ffi_c/libffi/build-ios.sh +0 -67
  371. data/ext/ffi_c/libffi/doc/libffi.info +0 -593
  372. data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
  373. data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
  374. data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
  375. data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
  376. data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
  377. data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
  378. data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
  379. data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
  380. data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
  381. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
  382. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
  383. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
  384. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
@@ -0,0 +1,13 @@
1
+ AC_DEFUN([GCC_AS_CFI_PSEUDO_OP],
2
+ [AC_CACHE_CHECK([assembler .cfi pseudo-op support],
3
+ gcc_cv_as_cfi_pseudo_op, [
4
+ gcc_cv_as_cfi_pseudo_op=unknown
5
+ AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],,
6
+ [gcc_cv_as_cfi_pseudo_op=yes],
7
+ [gcc_cv_as_cfi_pseudo_op=no])
8
+ ])
9
+ if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
10
+ AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
11
+ [Define if your assembler supports .cfi_* directives.])
12
+ fi
13
+ ])
@@ -0,0 +1,69 @@
1
+ # ===========================================================================
2
+ # http://www.gnu.org/software/autoconf-archive/ax_append_flag.html
3
+ # ===========================================================================
4
+ #
5
+ # SYNOPSIS
6
+ #
7
+ # AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
8
+ #
9
+ # DESCRIPTION
10
+ #
11
+ # FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
12
+ # added in between.
13
+ #
14
+ # If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
15
+ # CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
16
+ # FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
17
+ # FLAG.
18
+ #
19
+ # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
20
+ #
21
+ # LICENSE
22
+ #
23
+ # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
24
+ # Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
25
+ #
26
+ # This program is free software: you can redistribute it and/or modify it
27
+ # under the terms of the GNU General Public License as published by the
28
+ # Free Software Foundation, either version 3 of the License, or (at your
29
+ # option) any later version.
30
+ #
31
+ # This program is distributed in the hope that it will be useful, but
32
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
33
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
34
+ # Public License for more details.
35
+ #
36
+ # You should have received a copy of the GNU General Public License along
37
+ # with this program. If not, see <http://www.gnu.org/licenses/>.
38
+ #
39
+ # As a special exception, the respective Autoconf Macro's copyright owner
40
+ # gives unlimited permission to copy, distribute and modify the configure
41
+ # scripts that are the output of Autoconf when processing the Macro. You
42
+ # need not follow the terms of the GNU General Public License when using
43
+ # or distributing such scripts, even though portions of the text of the
44
+ # Macro appear in them. The GNU General Public License (GPL) does govern
45
+ # all other use of the material that constitutes the Autoconf Macro.
46
+ #
47
+ # This special exception to the GPL applies to versions of the Autoconf
48
+ # Macro released by the Autoconf Archive. When you make and distribute a
49
+ # modified version of the Autoconf Macro, you may extend this special
50
+ # exception to the GPL to apply to your modified version as well.
51
+
52
+ #serial 2
53
+
54
+ AC_DEFUN([AX_APPEND_FLAG],
55
+ [AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
56
+ AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])dnl
57
+ AS_VAR_SET_IF(FLAGS,
58
+ [case " AS_VAR_GET(FLAGS) " in
59
+ *" $1 "*)
60
+ AC_RUN_LOG([: FLAGS already contains $1])
61
+ ;;
62
+ *)
63
+ AC_RUN_LOG([: FLAGS="$FLAGS $1"])
64
+ AS_VAR_SET(FLAGS, ["AS_VAR_GET(FLAGS) $1"])
65
+ ;;
66
+ esac],
67
+ [AS_VAR_SET(FLAGS,["$1"])])
68
+ AS_VAR_POPDEF([FLAGS])dnl
69
+ ])dnl AX_APPEND_FLAG
@@ -21,7 +21,7 @@
21
21
  # by the code (e.g. for gcc's -fstrict-aliasing), and that floating-point
22
22
  # computations can be re-ordered as needed.
23
23
  #
24
- # Requires macros: AX_CHECK_COMPILER_FLAGS, AX_COMPILER_VENDOR,
24
+ # Requires macros: AX_CHECK_COMPILE_FLAG, AX_COMPILER_VENDOR,
25
25
  # AX_GCC_ARCHFLAG, AX_GCC_X86_CPUID.
26
26
  #
27
27
  # LICENSE
@@ -55,7 +55,7 @@
55
55
  # modified version of the Autoconf Macro, you may extend this special
56
56
  # exception to the GPL to apply to your modified version as well.
57
57
 
58
- #serial 11
58
+ #serial 13
59
59
 
60
60
  AC_DEFUN([AX_CC_MAXOPT],
61
61
  [
@@ -64,7 +64,7 @@ AC_REQUIRE([AX_COMPILER_VENDOR])
64
64
  AC_REQUIRE([AC_CANONICAL_HOST])
65
65
 
66
66
  AC_ARG_ENABLE(portable-binary, [AS_HELP_STRING([--enable-portable-binary], [disable compiler optimizations that would produce unportable binaries])],
67
- acx_maxopt_portable=$withval, acx_maxopt_portable=no)
67
+ acx_maxopt_portable=$enableval, acx_maxopt_portable=no)
68
68
 
69
69
  # Try to determine "good" native compiler flags if none specified via CFLAGS
70
70
  if test "$ac_test_CFLAGS" != "set"; then
@@ -90,7 +90,7 @@ if test "$ac_test_CFLAGS" != "set"; then
90
90
  else
91
91
  xlc_opt="-qtune=auto"
92
92
  fi
93
- AX_CHECK_COMPILER_FLAGS($xlc_opt,
93
+ AX_CHECK_COMPILE_FLAG($xlc_opt,
94
94
  CFLAGS="-O3 -qansialias -w $xlc_opt",
95
95
  [CFLAGS="-O3 -qansialias -w"
96
96
  echo "******************************************************"
@@ -125,7 +125,7 @@ if test "$ac_test_CFLAGS" != "set"; then
125
125
  esac
126
126
  if test "x$icc_flags" != x; then
127
127
  for flag in $icc_flags; do
128
- AX_CHECK_COMPILER_FLAGS($flag, [icc_archflag=$flag; break])
128
+ AX_CHECK_COMPILE_FLAG($flag, [icc_archflag=$flag; break])
129
129
  done
130
130
  fi
131
131
  AC_MSG_CHECKING([for icc architecture flag])
@@ -140,11 +140,16 @@ if test "$ac_test_CFLAGS" != "set"; then
140
140
  # default optimization flags for gcc on all systems
141
141
  CFLAGS="-O3 -fomit-frame-pointer"
142
142
 
143
+ # -malign-double for x86 systems
144
+ # LIBFFI -- DON'T DO THIS - CHANGES ABI
145
+ # AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double")
146
+
143
147
  # -fstrict-aliasing for gcc-2.95+
144
- AX_CHECK_COMPILER_FLAGS(-fstrict-aliasing,
148
+ AX_CHECK_COMPILE_FLAG(-fstrict-aliasing,
145
149
  CFLAGS="$CFLAGS -fstrict-aliasing")
146
150
 
147
- AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math")
151
+ # note that we enable "unsafe" fp optimization with other compilers, too
152
+ AX_CHECK_COMPILE_FLAG(-ffast-math, CFLAGS="$CFLAGS -ffast-math")
148
153
 
149
154
  AX_GCC_ARCHFLAG($acx_maxopt_portable)
150
155
  ;;
@@ -161,7 +166,7 @@ if test "$ac_test_CFLAGS" != "set"; then
161
166
  CFLAGS="-O3"
162
167
  fi
163
168
 
164
- AX_CHECK_COMPILER_FLAGS($CFLAGS, [], [
169
+ AX_CHECK_COMPILE_FLAG($CFLAGS, [], [
165
170
  echo ""
166
171
  echo "********************************************************"
167
172
  echo "* WARNING: The guessed CFLAGS don't seem to work with *"
@@ -25,6 +25,8 @@
25
25
  # - $3 action-if-found : add value to shellvariable
26
26
  # - $4 action-if-not-found : nothing
27
27
  #
28
+ # NOTE: These macros depend on AX_APPEND_FLAG.
29
+ #
28
30
  # LICENSE
29
31
  #
30
32
  # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
@@ -56,99 +58,14 @@
56
58
  # modified version of the Autoconf Macro, you may extend this special
57
59
  # exception to the GPL to apply to your modified version as well.
58
60
 
59
- #serial 10
61
+ #serial 14
60
62
 
61
- AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl
62
- AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
63
- AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl
63
+ AC_DEFUN([AX_FLAGS_WARN_ALL],[dnl
64
+ AS_VAR_PUSHDEF([FLAGS],[_AC_LANG_PREFIX[]FLAGS])dnl
65
+ AS_VAR_PUSHDEF([VAR],[ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl
64
66
  AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
65
67
  VAR,[VAR="no, unknown"
66
- AC_LANG_PUSH([C])
67
- ac_save_[]FLAGS="$[]FLAGS"
68
- for ac_arg dnl
69
- in "-pedantic % -Wall" dnl GCC
70
- "-xstrconst % -v" dnl Solaris C
71
- "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix
72
- "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
73
- "-ansi -ansiE % -fullwarn" dnl IRIX
74
- "+ESlit % +w1" dnl HP-UX C
75
- "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
76
- "-h conform % -h msglevel 2" dnl Cray C (Unicos)
77
- #
78
- do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
79
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
80
- [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
81
- done
82
- FLAGS="$ac_save_[]FLAGS"
83
- AC_LANG_POP([C])
84
- ])
85
- case ".$VAR" in
86
- .ok|.ok,*) m4_ifvaln($3,$3) ;;
87
- .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
88
- AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
89
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
90
- *) m4_ifvaln($3,$3,[
91
- if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
92
- then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
93
- else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
94
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
95
- fi ]) ;;
96
- esac
97
- AS_VAR_POPDEF([VAR])dnl
98
- AS_VAR_POPDEF([FLAGS])dnl
99
- ])
100
-
101
- dnl the only difference - the LANG selection... and the default FLAGS
102
-
103
- AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl
104
- AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
105
- AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_warn_all])dnl
106
- AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
107
- VAR,[VAR="no, unknown"
108
- AC_LANG_PUSH([C++])
109
- ac_save_[]FLAGS="$[]FLAGS"
110
- for ac_arg dnl
111
- in "-pedantic % -Wall" dnl GCC
112
- "-xstrconst % -v" dnl Solaris C
113
- "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix
114
- "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
115
- "-ansi -ansiE % -fullwarn" dnl IRIX
116
- "+ESlit % +w1" dnl HP-UX C
117
- "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
118
- "-h conform % -h msglevel 2" dnl Cray C (Unicos)
119
- #
120
- do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
121
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
122
- [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
123
- done
124
- FLAGS="$ac_save_[]FLAGS"
125
- AC_LANG_POP([C++])
126
- ])
127
- case ".$VAR" in
128
- .ok|.ok,*) m4_ifvaln($3,$3) ;;
129
- .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
130
- AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
131
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
132
- *) m4_ifvaln($3,$3,[
133
- if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
134
- then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
135
- else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
136
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
137
- fi ]) ;;
138
- esac
139
- AS_VAR_POPDEF([VAR])dnl
140
- AS_VAR_POPDEF([FLAGS])dnl
141
- ])
142
-
143
- dnl the only difference - the LANG selection... and the default FLAGS
144
-
145
- AC_DEFUN([AX_FCFLAGS_WARN_ALL],[dnl
146
- AS_VAR_PUSHDEF([FLAGS],[FCFLAGS])dnl
147
- AS_VAR_PUSHDEF([VAR],[ax_cv_fcflags_warn_all])dnl
148
- AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
149
- VAR,[VAR="no, unknown"
150
- AC_LANG_PUSH([Fortran])
151
- ac_save_[]FLAGS="$[]FLAGS"
68
+ ac_save_[]FLAGS="$[]FLAGS"
152
69
  for ac_arg dnl
153
70
  in "-warn all % -warn all" dnl Intel
154
71
  "-pedantic % -Wall" dnl GCC
@@ -164,25 +81,17 @@ do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
164
81
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
165
82
  [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
166
83
  done
167
- FLAGS="$ac_save_[]FLAGS"
168
- AC_LANG_POP([Fortran])
84
+ FLAGS="$ac_save_[]FLAGS"
169
85
  ])
86
+ AS_VAR_POPDEF([FLAGS])dnl
87
+ AC_REQUIRE([AX_APPEND_FLAG])
170
88
  case ".$VAR" in
171
89
  .ok|.ok,*) m4_ifvaln($3,$3) ;;
172
- .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
173
- AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
174
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
175
- *) m4_ifvaln($3,$3,[
176
- if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
177
- then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
178
- else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
179
- m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
180
- fi ]) ;;
90
+ .|.no|.no,*) m4_default($4,[m4_ifval($2,[AX_APPEND_FLAG([$2], [$1])])]) ;;
91
+ *) m4_default($3,[AX_APPEND_FLAG([$VAR], [$1])]) ;;
181
92
  esac
182
93
  AS_VAR_POPDEF([VAR])dnl
183
- AS_VAR_POPDEF([FLAGS])dnl
184
- ])
185
-
94
+ ])dnl AX_FLAGS_WARN_ALL
186
95
  dnl implementation tactics:
187
96
  dnl the for-argument contains a list of options. The first part of
188
97
  dnl these does only exist to detect the compiler - usually it is
@@ -193,3 +102,21 @@ dnl like -Woption or -Xoption as they think of it is a pass-through
193
102
  dnl to later compile stages or something. The "%" is used as a
194
103
  dnl delimiter. A non-option comment can be given after "%%" marks
195
104
  dnl which will be shown but not added to the respective C/CXXFLAGS.
105
+
106
+ AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl
107
+ AC_LANG_PUSH([C])
108
+ AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
109
+ AC_LANG_POP([C])
110
+ ])
111
+
112
+ AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl
113
+ AC_LANG_PUSH([C++])
114
+ AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
115
+ AC_LANG_POP([C++])
116
+ ])
117
+
118
+ AC_DEFUN([AX_FCFLAGS_WARN_ALL],[dnl
119
+ AC_LANG_PUSH([Fortran])
120
+ AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4])
121
+ AC_LANG_POP([Fortran])
122
+ ])
@@ -1,24 +1,31 @@
1
1
  # ===========================================================================
2
- # http://www.gnu.org/software/autoconf-archive/ax_check_compiler_flags.html
2
+ # http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
3
3
  # ===========================================================================
4
4
  #
5
5
  # SYNOPSIS
6
6
  #
7
- # AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
7
+ # AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
8
8
  #
9
9
  # DESCRIPTION
10
10
  #
11
- # Check whether the given compiler FLAGS work with the current language's
12
- # compiler, or whether they give an error. (Warnings, however, are
13
- # ignored.)
11
+ # Check whether the given FLAG works with the current language's compiler
12
+ # or gives an error. (Warnings, however, are ignored)
14
13
  #
15
14
  # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
16
15
  # success/failure.
17
16
  #
17
+ # If EXTRA-FLAGS is defined, it is added to the current language's default
18
+ # flags (e.g. CFLAGS) when the check is done. The check is thus made with
19
+ # the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
20
+ # force the compiler to issue an error when a bad flag is given.
21
+ #
22
+ # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
23
+ # macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
24
+ #
18
25
  # LICENSE
19
26
  #
20
- # Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu>
21
- # Copyright (c) 2009 Matteo Frigo
27
+ # Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
28
+ # Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
22
29
  #
23
30
  # This program is free software: you can redistribute it and/or modify it
24
31
  # under the terms of the GNU General Public License as published by the
@@ -46,31 +53,20 @@
46
53
  # modified version of the Autoconf Macro, you may extend this special
47
54
  # exception to the GPL to apply to your modified version as well.
48
55
 
49
- #serial 9
56
+ #serial 2
50
57
 
51
- AC_DEFUN([AX_CHECK_COMPILER_FLAGS],
52
- [AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
53
- AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1])
54
- dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
55
- AS_LITERAL_IF([$1],
56
- [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]), [
57
- ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
58
- _AC_LANG_PREFIX[]FLAGS="$1"
59
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
60
- AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes,
61
- AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no)
62
- _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])],
63
- [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
64
- _AC_LANG_PREFIX[]FLAGS="$1"
65
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
66
- eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes,
67
- eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no)
68
- _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])
69
- eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])
70
- AC_MSG_RESULT($ax_check_compiler_flags)
71
- if test "x$ax_check_compiler_flags" = xyes; then
72
- m4_default([$2], :)
73
- else
74
- m4_default([$3], :)
75
- fi
76
- ])dnl AX_CHECK_COMPILER_FLAGS
58
+ AC_DEFUN([AX_CHECK_COMPILE_FLAG],
59
+ [AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
60
+ AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
61
+ AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
62
+ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
63
+ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
64
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
65
+ [AS_VAR_SET(CACHEVAR,[yes])],
66
+ [AS_VAR_SET(CACHEVAR,[no])])
67
+ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
68
+ AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
69
+ [m4_default([$2], :)],
70
+ [m4_default([$3], :)])
71
+ AS_VAR_POPDEF([CACHEVAR])dnl
72
+ ])dnl AX_CHECK_COMPILE_FLAGS
@@ -44,20 +44,41 @@
44
44
  # modified version of the Autoconf Macro, you may extend this special
45
45
  # exception to the GPL to apply to your modified version as well.
46
46
 
47
- #serial 9
47
+ #serial 11
48
48
 
49
49
  AC_DEFUN([AX_COMPILER_VENDOR],
50
- [
51
- AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
52
- [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
53
- # note: don't check for gcc first since some other compilers define __GNUC__
54
- for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ clang:__clang__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
55
- vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
50
+ [AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
51
+ [# note: don't check for gcc first since some other compilers define __GNUC__
52
+ vendors="intel: __ICC,__ECC,__INTEL_COMPILER
53
+ ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__
54
+ pathscale: __PATHCC__,__PATHSCALE__
55
+ clang: __clang__
56
+ gnu: __GNUC__
57
+ sun: __SUNPRO_C,__SUNPRO_CC
58
+ hp: __HP_cc,__HP_aCC
59
+ dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER
60
+ borland: __BORLANDC__,__TURBOC__
61
+ comeau: __COMO__
62
+ cray: _CRAYC
63
+ kai: __KCC
64
+ lcc: __LCC__
65
+ sgi: __sgi,sgi
66
+ microsoft: _MSC_VER
67
+ metrowerks: __MWERKS__
68
+ watcom: __WATCOMC__
69
+ portland: __PGI
70
+ unknown: UNKNOWN"
71
+ for ventest in $vendors; do
72
+ case $ventest in
73
+ *:) vendor=$ventest; continue ;;
74
+ *) vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")" ;;
75
+ esac
56
76
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
57
- #if !($vencpp)
58
- thisisanerror;
59
- #endif
60
- ])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
77
+ #if !($vencpp)
78
+ thisisanerror;
79
+ #endif
80
+ ])], [break])
61
81
  done
82
+ ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=`echo $vendor | cut -d: -f1`
62
83
  ])
63
84
  ])