ffi 1.9.18 → 1.9.21

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 (366) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/Rakefile +14 -3
  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/README +164 -52
  17. data/ext/ffi_c/libffi/acinclude.m4 +381 -0
  18. data/ext/ffi_c/libffi/autogen.sh +2 -0
  19. data/ext/ffi_c/libffi/configure.ac +148 -256
  20. data/ext/ffi_c/libffi/configure.host +265 -4
  21. data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  22. data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
  23. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  24. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +207 -0
  25. data/ext/ffi_c/libffi/include/Makefile.am +3 -3
  26. data/ext/ffi_c/libffi/include/ffi.h.in +107 -50
  27. data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  28. data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
  29. data/ext/ffi_c/libffi/libffi.map.in +80 -0
  30. data/ext/ffi_c/libffi/libffi.pc.in +3 -2
  31. data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +637 -0
  32. data/ext/ffi_c/libffi/libtool-ldflags +106 -0
  33. data/ext/ffi_c/libffi/libtool-version +1 -1
  34. data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  35. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
  36. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
  37. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
  38. data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
  39. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
  40. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
  41. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
  42. data/ext/ffi_c/libffi/man/Makefile.am +2 -2
  43. data/ext/ffi_c/libffi/man/ffi.3 +10 -0
  44. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
  45. data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  46. data/ext/ffi_c/libffi/msvcc.sh +72 -9
  47. data/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
  48. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  49. data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  50. data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  51. data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
  52. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
  53. data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  54. data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
  55. data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  56. data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  57. data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  58. data/ext/ffi_c/libffi/src/arm/ffi.c +597 -517
  59. data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
  60. data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  61. data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
  62. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
  63. data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  64. data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  65. data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  66. data/ext/ffi_c/libffi/src/closures.c +319 -44
  67. data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
  68. data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
  69. data/ext/ffi_c/libffi/src/debug.c +6 -1
  70. data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
  71. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  72. data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
  73. data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
  74. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
  75. data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
  76. data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
  77. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
  78. data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
  79. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
  80. data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
  81. data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  82. data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  83. data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  84. data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  85. data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
  86. data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  87. data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  88. data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  89. data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  90. data/ext/ffi_c/libffi/src/mips/ffi.c +95 -28
  91. data/ext/ffi_c/libffi/src/mips/ffitarget.h +9 -2
  92. data/ext/ffi_c/libffi/src/mips/n32.S +126 -56
  93. data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
  94. data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
  95. data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
  96. data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  97. data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  98. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  99. data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  100. data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  101. data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  102. data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  103. data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
  104. data/ext/ffi_c/libffi/src/powerpc/aix.S +6 -6
  105. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +3 -1
  106. data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
  107. data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
  108. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
  109. data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
  110. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +25 -25
  111. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
  112. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  113. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  114. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +100 -44
  115. data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
  116. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
  117. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
  118. data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
  119. data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
  120. data/ext/ffi_c/libffi/src/raw_api.c +18 -5
  121. data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
  122. data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
  123. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  124. data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
  125. data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
  126. data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
  127. data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
  128. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
  129. data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
  130. data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  131. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
  132. data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  133. data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
  134. data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
  135. data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  136. data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  137. data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  138. data/ext/ffi_c/libffi/src/types.c +43 -14
  139. data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  140. data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  141. data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  142. data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  143. data/ext/ffi_c/libffi/src/x86/ffi.c +589 -500
  144. data/ext/ffi_c/libffi/src/x86/ffi64.c +338 -116
  145. data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
  146. data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
  147. data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  148. data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  149. data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
  150. data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
  151. data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
  152. data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  153. data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  154. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  155. data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
  156. data/ext/ffi_c/libffi/stamp-h.in +1 -0
  157. data/ext/ffi_c/libffi/testsuite/Makefile.am +78 -73
  158. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +120 -25
  159. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  262. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
  263. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  276. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  277. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  278. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  279. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  280. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  281. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  282. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  283. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  284. data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
  285. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  286. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  287. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  288. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  289. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  290. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  291. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  292. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  293. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  294. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  295. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  296. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  297. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  298. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  299. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  300. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  301. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  302. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  303. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  304. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  305. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  306. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  307. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  308. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  309. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  310. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  311. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  312. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  313. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  314. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  315. data/ffi.gemspec +2 -2
  316. data/lib/ffi/enum.rb +124 -0
  317. data/lib/ffi/library.rb +65 -13
  318. data/lib/ffi/platform.rb +7 -2
  319. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  320. data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
  321. data/lib/ffi/pointer.rb +1 -0
  322. data/lib/ffi/struct.rb +0 -2
  323. data/lib/ffi/version.rb +1 -1
  324. data/spec/ffi/bitmask_spec.rb +575 -0
  325. data/spec/ffi/fixtures/BitmaskTest.c +51 -0
  326. data/spec/ffi/rbx/memory_pointer_spec.rb +4 -0
  327. data/spec/ffi/struct_spec.rb +0 -4
  328. metadata +143 -51
  329. data/ext/ffi_c/libffi/Makefile.in +0 -1820
  330. data/ext/ffi_c/libffi/Makefile.vc +0 -141
  331. data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
  332. data/ext/ffi_c/libffi/aclocal.m4 +0 -1873
  333. data/ext/ffi_c/libffi/build-ios.sh +0 -67
  334. data/ext/ffi_c/libffi/compile +0 -143
  335. data/ext/ffi_c/libffi/config.guess +0 -1501
  336. data/ext/ffi_c/libffi/config.sub +0 -1705
  337. data/ext/ffi_c/libffi/configure +0 -17191
  338. data/ext/ffi_c/libffi/depcomp +0 -630
  339. data/ext/ffi_c/libffi/doc/libffi.info +0 -593
  340. data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
  341. data/ext/ffi_c/libffi/fficonfig.h.in +0 -199
  342. data/ext/ffi_c/libffi/include/Makefile.in +0 -487
  343. data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
  344. data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
  345. data/ext/ffi_c/libffi/install-sh +0 -520
  346. data/ext/ffi_c/libffi/ltmain.sh +0 -9636
  347. data/ext/ffi_c/libffi/m4/libtool.m4 +0 -7831
  348. data/ext/ffi_c/libffi/m4/ltoptions.m4 +0 -369
  349. data/ext/ffi_c/libffi/m4/ltsugar.m4 +0 -123
  350. data/ext/ffi_c/libffi/m4/ltversion.m4 +0 -23
  351. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +0 -98
  352. data/ext/ffi_c/libffi/man/Makefile.in +0 -466
  353. data/ext/ffi_c/libffi/mdate-sh +0 -201
  354. data/ext/ffi_c/libffi/missing +0 -376
  355. data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
  356. data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
  357. data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
  358. data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
  359. data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
  360. data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
  361. data/ext/ffi_c/libffi/testsuite/Makefile.in +0 -500
  362. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
  363. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
  364. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
  365. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
  366. data/ext/ffi_c/libffi/texinfo.tex +0 -7210
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 310481484c2ef881dc83069461236a238e31614b
4
- data.tar.gz: 951d6446172624561da969bd47db63a88eacb01d
3
+ metadata.gz: 0bd345be101aa3db6f97505141dadfc33a331ef2
4
+ data.tar.gz: 25cda6342b821cbbff4ac0906b3dbc3db41e71e0
5
5
  SHA512:
6
- metadata.gz: d839e3af476ba00b2c80063aa47455b47b734b79b6435a8bfb3ca8aa875fad89e7cbdc7d1874f1d136f6dbc8b0b5d7dc53286d1e546197c841ff5bcbdbbb7f77
7
- data.tar.gz: 292b7cf397c8eadd3d7d300168deffedae37c95bc6a72a5f9da2a0202b92934f1e62165e5c721849768e44cc1086390e92044422f9ed6a0406cac0d488e9b865
6
+ metadata.gz: a7f8d8dc376a97daa3f3e4a449fcf258fb97979720e047fac070f09d6d79517d2393f8fb34917c0f8b818214f5753e76d6c8924fc2c2f0408394104dad36fbe9
7
+ data.tar.gz: d213a690f6d5d0a30c9bdcce80bee546eae435573937107859411e3bfa0d76831b0de07ecfe13212d4e32a06b8416d7c8f11efdbd3aeeace2b072c13040625e6
data/README.md CHANGED
@@ -43,7 +43,7 @@ At a minimum, you will need:
43
43
  * A C compiler (e.g. Xcode on OSX, gcc on everything else)
44
44
  * libffi development library - this is commonly in the libffi-dev or libffi-devel
45
45
 
46
- On Linux systems running with [PaX](https://en.wikipedia.org/wiki/PaX) (Gentoo, Alpine, etc.) FFI may trigger `mprotrect` errors. You may need to disable [mprotect](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options#Restrict_mprotect.28.29) for ruby (`paxctl -m [/path/to/ruby]`) for the time being until a solution is found.
46
+ On Linux systems running with [PaX](https://en.wikipedia.org/wiki/PaX) (Gentoo, Alpine, etc.) FFI may trigger `mprotect` errors. You may need to disable [mprotect](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options#Restrict_mprotect.28.29) for ruby (`paxctl -m [/path/to/ruby]`) for the time being until a solution is found.
47
47
 
48
48
  ## Installation
49
49
 
@@ -54,8 +54,9 @@ From rubygems:
54
54
  or from the git repository on github:
55
55
 
56
56
  git clone git://github.com/ffi/ffi.git
57
+ git submodule update --init --recursive
57
58
  cd ffi
58
- rake gem:install
59
+ rake install
59
60
 
60
61
  ## License
61
62
 
data/Rakefile CHANGED
@@ -65,7 +65,18 @@ OS = case RbConfig::CONFIG['host_os'].downcase
65
65
  RbConfig::CONFIG['host_os'].downcase
66
66
  end
67
67
 
68
- GMAKE = system('which gmake >/dev/null') && 'gmake' || 'make'
68
+ def which(name)
69
+ exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
70
+ ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
71
+ exts.each do |ext|
72
+ app = File.join(path, name+ext)
73
+ return app if File.executable? app
74
+ end
75
+ end
76
+ nil
77
+ end
78
+
79
+ GMAKE = which('gmake').nil? ? 'make' : 'gmake'
69
80
 
70
81
  LIBTEST = "build/libtest.#{LIBEXT}"
71
82
  BUILD_DIR = "build"
@@ -175,7 +186,7 @@ if USE_RAKE_COMPILER
175
186
  ext.cross_platform = %w[i386-mingw32 x64-mingw32] # forces the Windows platform instead of the default one
176
187
  end
177
188
 
178
- ENV['RUBY_CC_VERSION'] ||= '1.8.7:1.9.3:2.0.0:2.1.6:2.2.2:2.3.0'
189
+ ENV['RUBY_CC_VERSION'] ||= '1.9.3:2.0.0:2.1.6:2.2.2:2.3.0'
179
190
 
180
191
  # To reduce the gem file size strip mingw32 dlls before packaging
181
192
  ENV['RUBY_CC_VERSION'].to_s.split(':').each do |ruby_version|
@@ -191,7 +202,7 @@ if USE_RAKE_COMPILER
191
202
  desc "build a windows gem without all the ceremony."
192
203
  task "gem:windows" do
193
204
  require "rake_compiler_dock"
194
- RakeCompilerDock.sh "bundle && rake cross native gem MAKE='nice make -j`nproc`'"
205
+ RakeCompilerDock.sh "sudo apt-get update && sudo apt-get install -y libltdl-dev && bundle && rake cross native gem MAKE='nice make -j`nproc`'"
195
206
  end
196
207
  end
197
208
 
@@ -49,8 +49,13 @@
49
49
  #include "Function.h"
50
50
  #include "LongDouble.h"
51
51
 
52
- #ifndef PRIsVALUE
52
+ #ifdef PRIsVALUE
53
+ # define RB_OBJ_CLASSNAME(obj) rb_obj_class(obj)
54
+ # define RB_OBJ_STRING(obj) (obj)
55
+ #else
53
56
  # define PRIsVALUE "s"
57
+ # define RB_OBJ_CLASSNAME(obj) rb_obj_classname(obj)
58
+ # define RB_OBJ_STRING(obj) StringValueCStr(obj)
54
59
  #endif
55
60
 
56
61
  static inline char* memory_address(VALUE self);
@@ -66,12 +66,20 @@ static VALUE PlatformModule = Qnil;
66
66
  #elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc)
67
67
  # define CPU "ppc"
68
68
 
69
- /* Need to check for __sparcv9 first, because __sparc will be defined either way. */
69
+ /*
70
+ * Need to check for __sparcv9 first, because __sparc will be defined either way.
71
+ * Note that __sparcv9 seems to only be set for Solaris. On Linux, __sparc will
72
+ * be set, along with __arch64__ if a 64-bit platform.
73
+ */
70
74
  #elif defined(__sparcv9__) || defined(__sparcv9)
71
75
  # define CPU "sparcv9"
72
76
 
73
77
  #elif defined(__sparc__) || defined(__sparc)
74
- # define CPU "sparc"
78
+ # if defined(__arch64__)
79
+ # define CPU "sparcv9"
80
+ # else
81
+ # define CPU "sparc"
82
+ # endif
75
83
 
76
84
  #elif defined(__arm__) || defined(__arm)
77
85
  # define CPU "arm"
@@ -29,8 +29,13 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
29
29
  have_func('rb_thread_blocking_region')
30
30
  have_func('rb_thread_call_with_gvl')
31
31
  have_func('rb_thread_call_without_gvl')
32
- have_func('ffi_prep_cif_var')
33
-
32
+
33
+ if libffi_ok
34
+ have_func('ffi_prep_cif_var')
35
+ else
36
+ $defs << "-DHAVE_FFI_PREP_CIF_VAR"
37
+ end
38
+
34
39
  $defs << "-DHAVE_EXTCONF_H" if $defs.empty? # needed so create_header works
35
40
  $defs << "-DUSE_INTERNAL_LIBFFI" unless libffi_ok
36
41
  $defs << "-DRUBY_1_9" if RUBY_VERSION >= "1.9.0"
@@ -17,16 +17,22 @@ LIBFFI_BUILD_DIR = ${.CURDIR}/libffi-${arch}
17
17
 
18
18
 
19
19
  LIBFFI = ${LIBFFI_BUILD_DIR}/.libs/libffi_convenience.a
20
+ LIBFFI_AUTOGEN = ${LIBFFI_SRC_DIR}/autogen.sh
20
21
  LIBFFI_CONFIGURE = ${LIBFFI_SRC_DIR}/configure --disable-static \
21
- --with-pic=yes --disable-dependency-tracking
22
+ --with-pic=yes --disable-dependency-tracking --disable-docs
22
23
 
23
24
  $(OBJS): ${LIBFFI}
24
25
 
25
26
  $(LIBFFI):
26
27
  @mkdir -p ${LIBFFI_BUILD_DIR}
28
+ @if [ ! -f $(LIBFFI_BUILD_DIR)/configure ]; then \
29
+ echo "Running autoreconf for libffi"; \
30
+ cd "$(LIBFFI_SRC_DIR)" && \
31
+ /bin/sh $(LIBFFI_AUTOGEN) > /dev/null; \
32
+ fi
27
33
  @if [ ! -f ${LIBFFI_BUILD_DIR}/Makefile ]; then \
28
- echo "Configuring libffi"; \
29
- cd ${LIBFFI_BUILD_DIR} && \
34
+ echo "Configuring libffi"; \
35
+ cd ${LIBFFI_BUILD_DIR} && \
30
36
  /usr/bin/env CC="${CC}" LD="${LD}" CFLAGS="${LIBFFI_CFLAGS}" GREP_OPTIONS="" \
31
37
  /bin/sh ${LIBFFI_CONFIGURE} ${LIBFFI_HOST} > /dev/null; \
32
38
  fi
@@ -8,7 +8,7 @@ BUILD_DIR := $(shell pwd)
8
8
  INCFLAGS += -I"$(BUILD_DIR)"
9
9
 
10
10
  # Work out which arches we need to compile the lib for
11
- ARCHES :=
11
+ ARCHES :=
12
12
  ARCHFLAGS ?= $(filter -arch %, $(CFLAGS))
13
13
 
14
14
  ifneq ($(findstring -arch ppc,$(ARCHFLAGS)),)
@@ -26,11 +26,16 @@ endif
26
26
  ifeq ($(strip $(ARCHES)),)
27
27
  LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi-$(arch)
28
28
  # Just build the one (default) architecture
29
- $(LIBFFI):
29
+ $(LIBFFI):
30
30
  @mkdir -p "$(LIBFFI_BUILD_DIR)" "$(@D)"
31
+ @if [ ! -f "$(LIBFFI_BUILD_DIR)"/configure ]; then \
32
+ echo "Running autoreconf for libffi"; \
33
+ cd "$(LIBFFI_SRC_DIR)" && \
34
+ /bin/sh $(LIBFFI_AUTOGEN) > /dev/null; \
35
+ fi
31
36
  @if [ ! -f "$(LIBFFI_BUILD_DIR)"/Makefile ]; then \
32
- echo "Configuring libffi"; \
33
- cd "$(LIBFFI_BUILD_DIR)" && \
37
+ echo "Configuring libffi"; \
38
+ cd "$(LIBFFI_BUILD_DIR)" && \
34
39
  /usr/bin/env CC="$(CC)" LD="$(LD)" CFLAGS="$(LIBFFI_CFLAGS)" GREP_OPTIONS="" \
35
40
  /bin/sh $(LIBFFI_CONFIGURE) $(LIBFFI_HOST) > /dev/null; \
36
41
  fi
@@ -42,6 +47,11 @@ LIBTARGETS = $(foreach arch,$(ARCHES),"$(BUILD_DIR)"/libffi-$(arch)/.libs/libffi
42
47
  # Build a fat binary and assemble
43
48
  build_ffi = \
44
49
  mkdir -p "$(BUILD_DIR)"/libffi-$(1); \
50
+ (if [ ! -f "$(BUILD_DIR)"/libffi-$(1)/configure ]; then \
51
+ echo "Running autoreconf for libffi"; \
52
+ cd "$(LIBFFI_SRC_DIR)" && \
53
+ /bin/sh $(LIBFFI_AUTOGEN) > /dev/null; \
54
+ fi); \
45
55
  (if [ ! -f "$(BUILD_DIR)"/libffi-$(1)/Makefile ]; then \
46
56
  echo "Configuring libffi for $(1)"; \
47
57
  cd "$(BUILD_DIR)"/libffi-$(1) && \
@@ -20,8 +20,9 @@ else
20
20
  endif
21
21
 
22
22
  LIBFFI = "$(LIBFFI_BUILD_DIR)"/.libs/libffi_convenience.a
23
+ LIBFFI_AUTOGEN = ${LIBFFI_SRC_DIR}/autogen.sh
23
24
  LIBFFI_CONFIGURE = "$(LIBFFI_SRC_DIR)"/configure --disable-static \
24
- --with-pic=yes --disable-dependency-tracking
25
+ --with-pic=yes --disable-dependency-tracking --disable-docs
25
26
 
26
27
  $(OBJS): $(LIBFFI)
27
28
 
@@ -4,10 +4,15 @@ include ${srcdir}/libffi.gnu.mk
4
4
 
5
5
  $(LIBFFI):
6
6
  @mkdir -p "$(LIBFFI_BUILD_DIR)" "$@(D)"
7
+ @if [ ! -f "$(LIBFFI_BUILD_DIR)"/configure ]; then \
8
+ echo "Running autoreconf for libffi"; \
9
+ cd "$(LIBFFI_SRC_DIR)" && \
10
+ /bin/sh $(LIBFFI_AUTOGEN) > /dev/null; \
11
+ fi
7
12
  @if [ ! -f "$(LIBFFI_BUILD_DIR)"/Makefile ]; then \
8
- echo "Configuring libffi"; \
9
- cd "$(LIBFFI_BUILD_DIR)" && \
10
- /usr/bin/env CFLAGS="$(LIBFFI_CFLAGS)" GREP_OPTIONS="" \
11
- /bin/sh $(LIBFFI_CONFIGURE) $(LIBFFI_HOST) > /dev/null; \
13
+ echo "Configuring libffi"; \
14
+ cd "$(LIBFFI_BUILD_DIR)" && \
15
+ env CFLAGS="$(LIBFFI_CFLAGS)" GREP_OPTIONS="" \
16
+ sh $(LIBFFI_CONFIGURE) $(LIBFFI_HOST) > /dev/null; \
12
17
  fi
13
18
  $(MAKE) -C "$(LIBFFI_BUILD_DIR)"
@@ -574,8 +574,8 @@
574
574
  * Makefile.am, include/Makefile.am: Move headers to
575
575
  libffi_la_SOURCES for new automake.
576
576
  * Makefile.in, include/Makefile.in: Rebuilt.
577
-
578
- * testsuite/lib/wrapper.exp: Copied from gcc tree to allow for
577
+
578
+ * testsuite/lib/wrapper.exp: Copied from gcc tree to allow for
579
579
  execution outside of gcc tree.
580
580
  * testsuite/lib/target-libpath.exp: Ditto.
581
581
 
@@ -1,8 +1,1392 @@
1
- 2011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
2
+
3
+ * ChangeLog: Archive to ChangeLog.libffi-3.1 and delete. Future
4
+ changelogs will come from git, with autogenerated snapshots shipped in
5
+ distributed tarballs.
6
+
7
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
8
+
9
+ Add support for stdcall, thiscall, and fastcall on non-Windows
10
+ x86-32.
11
+
12
+ Linux supports the stdcall calling convention, either via
13
+ functions explicitly declared with the stdcall attribute, or via
14
+ code compiled with -mrtd which effectively makes stdcall the
15
+ default.
16
+
17
+ This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on
18
+ non-Windows x86-32 platforms, as non-default calling conventions.
19
+
20
+ * Makefile.am: Compile in src/x86/win32.S on non-Windows x86-32.
21
+ * src/x86/ffitarget.h: Add FFI_STDCALL, FFI_THISCALL, and
22
+ FFI_FASTCALL on non-Windows x86-32. Increase trampoline size to
23
+ accomodate these calling conventions, and unify some ifdeffery.
24
+ * src/x86/ffi.c: Add support for FFI_STDCALL, FFI_THISCALL, and
25
+ FFI_FASTCALL on non-Windows x86-32 platforms; update ifdeffery.
26
+ * src/x86/win32.S: Support compiling on non-Windows x86-32
27
+ platforms. On those platforms, avoid redefining the SYSV symbols
28
+ already provided by src/x86/sysv.S.
29
+ * testsuite/libffi.call/closure_stdcall.c: Run on non-Windows.
30
+ #define __stdcall if needed.
31
+ * testsuite/libffi.call/closure_thiscall.c: Run on non-Windows.
32
+ #define __fastcall if needed.
33
+ * testsuite/libffi.call/fastthis1_win32.c: Run on non-Windows.
34
+ * testsuite/libffi.call/fastthis2_win32.c: Ditto.
35
+ * testsuite/libffi.call/fastthis3_win32.c: Ditto.
36
+ * testsuite/libffi.call/many2_win32.c: Ditto.
37
+ * testsuite/libffi.call/many_win32.c: Ditto.
38
+ * testsuite/libffi.call/strlen2_win32.c: Ditto.
39
+ * testsuite/libffi.call/strlen_win32.c: Ditto.
40
+ * testsuite/libffi.call/struct1_win32.c: Ditto.
41
+ * testsuite/libffi.call/struct2_win32.c: Ditto.
42
+
43
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
44
+
45
+ * prep_cif.c: Remove unnecessary ifdef for X86_WIN32.
46
+ ffi_prep_cif_core had a special case for X86_WIN32, checking for
47
+ FFI_THISCALL in addition to the FFI_FIRST_ABI-to-FFI_LAST_ABI
48
+ range before returning FFI_BAD_ABI. However, on X86_WIN32,
49
+ FFI_THISCALL already falls in that range, making the special case
50
+ unnecessary. Remove it.
51
+
52
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
53
+
54
+ * testsuite/libffi.call/closure_stdcall.c,
55
+ testsuite/libffi.call/closure_thiscall.c: Remove fragile stack
56
+ pointer checks. These files included inline assembly to save the
57
+ stack pointer before and after the call, and compare the values.
58
+ However, compilers can and do leave the stack in different states
59
+ for these two pieces of inline assembly, such as by saving a
60
+ temporary value on the stack across the call; observed with gcc
61
+ -Os, and verified as spurious through careful inspection of
62
+ disassembly.
63
+
64
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
65
+
66
+ * testsuite/libffi.call/many.c: Avoid spurious failure due to
67
+ excess floating-point precision.
68
+ * testsuite/libffi.call/many_win32.c: Ditto.
69
+
70
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
71
+
72
+ * libtool-ldflags: Re-add.
73
+
74
+ 2014-03-16 Josh Triplett <josh@joshtriplett.org>
75
+
76
+ * Makefile.in, aclocal.m4, compile, config.guess, config.sub,
77
+ configure, depcomp, include/Makefile.in, install-sh,
78
+ libtool-ldflags, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
79
+ m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4,
80
+ man/Makefile.in, mdate-sh, missing, testsuite/Makefile.in: Delete
81
+ autogenerated files from version control.
82
+ * .gitignore: Add autogenerated files.
83
+ * autogen.sh: New script to generate the autogenerated files.
84
+ * README: Document requirement to run autogen.sh when building
85
+ directly from version control.
86
+ * .travis.yml: Run autogen.sh
87
+
88
+ 2014-03-14 Anthony Green <green@moxielogic.com>
2
89
 
3
- * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
90
+ * configure, Makefile.in: Rebuilt.
91
+
92
+ 2014-03-10 Mike Hommey <mh+mozilla@glandium.org>
93
+
94
+ * configure.ac: Allow building for mipsel with Android NDK r8.
95
+ * Makefile.am (AM_MAKEFLAGS): Replace double quotes with single
96
+ quotes.
97
+
98
+ 2014-03-10 Landry Breuil <landry@openbsd.org>
99
+
100
+ * configure.ac: Ensure the linker supports @unwind sections in libffi.
101
+
102
+ 2014-03-01 Anthony Green <green@moxielogic.com>
103
+
104
+ * Makefile.am (EXTRA_DIST): Replace old scripts with
105
+ generate-darwin-source-and-headers.py.
106
+ * Makefile.in: Rebuilt.
107
+
108
+ 2014-02-28 Anthony Green <green@moxielogic.com>
109
+
110
+ * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for
111
+ --enable-debug builds.
112
+ * Makefile.in: Rebuilt.
113
+
114
+ 2014-02-28 Makoto Kato <m_kato@ga2.so-net.ne.jp>
115
+
116
+ * src/closures.c: Fix build failure when using clang for Android.
117
+
118
+ 2014-02-28 Marcin Wojdyr <wojdyr@gmail.com>
119
+
120
+ * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead
121
+ of -L${libdir}.
122
+
123
+ 2014-02-28 Paulo Pizarro <paulo.pizarro@gmail.com>
124
+
125
+ * src/bfin/sysv.S: Calling functions in shared libraries requires
126
+ considering the GOT.
127
+
128
+ 2014-02-28 Josh Triplett <josh@joshtriplett.org>
129
+
130
+ * src/x86/ffi64.c (classify_argument): Handle case where
131
+ FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE.
132
+
133
+ 2014-02-28 Anthony Green <green@moxielogic.com>
134
+
135
+ * ltmain.sh: Generate with libtool-2.4.2.418.
136
+ * m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto.
137
+ * configure: Rebuilt.
138
+
139
+ 2014-02-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
140
+
141
+ * configure.ac (AC_ARG_ENABLE struct): Fix typo in help
142
+ message.
143
+ (AC_ARG_ENABLE raw_api): Ditto.
144
+ * configure, fficonfig.h.in: Rebuilt.
145
+
146
+ 2014-02-28 Will Newton <will.newton@linaro.org>
147
+
148
+ * src/arm/sysv.S: Initialize IP register with FP.
149
+
150
+ 2014-02-28 Yufeng Zhang <yufeng.zhang@arm.com>
151
+
152
+ * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
153
+ main CFA reg; update cfi_rel_offset.
154
+
155
+ 2014-02-15 Marcus Comstedt <marcus@mc.pp.se>
156
+
157
+ * src/powerpc/ffi_linux64.c, src/powerpc/linux64_closure.S: Remove
158
+ assumption on contents of r11 in closure.
159
+
160
+ 2014-02-09 Heiher <r@hev.cc>
161
+
162
+ * src/mips/n32.S: Fix call floating point va function.
163
+
164
+ 2014-01-21 Zachary Waldowski <zach@waldowski.me>
165
+
166
+ * src/aarch64/ffi.c: Fix missing semicolons on assertions under
167
+ debug mode.
168
+
169
+ 2013-12-30 Zachary Waldowski <zach@waldowski.me>
170
+
171
+ * .gitignore: Exclude darwin_* generated source and build_* trees.
172
+ * src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang
173
+ previous prototype warnings.
174
+ * src/arm/ffi.c: Prevent NULL dereference, fix short type warning
175
+ * src/dlmalloc.c: Fix warnings from set_segment_flags return type,
176
+ and the native use of size_t for malloc on platforms
177
+ * src/arm/sysv.S: Use unified syntax. Clang clean-ups for
178
+ ARM_FUNC_START.
179
+ * generate-osx-source-and-headers.py: Remove.
180
+ * build-ios.sh: Remove.
181
+ * libffi.xcodeproj/project.pbxproj: Rebuild targets. Include
182
+ x86_64+aarch64 pieces in library. Export headers properly.
183
+ * src/x86/ffi64.c: More Clang warning clean-ups.
184
+ * src/closures.c (open_temp_exec_file_dir): Use size_t.
185
+ * src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result.
186
+ * src/aarch64/sysv.S: Use CNAME for global symbols. Only use
187
+ .size for ELF targets.
188
+ * src/aarch64/ffi.c: Clean up for double == long double. Clean up
189
+ from Clang warnings. Use Clang cache invalidation builtin. Use
190
+ size_t in place of unsigned in many places. Accommodate for
191
+ differences in Apple AArch64 ABI.
192
+
193
+ 2013-12-02 Daniel Rodríguez Troitiño <drodrigueztroitino@yahoo.es>
194
+
195
+ * generate-darwin-source-and-headers.py: Clean up, modernize,
196
+ merged version of previous scripts.
197
+
198
+ 2013-11-21 Anthony Green <green@moxielogic.com>
199
+
200
+ * configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
201
+ man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt.
202
+
203
+ 2013-11-21 Alan Modra <amodra@gmail.com>
204
+
205
+ * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
206
+ (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
207
+ * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
208
+ * include/ffi.h.in (ffi_prep_types): Declare.
209
+ * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
210
+ * src/types.c (FFI_NONCONST_TYPEDEF): Define and use for
211
+ HAVE_LONG_DOUBLE_VARIANT.
212
+ * src/powerpc/ffi_powerpc.h: New file.
213
+ * src/powerpc/ffi.c: Split into..
214
+ * src/powerpc/ffi_sysv.c: ..new file, and..
215
+ * src/powerpc/ffi_linux64.c: ..new file, rewriting parts.
216
+ * src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI
217
+ selection as bits controlling features.
218
+ * src/powerpc/linux64.S: For consistency, use POWERPC64 rather
219
+ than __powerpc64__.
220
+ * src/powerpc/linux64_closure.S: Likewise.
221
+ * src/powerpc/ppc_closure.S: Likewise. Move .note.FNU-stack
222
+ inside guard.
223
+ * src/powerpc/sysv.S: Likewise.
224
+ * configure: Regenerate.
225
+ * fficonfig.h.in: Regenerate.
226
+ * Makefile.in: Regenerate.
227
+
228
+ 2013-11-20 Alan Modra <amodra@gmail.com>
229
+
230
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use
231
+ NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their
232
+ 32-bit versions for 64-bit code.
233
+ * src/powerpc/linux64_closure.S: Don't use the return value area
234
+ as a parameter save area on ELFv2.
235
+
236
+ 2013-11-18 Iain Sandoe <iain@codesourcery.com>
237
+
238
+ * src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding.
239
+ * src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase
240
+ labels.
241
+
242
+ 2013-11-18 Anthony Green <green@moxielogic.com>
243
+
244
+ * src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of
245
+ function.
246
+ * src/arm/ffi.c (ffi_closure_inner): Moderize function declaration
247
+ to appease compiler.
248
+ Thanks for Gregory P. Smith <greg@krypto.org>.
249
+
250
+ 2013-11-18 Anthony Green <green@moxielogic.com>
251
+
252
+ * README (tested): Mention PowerPC ELFv2.
253
+
254
+ 2013-11-16 Alan Modra <amodra@gmail.com>
255
+
256
+ * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
257
+ Don't bl .Luint128.
258
+
259
+ 2013-11-16 Alan Modra <amodra@gmail.com>
260
+
261
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
262
+ test to select parameter save sizing for ELFv2 vs. ELFv1.
263
+ * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
264
+ FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define.
265
+ (FFI_TRAMPOLINE_SIZE): Define variant for ELFv2.
266
+ * src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define.
267
+ (discover_homogeneous_aggregate): New function.
268
+ (ffi_prep_args64): Adjust start of param save area for ELFv2.
269
+ Handle homogenous floating point struct parms.
270
+ (ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2.
271
+ Handle ELFv2 return values. Set FLAG_ARG_NEEDS_PSAVE. Handle
272
+ homogenous floating point structs.
273
+ (ffi_call): Increase size of smst_buffer for ELFv2. Handle ELFv2.
274
+ (flush_icache): Compile for ELFv2.
275
+ (ffi_prep_closure_loc): Set up ELFv2 trampoline.
276
+ (ffi_closure_helper_LINUX64): Don't return all structs directly
277
+ to caller. Handle homogenous floating point structs. Handle
278
+ ELFv2 struct return values.
279
+ * src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for
280
+ ELFv2. Adjust toc save location. Call function pointer using
281
+ r12. Handle FLAG_RETURNS_SMST. Don't predict branches.
282
+ * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2
283
+ for ELFv2. Define ELFv2 versions of STACKFRAME, PARMSAVE, and
284
+ RETVAL. Handle possibly missing parameter save area. Handle
285
+ ELFv2 return values.
286
+ (.note.GNU-stack): Move inside outer #ifdef.
287
+
288
+ 2013-11-16 Alan Modra <amodra@gmail.com>
289
+
290
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08
291
+ change. Do not consume an int arg when returning a small struct
292
+ for FFI_SYSV ABI.
293
+ (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST.
294
+ Properly copy bounce buffer to destination.
295
+ * src/powerpc/sysv.S: Revert 2013-02-08 change.
296
+ * src/powerpc/ppc_closure.S: Remove stray '+'.
297
+
298
+ 2013-11-16 Alan Modra <amodra@gmail.com>
299
+
300
+ * src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters
301
+ according to __STRUCT_PARM_ALIGN__.
302
+ (ffi_prep_cif_machdep_core): Likewise.
303
+ (ffi_closure_helper_LINUX64): Likewise.
304
+
305
+ 2013-11-16 Alan Modra <amodra@gmail.com>
306
+
307
+ * src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28.
308
+ (.note.GNU-stack): Move inside outer #ifdef.
309
+ * src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE,
310
+ RETVAL): Define and use throughout.
311
+ (ffi_closure_LINUX64): Save fprs before buying stack.
312
+ (.note.GNU-stack): Move inside outer #ifdef.
313
+
314
+ 2013-11-16 Alan Modra <amodra@gmail.com>
315
+
316
+ * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
317
+ (FFI_EXTRA_CIF_FIELDS): Define.
318
+ * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
319
+ ABI, not to both fpr and param save area.
320
+ (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
321
+ Keep initial flags. Formatting. Remove dead FFI_LINUX_SOFT_FLOAT
322
+ code.
323
+ (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
324
+ (ffi_closure_helper_LINUX64): Pass floating point as per ABI,
325
+ not to both fpr and parameter save areas.
326
+
327
+ * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
328
+ function cast and don't call ffi_prep_cif.
329
+ * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
330
+
331
+ 2013-11-15 Andrew Haley <aph@redhat.com>
332
+
333
+ * doc/libffi.texi (Closure Example): Fix the sample code.
334
+ * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
335
+
336
+ 2013-11-15 Andrew Haley <aph@redhat.com>
337
+
338
+ * testsuite/libffi.call/va_struct1.c (main): Fix broken test.
339
+ * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
340
+ * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
341
+ * testsuite/libffi.call/va_1.c (main): Likewise.
342
+
343
+ 2013-11-14 David Schneider <david.schneider@bivab.de>
344
+
345
+ * src/arm/ffi.c: Fix register allocation for mixed float and
346
+ doubles.
347
+ * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
348
+ for many mixed float and double arguments.
349
+
350
+ 2013-11-13 Alan Modra <amodra@gmail.com>
351
+
352
+ * doc/libffi.texi (Simple Example): Correct example code.
353
+ * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
354
+
355
+ 2013-11-13 Anthony Green <green@moxielogic.com>
356
+
357
+ * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
358
+ based build. (Thanks to tmr111116 on github)
359
+
360
+ 2013-11-09 Anthony Green <green@moxielogic.com>
361
+
362
+ * m4/libtool.m4: Refresh.
363
+ * configure, Makefile.in: Rebuilt.
364
+ * README: Add more notes about next release.
365
+
366
+ 2013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp>
367
+
368
+ * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
369
+ UltraSPARC-IIi as ultrasparc3.
370
+
371
+ 2013-11-06 Mark Kettenis <kettenis@gnu.org>
372
+
373
+ * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
374
+ 16-bytes.
375
+
376
+ 2013-11-06 Konstantin Belousov <kib@freebsd.org>
377
+
378
+ * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
379
+ source as not requiring executable stack.
380
+
381
+ 2013-11-02 Anthony Green <green@moxielogic.com>
382
+
383
+ * doc/libffi.texi (The Basics): Clarify return value buffer size
384
+ requirements. Also, NULL result buffer pointers are no longer
385
+ supported.
386
+ * doc/libffi.info: Rebuilt.
387
+
388
+ 2013-11-02 Mischa Jonker <mjonker@synopsys.com>
389
+
390
+ * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
391
+ * Makefile.in: Rebuilt.
392
+
393
+ 2013-11-02 David Schneider <david.schneider@bivab.de>
394
+
395
+ * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
396
+ * testsuite/libffi.call/many_mixed.c: New file.
397
+ * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
398
+
399
+ 2013-11-02 Vitaly Budovski
400
+
401
+ * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
402
+
403
+ 2013-10-23 Mark H Weaver <mhw@netris.org>
404
+
405
+ * src/mips/ffi.c: Fix handling of uint32_t arguments on the
406
+ MIPS N32 ABI.
407
+
408
+ 2013-10-13 Sandra Loosemore <sandra@codesourcery.com>
409
+
410
+ * README: Add Nios II to table of supported platforms.
411
+ * Makefile.am (EXTRA_DIST): Add nios2 files.
412
+ (nodist_libffi_la_SOURCES): Likewise.
413
+ * Makefile.in: Regenerated.
414
+ * configure.ac (nios2*-linux*): New host.
415
+ (NIOS2): Add AM_CONDITIONAL.
416
+ * configure: Regenerated.
417
+ * src/nios2/ffi.c: New.
418
+ * src/nios2/ffitarget.h: New.
419
+ * src/nios2/sysv.S: New.
420
+ * src/prep_cif.c (initialize_aggregate): Handle extra structure
421
+ alignment via FFI_AGGREGATE_ALIGNMENT.
422
+ (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
423
+
424
+ 2013-10-10 Sandra Loosemore <sandra@codesourcery.com>
425
+
426
+ * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
427
+ Fix uninitialized variable.
428
+
429
+ 2013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
430
+
431
+ * testsuite/libffi.call/many.c (many): Replace * with +.
432
+
433
+ 2013-10-08 Ondřej Bílka <neleai@seznam.cz>
434
+
435
+ * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
436
+ src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
437
+ src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
438
+ src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
439
+ src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
440
+ src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
441
+ spelling errors.
442
+
443
+ 2013-10-08 Anthony Green <green@moxielogic.com>
444
+
445
+ * aclocal.m4, compile, config.guess, config.sub, depcomp,
446
+ install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
447
+ * configure.ac: Update version to 3.0.14-rc0.
448
+ * Makefile.in, configure, Makefile.in, include/Makefile.in,
449
+ man/Makefile.in, testsuite/Makefile.in: Rebuilt.
450
+ * README: Mention M88K and VAX.
451
+
452
+ 2013-07-15 Miod Vallat <miod@openbsd.org>
453
+
454
+ * Makefile.am,
455
+ configure.ac,
456
+ src/m88k/ffi.c,
457
+ src/m88k/ffitarget.h,
458
+ src/m88k/obsd.S,
459
+ src/vax/elfbsd.S,
460
+ src/vax/ffi.c,
461
+ src/vax/ffitarget.h: Add m88k and vax support.
462
+
463
+ 2013-06-24 Alan Modra <amodra@gmail.com>
464
+
465
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
466
+ before statements.
467
+ (ffi_prep_args64): Support little-endian.
468
+ (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
469
+ * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
470
+ * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
471
+
472
+ 2013-06-12 Mischa Jonker <mjonker@synopsys.com>
473
+
474
+ * configure.ac: Add support for ARC.
475
+ * Makefile.am: Likewise.
476
+ * README: Add ARC details.
477
+ * src/arc/arcompact.S: New.
478
+ * src/arc/ffi.c: Likewise.
479
+ * src/arc/ffitarget.h: Likewise.
480
+
481
+ 2013-03-28 David Schneider <david.schneider@bivab.de>
482
+
483
+ * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
484
+ * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
485
+ * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
486
+ mixed arguments, many doubles.
487
+ * testsuite/libffi.call/many_double.c: testcase for calling a function using
488
+ more than 8 doubles.
489
+ * testcase/libffi.call/many.c: use absolute value to check result against an
490
+ epsilon
491
+
492
+ 2013-03-17 Anthony Green <green@moxielogic.com>
493
+
494
+ * README: Update for 3.0.13.
495
+ * configure.ac: Ditto.
496
+ * configure: Rebuilt.
497
+ * doc/*: Update version.
498
+
499
+ 2013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
500
+
501
+ * src/closures.c (is_emutramp_enabled
502
+ [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
503
+ enclosing #if scope.
504
+
505
+ 2013-03-17 Anthony Green <green@moxielogic.com>
506
+
507
+ * configure.ac: Only modify toolexecdir in certain cases.
508
+ * configure: Rebuilt.
509
+
510
+ 2013-03-16 Gilles Talis <gilles.talis@gmail.com>
511
+
512
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
513
+ fparg_count,etc on __NO_FPRS__ targets.
514
+
515
+ 2013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
516
+
517
+ * src/m68k/sysv.S (epilogue): Don't use extb instruction on
518
+ m680000 machines.
519
+
520
+ 2013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
521
+
522
+ * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
523
+
524
+ 2013-03-13 Markos Chandras <markos.chandras@imgtec.com>
525
+
526
+ * configure.ac: Add support for Imagination Technologies Meta.
527
+ * Makefile.am: Likewise.
528
+ * README: Add Imagination Technologies Meta details.
529
+ * src/metag/ffi.c: New.
530
+ * src/metag/ffitarget.h: Likewise.
531
+ * src/metag/sysv.S: Likewise.
532
+
533
+ 2013-02-24 Andreas Schwab <schwab@linux-m68k.org>
534
+
535
+ * doc/libffi.texi (Structures): Fix missing category argument of
536
+ @deftp.
537
+
538
+ 2013-02-11 Anthony Green <green@moxielogic.com>
539
+
540
+ * configure.ac: Update release number to 3.0.12.
541
+ * configure: Rebuilt.
542
+ * README: Update release info.
543
+
544
+ 2013-02-10 Anthony Green <green@moxielogic.com>
545
+
546
+ * README: Add Moxie.
547
+ * src/moxie/ffi.c: Created.
548
+ * src/moxie/eabi.S: Created.
549
+ * src/moxie/ffitarget.h: Created.
550
+ * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
551
+ * Makefile.in: Rebuilt.
552
+ * configure.ac: Add Moxie.
553
+ * configure: Rebuilt.
554
+ * testsuite/libffi.call/huge_struct.c: Disable format string
555
+ warnings for moxie*-*-elf tests.
556
+
557
+ 2013-02-10 Anthony Green <green@moxielogic.com>
558
+
559
+ * Makefile.am (LTLDFLAGS): Fix reference.
560
+ * Makefile.in: Rebuilt.
561
+
562
+ 2013-02-10 Anthony Green <green@moxielogic.com>
563
+
564
+ * README: Update supported platforms. Update test results link.
565
+
566
+ 2013-02-09 Anthony Green <green@moxielogic.com>
567
+
568
+ * testsuite/libffi.call/negint.c: Remove forced -O2.
569
+ * testsuite/libffi.call/many2.c (foo): Remove GCCism.
570
+ * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
571
+
572
+ * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
573
+ closure return type fix developed by Martin v. Löwis for cpython
574
+ fork.
575
+
576
+ 2013-02-08 Andreas Tobler <andreast@fgznet.ch>
577
+
578
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
579
+ support.
580
+ * src/powerpc/sysv.S: Ditto.
581
+
582
+ 2013-02-08 Anthony Green <green@moxielogic.com>
583
+
584
+ * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
585
+ arm*-*-*.
586
+
587
+ 2013-02-08 Anthony Green <green@moxielogic.com>
588
+
589
+ * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
590
+
591
+ 2013-02-08 Matthias Klose <doko@ubuntu.com>
592
+
593
+ * man/ffi_prep_cif.3: Clean up for debian linter.
594
+
595
+ 2013-02-08 Peter Bergner <bergner@vnet.ibm.com>
596
+
597
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
598
+ on the stack.
599
+
600
+ 2013-02-08 Anthony Green <green@moxielogic.com>
601
+
602
+ * Makefile.am (EXTRA_DIST): Add missing files.
603
+ * testsuite/Makefile.am (EXTRA_DIST): Ditto.
604
+ * Makefile.in: Rebuilt.
605
+
606
+ 2013-02-08 Anthony Green <green@moxielogic.com>
607
+
608
+ * configure.ac: Move sparc asm config checks to within functions
609
+ for compatibility with sun tools.
610
+ * configure: Rebuilt.
611
+ * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
612
+ systems.
613
+ * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
614
+ flusher.
615
+
616
+ 2013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
617
+
618
+ * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
619
+ small big-endian structures.
620
+ (ffi_prep_args): Ditto.
621
+
622
+ 2013-02-07 Anthony Green <green@moxielogic.com>
623
+
624
+ * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
625
+ (effectively hiding ffi_call_v8).
626
+
627
+ 2013-02-07 Anthony Green <green@moxielogic.com>
628
+
629
+ * configure.ac: Update bug reporting address.
630
+ * configure.in: Rebuild.
631
+
632
+ * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
633
+ Sun compiler.
634
+ * src/sparc/ffi.c (ffi_call): Remove warning.
635
+ Call ffi_flush_icache for non-GCC builds.
636
+ (ffi_prep_closure_loc): Use ffi_flush_icache.
637
+
638
+ * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
639
+ * Makefile.in: Rebuilt.
640
+ * libtool-ldflags: New file.
641
+
642
+ 2013-02-07 Daniel Schepler <dschepler@gmail.com>
643
+
644
+ * configure.ac: Correctly identify x32 systems as 64-bit.
645
+ * m4/libtool.m4: Remove libtool expr error.
646
+ * aclocal.m4, configure: Rebuilt.
647
+
648
+ 2013-02-07 Anthony Green <green@moxielogic.com>
649
+
650
+ * configure.ac: Fix GCC usage test.
651
+ * configure: Rebuilt.
652
+ * README: Mention LLVM/GCC x86_64 issue.
653
+ * testsuite/Makefile.in: Rebuilt.
654
+
655
+ 2013-02-07 Anthony Green <green@moxielogic.com>
656
+
657
+ * testsuite/libffi.call/cls_double_va.c (main): Replace // style
658
+ comments with /* */ for xlc compiler.
659
+ * testsuite/libffi.call/stret_large.c (main): Ditto.
660
+ * testsuite/libffi.call/stret_large2.c (main): Ditto.
661
+ * testsuite/libffi.call/nested_struct1.c (main): Ditto.
662
+ * testsuite/libffi.call/huge_struct.c (main): Ditto.
663
+ * testsuite/libffi.call/float_va.c (main): Ditto.
664
+ * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
665
+ * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
666
+ * testsuite/libffi.call/cls_pointer.c (main): Ditto.
667
+ * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
668
+
669
+ 2013-02-06 Anthony Green <green@moxielogic.com>
670
+
671
+ * man/ffi_prep_cif.3: Clean up for debian lintian checker.
672
+
673
+ 2013-02-06 Anthony Green <green@moxielogic.com>
674
+
675
+ * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
676
+ * Makefile.in: Rebuild.
677
+
678
+ 2013-02-02 Mark H Weaver <mhw@netris.org>
679
+
680
+ * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
681
+ via general purpose registers.
682
+
683
+ 2013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
684
+
685
+ * README: Add MicroBlaze details.
686
+ * Makefile.am: Add MicroBlaze support.
687
+ * configure.ac: Likewise.
688
+ * src/microblaze/ffi.c: New.
689
+ * src/microblaze/ffitarget.h: Likewise.
690
+ * src/microblaze/sysv.S: Likewise.
691
+
692
+ 2013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
693
+ * testsuite/libffi.call/return_uc.c: Fixed issue.
694
+
695
+ 2013-01-21 Chris Zankel <chris@zankel.net>
696
+
697
+ * README: Add Xtensa support.
698
+ * Makefile.am: Likewise.
699
+ * configure.ac: Likewise.
700
+ * Makefile.in Regenerate.
701
+ * configure: Likewise.
702
+ * src/prep_cif.c: Handle Xtensa.
703
+ * src/xtensa: New directory.
704
+ * src/xtensa/ffi.c: New file.
705
+ * src/xtensa/ffitarget.h: Ditto.
706
+ * src/xtensa/sysv.S: Ditto.
707
+
708
+ 2013-01-11 Anthony Green <green@moxielogic.com>
709
+
710
+ * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
711
+ comments with /* */ for xlc compiler.
712
+ * src/powerpc/aix.S (ffi_call_AIX): Ditto.
713
+ * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
714
+ deprecated inline function.
715
+ * testsuite/libffi.special/ffitestcxx.h: Ditto.
716
+ * README: Add update for AIX support.
717
+
718
+ 2013-01-11 Anthony Green <green@moxielogic.com>
719
+
720
+ * configure.ac: Robustify pc relative reloc check.
721
+ * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
722
+ changing option for 32-bit x86.
723
+ * aclocal.m4, configure: Rebuilt.
724
+ * README: Update supported target list.
725
+
726
+ 2013-01-10 Anthony Green <green@moxielogic.com>
727
+
728
+ * README (tested): Add Compiler column to table.
729
+
730
+ 2013-01-10 Anthony Green <green@moxielogic.com>
731
+
732
+ * src/x86/ffi64.c (struct register_args): Make sse array and array
733
+ of unions for sunpro compiler compatibility.
734
+
735
+ 2013-01-10 Anthony Green <green@moxielogic.com>
736
+
737
+ * configure.ac: Test target platform size_t size. Handle both 32
738
+ and 64-bit builds for x86_64-* and i?86-* targets (allowing for
739
+ CFLAG option to change default settings).
740
+ * configure, aclocal.m4: Rebuilt.
741
+
742
+ 2013-01-10 Anthony Green <green@moxielogic.com>
743
+
744
+ * testsuite/libffi.special/special.exp: Only run exception
745
+ handling tests when using GNU compiler.
746
+
747
+ * m4/ax_compiler_vendor.m4: New file.
748
+ * configure.ac: Test for compiler vendor and don't use
749
+ AX_CFLAGS_WARN_ALL with the sun compiler.
750
+ * aclocal.m4, configure: Rebuilt.
751
+
752
+ 2013-01-10 Anthony Green <green@moxielogic.com>
753
+
754
+ * include/ffi_common.h: Don't use GCCisms to define types when
755
+ building with the SUNPRO compiler.
756
+
757
+ 2013-01-10 Anthony Green <green@moxielogic.com>
758
+
759
+ * configure.ac: Put local.exp in the right place.
760
+ * configure: Rebuilt.
761
+
762
+ * src/x86/ffi.c: Update comment about regparm function attributes.
763
+ * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
764
+ that all function arguments be passed on the stack (no regparm
765
+ support).
766
+
767
+ 2013-01-08 Anthony Green <green@moxielogic.com>
768
+
769
+ * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
770
+ when we are using the vendor compiler.
771
+ * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
772
+ ../local.exp.
773
+ * configure, testsuite/Makefile.in: Rebuilt.
774
+
775
+ * testsuite/libffi.call/call.exp: Run tests with different
776
+ options, depending on whether or not we are using gcc or the
777
+ vendor compiler.
778
+ * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
779
+ whether or not we are building/testing with gcc.
780
+
781
+ 2013-01-08 Anthony Green <green@moxielogic.com>
782
+
783
+ * configure.ac: Switch x86 solaris target to X86 by default.
784
+ * configure: Rebuilt.
785
+
786
+ 2013-01-08 Anthony Green <green@moxielogic.com>
787
+
788
+ * configure.ac: Fix test for read-only eh_frame.
789
+ * configure: Rebuilt.
790
+
791
+ 2013-01-08 Anthony Green <green@moxielogic.com>
792
+
793
+ * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
794
+ when building with the GNU toolchain.
795
+ * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
796
+ compiler.
797
+
798
+ 2013-01-07 Thorsten Glaser <tg@mirbsd.org>
799
+
800
+ * testsuite/libffi.call/cls_uchar_va.c,
801
+ testsuite/libffi.call/cls_ushort_va.c,
802
+ testsuite/libffi.call/va_1.c: Testsuite fixes.
803
+
804
+ 2013-01-07 Thorsten Glaser <tg@mirbsd.org>
805
+
806
+ * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
807
+ (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
808
+ * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
809
+
810
+ 2013-01-04 Anthony Green <green@moxielogic.com>
811
+
812
+ * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
813
+ and -Wall. This is set in the configure script after testing for
814
+ GCC.
815
+ * Makefile.in: Rebuilt.
816
+
817
+ 2013-01-02 rofl0r <https://github.com/rofl0r>
818
+
819
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
820
+ when long double == double.
821
+
822
+ 2013-01-02 Reini Urban <rurban@x-ray.at>
823
+
824
+ * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
825
+ (required for shared libs on cygwin/mingw).
826
+ * Makefile.in: Rebuilt.
827
+
828
+ 2012-10-31 Alan Modra <amodra@gmail.co>
829
+
830
+ * src/powerpc/linux64_closure.S: Add new ABI support.
831
+ * src/powerpc/linux64.S: Likewise.
832
+
833
+ 2012-10-30 Magnus Granberg <zorry@gentoo.org>
834
+ Pavel Labushev <pavel.labushev@runbox.ru>
835
+
836
+ * configure.ac: New options pax_emutramp
837
+ * configure, fficonfig.h.in: Regenerated
838
+ * src/closures.c: New function emutramp_enabled_check() and
839
+ checks.
840
+
841
+ 2012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
842
+
843
+ * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
844
+ lion) and future version.
845
+ * configure: Rebuild.
846
+
847
+ 2012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
848
+ Marcus Shawcroft <marcus.shawcroft at arm.com>
849
+
850
+ * README: Add details of aarch64 port.
851
+ * src/aarch64/ffi.c: New.
852
+ * src/aarch64/ffitarget.h: Likewise.
853
+ * src/aarch64/sysv.S: Likewise.
854
+ * Makefile.am: Support aarch64.
855
+ * configure.ac: Support aarch64.
856
+ * Makefile.in, configure: Rebuilt.
857
+
858
+ 2012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
859
+ Marcus Shawcroft <marcus.shawcroft at arm.com>
860
+
861
+ * testsuite/lib/libffi.exp: Add support for aarch64.
862
+ * testsuite/libffi.call/cls_struct_va1.c: New.
863
+ * testsuite/libffi.call/cls_uchar_va.c: Likewise.
864
+ * testsuite/libffi.call/cls_uint_va.c: Likewise.
865
+ * testsuite/libffi.call/cls_ulong_va.c: Likewise.
866
+ * testsuite/libffi.call/cls_ushort_va.c: Likewise.
867
+ * testsuite/libffi.call/nested_struct11.c: Likewise.
868
+ * testsuite/libffi.call/uninitialized.c: Likewise.
869
+ * testsuite/libffi.call/va_1.c: Likewise.
870
+ * testsuite/libffi.call/va_struct1.c: Likewise.
871
+ * testsuite/libffi.call/va_struct2.c: Likewise.
872
+ * testsuite/libffi.call/va_struct3.c: Likewise.
873
+
874
+ 2012-10-12 Walter Lee <walt@tilera.com>
875
+
876
+ * Makefile.am: Add TILE-Gx/TILEPro support.
877
+ * configure.ac: Likewise.
878
+ * Makefile.in: Regenerate.
879
+ * configure: Likewise.
880
+ * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
881
+ * src/tile: New directory.
882
+ * src/tile/ffi.c: New file.
883
+ * src/tile/ffitarget.h: Ditto.
884
+ * src/tile/tile.S: Ditto.
885
+
886
+ 2012-10-12 Matthias Klose <doko@ubuntu.com>
887
+
888
+ * generate-osx-source-and-headers.py: Normalize whitespace.
889
+
890
+ 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
891
+
892
+ * configure: Regenerated.
893
+
894
+ 2012-08-26 Andrew Pinski <apinski@cavium.com>
895
+
896
+ PR libffi/53014
897
+ * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
898
+ soft-float.
899
+
900
+ 2012-08-08 Uros Bizjak <ubizjak@gmail.com>
901
+
902
+ * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
903
+ just return FFI_BAD_ABI when things are wrong.
904
+
905
+ 2012-07-18 H.J. Lu <hongjiu.lu@intel.com>
906
+
907
+ PR libffi/53982
908
+ PR libffi/53973
909
+ * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
910
+ (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
911
+
912
+ 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
913
+
914
+ * configure: Regenerated.
915
+
916
+ 2012-05-05 Nicolas Lelong
917
+
918
+ * libffi.xcodeproj/project.pbxproj: Fixes.
919
+ * README: Update for iOS builds.
920
+
921
+ 2012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
922
+
923
+ * configure.ac: Add Blackfin/sysv support
924
+ * Makefile.am: Add Blackfin/sysv support
925
+ * src/bfin/ffi.c: Add Blackfin/sysv support
926
+ * src/bfin/ffitarget.h: Add Blackfin/sysv support
927
+
928
+ 2012-04-11 Anthony Green <green@moxielogic.com>
929
+
930
+ * Makefile.am (EXTRA_DIST): Add new script.
931
+ * Makefile.in: Rebuilt.
932
+
933
+ 2012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
934
+
935
+ * generate-ios-source-and-headers.py,
936
+ libffi.xcodeproj/project.pbxproj: Support a Mac static library via
937
+ Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
938
+ generation into an Xcode "run script" phase. Include both as
939
+ Xcode build scripts. Don't always regenerate config files.
940
+
941
+ 2012-04-10 Anthony Green <green@moxielogic.com>
942
+
943
+ * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
944
+
945
+ 2012-04-06 Anthony Green <green@moxielogic.com>
946
+
947
+ * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
948
+ * Makefile.in: Rebuilt.
949
+
950
+ 2012-04-06 Mike Lewis <mikelikespie@gmail.com>
951
+
952
+ * generate-ios-source-and-headers.py: New file.
953
+ * libffi.xcodeproj/project.pbxproj: New file.
954
+ * README: Update instructions on building iOS binary.
955
+ * build-ios.sh: Delete.
956
+
957
+ 2012-04-06 Anthony Green <green@moxielogic.com>
958
+
959
+ * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
960
+ compilers, then use it.
961
+
962
+ 2012-04-06 H.J. Lu <hongjiu.lu@intel.com>
963
+
964
+ * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
965
+
966
+ 2012-04-06 Anthony Green <green@moxielogic.com>
967
+
968
+ * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
969
+ * testsuite/Makefile.in: Rebuilt.
970
+
971
+ 2012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
972
+
973
+ * include/ffi.h.in: Add missing trampoline table fields.
974
+ * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
975
+ in CNAME.
976
+ * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
977
+
978
+ 2012-04-02 Peter Bergner <bergner@vnet.ibm.com>
979
+
980
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
981
+ Silence casting pointer to integer of different size warning.
982
+ Delete goto to previously deleted label.
983
+ (ffi_call): Silence possibly undefined warning.
984
+ (ffi_closure_helper_SYSV): Declare variable type.
985
+
986
+ 2012-04-02 Peter Rosin <peda@lysator.liu.se>
987
+
988
+ * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
989
+ value in the Intel version as is already done for the AT&T version.
990
+ (ffi_closure_SYSV): Likewise.
991
+ (ffi_closure_raw_SYSV): Likewise.
992
+ (ffi_closure_STDCALL): Likewise.
993
+
994
+ 2012-03-29 Peter Rosin <peda@lysator.liu.se>
995
+
996
+ * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
997
+ generation, fix the ENDP label and remove the surplus third arg
998
+ from the 'lea' insn.
999
+
1000
+ 2012-03-29 Peter Rosin <peda@lysator.liu.se>
1001
+
1002
+ * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
1003
+ visible outside the PROC, so that ffi_closure_raw_THISCALL can see
1004
+ it. Also instruct the assembler to add a frame to the function.
1005
+
1006
+ 2012-03-23 Peter Rosin <peda@lysator.liu.se>
1007
+
1008
+ * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
1009
+ * Makefile.in: Rebuilt.
1010
+ * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
1011
+ to all data exports, when compiling libffi clients using MSVC.
1012
+
1013
+ 2012-03-29 Peter Rosin <peda@lysator.liu.se>
1014
+
1015
+ * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
1016
+ make it the default for MSVC.
1017
+ (FFI_TYPE_MS_STRUCT): New structure return convention.
1018
+ * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
1019
+ return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
1020
+ instead of an ordinary FFI_TYPE_STRUCT.
1021
+ (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
1022
+ (ffi_call): Likewise.
1023
+ (ffi_prep_incoming_args_SYSV): Likewise.
1024
+ (ffi_raw_call): Likewise.
1025
+ (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
1026
+ * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
1027
+ return a pointer to the result structure in eax and don't pop
1028
+ that pointer from the stack, the caller takes care of it.
1029
+ (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
1030
+ (ffi_closure_raw_SYSV): Likewise.
1031
+
1032
+ 2012-03-22 Peter Rosin <peda@lysator.liu.se>
1033
+
1034
+ * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
1035
+ assembly version with Intel syntax.
1036
+ * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
1037
+
1038
+ 2012-03-23 Peter Rosin <peda@lysator.liu.se>
1039
+
1040
+ * testsuite/libffi.call/ffitest.h: Provide abstration of
1041
+ __attribute__((fastcall)) in the form of a __FASTCALL__
1042
+ define. Define it to __fastcall for MSVC.
1043
+ * testsuite/libffi.call/fastthis1_win32.c: Use the above.
1044
+ * testsuite/libffi.call/fastthis2_win32.c: Likewise.
1045
+ * testsuite/libffi.call/fastthis3_win32.c: Likewise.
1046
+ * testsuite/libffi.call/strlen2_win32.c: Likewise.
1047
+ * testsuite/libffi.call/struct1_win32.c: Likewise.
1048
+ * testsuite/libffi.call/struct2_win32.c: Likewise.
1049
+
1050
+ 2012-03-22 Peter Rosin <peda@lysator.liu.se>
1051
+
1052
+ * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
1053
+ frame on function entry, MASM adds one automatically.
1054
+
1055
+ 2012-03-22 Peter Rosin <peda@lysator.liu.se>
1056
+
1057
+ * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
1058
+ bits in the MSVC headers.
1059
+
1060
+ 2012-03-22 Peter Rosin <peda@lysator.liu.se>
1061
+
1062
+ * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
1063
+ with no declarations after statements.
1064
+ * testsuite/libffi.call/cls_16byte.c: Likewise.
1065
+ * testsuite/libffi.call/cls_18byte.c: Likewise.
1066
+ * testsuite/libffi.call/cls_19byte.c: Likewise.
1067
+ * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1068
+ * testsuite/libffi.call/cls_20byte.c: Likewise.
1069
+ * testsuite/libffi.call/cls_20byte1.c: Likewise.
1070
+ * testsuite/libffi.call/cls_24byte.c: Likewise.
1071
+ * testsuite/libffi.call/cls_2byte.c: Likewise.
1072
+ * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1073
+ * testsuite/libffi.call/cls_3byte1.c: Likewise.
1074
+ * testsuite/libffi.call/cls_3byte2.c: Likewise.
1075
+ * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1076
+ * testsuite/libffi.call/cls_4byte.c: Likewise.
1077
+ * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
1078
+ * testsuite/libffi.call/cls_5byte.c: Likewise.
1079
+ * testsuite/libffi.call/cls_64byte.c: Likewise.
1080
+ * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1081
+ * testsuite/libffi.call/cls_6byte.c: Likewise.
1082
+ * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1083
+ * testsuite/libffi.call/cls_7byte.c: Likewise.
1084
+ * testsuite/libffi.call/cls_8byte.c: Likewise.
1085
+ * testsuite/libffi.call/cls_9byte1.c: Likewise.
1086
+ * testsuite/libffi.call/cls_9byte2.c: Likewise.
1087
+ * testsuite/libffi.call/cls_align_double.c: Likewise.
1088
+ * testsuite/libffi.call/cls_align_float.c: Likewise.
1089
+ * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1090
+ * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
1091
+ * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1092
+ * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1093
+ * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1094
+ * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1095
+ * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1096
+ * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1097
+ * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1098
+ * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1099
+ * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
1100
+ * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
1101
+ * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1102
+ * testsuite/libffi.call/huge_struct.c: Likewise.
1103
+ * testsuite/libffi.call/nested_struct.c: Likewise.
1104
+ * testsuite/libffi.call/nested_struct1.c: Likewise.
1105
+ * testsuite/libffi.call/nested_struct10.c: Likewise.
1106
+ * testsuite/libffi.call/nested_struct2.c: Likewise.
1107
+ * testsuite/libffi.call/nested_struct3.c: Likewise.
1108
+ * testsuite/libffi.call/nested_struct4.c: Likewise.
1109
+ * testsuite/libffi.call/nested_struct5.c: Likewise.
1110
+ * testsuite/libffi.call/nested_struct6.c: Likewise.
1111
+ * testsuite/libffi.call/nested_struct7.c: Likewise.
1112
+ * testsuite/libffi.call/nested_struct8.c: Likewise.
1113
+ * testsuite/libffi.call/nested_struct9.c: Likewise.
1114
+ * testsuite/libffi.call/stret_large.c: Likewise.
1115
+ * testsuite/libffi.call/stret_large2.c: Likewise.
1116
+ * testsuite/libffi.call/stret_medium.c: Likewise.
1117
+ * testsuite/libffi.call/stret_medium2.c: Likewise.
1118
+ * testsuite/libffi.call/struct1.c: Likewise.
1119
+ * testsuite/libffi.call/struct1_win32.c: Likewise.
1120
+ * testsuite/libffi.call/struct2.c: Likewise.
1121
+ * testsuite/libffi.call/struct2_win32.c: Likewise.
1122
+ * testsuite/libffi.call/struct3.c: Likewise.
1123
+ * testsuite/libffi.call/struct4.c: Likewise.
1124
+ * testsuite/libffi.call/struct5.c: Likewise.
1125
+ * testsuite/libffi.call/struct6.c: Likewise.
1126
+ * testsuite/libffi.call/struct7.c: Likewise.
1127
+ * testsuite/libffi.call/struct8.c: Likewise.
1128
+ * testsuite/libffi.call/struct9.c: Likewise.
1129
+ * testsuite/libffi.call/testclosure.c: Likewise.
1130
+
1131
+ 2012-03-21 Peter Rosin <peda@lysator.liu.se>
1132
+
1133
+ * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
1134
+ printing doubles (%lf is for long doubles).
1135
+ (main): Likewise.
1136
+
1137
+ 2012-03-21 Peter Rosin <peda@lysator.liu.se>
1138
+
1139
+ * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1140
+ (set_ld_library_path_env_vars): Add the library search dir to PATH
1141
+ (and save PATH for later).
1142
+ (restore_ld_library_path_env_vars): Restore PATH.
1143
+
1144
+ 2012-03-21 Peter Rosin <peda@lysator.liu.se>
1145
+
1146
+ * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1147
+ (set_ld_library_path_env_vars): Add the library search dir to PATH
1148
+ (and save PATH for later).
1149
+ (restore_ld_library_path_env_vars): Restore PATH.
1150
+
1151
+ 2012-03-20 Peter Rosin <peda@lysator.liu.se>
1152
+
1153
+ * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1154
+ * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1155
+ visible outside the PROC, so that ffi_closure_THISCALL can see it.
1156
+
1157
+ 2012-03-20 Peter Rosin <peda@lysator.liu.se>
1158
+
1159
+ * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1160
+ * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1161
+ visible outside the PROC, so that ffi_closure_THISCALL can see it.
1162
+
1163
+ 2012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
1164
+
1165
+ * src/m68k/ffi.c: Add MINT support.
1166
+ * src/m68k/sysv.S: Ditto.
1167
+
1168
+ 2012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
1169
+
1170
+ * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
1171
+ ffi_call_VFP().
1172
+ (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
1173
+ ffi_closure_VFP.
1174
+ * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
1175
+
1176
+ 2012-03-19 chennam <csit@axway.com>
1177
+
1178
+ * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
1179
+ support.
1180
+
1181
+ 2012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
1182
+
1183
+ * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1184
+ just return FFI_BAD_ABI when things are wrong.
1185
+ * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
1186
+
1187
+ 2012-03-09 David Edelsohn <dje.gcc@gmail.com>
1188
+
1189
+ * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
1190
+ change to return value of ffi_closure_helper_DARWIN and load type
1191
+ from return type.
1192
+
1193
+ 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1194
+
1195
+ * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
1196
+ long.
1197
+ (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
1198
+ (ffi_closure_unix64_inner): Cast return pointer to unsigned long
1199
+ first.
1200
+
1201
+ * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
1202
+ (ffi_arg): Set to unsigned long long for x32.
1203
+ (ffi_sarg): Set to long long for x32.
1204
+
1205
+ 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1206
+
1207
+ * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
1208
+
1209
+ 2012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
1210
+
1211
+ * configure.ac: Add -no-undefined for both 32- and 64-bit x86
1212
+ windows-like hosts.
1213
+ * configure: Rebuilt.
1214
+
1215
+ 2012-02-27 Mikael Pettersson <mikpe@it.uu.se>
1216
+
1217
+ PR libffi/52223
1218
+ * Makefile.am (FLAGS_TO_PASS): Define.
1219
+ * Makefile.in: Regenerate.
1220
+
1221
+ 2012-02-23 Anthony Green <green@moxielogic.com>
1222
+
1223
+ * src/*/ffitarget.h: Ensure that users never include ffitarget.h
1224
+ directly.
1225
+
1226
+ 2012-02-23 Kai Tietz <ktietz@redhat.com>
1227
+
1228
+ PR libffi/52221
1229
+ * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
1230
+ prototype.
1231
+ (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
1232
+ thiscall-convention.
1233
+ (ffi_raw_call): Use ffi_prep_args_raw.
1234
+ * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
1235
+ implementation for stub.
1236
+
1237
+ 2012-02-10 Kai Tietz <ktietz@redhat.com>
1238
+
1239
+ * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
1240
+ windows target.
1241
+ * configure: Regenerated.
1242
+
1243
+ 2012-02-08 Kai Tietz <ktietz@redhat.com>
1244
+
1245
+ * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
1246
+ also FFI_THISCALL.
1247
+ * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
1248
+ (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
1249
+ (ffi_prep_closure_loc): Add FFI_THISCALL support.
1250
+ * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
1251
+ * src/x86/win32.S (ffi_closure_THISCALL): New closure code
1252
+ for thiscall-calling convention.
1253
+ * testsuite/libffi.call/closure_thiscall.c: New test.
1254
+
1255
+ 2012-01-28 Kai Tietz <ktietz@redhat.com>
1256
+
1257
+ * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
1258
+ argument to prototype for specify calling-convention.
1259
+ (ffi_call): Add support for stdcall/thiscall convention.
1260
+ (ffi_prep_args): Likewise.
1261
+ (ffi_raw_call): Likewise.
1262
+ * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
1263
+ FFI_FASTCALL.
1264
+ * src/x86/win32.S (_ffi_call_win32): Add support for
1265
+ fastcall/thiscall calling-convention calls.
1266
+ * testsuite/libffi.call/fastthis1_win32.c: New test.
1267
+ * testsuite/libffi.call/fastthis2_win32.c: New test.
1268
+ * testsuite/libffi.call/fastthis3_win32.c: New test.
1269
+ * testsuite/libffi.call/strlen2_win32.c: New test.
1270
+ * testsuite/libffi.call/many2_win32.c: New test.
1271
+ * testsuite/libffi.call/struct1_win32.c: New test.
1272
+ * testsuite/libffi.call/struct2_win32.c: New test.
1273
+
1274
+ 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
1275
+
1276
+ * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
1277
+
1278
+ 2012-01-23 Anthony Green <green@moxielogic.com>
1279
+ Chris Young <cdyoung@ntlworld.com>
1280
+
1281
+ * configure.ac: Add Amiga support.
4
1282
  * configure: Rebuilt.
5
1283
 
1284
+ 2012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
1285
+
1286
+ * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
1287
+
1288
+ 2012-01-23 Andreas Schwab <schwab@linux-m68k.org>
1289
+
1290
+ * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
1291
+ mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
1292
+
1293
+ 2012-01-19 Jakub Jelinek <jakub@redhat.com>
1294
+
1295
+ PR rtl-optimization/48496
1296
+ * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
1297
+
1298
+ 2012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1299
+
1300
+ * configure.ac (i?86-*-*): Set TARGET to X86_64.
1301
+ * configure: Regenerate.
1302
+
1303
+ 2011-12-07 Andrew Pinski <apinski@cavium.com>
1304
+
1305
+ PR libffi/50051
1306
+ * src/mips/n32.S: Add ".set mips4".
1307
+
1308
+ 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
1309
+
1310
+ * configure: Regenerate.
1311
+
1312
+ 2011-11-12 David Gilbert <david.gilbert@linaro.org>
1313
+
1314
+ * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
1315
+ man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
1316
+ man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
1317
+ src/cris/ffi.c, src/prep_cif.c,
1318
+ testsuite/libffi.call/cls_double_va.c,
1319
+ testsuite/libffi.call/cls_longdouble_va.c,
1320
+ testsuite/libffi.call/float_va.c: Many changes to support variadic
1321
+ function calls.
1322
+
1323
+ 2011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1324
+
1325
+ * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
1326
+ src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
1327
+ softfloat powerpc variants.
1328
+
1329
+ 2011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
1330
+
1331
+ * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
1332
+ * configure: Rebuilt.
1333
+
1334
+ 2011-11-12 Timothy Wall <twall@users.sf.net>
1335
+
1336
+ * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
1337
+ alignment of 4 for wince on ARM.
1338
+
1339
+ 2011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1340
+ Anthony Green <green@moxielogic.com>
1341
+
1342
+ * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
1343
+ instructions (not available on some cores, like the PPC440).
1344
+
1345
+ 2011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
1346
+
1347
+ * m4/ax_enable_builddir: Change from string comparison to numeric
1348
+ comparison for wc output.
1349
+ * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
1350
+ X 10.7.
1351
+ * configure: Rebuilt.
1352
+
1353
+ 2011-11-12 Anthony Green <green@moxielogic.com>
1354
+
1355
+ * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1356
+ files with debug info.
1357
+ * Makefile.in: Rebuilt.
1358
+
1359
+ 2011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1360
+
1361
+ * README: Update list of supported OpenBSD systems.
1362
+
1363
+ 2011-11-12 Anthony Green <green@moxielogic.com>
1364
+
1365
+ * libtool-version: Update.
1366
+ * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1367
+ FFI_DEBUG.
1368
+ (libffi_la_SOURCES): Remove src/debug.c
1369
+ (EXTRA_DIST): Add src/debug.c
1370
+ * Makefile.in: Rebuilt.
1371
+ * README: Update for 3.0.11.
1372
+
1373
+ 2011-11-10 Richard Henderson <rth@redhat.com>
1374
+
1375
+ * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1376
+ * configure, aclocal.m4: Rebuild.
1377
+
1378
+ 2011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1379
+
1380
+ PR libffi/49594
1381
+ * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1382
+ helper reference track the architecture pointer size.
1383
+
1384
+ 2011-08-25 Andrew Haley <aph@redhat.com>
1385
+
1386
+ * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1387
+ instructions.
1388
+ * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
1389
+
6
1390
  2011-07-11 Andrew Haley <aph@redhat.com>
7
1391
 
8
1392
  * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
@@ -75,6 +1459,10 @@
75
1459
  * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
76
1460
  just return FFI_BAD_ABI when things are wrong.
77
1461
 
1462
+ 2012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1463
+
1464
+ * src/sparc/v9.S (STACKFRAME): Bump to 176.
1465
+
78
1466
  2011-02-09 Stuart Shelton <srcshelton@gmail.com>
79
1467
 
80
1468
  http://bugs.gentoo.org/show_bug.cgi?id=286911
@@ -603,6 +1991,13 @@
603
1991
  * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
604
1992
  type on HP-UX.
605
1993
 
1994
+ 2012-02-13 Kai Tietz <ktietz@redhat.com>
1995
+
1996
+ PR libffi/52221
1997
+ * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1998
+ support for X86_WIN32.
1999
+ (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
2000
+
606
2001
  2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
607
2002
 
608
2003
  * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
@@ -777,6 +2172,11 @@
777
2172
  * man/Makefile.in: Regenerate.
778
2173
  * testsuite/Makefile.in: Regenerate.
779
2174
 
2175
+ 2011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
2176
+
2177
+ * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
2178
+ * configure: Rebuilt.
2179
+
780
2180
  2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
781
2181
 
782
2182
  * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.