remogatto-ffi 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. data/LICENSE +51 -0
  2. data/README.rdoc +69 -0
  3. data/Rakefile +144 -0
  4. data/ext/ffi_c/AbstractMemory.c +489 -0
  5. data/ext/ffi_c/AbstractMemory.h +160 -0
  6. data/ext/ffi_c/ArrayType.c +129 -0
  7. data/ext/ffi_c/ArrayType.h +58 -0
  8. data/ext/ffi_c/AutoPointer.c +61 -0
  9. data/ext/ffi_c/AutoPointer.h +18 -0
  10. data/ext/ffi_c/Buffer.c +187 -0
  11. data/ext/ffi_c/Call.c +431 -0
  12. data/ext/ffi_c/Call.h +77 -0
  13. data/ext/ffi_c/DynamicLibrary.c +216 -0
  14. data/ext/ffi_c/DynamicLibrary.h +22 -0
  15. data/ext/ffi_c/Function.c +498 -0
  16. data/ext/ffi_c/Function.h +73 -0
  17. data/ext/ffi_c/FunctionInfo.c +213 -0
  18. data/ext/ffi_c/LastError.c +159 -0
  19. data/ext/ffi_c/LastError.h +18 -0
  20. data/ext/ffi_c/MemoryPointer.c +178 -0
  21. data/ext/ffi_c/MemoryPointer.h +20 -0
  22. data/ext/ffi_c/MethodHandle.c +356 -0
  23. data/ext/ffi_c/MethodHandle.h +53 -0
  24. data/ext/ffi_c/Platform.c +59 -0
  25. data/ext/ffi_c/Platform.h +16 -0
  26. data/ext/ffi_c/Pointer.c +217 -0
  27. data/ext/ffi_c/Pointer.h +49 -0
  28. data/ext/ffi_c/Struct.c +770 -0
  29. data/ext/ffi_c/Struct.h +80 -0
  30. data/ext/ffi_c/StructByValue.c +140 -0
  31. data/ext/ffi_c/StructByValue.h +53 -0
  32. data/ext/ffi_c/StructLayout.c +450 -0
  33. data/ext/ffi_c/Type.c +329 -0
  34. data/ext/ffi_c/Type.h +57 -0
  35. data/ext/ffi_c/Types.c +103 -0
  36. data/ext/ffi_c/Types.h +85 -0
  37. data/ext/ffi_c/Variadic.c +260 -0
  38. data/ext/ffi_c/compat.h +72 -0
  39. data/ext/ffi_c/endian.h +40 -0
  40. data/ext/ffi_c/extconf.rb +34 -0
  41. data/ext/ffi_c/ffi.c +80 -0
  42. data/ext/ffi_c/libffi.bsd.mk +34 -0
  43. data/ext/ffi_c/libffi.darwin.mk +75 -0
  44. data/ext/ffi_c/libffi.gnu.mk +29 -0
  45. data/ext/ffi_c/libffi.mk +13 -0
  46. data/ext/ffi_c/libffi/ChangeLog +3243 -0
  47. data/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
  48. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  49. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  50. data/ext/ffi_c/libffi/LICENSE +21 -0
  51. data/ext/ffi_c/libffi/Makefile.am +177 -0
  52. data/ext/ffi_c/libffi/Makefile.in +1640 -0
  53. data/ext/ffi_c/libffi/README +328 -0
  54. data/ext/ffi_c/libffi/TODO +1 -0
  55. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  56. data/ext/ffi_c/libffi/aclocal.m4 +7516 -0
  57. data/ext/ffi_c/libffi/compile +142 -0
  58. data/ext/ffi_c/libffi/config.guess +1516 -0
  59. data/ext/ffi_c/libffi/config.sub +1626 -0
  60. data/ext/ffi_c/libffi/configure +24414 -0
  61. data/ext/ffi_c/libffi/configure.ac +365 -0
  62. data/ext/ffi_c/libffi/configure.host +11 -0
  63. data/ext/ffi_c/libffi/depcomp +584 -0
  64. data/ext/ffi_c/libffi/doc/libffi.info +533 -0
  65. data/ext/ffi_c/libffi/doc/libffi.texi +541 -0
  66. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  67. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  68. data/ext/ffi_c/libffi/fficonfig.h.in +160 -0
  69. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  70. data/ext/ffi_c/libffi/include/Makefile.in +422 -0
  71. data/ext/ffi_c/libffi/include/ffi.h.in +393 -0
  72. data/ext/ffi_c/libffi/include/ffi_common.h +98 -0
  73. data/ext/ffi_c/libffi/install-sh +323 -0
  74. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  75. data/ext/ffi_c/libffi/libtool-version +29 -0
  76. data/ext/ffi_c/libffi/ltcf-c.sh +861 -0
  77. data/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
  78. data/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
  79. data/ext/ffi_c/libffi/ltconfig +2862 -0
  80. data/ext/ffi_c/libffi/ltmain.sh +6930 -0
  81. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  82. data/ext/ffi_c/libffi/man/Makefile.in +395 -0
  83. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  84. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  85. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  86. data/ext/ffi_c/libffi/mdate-sh +201 -0
  87. data/ext/ffi_c/libffi/missing +353 -0
  88. data/ext/ffi_c/libffi/mkinstalldirs +158 -0
  89. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  90. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  91. data/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
  92. data/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
  93. data/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
  94. data/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
  95. data/ext/ffi_c/libffi/src/closures.c +596 -0
  96. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  97. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  98. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  99. data/ext/ffi_c/libffi/src/debug.c +59 -0
  100. data/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
  101. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  102. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  103. data/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
  104. data/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
  105. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  106. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  107. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  108. data/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
  109. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  110. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  111. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  112. data/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
  113. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  114. data/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
  115. data/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
  116. data/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
  117. data/ext/ffi_c/libffi/src/mips/n32.S +534 -0
  118. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  119. data/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
  120. data/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
  121. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  122. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  123. data/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
  124. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
  125. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  126. data/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
  127. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
  128. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
  129. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
  130. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
  131. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  132. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  133. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  134. data/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
  135. data/ext/ffi_c/libffi/src/prep_cif.c +174 -0
  136. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  137. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  138. data/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
  139. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  140. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  141. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  142. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  143. data/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
  144. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  145. data/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
  146. data/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
  147. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
  148. data/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
  149. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  150. data/ext/ffi_c/libffi/src/types.c +77 -0
  151. data/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
  152. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  153. data/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
  154. data/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
  155. data/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
  156. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  157. data/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
  158. data/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
  159. data/ext/ffi_c/libffi/src/x86/win32.S +391 -0
  160. data/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
  161. data/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
  162. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  163. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
  164. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  165. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  276. data/ext/ffi_c/libffi/texinfo.tex +7482 -0
  277. data/ext/ffi_c/rbffi.h +26 -0
  278. data/gen/Rakefile +12 -0
  279. data/lib/ffi.rb +11 -0
  280. data/lib/ffi/autopointer.rb +61 -0
  281. data/lib/ffi/buffer.rb +0 -0
  282. data/lib/ffi/callback.rb +10 -0
  283. data/lib/ffi/enum.rb +78 -0
  284. data/lib/ffi/errno.rb +8 -0
  285. data/lib/ffi/ffi.rb +99 -0
  286. data/lib/ffi/io.rb +21 -0
  287. data/lib/ffi/library.rb +218 -0
  288. data/lib/ffi/managedstruct.rb +55 -0
  289. data/lib/ffi/memorypointer.rb +73 -0
  290. data/lib/ffi/platform.rb +78 -0
  291. data/lib/ffi/pointer.rb +119 -0
  292. data/lib/ffi/struct.rb +164 -0
  293. data/lib/ffi/tools/const_generator.rb +177 -0
  294. data/lib/ffi/tools/generator.rb +58 -0
  295. data/lib/ffi/tools/generator_task.rb +35 -0
  296. data/lib/ffi/tools/struct_generator.rb +194 -0
  297. data/lib/ffi/tools/types_generator.rb +123 -0
  298. data/lib/ffi/types.rb +153 -0
  299. data/lib/ffi/union.rb +12 -0
  300. data/lib/ffi/variadic.rb +25 -0
  301. data/spec/ffi/bool_spec.rb +24 -0
  302. data/spec/ffi/buffer_spec.rb +202 -0
  303. data/spec/ffi/callback_spec.rb +591 -0
  304. data/spec/ffi/enum_spec.rb +164 -0
  305. data/spec/ffi/errno_spec.rb +13 -0
  306. data/spec/ffi/function_spec.rb +47 -0
  307. data/spec/ffi/library_spec.rb +144 -0
  308. data/spec/ffi/managed_struct_spec.rb +56 -0
  309. data/spec/ffi/number_spec.rb +231 -0
  310. data/spec/ffi/pointer_spec.rb +195 -0
  311. data/spec/ffi/rbx/attach_function_spec.rb +27 -0
  312. data/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
  313. data/spec/ffi/rbx/spec_helper.rb +1 -0
  314. data/spec/ffi/rbx/struct_spec.rb +13 -0
  315. data/spec/ffi/spec_helper.rb +17 -0
  316. data/spec/ffi/string_spec.rb +103 -0
  317. data/spec/ffi/struct_callback_spec.rb +62 -0
  318. data/spec/ffi/struct_initialize_spec.rb +30 -0
  319. data/spec/ffi/struct_spec.rb +529 -0
  320. data/spec/ffi/typedef_spec.rb +48 -0
  321. data/spec/ffi/union_spec.rb +60 -0
  322. data/spec/ffi/variadic_spec.rb +84 -0
  323. data/spec/spec.opts +4 -0
  324. metadata +432 -0
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+ require 'mkmf'
3
+ require 'rbconfig'
4
+ dir_config("ffi_c")
5
+
6
+ #IS_MAC = Config::CONFIG['host_os'] =~ /^darwin/
7
+ #if IS_MAC
8
+ # $CPPFLAGS << " -DMACOSX"
9
+ # find_header("ffi.h", "/usr/include/ffi")
10
+ #end
11
+ have_closure_alloc = have_library("ffi", "ffi_closure_alloc", [ "ffi.h" ])
12
+ $defs.push("-DHAVE_FFI_CLOSURE_ALLOC") if have_closure_alloc
13
+ libffi_ok = have_closure_alloc
14
+ $defs << "-DHAVE_LIBFFI" if libffi_ok
15
+ $defs << "-DHAVE_EXTCONF_H" if $defs.empty? # needed so create_header works
16
+
17
+ have_func('rb_thread_blocking_region')
18
+
19
+ create_makefile("ffi_c")
20
+ create_header("extconf.h")
21
+ File.open("Makefile", "a") do |mf|
22
+ mf.puts "CPPFLAGS += -Werror -Wunused -Wformat -Wimplicit -Wreturn-type"
23
+ unless libffi_ok
24
+ mf.puts "LIBFFI_HOST=--host=#{Config::CONFIG['host_alias']}" if Config::CONFIG.has_key?("host_alias")
25
+ mf.puts "FFI_MMAP_EXEC=-DFFI_MMAP_EXEC_WRIT=#{Config::CONFIG['host_os'] =~ /win/ ? 0 : 1}"
26
+ if Config::CONFIG['host_os'].downcase =~ /darwin/
27
+ mf.puts "include ${srcdir}/libffi.darwin.mk"
28
+ elsif Config::CONFIG['host_os'].downcase =~ /bsd/
29
+ mf.puts '.include "${srcdir}/libffi.bsd.mk"'
30
+ else
31
+ mf.puts "include ${srcdir}/libffi.mk"
32
+ end
33
+ end
34
+ end
data/ext/ffi_c/ffi.c ADDED
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Copyright (c) 2008, 2009, Wayne Meissner
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ *
8
+ * * Redistributions of source code must retain the above copyright notice, this
9
+ * list of conditions and the following disclaimer.
10
+ * * Redistributions in binary form must reproduce the above copyright notice
11
+ * this list of conditions and the following disclaimer in the documentation
12
+ * and/or other materials provided with the distribution.
13
+ * * The name of the author or authors may not be used to endorse or promote
14
+ * products derived from this software without specific prior written permission.
15
+ *
16
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+
28
+ #include <sys/types.h>
29
+ #include <stdio.h>
30
+ #include <ruby.h>
31
+
32
+ #include <ffi.h>
33
+
34
+ #include "rbffi.h"
35
+ #include "AbstractMemory.h"
36
+ #include "Pointer.h"
37
+ #include "MemoryPointer.h"
38
+ #include "AutoPointer.h"
39
+ #include "Struct.h"
40
+ #include "StructByValue.h"
41
+ #include "DynamicLibrary.h"
42
+ #include "Platform.h"
43
+ #include "Types.h"
44
+ #include "LastError.h"
45
+ #include "Function.h"
46
+ #include "MethodHandle.h"
47
+ #include "Call.h"
48
+ #include "ArrayType.h"
49
+
50
+ void Init_ffi_c(void);
51
+
52
+ VALUE rbffi_FFIModule = Qnil;
53
+
54
+ static VALUE moduleFFI = Qnil;
55
+
56
+ void
57
+ Init_ffi_c(void) {
58
+ rbffi_FFIModule = moduleFFI = rb_define_module("FFI");
59
+ rb_global_variable(&moduleFFI);
60
+
61
+ // FFI::Type needs to be initialized before most other classes
62
+ rbffi_Type_Init(moduleFFI);
63
+ rbffi_ArrayType_Init(moduleFFI);
64
+ rbffi_LastError_Init(moduleFFI);
65
+ rbffi_Call_Init(moduleFFI);
66
+ rbffi_MethodHandle_Init(moduleFFI);
67
+ rbffi_Platform_Init(moduleFFI);
68
+ rbffi_AbstractMemory_Init(moduleFFI);
69
+ rbffi_Pointer_Init(moduleFFI);
70
+ rbffi_AutoPointer_Init(moduleFFI);
71
+ rbffi_Function_Init(moduleFFI);
72
+ rbffi_MemoryPointer_Init(moduleFFI);
73
+ rbffi_Buffer_Init(moduleFFI);
74
+ rbffi_StructByValue_Init(moduleFFI);
75
+ rbffi_Struct_Init(moduleFFI);
76
+ rbffi_DynamicLibrary_Init(moduleFFI);
77
+ rbffi_Variadic_Init(moduleFFI);
78
+ rbffi_Types_Init(moduleFFI);
79
+ }
80
+
@@ -0,0 +1,34 @@
1
+ # -*- makefile -*-
2
+ #
3
+ # Makefile for BSD systems
4
+ #
5
+
6
+ INCFLAGS += -I${LIBFFI_BUILD_DIR}/include
7
+ LOCAL_LIBS += ${LIBFFI} -lpthread
8
+
9
+ LIBFFI_CFLAGS = ${FFI_MMAP_EXEC} -pthread
10
+ LIBFFI_BUILD_DIR = ${.CURDIR}/libffi
11
+
12
+ .if "${srcdir}" == "."
13
+ LIBFFI_SRC_DIR := ${.CURDIR}/libffi
14
+ .else
15
+ LIBFFI_SRC_DIR := ${srcdir}/libffi
16
+ .endif
17
+
18
+
19
+ LIBFFI = ${LIBFFI_BUILD_DIR}/.libs/libffi_convenience.a
20
+ LIBFFI_CONFIGURE = ${LIBFFI_SRC_DIR}/configure --disable-static \
21
+ --with-pic=yes --disable-dependency-tracking
22
+
23
+ $(OBJS): ${LIBFFI}
24
+
25
+ $(LIBFFI):
26
+ @mkdir -p ${LIBFFI_BUILD_DIR}
27
+ @if [ ! -f ${LIBFFI_BUILD_DIR}/Makefile ]; then \
28
+ echo "Configuring libffi"; \
29
+ cd ${LIBFFI_BUILD_DIR} && \
30
+ /usr/bin/env CC="${CC}" LD="${LD}" CFLAGS="${LIBFFI_CFLAGS}" \
31
+ /bin/sh ${LIBFFI_CONFIGURE} ${LIBFFI_HOST} > /dev/null; \
32
+ fi
33
+ @cd ${LIBFFI_BUILD_DIR} && ${MAKE}
34
+
@@ -0,0 +1,75 @@
1
+ # -*- makefile -*-
2
+
3
+ include ${srcdir}/libffi.gnu.mk
4
+
5
+ CCACHE := $(shell type -p ccache)
6
+ BUILD_DIR := $(shell pwd)
7
+
8
+ INCFLAGS += -I${BUILD_DIR}
9
+
10
+ # Work out which arches we need to compile the lib for
11
+ ARCHES :=
12
+ ifneq ($(findstring -arch ppc,$(CFLAGS)),)
13
+ ARCHES += ppc
14
+ endif
15
+
16
+ ifneq ($(findstring -arch i386,$(CFLAGS)),)
17
+ ARCHES += i386
18
+ endif
19
+
20
+ ifneq ($(findstring -arch x86_64,$(CFLAGS)),)
21
+ ARCHES += x86_64
22
+ endif
23
+
24
+ ifeq ($(strip $(ARCHES)),)
25
+ # Just build the one (default) architecture
26
+ $(LIBFFI):
27
+ @mkdir -p $(LIBFFI_BUILD_DIR)
28
+ @if [ ! -f $(LIBFFI_BUILD_DIR)/Makefile ]; then \
29
+ echo "Configuring libffi"; \
30
+ cd $(LIBFFI_BUILD_DIR) && \
31
+ /usr/bin/env CC="$(CC)" LD="$(LD)" CFLAGS="$(LIBFFI_CFLAGS)" \
32
+ /bin/sh $(LIBFFI_CONFIGURE) $(LIBFFI_HOST) > /dev/null; \
33
+ fi
34
+ cd $(LIBFFI_BUILD_DIR) && $(MAKE)
35
+
36
+ else
37
+ # Build a fat binary and assemble
38
+ build_ffi = \
39
+ mkdir -p $(BUILD_DIR)/libffi-$(1); \
40
+ (if [ ! -f $(BUILD_DIR)/libffi-$(1)/Makefile ]; then \
41
+ echo "Configuring libffi for $(1)"; \
42
+ cd $(BUILD_DIR)/libffi-$(1) && \
43
+ env CC="$(CCACHE) $(CC)" CFLAGS="-arch $(1) $(LIBFFI_CFLAGS)" LDFLAGS="-arch $(1)" \
44
+ $(LIBFFI_CONFIGURE) --host=$(1)-apple-darwin > /dev/null; \
45
+ fi); \
46
+ env MACOSX_DEPLOYMENT_TARGET=10.4 $(MAKE) -C $(BUILD_DIR)/libffi-$(1)
47
+
48
+ $(LIBFFI):
49
+ @for arch in $(ARCHES); do $(call build_ffi,$$arch);done
50
+ # Assemble into a FAT (i386, ppc) library
51
+ @mkdir -p $(BUILD_DIR)/libffi/.libs
52
+ env MACOSX_DEPLOYMENT_TARGET=10.4 /usr/bin/libtool -static -o $@ \
53
+ $(foreach arch, $(ARCHES),$(BUILD_DIR)/libffi-$(arch)/.libs/libffi_convenience.a)
54
+ @mkdir -p $(LIBFFI_BUILD_DIR)/include
55
+ $(RM) $(LIBFFI_BUILD_DIR)/include/ffi.h
56
+ @( \
57
+ printf "#if defined(__i386__)\n"; \
58
+ printf "#include \"libffi-i386/include/ffi.h\"\n"; \
59
+ printf "#elif defined(__x86_64__)\n"; \
60
+ printf "#include \"libffi-x86_64/include/ffi.h\"\n";\
61
+ printf "#elif defined(__ppc__)\n"; \
62
+ printf "#include \"libffi-ppc/include/ffi.h\"\n";\
63
+ printf "#endif\n";\
64
+ ) > $(LIBFFI_BUILD_DIR)/include/ffi.h
65
+ @( \
66
+ printf "#if defined(__i386__)\n"; \
67
+ printf "#include \"libffi-i386/include/ffitarget.h\"\n"; \
68
+ printf "#elif defined(__x86_64__)\n"; \
69
+ printf "#include \"libffi-x86_64/include/ffitarget.h\"\n";\
70
+ printf "#elif defined(__ppc__)\n"; \
71
+ printf "#include \"libffi-ppc/include/ffitarget.h\"\n";\
72
+ printf "#endif\n";\
73
+ ) > $(LIBFFI_BUILD_DIR)/include/ffitarget.h
74
+
75
+ endif
@@ -0,0 +1,29 @@
1
+ # -*- makefile -*-
2
+ #
3
+ # Common definitions for all systems that use GNU make
4
+ #
5
+
6
+
7
+ # Tack the extra deps onto the autogenerated variables
8
+ INCFLAGS += -I$(LIBFFI_BUILD_DIR)/include
9
+ LOCAL_LIBS += $(LIBFFI)
10
+ BUILD_DIR = $(shell pwd)
11
+ LIBFFI_CFLAGS = $(FFI_MMAP_EXEC)
12
+ LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi
13
+
14
+ ifeq ($(srcdir),.)
15
+ LIBFFI_SRC_DIR := $(shell pwd)/libffi
16
+ else
17
+ LIBFFI_SRC_DIR := $(srcdir)/libffi
18
+ endif
19
+
20
+ LIBFFI = $(LIBFFI_BUILD_DIR)/.libs/libffi_convenience.a
21
+ LIBFFI_CONFIGURE = $(LIBFFI_SRC_DIR)/configure --disable-static \
22
+ --with-pic=yes --disable-dependency-tracking
23
+
24
+ $(OBJS): $(LIBFFI)
25
+
26
+ #
27
+ # libffi.mk or libffi.darwin.mk contains rules for building the actual library
28
+ #
29
+
@@ -0,0 +1,13 @@
1
+ # -*- makefile -*-
2
+
3
+ include ${srcdir}/libffi.gnu.mk
4
+
5
+ $(LIBFFI):
6
+ @mkdir -p $(LIBFFI_BUILD_DIR)
7
+ @if [ ! -f $(LIBFFI_BUILD_DIR)/Makefile ]; then \
8
+ echo "Configuring libffi"; \
9
+ cd $(LIBFFI_BUILD_DIR) && \
10
+ /usr/bin/env CC="$(CC)" LD="$(LD)" CFLAGS="$(LIBFFI_CFLAGS)" \
11
+ /bin/sh $(LIBFFI_CONFIGURE) $(LIBFFI_HOST) > /dev/null; \
12
+ fi
13
+ cd $(LIBFFI_BUILD_DIR) && $(MAKE)
@@ -0,0 +1,3243 @@
1
+ 2008-01-24 David Edelsohn <edelsohn@gnu.org>
2
+
3
+ * configure: Regenerate.
4
+
5
+ 2008-01-06 Andreas Tobler <a.tobler@schweiz.org>
6
+
7
+ * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
8
+
9
+ 2008-01-05 Andreas Tobler <a.tobler@schweiz.org>
10
+
11
+ PR testsuite/32843
12
+ * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
13
+ signed/unsigned int8/16 for X86_DARWIN.
14
+ Updated copyright info.
15
+ Handle one and two byte structs with special cif->flags.
16
+ * src/x86/ffitarget.h: Add special types for one and two byte structs.
17
+ Updated copyright info.
18
+ * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
19
+ sysv.S
20
+ Remove code to pop args from the stack after call.
21
+ Special-case signed/unsigned for int8/16, one and two byte structs.
22
+ (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
23
+ FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
24
+ FFI_TYPE_SINT32.
25
+ Updated copyright info.
26
+
27
+ 2007-12-08 David Daney <ddaney@avtrex.com>
28
+
29
+ * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
30
+ SUBU, add with ADDU and use smaller code sequences.
31
+
32
+ 2007-12-07 David Daney <ddaney@avtrex.com>
33
+
34
+ * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
35
+ type.
36
+
37
+ 2007-12-06 David Daney <ddaney@avtrex.com>
38
+
39
+ * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
40
+ defined.
41
+ (ffi_java_raw): New typedef.
42
+ (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
43
+ ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
44
+ ffi_java_raw.
45
+ (ffi_java_raw_closure) : Same.
46
+ (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
47
+ parameter types.
48
+ * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
49
+ FFI_SIZEOF_JAVA_RAW.
50
+ (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
51
+ Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
52
+ sizeof(ffi_java_raw) for alignment calculations.
53
+ (ffi_java_ptrarray_to_raw): Same.
54
+ (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
55
+ if FFI_SIZEOF_JAVA_RAW == 4.
56
+ (ffi_java_raw_to_rvalue): Same.
57
+ (ffi_java_raw_call): Change type of raw to ffi_java_raw.
58
+ (ffi_java_translate_args): Same.
59
+ (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
60
+ parameter types.
61
+ * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
62
+
63
+ 2007-12-06 David Daney <ddaney@avtrex.com>
64
+
65
+ * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
66
+ pointer values.
67
+
68
+ 2007-12-01 Andreas Tobler <a.tobler@schweiz.org>
69
+
70
+ PR libffi/31937
71
+ * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
72
+ Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
73
+ * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
74
+ set the NUM_FPR_ARG_REGISTERS according to.
75
+ Add support for potential soft-float support under hard-float
76
+ architecture.
77
+ (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
78
+ FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
79
+ to the FFI_LINUX_SOFT_FLOAT ABI.
80
+ (ffi_prep_cif_machdep): Likewise.
81
+ (ffi_closure_helper_SYSV): Likewise.
82
+ * src/powerpc/ppc_closure.S: Make sure not to store float/double
83
+ on archs where __NO_FPRS__ is true.
84
+ Add FFI_TYPE_UINT128 support.
85
+ * src/powerpc/sysv.S: Add support for soft-float long-double-128.
86
+ Adjust copyright notice.
87
+
88
+ 2007-11-25 Andreas Tobler <a.tobler@schweiz.org>
89
+
90
+ * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
91
+ * include/ffi_common.h: ... here.
92
+ Update copyright.
93
+
94
+ 2007-11-17 Andreas Tobler <a.tobler@schweiz.org>
95
+
96
+ * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
97
+ * src/powerpc/linux64.S: Likewise.
98
+ * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
99
+ * testsuite/libffi.call/return_ldl.c: New test.
100
+
101
+ 2007-09-04 <aph@redhat.com>
102
+
103
+ * src/arm/sysv.S (UNWIND): New.
104
+ (Whole file): Conditionally compile unwinder directives.
105
+ * src/arm/sysv.S: Add unwinder directives.
106
+
107
+ * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
108
+ Only treat r0 as a struct address if we're actually returning a
109
+ struct by address.
110
+ Only copy the bytes that are actually within a struct.
111
+ (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
112
+ is returned in r0, not passed by address.
113
+ (ffi_call): Allocate a word-sized temporary for the case where
114
+ a composite is returned in r0.
115
+ (ffi_prep_incoming_args_SYSV): Align as necessary.
116
+
117
+ 2007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
118
+
119
+ * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
120
+ directly using the sys_cacheflush syscall.
121
+
122
+ 2007-07-27 Andrew Haley <aph@redhat.com>
123
+
124
+ * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
125
+
126
+ 2007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
127
+
128
+ * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
129
+ * configure.ac: Likewise.
130
+ * Makefile.in: Regenerate.
131
+ * include/Makefile.in: Likewise.
132
+ * testsuite/Makefile.in: Likewise.
133
+ * configure: Likewise.
134
+
135
+ 2007-08-24 David Daney <ddaney@avtrex.com>
136
+
137
+ * testsuite/libffi.call/return_sl.c: New test.
138
+
139
+ 2007-08-10 David Daney <ddaney@avtrex.com>
140
+
141
+ * testsuite/libffi.call/cls_multi_ushort.c,
142
+ testsuite/libffi.call/cls_align_uint16.c,
143
+ testsuite/libffi.call/nested_struct1.c,
144
+ testsuite/libffi.call/nested_struct3.c,
145
+ testsuite/libffi.call/cls_7_1_byte.c,
146
+ testsuite/libffi.call/nested_struct5.c,
147
+ testsuite/libffi.call/cls_double.c,
148
+ testsuite/libffi.call/nested_struct7.c,
149
+ testsuite/libffi.call/cls_sint.c,
150
+ testsuite/libffi.call/nested_struct9.c,
151
+ testsuite/libffi.call/cls_20byte1.c,
152
+ testsuite/libffi.call/cls_multi_sshortchar.c,
153
+ testsuite/libffi.call/cls_align_sint64.c,
154
+ testsuite/libffi.call/cls_3byte2.c,
155
+ testsuite/libffi.call/cls_multi_schar.c,
156
+ testsuite/libffi.call/cls_multi_uchar.c,
157
+ testsuite/libffi.call/cls_19byte.c,
158
+ testsuite/libffi.call/cls_9byte1.c,
159
+ testsuite/libffi.call/cls_align_float.c,
160
+ testsuite/libffi.call/closure_fn1.c,
161
+ testsuite/libffi.call/problem1.c,
162
+ testsuite/libffi.call/closure_fn3.c,
163
+ testsuite/libffi.call/cls_sshort.c,
164
+ testsuite/libffi.call/closure_fn5.c,
165
+ testsuite/libffi.call/cls_align_double.c,
166
+ testsuite/libffi.call/nested_struct.c,
167
+ testsuite/libffi.call/cls_2byte.c,
168
+ testsuite/libffi.call/nested_struct10.c,
169
+ testsuite/libffi.call/cls_4byte.c,
170
+ testsuite/libffi.call/cls_6byte.c,
171
+ testsuite/libffi.call/cls_8byte.c,
172
+ testsuite/libffi.call/cls_multi_sshort.c,
173
+ testsuite/libffi.call/cls_align_sint16.c,
174
+ testsuite/libffi.call/cls_align_uint32.c,
175
+ testsuite/libffi.call/cls_20byte.c,
176
+ testsuite/libffi.call/cls_float.c,
177
+ testsuite/libffi.call/nested_struct2.c,
178
+ testsuite/libffi.call/cls_5_1_byte.c,
179
+ testsuite/libffi.call/nested_struct4.c,
180
+ testsuite/libffi.call/cls_24byte.c,
181
+ testsuite/libffi.call/nested_struct6.c,
182
+ testsuite/libffi.call/cls_64byte.c,
183
+ testsuite/libffi.call/nested_struct8.c,
184
+ testsuite/libffi.call/cls_uint.c,
185
+ testsuite/libffi.call/cls_multi_ushortchar.c,
186
+ testsuite/libffi.call/cls_schar.c,
187
+ testsuite/libffi.call/cls_uchar.c,
188
+ testsuite/libffi.call/cls_align_uint64.c,
189
+ testsuite/libffi.call/cls_ulonglong.c,
190
+ testsuite/libffi.call/cls_align_longdouble.c,
191
+ testsuite/libffi.call/cls_1_1byte.c,
192
+ testsuite/libffi.call/cls_12byte.c,
193
+ testsuite/libffi.call/cls_3_1byte.c,
194
+ testsuite/libffi.call/cls_3byte1.c,
195
+ testsuite/libffi.call/cls_4_1byte.c,
196
+ testsuite/libffi.call/cls_6_1_byte.c,
197
+ testsuite/libffi.call/cls_16byte.c,
198
+ testsuite/libffi.call/cls_18byte.c,
199
+ testsuite/libffi.call/closure_fn0.c,
200
+ testsuite/libffi.call/cls_9byte2.c,
201
+ testsuite/libffi.call/closure_fn2.c,
202
+ testsuite/libffi.call/closure_fn4.c,
203
+ testsuite/libffi.call/cls_ushort.c,
204
+ testsuite/libffi.call/closure_fn6.c,
205
+ testsuite/libffi.call/cls_5byte.c,
206
+ testsuite/libffi.call/cls_align_pointer.c,
207
+ testsuite/libffi.call/cls_7byte.c,
208
+ testsuite/libffi.call/cls_align_sint32.c,
209
+ testsuite/libffi.special/unwindtest_ffi_call.cc,
210
+ testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
211
+
212
+ 2007-08-10 David Daney <ddaney@avtrex.com>
213
+
214
+ PR libffi/28313
215
+ * configure.ac: Don't treat mips64 as a special case.
216
+ * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
217
+ * configure: Regenerate
218
+ * Makefile.in: Ditto.
219
+ * fficonfig.h.in: Ditto.
220
+ * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
221
+ (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
222
+ (FFI_DEFAULT_ABI): Set for n64 case.
223
+ (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
224
+ * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
225
+ (ffi_closure_N32): New function.
226
+ (.eh_frame): New section
227
+ * src/mips/o32.S: Clean up comments.
228
+ (ffi_closure_O32): Pass ffi_closure parameter in $12.
229
+ * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
230
+ _MIPS_SIM == _ABIN32 throughout.
231
+ (FFI_MIPS_STOP_HERE): New, use in place of
232
+ ffi_stop_here.
233
+ (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
234
+ to support n32/n64 ABIs.
235
+ (calc_n32_struct_flags): Rewrite.
236
+ (calc_n32_return_struct_flags): Remove unused variable. Reverse
237
+ position of flag bits.
238
+ (ffi_prep_cif_machdep): Rewrite n32 portion.
239
+ (ffi_call): Enable for n64. Add special handling for small structure
240
+ return values.
241
+ (ffi_prep_closure_loc): Add n32 and n64 support.
242
+ (ffi_closure_mips_inner_O32): Add cast to silence warning.
243
+ (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
244
+
245
+ 2007-08-08 David Daney <ddaney@avtrex.com>
246
+
247
+ * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
248
+ * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
249
+ specifiers.
250
+ * testsuite/libffi.call/nested_struct1.c (main): Ditto.
251
+ * testsuite/libffi.call/cls_sint.c (main): Ditto.
252
+ * testsuite/libffi.call/nested_struct9.c (main): Ditto.
253
+ * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
254
+ * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
255
+ * testsuite/libffi.call/closure_fn1.c (main): Ditto.
256
+ * testsuite/libffi.call/closure_fn3.c (main): Ditto.
257
+ * testsuite/libffi.call/return_dbl2.c (main): Ditto.
258
+ * testsuite/libffi.call/cls_sshort.c (main): Ditto.
259
+ * testsuite/libffi.call/return_fl3.c (main): Ditto.
260
+ * testsuite/libffi.call/closure_fn5.c (main): Ditto.
261
+ * testsuite/libffi.call/nested_struct.c (main): Ditto.
262
+ * testsuite/libffi.call/nested_struct10.c (main): Ditto.
263
+ * testsuite/libffi.call/return_ll1.c (main): Ditto.
264
+ * testsuite/libffi.call/cls_8byte.c (main): Ditto.
265
+ * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
266
+ * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
267
+ * testsuite/libffi.call/cls_20byte.c (main): Ditto.
268
+ * testsuite/libffi.call/nested_struct2.c (main): Ditto.
269
+ * testsuite/libffi.call/cls_24byte.c (main): Ditto.
270
+ * testsuite/libffi.call/nested_struct6.c (main): Ditto.
271
+ * testsuite/libffi.call/cls_uint.c (main): Ditto.
272
+ * testsuite/libffi.call/cls_12byte.c (main): Ditto.
273
+ * testsuite/libffi.call/cls_16byte.c (main): Ditto.
274
+ * testsuite/libffi.call/closure_fn0.c (main): Ditto.
275
+ * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
276
+ * testsuite/libffi.call/closure_fn2.c (main): Ditto.
277
+ * testsuite/libffi.call/return_dbl1.c (main): Ditto.
278
+ * testsuite/libffi.call/closure_fn4.c (main): Ditto.
279
+ * testsuite/libffi.call/closure_fn6.c (main): Ditto.
280
+ * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
281
+
282
+ 2007-08-07 Andrew Haley <aph@redhat.com>
283
+
284
+ * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
285
+ checkin.
286
+
287
+ 2007-08-06 Andrew Haley <aph@redhat.com>
288
+
289
+ PR testsuite/32843
290
+ * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
291
+ FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
292
+ FFI_TYPE_SINT32.
293
+
294
+ 2007-08-02 David Daney <ddaney@avtrex.com>
295
+
296
+ * testsuite/libffi.call/return_ul.c (main): Define return type as
297
+ ffi_arg. Use proper printf conversion specifier.
298
+
299
+ 2007-07-30 Andrew Haley <aph@redhat.com>
300
+
301
+ PR testsuite/32843
302
+ * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
303
+ signed/unsigned int8/16.
304
+ * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
305
+ Use a jump table.
306
+ Remove code to pop args from the stack after call.
307
+ Special-case signed/unsigned int8/16.
308
+ * testsuite/libffi.call/return_sc.c (main): Revert.
309
+
310
+ 2007-07-26 Richard Guenther <rguenther@suse.de>
311
+
312
+ PR testsuite/32843
313
+ * testsuite/libffi.call/return_sc.c (main): Verify call
314
+ result as signed char, not ffi_arg.
315
+
316
+ 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
317
+
318
+ * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
319
+ * configure: Regenerate.
320
+
321
+ 2007-07-11 David Daney <ddaney@avtrex.com>
322
+
323
+ * src/mips/ffi.c: Don't include sys/cachectl.h.
324
+ (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
325
+ cacheflush().
326
+
327
+ 2007-05-18 Aurelien Jarno <aurelien@aurel32.net>
328
+
329
+ * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
330
+ from (ffi_prep_closure): ... this.
331
+ (FFI_INIT_TRAMPOLINE): Adjust.
332
+
333
+ 2005-12-31 Phil Blundell <pb@reciva.com>
334
+
335
+ * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
336
+ ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
337
+ * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
338
+ * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
339
+ (FFI_CLOSURES): Enable closure support.
340
+
341
+ 2007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
342
+
343
+ * testsuite/libffi.call/cls_multi_ushort.c,
344
+ testsuite/libffi.call/cls_align_uint16.c,
345
+ testsuite/libffi.call/nested_struct1.c,
346
+ testsuite/libffi.call/nested_struct3.c,
347
+ testsuite/libffi.call/cls_7_1_byte.c,
348
+ testsuite/libffi.call/cls_double.c,
349
+ testsuite/libffi.call/nested_struct5.c,
350
+ testsuite/libffi.call/nested_struct7.c,
351
+ testsuite/libffi.call/cls_sint.c,
352
+ testsuite/libffi.call/nested_struct9.c,
353
+ testsuite/libffi.call/cls_20byte1.c,
354
+ testsuite/libffi.call/cls_multi_sshortchar.c,
355
+ testsuite/libffi.call/cls_align_sint64.c,
356
+ testsuite/libffi.call/cls_3byte2.c,
357
+ testsuite/libffi.call/cls_multi_schar.c,
358
+ testsuite/libffi.call/cls_multi_uchar.c,
359
+ testsuite/libffi.call/cls_19byte.c,
360
+ testsuite/libffi.call/cls_9byte1.c,
361
+ testsuite/libffi.call/cls_align_float.c,
362
+ testsuite/libffi.call/closure_fn1.c,
363
+ testsuite/libffi.call/problem1.c,
364
+ testsuite/libffi.call/closure_fn3.c,
365
+ testsuite/libffi.call/cls_sshort.c,
366
+ testsuite/libffi.call/closure_fn5.c,
367
+ testsuite/libffi.call/cls_align_double.c,
368
+ testsuite/libffi.call/cls_2byte.c,
369
+ testsuite/libffi.call/nested_struct.c,
370
+ testsuite/libffi.call/nested_struct10.c,
371
+ testsuite/libffi.call/cls_4byte.c,
372
+ testsuite/libffi.call/cls_6byte.c,
373
+ testsuite/libffi.call/cls_8byte.c,
374
+ testsuite/libffi.call/cls_multi_sshort.c,
375
+ testsuite/libffi.call/cls_align_uint32.c,
376
+ testsuite/libffi.call/cls_align_sint16.c,
377
+ testsuite/libffi.call/cls_float.c,
378
+ testsuite/libffi.call/cls_20byte.c,
379
+ testsuite/libffi.call/cls_5_1_byte.c,
380
+ testsuite/libffi.call/nested_struct2.c,
381
+ testsuite/libffi.call/cls_24byte.c,
382
+ testsuite/libffi.call/nested_struct4.c,
383
+ testsuite/libffi.call/nested_struct6.c,
384
+ testsuite/libffi.call/cls_64byte.c,
385
+ testsuite/libffi.call/nested_struct8.c,
386
+ testsuite/libffi.call/cls_uint.c,
387
+ testsuite/libffi.call/cls_multi_ushortchar.c,
388
+ testsuite/libffi.call/cls_schar.c,
389
+ testsuite/libffi.call/cls_uchar.c,
390
+ testsuite/libffi.call/cls_align_uint64.c,
391
+ testsuite/libffi.call/cls_ulonglong.c,
392
+ testsuite/libffi.call/cls_align_longdouble.c,
393
+ testsuite/libffi.call/cls_1_1byte.c,
394
+ testsuite/libffi.call/cls_12byte.c,
395
+ testsuite/libffi.call/cls_3_1byte.c,
396
+ testsuite/libffi.call/cls_3byte1.c,
397
+ testsuite/libffi.call/cls_4_1byte.c,
398
+ testsuite/libffi.call/cls_6_1_byte.c,
399
+ testsuite/libffi.call/cls_16byte.c,
400
+ testsuite/libffi.call/cls_18byte.c,
401
+ testsuite/libffi.call/closure_fn0.c,
402
+ testsuite/libffi.call/cls_9byte2.c,
403
+ testsuite/libffi.call/closure_fn2.c,
404
+ testsuite/libffi.call/closure_fn4.c,
405
+ testsuite/libffi.call/cls_ushort.c,
406
+ testsuite/libffi.call/closure_fn6.c,
407
+ testsuite/libffi.call/cls_5byte.c,
408
+ testsuite/libffi.call/cls_align_pointer.c,
409
+ testsuite/libffi.call/cls_7byte.c,
410
+ testsuite/libffi.call/cls_align_sint32.c,
411
+ testsuite/libffi.special/unwindtest_ffi_call.cc,
412
+ testsuite/libffi.special/unwindtest.cc: Enable for ARM.
413
+
414
+ 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
415
+
416
+ * aclocal.m4: Regenerated.
417
+
418
+ 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
419
+
420
+ * configure: Regenerate.
421
+
422
+ 2007-05-23 Steve Ellcey <sje@cup.hp.com>
423
+
424
+ * Makefile.in: Regenerate.
425
+ * configure: Regenerate.
426
+ * aclocal.m4: Regenerate.
427
+ * include/Makefile.in: Regenerate.
428
+ * testsuite/Makefile.in: Regenerate.
429
+
430
+ 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
431
+
432
+ * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
433
+ ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
434
+ * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
435
+ * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
436
+ (FFI_CLOSURES): Enable closure support.
437
+
438
+ 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
439
+
440
+ * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
441
+ * configure: Regenerate.
442
+ * fficonfig.h.in: Regenerate.
443
+ * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
444
+ CFI_OFFSET,CFI_DEF_CFA): New macros.
445
+ (ffi_call_SYSV): Add callframe annotation.
446
+
447
+ 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
448
+
449
+ * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
450
+ numerous test suite failures.
451
+ * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
452
+
453
+ 2007-04-11 Paolo Bonzini <bonzini@gnu.org>
454
+
455
+ * Makefile.am (EXTRA_DIST): Bring up to date.
456
+ * Makefile.in: Regenerate.
457
+ * src/frv/eabi.S: Remove RCS keyword.
458
+
459
+ 2007-04-06 Richard Henderson <rth@redhat.com>
460
+
461
+ * configure.ac: Tidy target case.
462
+ (HAVE_LONG_DOUBLE): Allow the target to override.
463
+ * configure: Regenerate.
464
+ * include/ffi.h.in: Don't define ffi_type_foo if
465
+ LIBFFI_HIDE_BASIC_TYPES is defined.
466
+ (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
467
+ to ffi_type_double.
468
+ * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
469
+ (FFI_TYPEDEF, ffi_type_void): Mark the data const.
470
+ (ffi_type_longdouble): Special case for Alpha. Don't define
471
+ if long double == double.
472
+
473
+ * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
474
+ (ffi_prep_cif_machdep): Handle it as the 128-bit type.
475
+ (ffi_call, ffi_closure_osf_inner): Likewise.
476
+ (ffi_closure_osf_inner): Likewise. Mark hidden.
477
+ (ffi_call_osf, ffi_closure_osf): Mark hidden.
478
+ * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
479
+ * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
480
+ (load_table): Handle 128-bit long double.
481
+
482
+ * testsuite/libffi.call/float4.c: Add -mieee for alpha.
483
+
484
+ 2007-04-06 Tom Tromey <tromey@redhat.com>
485
+
486
+ PR libffi/31491:
487
+ * README: Fixed bug in example.
488
+
489
+ 2007-04-03 Jakub Jelinek <jakub@redhat.com>
490
+
491
+ * src/closures.c: Include sys/statfs.h.
492
+ (_GNU_SOURCE): Define on Linux.
493
+ (FFI_MMAP_EXEC_SELINUX): Define.
494
+ (selinux_enabled): New variable.
495
+ (selinux_enabled_check): New function.
496
+ (is_selinux_enabled): Define.
497
+ (dlmmap): Use it.
498
+
499
+ 2007-03-24 Uros Bizjak <ubizjak@gmail.com>
500
+
501
+ * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
502
+ Use 'volatile float sum' to create sum of floats to avoid false
503
+ negative due to excess precision on ix86 targets.
504
+ (main): Ditto.
505
+
506
+ 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
507
+
508
+ * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
509
+ patch.
510
+ (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
511
+
512
+ 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
513
+
514
+ * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
515
+ (ffi_prep_closure_loc): New.
516
+ (ffi_prep_raw_closure_loc): New.
517
+ (ffi_prep_java_raw_closure_loc): New.
518
+ * src/closures.c: New file.
519
+ * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
520
+ Replace sflags with exec_offset.
521
+ [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
522
+ sub_segment_exec_offset): New macros.
523
+ (get_segment_flags, set_segment_flags, check_segment_merge): New
524
+ macros.
525
+ (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
526
+ (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
527
+ destroy_mspace): Use new macros.
528
+ (sys_alloc): Silence warning.
529
+ * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
530
+ * Makefile.in: Rebuilt.
531
+ * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
532
+ terms of ffi_prep_closure_loc.
533
+ * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
534
+ from...
535
+ (ffi_prep_raw_closure): ... this. Re-implement in terms of the
536
+ renamed version.
537
+ * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
538
+ adjusted from...
539
+ (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
540
+ the renamed version.
541
+ * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
542
+ (ffi_prep_closure): ... this.
543
+ * src/pa/ffi.c: Likewise.
544
+ * src/cris/ffi.c: Likewise. Adjust.
545
+ * src/frv/ffi.c: Likewise.
546
+ * src/ia64/ffi.c: Likewise.
547
+ * src/mips/ffi.c: Likewise.
548
+ * src/powerpc/ffi_darwin.c: Likewise.
549
+ * src/s390/ffi.c: Likewise.
550
+ * src/sh/ffi.c: Likewise.
551
+ * src/sh64/ffi.c: Likewise.
552
+ * src/sparc/ffi.c: Likewise.
553
+ * src/x86/ffi64.c: Likewise.
554
+ * src/x86/ffi.c: Likewise.
555
+ (FFI_INIT_TRAMPOLINE): Adjust.
556
+ (ffi_prep_raw_closure_loc): Renamed and adjusted from...
557
+ (ffi_prep_raw_closure): ... this.
558
+ * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
559
+ (ffi_prep_closure): ... this.
560
+ (flush_icache): Adjust.
561
+
562
+ 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
563
+
564
+ * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
565
+ Lea's malloc.
566
+
567
+ 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
568
+
569
+ * Makefile.am: Add dummy install-pdf target.
570
+ * Makefile.in: Regenerate
571
+
572
+ 2007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
573
+
574
+ * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
575
+ ffi_closure_helper_SYSV): Add long double handling.
576
+
577
+ 2007-02-02 Jakub Jelinek <jakub@redhat.com>
578
+
579
+ * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
580
+ immediately after bctrl instruction.
581
+
582
+ 2007-01-18 Alexandre Oliva <aoliva@redhat.com>
583
+
584
+ * Makefile.am (all-recursive, install-recursive,
585
+ mostlyclean-recursive, clean-recursive, distclean-recursive,
586
+ maintainer-clean-recursive): Add missing targets.
587
+ * Makefile.in: Rebuilt.
588
+
589
+ 2006-12-14 Andreas Tobler <a.tobler@schweiz.org>
590
+
591
+ * configure.ac: Add TARGET for x86_64-*-darwin*.
592
+ * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
593
+ for X86_DARWIN.
594
+ * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
595
+ * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
596
+ * configure: Regenerate.
597
+ * Makefile.in: Regenerate.
598
+ * include/Makefile.in: Regenerate.
599
+ * testsuite/Makefile.in: Regenerate.
600
+ * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
601
+ ffi_call only.
602
+
603
+ 2006-12-13 Andreas Tobler <a.tobler@schweiz.org>
604
+
605
+ * aclocal.m4: Regenerate with aclocal -I .. as written in the
606
+ Makefile.am.
607
+
608
+ 2006-10-31 Geoffrey Keating <geoffk@apple.com>
609
+
610
+ * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
611
+ (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
612
+ Darwin.
613
+ * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
614
+ * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
615
+
616
+ 2006-10-10 Paolo Bonzini <bonzini@gnu.org>
617
+ Sandro Tolaini <tolaini@libero.it>
618
+
619
+ * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
620
+ conditional.
621
+ * configure: Regenerated.
622
+ * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
623
+ (EXTRA_DIST): Add src/x86/darwin.S.
624
+ * Makefile.in: Regenerated.
625
+ * include/Makefile.in: Regenerated.
626
+ * testsuite/Makefile.in: Regenerated.
627
+
628
+ * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
629
+ X86_WIN32, and additionally align stack to 16 bytes.
630
+ * src/x86/darwin.S: New, based on sysv.S.
631
+ * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
632
+
633
+ 2006-09-12 David Daney <ddaney@avtrex.com>
634
+
635
+ PR libffi/23935
636
+ * include/Makefile.am: Install both ffi.h and ffitarget.h in
637
+ $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
638
+ * aclocal.m4: Regenerated for automake 1.9.6.
639
+ * Makefile.in: Regenerated.
640
+ * include/Makefile.in: Regenerated.
641
+ * testsuite/Makefile.in: Regenerated.
642
+
643
+ 2006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
644
+
645
+ * include/ffi_common.h (struct): Revert accidental commit.
646
+
647
+ 2006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
648
+
649
+ * include/ffi_common.h: Remove lint directives.
650
+ * include/ffi.h.in: Likewise.
651
+
652
+ 2006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
653
+
654
+ * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
655
+ for 32-bit architectures.
656
+ * testsuite/libffi.call/return_ul.c: New test case.
657
+
658
+ 2006-07-19 David Daney <ddaney@avtrex.com>
659
+
660
+ * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
661
+ xfail remains for mips64.
662
+
663
+ 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
664
+
665
+ * Makefile.am: Add install-html target. Add install-html to .PHONY
666
+ * Makefile.in: Regenerate.
667
+ * aclocal.m4: Regenerate.
668
+ * include/Makefile.in: Regenerate.
669
+ * testsuite/Makefile.in: Regenerate.
670
+
671
+ 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
672
+
673
+ * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
674
+ stack slot.
675
+
676
+ 2006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
677
+
678
+ * README: Remove notice about 'Crazy Comments'.
679
+ * src/debug.c: Remove lint directives. Cleanup white spaces.
680
+ * src/java_raw_api.c: Likewise.
681
+ * src/prep_cif.c: Likewise.
682
+ * src/raw_api.c: Likewise.
683
+ * src/ffitest.c: Delete. No longer needed, all test cases migrated
684
+ to the testsuite.
685
+ * src/arm/ffi.c: Remove lint directives.
686
+ * src/m32r/ffi.c: Likewise.
687
+ * src/pa/ffi.c: Likewise.
688
+ * src/powerpc/ffi.c: Likewise.
689
+ * src/powerpc/ffi_darwin.c: Likewise.
690
+ * src/sh/ffi.c: Likewise.
691
+ * src/sh64/ffi.c: Likewise.
692
+ * src/x86/ffi.c: Likewise.
693
+ * testsuite/libffi.call/float2.c: Likewise.
694
+ * testsuite/libffi.call/promotion.c: Likewise.
695
+ * testsuite/libffi.call/struct1.c: Likewise.
696
+
697
+ 2006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
698
+
699
+ * src/pa/hpux32.S: Correct unwind offset calculation for
700
+ ffi_closure_pa32.
701
+ * src/pa/linux.S: Likewise.
702
+
703
+ 2006-04-12 James E Wilson <wilson@specifix.com>
704
+
705
+ PR libgcj/26483
706
+ * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
707
+ (hfa_type_load): Call stf_spill.
708
+ (hfa_type_store): Call ldf_fill.
709
+ (ffi_call): Adjust calls to above routines. Add local temps for
710
+ macro result.
711
+
712
+ 2006-04-10 Matthias Klose <doko@debian.org>
713
+
714
+ * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
715
+ directory names containing underscores.
716
+
717
+ 2006-04-07 James E Wilson <wilson@specifix.com>
718
+
719
+ * testsuite/libffi.call/float4.c: New testcase.
720
+
721
+ 2006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
722
+ Andreas Tobler <a.tobler@schweiz.ch>
723
+
724
+ * Makefile.am: Add PA_HPUX port.
725
+ * Makefile.in: Regenerate.
726
+ * include/Makefile.in: Likewise.
727
+ * testsuite/Makefile.in: Likewise.
728
+ * configure.ac: Add PA_HPUX rules.
729
+ * configure: Regenerate.
730
+ * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
731
+ Add PA_HPUX and PA64_HPUX.
732
+ Rename FFI_LINUX ABI to FFI_PA32 ABI.
733
+ (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
734
+ (FFI_TYPE_SMALL_STRUCT2): Define.
735
+ (FFI_TYPE_SMALL_STRUCT4): Likewise.
736
+ (FFI_TYPE_SMALL_STRUCT8): Likewise.
737
+ (FFI_TYPE_SMALL_STRUCT3): Redefine.
738
+ (FFI_TYPE_SMALL_STRUCT5): Likewise.
739
+ (FFI_TYPE_SMALL_STRUCT6): Likewise.
740
+ (FFI_TYPE_SMALL_STRUCT7): Likewise.
741
+ * src/pa/ffi.c (ROUND_DOWN): Delete.
742
+ (fldw, fstw, fldd, fstd): Use '__asm__'.
743
+ (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
744
+ FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
745
+ (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
746
+ Simplify incrementing of stack slot variable. Change type of local
747
+ 'n' to unsigned int.
748
+ (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
749
+ double on PA_HPUX.
750
+ (ffi_prep_cif_machdep): Likewise.
751
+ (ffi_call): Likewise.
752
+ (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
753
+ return type to ffi_status. Simplify incrementing of stack slot
754
+ variable. Only copy floating point argument registers when PA_LINUX
755
+ is true. Reformat debug statement.
756
+ Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
757
+ FFI_TYPE_SMALL_STRUCT8.
758
+ (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
759
+ declaration.
760
+ (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
761
+ Add nops to cache flush. Add trampoline for PA_HPUX.
762
+ * src/pa/hpux32.S: New file.
763
+ * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
764
+ ffi_prep_args_LINUX to ffi_prep_args_pa32.
765
+ Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
766
+ unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
767
+ argument type checks so that common argument types appear first.
768
+ (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
769
+ ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
770
+
771
+ 2006-03-24 Alan Modra <amodra@bigpond.net.au>
772
+
773
+ * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
774
+ for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
775
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
776
+ FFI_TYPE_LONGDOUBLE.
777
+ (ffi_prep_args64): Assert using IBM extended double.
778
+ (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
779
+ Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
780
+ (ffi_call): Handle FFI_LINUX.
781
+ (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
782
+ gpr3 return pointer as for struct return. Handle FFI_LINUX
783
+ FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
784
+ unnecessarily.
785
+ * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
786
+ for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
787
+ Don't use r6 as pointer to results, instead use sp offset. Don't
788
+ make a special call to load lr with case table address, instead
789
+ use offset from previous call.
790
+ * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
791
+ * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
792
+ return.
793
+
794
+ 2006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
795
+
796
+ * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
797
+ passed with FP registers correctly.
798
+ (ffi_closure_helper_SYSV): Likewise.
799
+ * src/sh64/sysv.S: Likewise.
800
+
801
+ 2006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
802
+
803
+ * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
804
+ args and userdata unused.
805
+ (closure_test_fn1): Mark cif and userdata unused.
806
+ (main): Remove unused res.
807
+
808
+ 2006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
809
+
810
+ * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
811
+ -O2, -O3, -Os and the warning flags -W -Wall.
812
+ * testsuite/libffi.special/special.exp: Likewise.
813
+ * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
814
+ unused parameter unused for gcc or else do nothing.
815
+ * testsuite/libffi.special/ffitestcxx.h: Likewise.
816
+ * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
817
+ and userdata unused.
818
+ * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
819
+ * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
820
+ * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
821
+ * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
822
+ * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
823
+ * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
824
+ * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
825
+ * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
826
+ * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
827
+ * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
828
+ * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
829
+ * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
830
+ * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
831
+ * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
832
+ * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
833
+ * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
834
+ * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
835
+ * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
836
+ * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
837
+ * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
838
+ * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
839
+ * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
840
+ * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
841
+ * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
842
+ Likewise.
843
+ * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
844
+ Likewise.
845
+ * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
846
+ Likewise.
847
+ * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
848
+ void* to avoid compiler warning.
849
+ (main): Likewise.
850
+ (cls_struct_align_gn): Mark cif and userdata unused.
851
+ * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
852
+ Likewise.
853
+ * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
854
+ Likewise.
855
+ * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
856
+ Likewise.
857
+ * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
858
+ Likewise.
859
+ * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
860
+ Likewise.
861
+ * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
862
+ * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
863
+ * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
864
+ data unused.
865
+ (main): Cast res_call to silence gcc.
866
+ * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
867
+ data unused.
868
+ (main): Cast res_call to silence gcc.
869
+ * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
870
+ and data unused.
871
+ (main): Cast res_call to silence gcc.
872
+ * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
873
+ data unused.
874
+ (main): Cast res_call to silence gcc.
875
+ * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
876
+ data unused.
877
+ (main): Cast res_call to silence gcc.
878
+ * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
879
+ and data unused.
880
+ (main): Cast res_call to silence gcc.
881
+ * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
882
+ userdata unused.
883
+ (cls_ret_schar_fn): Cast printf parameter to silence gcc.
884
+ * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
885
+ userdata unused.
886
+ (cls_ret_sint_fn): Cast printf parameter to silence gcc.
887
+ * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
888
+ userdata unused.
889
+ (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
890
+ * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
891
+ userdata unused.
892
+ (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
893
+ * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
894
+ userdata unused.
895
+ (cls_ret_uint_fn): Cast printf parameter to silence gcc.
896
+ * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
897
+ and userdata unused.
898
+ * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
899
+ userdata unused.
900
+ (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
901
+ * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
902
+ * testsuite/libffi.call/float1.c (main): Remove unused variable i.
903
+ Cleanup white spaces.
904
+ * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
905
+ * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
906
+ cif and userdata unused.
907
+ * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
908
+ Likewise.
909
+ * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
910
+ * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
911
+ formatters to silence gcc.
912
+ (B_gn): Mark cif and userdata unused.
913
+ * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
914
+ unused.
915
+ * testsuite/libffi.call/nested_struct4.c: Mention related PR.
916
+ (B_gn): Mark cif and userdata unused.
917
+ * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
918
+ unused.
919
+ * testsuite/libffi.call/nested_struct6.c: Mention related PR.
920
+ (B_gn): Mark cif and userdata unused.
921
+ * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
922
+ unused.
923
+ * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
924
+ * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
925
+ * testsuite/libffi.call/problem1.c (stub): Likewise.
926
+ * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
927
+ gcc.
928
+ * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
929
+ in the last commit for this test case in the test case itself.
930
+ * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
931
+ unused.
932
+ * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
933
+ * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
934
+ * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
935
+ * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
936
+ * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
937
+ * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
938
+
939
+ 2006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
940
+
941
+ * src/sh/sysv.S: Fix register numbers in the FDE for
942
+ ffi_closure_SYSV.
943
+
944
+ 2006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
945
+
946
+ * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
947
+ declaration to avoid a false negative on ix86. See PR323.
948
+
949
+ 2006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
950
+
951
+ * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
952
+ and cast integer to void * if needed. Update the pointer to
953
+ the FP register saved area correctly.
954
+
955
+ 2006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
956
+
957
+ * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
958
+ is fixed.
959
+ * testsuite/libffi.call/nested_struct4.c: Likewise.
960
+
961
+ 2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
962
+
963
+ * testsuite/libffi.call/return_dbl.c: New test case.
964
+ * testsuite/libffi.call/return_dbl1.c: Likewise.
965
+ * testsuite/libffi.call/return_dbl2.c: Likewise.
966
+ * testsuite/libffi.call/return_fl.c: Likewise.
967
+ * testsuite/libffi.call/return_fl1.c: Likewise.
968
+ * testsuite/libffi.call/return_fl2.c: Likewise.
969
+ * testsuite/libffi.call/return_fl3.c: Likewise.
970
+ * testsuite/libffi.call/closure_fn6.c: Likewise.
971
+
972
+ * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
973
+ definition.
974
+ * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
975
+ here to be used by other test cases too.
976
+
977
+ * testsuite/libffi.call/nested_struct10.c: New test case.
978
+ * testsuite/libffi.call/nested_struct9.c: Likewise.
979
+ * testsuite/libffi.call/nested_struct8.c: Likewise.
980
+ * testsuite/libffi.call/nested_struct7.c: Likewise.
981
+ * testsuite/libffi.call/nested_struct6.c: Likewise.
982
+ * testsuite/libffi.call/nested_struct5.c: Likewise.
983
+ * testsuite/libffi.call/nested_struct4.c: Likewise.
984
+
985
+ 2006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
986
+
987
+ * configure.ac: Enable libffi for sparc64-*-freebsd*.
988
+ * configure: Rebuilt.
989
+
990
+ 2006-01-18 Jakub Jelinek <jakub@redhat.com>
991
+
992
+ * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
993
+ instead do the shifting inline.
994
+ * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
995
+ shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
996
+ and 8 byte structs, for the remaining struct sizes don't call
997
+ __lshrdi3, instead do the shifting inline.
998
+
999
+ 2005-12-07 Thiemo Seufer <ths@networkno.de>
1000
+
1001
+ * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
1002
+ missing parentheses.
1003
+ * src/mips/o32.S (ffi_call_O32): Code formatting. Define
1004
+ and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
1005
+ (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
1006
+ A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
1007
+ V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
1008
+ FA_0_0_OFF2.
1009
+ * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
1010
+ endianness bugs.
1011
+ (ffi_prep_closure): Improve trampoline instruction scheduling.
1012
+ (ffi_closure_mips_inner_O32): Fix endianness bugs.
1013
+
1014
+ 2005-12-03 Alan Modra <amodra@bigpond.net.au>
1015
+
1016
+ * src/powerpc/ffi.c: Formatting.
1017
+ (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
1018
+ (ffi_prep_args64): Likewise.
1019
+
1020
+ 2005-09-30 Geoffrey Keating <geoffk@apple.com>
1021
+
1022
+ * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
1023
+ darwin, use -shared-libgcc not -lgcc_s, and explain why.
1024
+
1025
+ 2005-09-26 Tom Tromey <tromey@redhat.com>
1026
+
1027
+ * testsuite/libffi.call/float1.c (value_type): New typedef.
1028
+ (CANARY): New define.
1029
+ (main): Check for result buffer overflow.
1030
+ * src/powerpc/linux64.S: Handle linux64 long double returns.
1031
+ * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
1032
+ (ffi_prep_cif_machdep): Handle linux64 long double returns.
1033
+
1034
+ 2005-08-25 Alan Modra <amodra@bigpond.net.au>
1035
+
1036
+ PR target/23404
1037
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
1038
+ homed fp args.
1039
+ (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
1040
+
1041
+ 2005-08-11 Jakub Jelinek <jakub@redhat.com>
1042
+
1043
+ * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
1044
+ (AH_BOTTOM): Add FFI_HIDDEN definition.
1045
+ * configure: Rebuilt.
1046
+ * fficonfig.h.in: Rebuilt.
1047
+ * src/powerpc/ffi.c (hidden): Remove.
1048
+ (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
1049
+ ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
1050
+ * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
1051
+ .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
1052
+ * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
1053
+ add FFI_HIDDEN to its prototype.
1054
+ (ffi_closure_SYSV_inner): New.
1055
+ * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1056
+ * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
1057
+
1058
+ 2005-08-10 Alfred M. Szmidt <ams@gnu.org>
1059
+
1060
+ PR libffi/21819:
1061
+ * configure: Rebuilt.
1062
+ * configure.ac: Handle i*86-*-gnu*.
1063
+
1064
+ 2005-08-09 Jakub Jelinek <jakub@redhat.com>
1065
+
1066
+ * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
1067
+ DW_CFA_offset_extended_sf rather than
1068
+ DW_CFA_GNU_negative_offset_extended.
1069
+ * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
1070
+
1071
+ 2005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
1072
+
1073
+ * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
1074
+ on sh3.
1075
+ (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
1076
+ * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
1077
+ partially on register.
1078
+ (ffi_closure_helper_SYSV): Likewise.
1079
+ (ffi_prep_cif_machdep): Don't set too many cif->flags.
1080
+
1081
+ 2005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
1082
+
1083
+ * src/sh/ffi.c (ffi_call): Handle small structures correctly.
1084
+ Remove empty line.
1085
+ * src/sh64/ffi.c (simple_type): Remove.
1086
+ (return_type): Handle small structures correctly.
1087
+ (ffi_prep_args): Likewise.
1088
+ (ffi_call): Likewise.
1089
+ (ffi_closure_helper_SYSV): Likewise.
1090
+ * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
1091
+ Emit position independent code if PIC and remove wrong datalabel
1092
+ prefixes from EH data.
1093
+
1094
+ 2005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
1095
+
1096
+ * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
1097
+ * Makefile.in: Regenerate.
1098
+ * include/Makefile.in: Likewise.
1099
+ * testsuite/Makefile.in: Likewise.
1100
+ * configure.ac: Add POWERPC_FREEBSD rules.
1101
+ * configure: Regenerate.
1102
+ * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
1103
+ (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
1104
+ * src/powerpc/ffi.c: Add flags to handle small structure returns
1105
+ in ffi_call_SYSV.
1106
+ (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
1107
+ Aka FFI_SYSV.
1108
+ (ffi_closure_helper_SYSV): Likewise.
1109
+ * src/powerpc/ppc_closure.S: Add return types for small structures.
1110
+ * src/powerpc/sysv.S: Add bits to handle small structures for
1111
+ final SYSV 4 ABI.
1112
+
1113
+ 2005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
1114
+
1115
+ * testsuite/libffi.call/cls_5_1_byte.c: New test file.
1116
+ * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1117
+ * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1118
+
1119
+ 2005-07-05 Randolph Chung <tausq@debian.org>
1120
+
1121
+ * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
1122
+ as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
1123
+ structures. Kill compilation warnings.
1124
+ (ffi_closure_inner_LINUX): Print return values as hex in debug
1125
+ message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
1126
+ Properly handle 5-7 byte structure returns.
1127
+ * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
1128
+ (FFI_TYPE_SMALL_STRUCT2): Remove.
1129
+ (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
1130
+ (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
1131
+ * src/pa/linux.S: Mark source file as using PA1.1 assembly.
1132
+ (checksmst1, checksmst2): Remove.
1133
+ (checksmst3): Optimize handling of 3-byte struct returns.
1134
+ (checksmst567): Properly handle 5-7 byte struct returns.
1135
+
1136
+ 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1137
+
1138
+ PR libgcj/21943
1139
+ * src/mips/n32.S: Enforce PIC code.
1140
+ * src/mips/o32.S: Likewise.
1141
+
1142
+ 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1143
+
1144
+ * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
1145
+ * configure: Regenerate.
1146
+
1147
+ 2005-06-01 Alan Modra <amodra@bigpond.net.au>
1148
+
1149
+ * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
1150
+ to call ffi_closure_helper_SYSV. Append @local instead.
1151
+ * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
1152
+
1153
+ 2005-05-17 Kelley Cook <kcook@gcc.gnu.org>
1154
+
1155
+ * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1156
+ Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1157
+ * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
1158
+ * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
1159
+ include/Makefile.in, testsuite/Makefile.in: Regenerate.
1160
+
1161
+ 2005-05-09 Mike Stump <mrs@apple.com>
1162
+
1163
+ * configure: Regenerate.
1164
+
1165
+ 2005-05-08 Richard Henderson <rth@redhat.com>
1166
+
1167
+ PR libffi/21285
1168
+ * src/alpha/osf.S: Update unwind into to match code.
1169
+
1170
+ 2005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
1171
+ Richard Henderson <rth@redhat.com>
1172
+
1173
+ * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
1174
+ bit 11 of flags.
1175
+ (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
1176
+ (ffi_prep_closure): Set carry bit if sse-used flag set.
1177
+ * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
1178
+ Only load sse registers if ssecount non-zero.
1179
+ (ffi_closure_unix64): Only save sse registers if carry set on entry.
1180
+
1181
+ 2005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
1182
+
1183
+ * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
1184
+ powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
1185
+ * configure: Regenerate.
1186
+
1187
+ 2005-04-20 Hans-Peter Nilsson <hp@axis.com>
1188
+
1189
+ * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
1190
+ have Tcl8.3-compatible intermediate variable.
1191
+
1192
+ 2005-04-18 Simon Posnjak <simon.posnjak@siol.net>
1193
+ Hans-Peter Nilsson <hp@axis.com>
1194
+
1195
+ * Makefile.am: Add CRIS support.
1196
+ * configure.ac: Likewise.
1197
+ * Makefile.in, configure, testsuite/Makefile.in,
1198
+ include/Makefile.in: Regenerate.
1199
+ * src/cris: New directory.
1200
+ * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
1201
+ * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
1202
+
1203
+ * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
1204
+ \r?\n in output tests.
1205
+
1206
+ 2005-04-12 Mike Stump <mrs@apple.com>
1207
+
1208
+ * configure: Regenerate.
1209
+
1210
+ 2005-03-30 Hans Boehm <Hans.Boehm@hp.com>
1211
+
1212
+ * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
1213
+
1214
+ 2005-03-30 Steve Ellcey <sje@cup.hp.com>
1215
+
1216
+ * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
1217
+ (ffi_sarg) Ditto.
1218
+ * src/ia64/unix.S (ffi_closure_unix): Extend gp
1219
+ to 64 bits in ILP32 mode.
1220
+ Load 64 bits even for short data.
1221
+
1222
+ 2005-03-23 Mike Stump <mrs@apple.com>
1223
+
1224
+ * src/powerpc/darwin.S: Update for -m64 multilib.
1225
+ * src/powerpc/darwin_closure.S: Likewise.
1226
+
1227
+ 2005-03-21 Zack Weinberg <zack@codesourcery.com>
1228
+
1229
+ * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1230
+ Do not set tool_include_dir.
1231
+ * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
1232
+ Regenerate.
1233
+ * include/Makefile.am: Set gcc_version and toollibffidir.
1234
+ * include/Makefile.in: Regenerate.
1235
+
1236
+ 2005-02-22 Andrew Haley <aph@redhat.com>
1237
+
1238
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
1239
+ odd-numbered register pairs for 64-bit integer types.
1240
+
1241
+ 2005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
1242
+
1243
+ PR libffi/20104
1244
+ * testsuite/libffi.call/return_ll1.c: New test case.
1245
+
1246
+ 2005-02-11 Janis Johnson <janis187@us.ibm.com>
1247
+
1248
+ * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
1249
+ * testsuite/libffi.call/float.c: Ditto.
1250
+ * testsuite/libffi.call/float2.c: Ditto.
1251
+ * testsuite/libffi.call/float3.c: Ditto.
1252
+
1253
+ 2005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
1254
+
1255
+ * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
1256
+
1257
+ 2005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1258
+
1259
+ * testsuite/libffi.special/special.exp (cxx_options): Add
1260
+ -shared-libgcc.
1261
+
1262
+ 2004-12-31 Richard Henderson <rth@redhat.com>
1263
+
1264
+ * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
1265
+ (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
1266
+ offset parameters with a type parameter; deduce size and structure
1267
+ alignment. Update all users.
1268
+
1269
+ 2004-12-31 Richard Henderson <rth@redhat.com>
1270
+
1271
+ * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
1272
+ (FFI_TYPE_LONGDOUBLE): Fix for ia64.
1273
+ * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
1274
+ into ffi_prep_closure.
1275
+ * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
1276
+ from scratch.
1277
+
1278
+ 2004-12-27 Richard Henderson <rth@redhat.com>
1279
+
1280
+ * src/x86/unix64.S: Fix typo in unwind info.
1281
+
1282
+ 2004-12-25 Richard Henderson <rth@redhat.com>
1283
+
1284
+ * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
1285
+ (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
1286
+ (merge_classes): Check for it.
1287
+ (SSE_CLASS_P): New.
1288
+ (classify_argument): Pass byte_offset by value; perform all updates
1289
+ inside struct case.
1290
+ (examine_argument): Add classes argument; handle
1291
+ X86_64_COMPLEX_X87_CLASS.
1292
+ (ffi_prep_args): Merge into ...
1293
+ (ffi_call): ... here. Share stack frame with ffi_call_unix64.
1294
+ (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
1295
+ (ffi_fill_return_value): Remove.
1296
+ (ffi_prep_closure): Remove dead assert.
1297
+ (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
1298
+ Rewrite to use struct register_args instead of va_list. Create
1299
+ flags for handling structure returns.
1300
+ * src/x86/unix64.S: Remove dead strings.
1301
+ (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
1302
+ stack frame with ffi_call. Handle structure returns properly.
1303
+ (float2sse, floatfloat2sse, double2sse): Remove.
1304
+ (sse2float, sse2double, sse2floatfloat): Remove.
1305
+ (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
1306
+ to handle structure returns properly.
1307
+
1308
+ 2004-12-08 David Edelsohn <edelsohn@gnu.org>
1309
+
1310
+ * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
1311
+ PICFLAG.
1312
+ * Makefile.in: Regenerated.
1313
+
1314
+ 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
1315
+
1316
+ * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
1317
+ * configure, aclocal.m4, Makefile.in: Regenerate.
1318
+ * include/Makefile.in, testsuite/Makefile.in: Regenerate.
1319
+
1320
+ 2004-11-29 Kelley Cook <kcook@gcc.gnu.org>
1321
+
1322
+ * configure: Regenerate for libtool change.
1323
+
1324
+ 2004-11-25 Kelley Cook <kcook@gcc.gnu.org>
1325
+
1326
+ * configure: Regenerate for libtool reversion.
1327
+
1328
+ 2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
1329
+
1330
+ * configure: Regenerate for libtool change.
1331
+
1332
+ 2004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1333
+
1334
+ * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
1335
+
1336
+ 2004-11-23 Richard Sandiford <rsandifo@redhat.com>
1337
+
1338
+ * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1339
+ of jal. Use an absolute encoding for the frame information.
1340
+
1341
+ 2004-11-23 Kelley Cook <kcook@gcc.gnu.org>
1342
+
1343
+ * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
1344
+ * acinclude.m4: Delete logic for sincludes.
1345
+ * aclocal.m4, Makefile.in, configure: Regenerate.
1346
+ * include/Makefile: Likewise.
1347
+ * testsuite/Makefile: Likewise.
1348
+
1349
+ 2004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1350
+
1351
+ * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1352
+ on a 8-byte boundary.
1353
+ * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1354
+
1355
+ 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
1356
+
1357
+ * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1358
+ long long values. Round stack allocation to a multiple of 8 bytes
1359
+ for ATPCS compatibility.
1360
+ * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1361
+ names. Handle returning long long types. Add Thumb and interworking
1362
+ support. Improve soft-float code.
1363
+
1364
+ 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
1365
+
1366
+ * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1367
+ (libffi_exit): New function.
1368
+ (libffi_init): Build the testglue wrapper if needed.
1369
+
1370
+ 2004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1371
+
1372
+ PR other/18138
1373
+ * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1374
+
1375
+ 2004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1376
+
1377
+ * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1378
+
1379
+ 2004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
1380
+
1381
+ * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1382
+ * testsuite/libffi.call/float3.c: New test case.
1383
+
1384
+ 2004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
1385
+
1386
+ * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1387
+ the function returning a structure pointed with R2.
1388
+ * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1389
+ the structure return value if T bit set. Emit position
1390
+ independent code and EH data if PIC.
1391
+
1392
+ 2004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1393
+
1394
+ * Makefile.am: Add m32r support.
1395
+ * configure.ac: Likewise.
1396
+ * Makefile.in: Regenerate.
1397
+ * confiugre: Regenerate.
1398
+ * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1399
+ (uint64, sint64, double, longdouble)
1400
+ * src/m32r: New directory.
1401
+ * src/m32r/ffi.c: New file.
1402
+ * src/m32r/sysv.S: Likewise.
1403
+ * src/m32r/ffitarget.h: Likewise.
1404
+
1405
+ 2004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
1406
+
1407
+ * testsuite/libffi.call/negint.c: New test case.
1408
+
1409
+ 2004-09-14 H.J. Lu <hongjiu.lu@intel.com>
1410
+
1411
+ PR libgcj/17465
1412
+ * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1413
+ Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1414
+ LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1415
+ DYLD_LIBRARY_PATH.
1416
+
1417
+ 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1418
+
1419
+ * testsuite/libffi.call/many_win32.c: Remove whitespaces.
1420
+ * testsuite/libffi.call/promotion.c: Likewise.
1421
+ * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
1422
+ whitespaces.
1423
+ * testsuite/libffi.call/return_sc.c: Likewise.
1424
+ * testsuite/libffi.call/return_uc.c: Likewise.
1425
+
1426
+ 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
1427
+
1428
+ * src/powerpc/darwin.S: Fix comments and identation.
1429
+ * src/powerpc/darwin_closure.S: Likewise.
1430
+
1431
+ 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1432
+
1433
+ * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
1434
+ (ffi_prep_args): Handle longdouble arguments.
1435
+ (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
1436
+ longdouble.
1437
+ (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
1438
+ * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
1439
+ values.
1440
+ * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
1441
+ * src/types.c: Defined longdouble size and alignment for darwin.
1442
+
1443
+ 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
1444
+
1445
+ * src/powerpc/aix.S: Remove whitespaces.
1446
+ * src/powerpc/aix_closure.S: Likewise.
1447
+ * src/powerpc/asm.h: Likewise.
1448
+ * src/powerpc/ffi.c: Likewise.
1449
+ * src/powerpc/ffitarget.h: Likewise.
1450
+ * src/powerpc/linux64.S: Likewise.
1451
+ * src/powerpc/linux64_closure.S: Likewise.
1452
+ * src/powerpc/ppc_closure.S: Likewise.
1453
+ * src/powerpc/sysv.S: Likewise.
1454
+
1455
+ 2004-08-30 Anthony Green <green@redhat.com>
1456
+
1457
+ * Makefile.am: Add frv support.
1458
+ * Makefile.in, testsuite/Makefile.in: Rebuilt.
1459
+ * configure.ac: Read configure.host.
1460
+ * configure.in: Read configure.host.
1461
+ * configure.host: New file. frv-elf needs libgloss.
1462
+ * include/ffi.h.in: Force ffi_closure to have a nice big (8)
1463
+ alignment. This is needed to frv and shouldn't harm the others.
1464
+ * include/ffi_common.h (ALIGN_DOWN): New macro.
1465
+ * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
1466
+
1467
+ 2004-08-24 David Daney <daney@avtrex.com>
1468
+
1469
+ * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
1470
+ * testsuite/libffi.call/closure_fn1.c: Likewise.
1471
+ * testsuite/libffi.call/closure_fn2.c Likewise.
1472
+ * testsuite/libffi.call/closure_fn3.c: Likewise.
1473
+ * testsuite/libffi.call/closure_fn4.c: Likewise.
1474
+ * testsuite/libffi.call/closure_fn5.c: Likewise.
1475
+ * testsuite/libffi.call/cls_18byte.c: Likewise.
1476
+ * testsuite/libffi.call/cls_19byte.c: Likewise.
1477
+ * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1478
+ * testsuite/libffi.call/cls_20byte.c: Likewise.
1479
+ * testsuite/libffi.call/cls_20byte1.c: Likewise.
1480
+ * testsuite/libffi.call/cls_24byte.c: Likewise.
1481
+ * testsuite/libffi.call/cls_2byte.c: Likewise.
1482
+ * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1483
+ * testsuite/libffi.call/cls_3byte1.c: Likewise.
1484
+ * testsuite/libffi.call/cls_3byte2.c: Likewise.
1485
+ * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1486
+ * testsuite/libffi.call/cls_4byte.c: Likewise.
1487
+ * testsuite/libffi.call/cls_64byte.c: Likewise.
1488
+ * testsuite/libffi.call/cls_6byte.c: Likewise.
1489
+ * testsuite/libffi.call/cls_7byte.c: Likewise.
1490
+ * testsuite/libffi.call/cls_8byte.c: Likewise.
1491
+ * testsuite/libffi.call/cls_9byte1.c: Likewise.
1492
+ * testsuite/libffi.call/cls_9byte2.c: Likewise.
1493
+ * testsuite/libffi.call/cls_align_double.c: Likewise.
1494
+ * testsuite/libffi.call/cls_align_float.c: Likewise.
1495
+ * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1496
+ * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1497
+ * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1498
+ * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1499
+ * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1500
+ * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1501
+ * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1502
+ * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1503
+ * testsuite/libffi.call/cls_double.c: Likewise.
1504
+ * testsuite/libffi.call/cls_float.c: Likewise.
1505
+ * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1506
+ * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
1507
+ * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1508
+ * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1509
+ * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1510
+ * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1511
+ * testsuite/libffi.call/cls_schar.c: Likewise.
1512
+ * testsuite/libffi.call/cls_sint.c: Likewise.
1513
+ * testsuite/libffi.call/cls_sshort.c: Likewise.
1514
+ * testsuite/libffi.call/cls_uchar.c: Likewise.
1515
+ * testsuite/libffi.call/cls_uint.c: Likewise.
1516
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1517
+ * testsuite/libffi.call/cls_ushort.c: Likewise.
1518
+ * testsuite/libffi.call/nested_struct.c: Likewise.
1519
+ * testsuite/libffi.call/nested_struct1.c: Likewise.
1520
+ * testsuite/libffi.call/nested_struct2.c: Likewise.
1521
+ * testsuite/libffi.call/nested_struct3.c: Likewise.
1522
+ * testsuite/libffi.call/problem1.c: Likewise.
1523
+ * testsuite/libffi.special/unwindtest.cc: Likewise.
1524
+ * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
1525
+ to zero.
1526
+ * testsuite/libffi.call/cls_16byte.c: Likewise.
1527
+ * testsuite/libffi.call/cls_5byte.c: Likewise.
1528
+
1529
+ 2004-08-23 David Daney <daney@avtrex.com>
1530
+
1531
+ PR libgcj/13141
1532
+ * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
1533
+ * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
1534
+ (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
1535
+ parameters and return types.
1536
+ (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
1537
+ (ffi_prep_closure): Ditto.
1538
+ (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
1539
+ alignment calculations.
1540
+ * src/mips/o32.S (ffi_closure_O32): Don't use floating point
1541
+ instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
1542
+
1543
+ 2004-08-14 Casey Marshall <csm@gnu.org>
1544
+
1545
+ * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
1546
+ contain `FFI_TYPE_UINT64' as return type for any 64-bit
1547
+ integer (O32 ABI only).
1548
+ (ffi_prep_closure): new function.
1549
+ (ffi_closure_mips_inner_O32): new function.
1550
+ * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
1551
+ `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
1552
+ * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
1553
+ 64 bit integers correctly.
1554
+ (ffi_closure_O32): new function.
1555
+ Added DWARF-2 unwind info for both functions.
1556
+
1557
+ 2004-08-10 Andrew Haley <aph@redhat.com>
1558
+
1559
+ * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
1560
+
1561
+ 2004-08-01 Robert Millan <robertmh@gnu.org>
1562
+
1563
+ * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
1564
+ * configure: Regenerate.
1565
+
1566
+ 2004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
1567
+
1568
+ * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
1569
+ and mmap() explicitly instead of relying on preset autoconf cache
1570
+ variables.
1571
+ * aclocal.m4: Regenerate.
1572
+ * configure: Regenerate.
1573
+
1574
+ 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
1575
+
1576
+ * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
1577
+ (ffi_check_float_struct): Remove unused prototype.
1578
+
1579
+ 2004-06-30 Geoffrey Keating <geoffk@apple.com>
1580
+
1581
+ * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
1582
+ character on Darwin, use '\n\t' instead.
1583
+
1584
+ 2004-06-26 Matthias Klose <doko@debian.org>
1585
+
1586
+ * libtool-version: Fix typo in revision/age.
1587
+
1588
+ 2004-06-17 Matthias Klose <doko@debian.org>
1589
+
1590
+ * libtool-version: New.
1591
+ * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
1592
+ * Makefile.in: Regenerate.
1593
+
1594
+ 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1595
+
1596
+ * Makefile.am: Remove useless multilib rules.
1597
+ * Makefile.in: Regenerate.
1598
+ * aclocal.m4: Regenerate with automake 1.8.5.
1599
+ * configure.ac: Remove useless multilib configury.
1600
+ * configure: Regenerate.
1601
+
1602
+ 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
1603
+
1604
+ * .cvsignore: New file.
1605
+
1606
+ 2004-06-10 Jakub Jelinek <jakub@redhat.com>
1607
+
1608
+ * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
1609
+ fp_done.
1610
+ (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
1611
+ changed from 8.
1612
+
1613
+ 2004-06-06 Sean McNeil <sean@mcneil.com>
1614
+
1615
+ * configure.ac: Add x86_64-*-freebsd* support.
1616
+ * configure: Regenerate.
1617
+
1618
+ 2004-04-26 Joe Buck <jbuck@welsh-buck.org>
1619
+
1620
+ Bug 15093
1621
+ * configure.ac: Test for existence of mmap and sys/mman.h before
1622
+ checking blacklist. Fix suggested by Jim Wilson.
1623
+ * configure: Regenerate.
1624
+
1625
+ 2004-04-26 Matt Austern <austern@apple.com>
1626
+
1627
+ * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
1628
+ FDE location.
1629
+ * src/powerpc/darwin_closure.S: Likewise.
1630
+
1631
+ 2004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
1632
+
1633
+ * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
1634
+ error. Reported by Thomas Heller <theller@python.net>.
1635
+ * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
1636
+ * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
1637
+
1638
+ 2004-03-20 Matthias Klose <doko@debian.org>
1639
+
1640
+ * src/pa/linux.S: Fix typo.
1641
+
1642
+ 2004-03-19 Matthias Klose <doko@debian.org>
1643
+
1644
+ * Makefile.am: Update.
1645
+ * Makefile.in: Regenerate.
1646
+ * src/pa/ffi.h.in: Remove.
1647
+ * src/pa/ffitarget.h: New file.
1648
+
1649
+ 2004-02-10 Randolph Chung <tausq@debian.org>
1650
+
1651
+ * Makefile.am: Add PA support.
1652
+ * Makefile.in: Regenerate.
1653
+ * include/Makefile.in: Regenerate.
1654
+ * configure.ac: Add PA target.
1655
+ * configure: Regenerate.
1656
+ * src/pa/ffi.c: New file.
1657
+ * src/pa/ffi.h.in: Add PA support.
1658
+ * src/pa/linux.S: New file.
1659
+ * prep_cif.c: Add PA support.
1660
+
1661
+ 2004-03-16 Hosaka Yuji <hos@tamanegi.org>
1662
+
1663
+ * src/types.c: Fix alignment size of X86_WIN32 case int64 and
1664
+ double.
1665
+ * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
1666
+ with ecif->cif->flags.
1667
+ (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
1668
+ with cif->flags.
1669
+ (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
1670
+ (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
1671
+ * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
1672
+ sc_retstruct2b): Add for 1 or 2-bytes struct case.
1673
+
1674
+ 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
1675
+
1676
+ * configure.in: Rename file to ...
1677
+ * configure.ac: ... this.
1678
+ * fficonfig.h.in: Regenerate.
1679
+ * Makefile.in: Regenerate.
1680
+ * include/Makefile.in: Regenerate.
1681
+ * testsuite/Makefile.in: Regenerate.
1682
+
1683
+ 2004-03-12 Matt Austern <austern@apple.com>
1684
+
1685
+ * src/powerpc/darwin.S: Fix EH information so it corresponds to
1686
+ changes in EH format resulting from addition of linkonce support.
1687
+ * src/powerpc/darwin_closure.S: Likewise.
1688
+
1689
+ 2004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
1690
+ Paolo Bonzini <bonzini@gnu.org>
1691
+
1692
+ * Makefile.am (AUTOMAKE_OPTIONS): Set them.
1693
+ Remove VPATH. Remove rules for object files. Remove multilib support.
1694
+ (AM_CCASFLAGS): Add.
1695
+ * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
1696
+ (AC_PREREQ): Bump version to 2.59.
1697
+ (AC_INIT): Fill with version info and bug address.
1698
+ (ORIGINAL_LD_FOR_MULTILIBS): Remove.
1699
+ (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
1700
+ De-precious CC so that the right flags are passed down to multilibs.
1701
+ (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
1702
+ (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
1703
+ (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
1704
+ * configure: Rebuilt.
1705
+ * aclocal.m4: Likewise.
1706
+ * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
1707
+ * fficonfig.h.in: Likewise.
1708
+
1709
+ 2004-03-11 Andreas Schwab <schwab@suse.de>
1710
+
1711
+ * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
1712
+ arguments from fp registers only for the first 8 parameter slots.
1713
+ Don't convert a float parameter when passed in memory.
1714
+
1715
+ 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
1716
+
1717
+ * configure: Regenerate for config/accross.m4 correction.
1718
+
1719
+ 2004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
1720
+
1721
+ * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
1722
+ ecif->cif->bytes to bytes.
1723
+ (ffi_prep_cif_machdep): Add braces around nested if statement.
1724
+
1725
+ 2004-02-09 Alan Modra <amodra@bigpond.net.au>
1726
+
1727
+ * src/types.c (pointer): POWERPC64 has 8 byte pointers.
1728
+
1729
+ * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
1730
+ (ffi_closure_helper_LINUX64): Fix typo.
1731
+ * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
1732
+ for powerpc64-*-*.
1733
+ * testsuite/libffi.call/float.c: Likewise.
1734
+ * testsuite/libffi.call/float2.c: Likewise.
1735
+
1736
+ 2004-02-08 Alan Modra <amodra@bigpond.net.au>
1737
+
1738
+ * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
1739
+ long double function return and long double arg handling.
1740
+ (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
1741
+ Use "end_pfr" instead of "nf". Correct long double handling.
1742
+ Localise "temp".
1743
+ * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
1744
+ return value.
1745
+ * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
1746
+ space for long double return value. Adjust stack frame and offsets.
1747
+ Load f2 long double return.
1748
+
1749
+ 2004-02-07 Alan Modra <amodra@bigpond.net.au>
1750
+
1751
+ * src/types.c: Use 16 byte long double for POWERPC64.
1752
+
1753
+ 2004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
1754
+
1755
+ * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
1756
+ when the structure return address is passed in %o0.
1757
+ (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
1758
+ (ffi_v9_layout_struct): Align the field following a nested structure
1759
+ on a word boundary. Use memmove instead of memcpy.
1760
+ (ffi_call): Update call to ffi_V9_return_struct.
1761
+ (ffi_prep_closure): Define 'ctx' only for V8.
1762
+ (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
1763
+ and ffi_closure_sparc_inner_v9.
1764
+ (ffi_closure_sparc_inner_v8): Return long doubles by reference.
1765
+ Always skip the structure return address. For structures and long
1766
+ doubles, copy the argument directly.
1767
+ (ffi_closure_sparc_inner_v9): Skip the structure return address only
1768
+ if required. Shift the maximum floating-point slot accordingly. For
1769
+ big structures, copy the argument directly; otherwise, left-justify the
1770
+ argument and call ffi_v9_layout_struct to lay out the structure on
1771
+ the stack.
1772
+ * src/sparc/v8.S: Undef STACKFRAME before defining it.
1773
+ (ffi_closure_v8): Pass the structure return address. Update call to
1774
+ ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
1775
+ Skip the 'unimp' insn when returning long doubles and structures.
1776
+ * src/sparc/v9.S: Undef STACKFRAME before defining it.
1777
+ (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
1778
+ FFI_TYPE_INT handling. Load structures both in integers and
1779
+ floating-point registers on return.
1780
+ * README: Update status of the SPARC port.
1781
+
1782
+ 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
1783
+
1784
+ * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
1785
+ as of type ffi_arg.
1786
+ * testsuite/libffi.call/struct3.c (main): Fix CHECK.
1787
+
1788
+ 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
1789
+
1790
+ * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
1791
+ value as of type ffi_arg, not unsigned int.
1792
+
1793
+ 2004-01-21 Michael Ritzert <ritzert@t-online.de>
1794
+
1795
+ * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
1796
+ of the LHS.
1797
+
1798
+ 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
1799
+
1800
+ * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
1801
+ Solaris.
1802
+
1803
+ 2004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1804
+
1805
+ * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
1806
+ to void *.
1807
+
1808
+ 2003-12-10 Richard Henderson <rth@redhat.com>
1809
+
1810
+ * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
1811
+ size_t instead of int.
1812
+
1813
+ 2003-12-04 Hosaka Yuji <hos@tamanegi.org>
1814
+
1815
+ * testsuite/libffi.call/many_win32.c: Include <float.h>.
1816
+ * testsuite/libffi.call/many_win32.c (main): Replace variable
1817
+ int i with unsigned long ul.
1818
+
1819
+ * testsuite/libffi.call/cls_align_uint64.c: New test case.
1820
+ * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1821
+ * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1822
+ * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1823
+ * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1824
+ * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1825
+ * testsuite/libffi.call/cls_align_float.c: Likewise.
1826
+ * testsuite/libffi.call/cls_align_double.c: Likewise.
1827
+ * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1828
+ * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1829
+
1830
+ 2003-12-02 Hosaka Yuji <hos@tamanegi.org>
1831
+
1832
+ PR other/13221
1833
+ * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
1834
+ Align arguments to 32 bits.
1835
+
1836
+ 2003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
1837
+
1838
+ PR other/13221
1839
+ * testsuite/libffi.call/cls_multi_sshort.c: New test case.
1840
+ * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
1841
+ * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
1842
+ * testsuite/libffi.call/cls_multi_schar.c: Likewise.
1843
+ * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
1844
+ * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
1845
+
1846
+ * testsuite/libffi.special/unwindtest.cc: Cosmetics.
1847
+
1848
+ 2003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1849
+
1850
+ * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
1851
+ * testsuite/libffi.special/ffitestcxx.h: Likewise.
1852
+
1853
+ 2003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
1854
+
1855
+ * Makefile.in: Rebuilt.
1856
+ * configure: Likewise.
1857
+ * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
1858
+ the right type.
1859
+
1860
+ 2003-11-21 Andreas Jaeger <aj@suse.de>
1861
+ Andreas Tobler <a.tobler@schweiz.ch>
1862
+
1863
+ * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
1864
+ * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
1865
+ * Makefile.in: Rebuilt.
1866
+ * aclocal.m4: Likewise.
1867
+ * configure: Likewise.
1868
+ * fficonfig.h.in: Likewise.
1869
+ * testsuite/lib/libffi-dg.exp: Add include dir.
1870
+ * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
1871
+ * testsuite/libffi.special/ffitestcxx.h: Likewise.
1872
+ * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
1873
+ for ffi_closure if available.
1874
+ * testsuite/libffi.call/closure_fn1.c: Likewise.
1875
+ * testsuite/libffi.call/closure_fn2.c: Likewise.
1876
+ * testsuite/libffi.call/closure_fn3.c: Likewise.
1877
+ * testsuite/libffi.call/closure_fn4.c: Likewise.
1878
+ * testsuite/libffi.call/closure_fn5.c: Likewise.
1879
+ * testsuite/libffi.call/cls_12byte.c: Likewise.
1880
+ * testsuite/libffi.call/cls_16byte.c: Likewise.
1881
+ * testsuite/libffi.call/cls_18byte.c: Likewise.
1882
+ * testsuite/libffi.call/cls_19byte.c: Likewise.
1883
+ * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1884
+ * testsuite/libffi.call/cls_20byte.c: Likewise.
1885
+ * testsuite/libffi.call/cls_20byte1.c: Likewise.
1886
+ * testsuite/libffi.call/cls_24byte.c: Likewise.
1887
+ * testsuite/libffi.call/cls_2byte.c: Likewise.
1888
+ * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1889
+ * testsuite/libffi.call/cls_3byte1.c: Likewise.
1890
+ * testsuite/libffi.call/cls_3byte2.c: Likewise.
1891
+ * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1892
+ * testsuite/libffi.call/cls_4byte.c: Likewise.
1893
+ * testsuite/libffi.call/cls_5byte.c: Likewise.
1894
+ * testsuite/libffi.call/cls_64byte.c: Likewise.
1895
+ * testsuite/libffi.call/cls_6byte.c: Likewise.
1896
+ * testsuite/libffi.call/cls_7byte.c: Likewise.
1897
+ * testsuite/libffi.call/cls_8byte.c: Likewise.
1898
+ * testsuite/libffi.call/cls_9byte1.c: Likewise.
1899
+ * testsuite/libffi.call/cls_9byte2.c: Likewise.
1900
+ * testsuite/libffi.call/cls_double.c: Likewise.
1901
+ * testsuite/libffi.call/cls_float.c: Likewise.
1902
+ * testsuite/libffi.call/cls_schar.c: Likewise.
1903
+ * testsuite/libffi.call/cls_sint.c: Likewise.
1904
+ * testsuite/libffi.call/cls_sshort.c: Likewise.
1905
+ * testsuite/libffi.call/cls_uchar.c: Likewise.
1906
+ * testsuite/libffi.call/cls_uint.c: Likewise.
1907
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1908
+ * testsuite/libffi.call/cls_ushort.c: Likewise.
1909
+ * testsuite/libffi.call/nested_struct.c: Likewise.
1910
+ * testsuite/libffi.call/nested_struct1.c: Likewise.
1911
+ * testsuite/libffi.call/nested_struct2.c: Likewise.
1912
+ * testsuite/libffi.call/nested_struct3.c: Likewise.
1913
+ * testsuite/libffi.call/problem1.c: Likewise.
1914
+ * testsuite/libffi.special/unwindtest.cc: Likewise.
1915
+
1916
+ 2003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
1917
+
1918
+ * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
1919
+
1920
+ 2003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
1921
+
1922
+ * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
1923
+ Add -lgcc_s to additional flags.
1924
+
1925
+ 2003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
1926
+
1927
+ * configure.in, include/Makefile.am: PR libgcj/11147, install
1928
+ the ffitarget.h header file in a gcc versioned and target
1929
+ dependent place.
1930
+ * configure: Regenerated.
1931
+ * Makefile.in, include/Makefile.in: Likewise.
1932
+ * testsuite/Makefile.in: Likewise.
1933
+
1934
+ 2003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
1935
+
1936
+ * testsuite/libffi.call/closure_fn0.c: Print result and check
1937
+ with dg-output to make debugging easier.
1938
+ * testsuite/libffi.call/closure_fn1.c: Likewise.
1939
+ * testsuite/libffi.call/closure_fn2.c: Likewise.
1940
+ * testsuite/libffi.call/closure_fn3.c: Likewise.
1941
+ * testsuite/libffi.call/closure_fn4.c: Likewise.
1942
+ * testsuite/libffi.call/closure_fn5.c: Likewise.
1943
+ * testsuite/libffi.call/cls_12byte.c: Likewise.
1944
+ * testsuite/libffi.call/cls_16byte.c: Likewise.
1945
+ * testsuite/libffi.call/cls_18byte.c: Likewise.
1946
+ * testsuite/libffi.call/cls_19byte.c: Likewise.
1947
+ * testsuite/libffi.call/cls_1_1byte.c: Likewise.
1948
+ * testsuite/libffi.call/cls_20byte.c: Likewise.
1949
+ * testsuite/libffi.call/cls_20byte1.c: Likewise.
1950
+ * testsuite/libffi.call/cls_24byte.c: Likewise.
1951
+ * testsuite/libffi.call/cls_2byte.c: Likewise.
1952
+ * testsuite/libffi.call/cls_3_1byte.c: Likewise.
1953
+ * testsuite/libffi.call/cls_3byte1.c: Likewise.
1954
+ * testsuite/libffi.call/cls_3byte2.c: Likewise.
1955
+ * testsuite/libffi.call/cls_4_1byte.c: Likewise.
1956
+ * testsuite/libffi.call/cls_4byte.c: Likewise.
1957
+ * testsuite/libffi.call/cls_5byte.c: Likewise.
1958
+ * testsuite/libffi.call/cls_64byte.c: Likewise.
1959
+ * testsuite/libffi.call/cls_6byte.c: Likewise.
1960
+ * testsuite/libffi.call/cls_7byte.c: Likewise.
1961
+ * testsuite/libffi.call/cls_8byte.c: Likewise.
1962
+ * testsuite/libffi.call/cls_9byte1.c: Likewise.
1963
+ * testsuite/libffi.call/cls_9byte2.c: Likewise.
1964
+ * testsuite/libffi.call/cls_double.c: Likewise.
1965
+ * testsuite/libffi.call/cls_float.c: Likewise.
1966
+ * testsuite/libffi.call/cls_schar.c: Likewise.
1967
+ * testsuite/libffi.call/cls_sint.c: Likewise.
1968
+ * testsuite/libffi.call/cls_sshort.c: Likewise.
1969
+ * testsuite/libffi.call/cls_uchar.c: Likewise.
1970
+ * testsuite/libffi.call/cls_uint.c: Likewise.
1971
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1972
+ * testsuite/libffi.call/cls_ushort.c: Likewise.
1973
+ * testsuite/libffi.call/problem1.c: Likewise.
1974
+
1975
+ * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
1976
+ static.
1977
+
1978
+ 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
1979
+
1980
+ * testsuite/libffi.call/cls_9byte2.c: New test case.
1981
+ * testsuite/libffi.call/cls_9byte1.c: Likewise.
1982
+ * testsuite/libffi.call/cls_64byte.c: Likewise.
1983
+ * testsuite/libffi.call/cls_20byte1.c: Likewise.
1984
+ * testsuite/libffi.call/cls_19byte.c: Likewise.
1985
+ * testsuite/libffi.call/cls_18byte.c: Likewise.
1986
+ * testsuite/libffi.call/closure_fn4.c: Likewise.
1987
+ * testsuite/libffi.call/closure_fn5.c: Likewise.
1988
+ * testsuite/libffi.call/cls_schar.c: Likewise.
1989
+ * testsuite/libffi.call/cls_sint.c: Likewise.
1990
+ * testsuite/libffi.call/cls_sshort.c: Likewise.
1991
+ * testsuite/libffi.call/nested_struct2.c: Likewise.
1992
+ * testsuite/libffi.call/nested_struct3.c: Likewise.
1993
+
1994
+ 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
1995
+
1996
+ * testsuite/libffi.call/cls_double.c: Do a check on the result.
1997
+ * testsuite/libffi.call/cls_uchar.c: Likewise.
1998
+ * testsuite/libffi.call/cls_uint.c: Likewise.
1999
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2000
+ * testsuite/libffi.call/cls_ushort.c: Likewise.
2001
+ * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2002
+
2003
+ 2003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
2004
+
2005
+ * src/prep_cif.c (ffi_prep_cif): Move the validity check after
2006
+ the initialization.
2007
+
2008
+ 2003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
2009
+
2010
+ * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
2011
+ FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2012
+
2013
+ 2003-10-22 David Daney <ddaney@avtrex.com>
2014
+
2015
+ * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2016
+ __attribute__((__mode__(__SI__))) and friends.
2017
+
2018
+ 2003-10-22 Andreas Schwab <schwab@suse.de>
2019
+
2020
+ * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2021
+
2022
+ 2003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
2023
+
2024
+ * configure.in: AC_LINK_FILES(ffitarget.h).
2025
+ * configure: Regenerate.
2026
+ * Makefile.in: Likewise.
2027
+ * include/Makefile.in: Likewise.
2028
+ * testsuite/Makefile.in: Likewise.
2029
+ * fficonfig.h.in: Likewise.
2030
+
2031
+ 2003-10-21 Paolo Bonzini <bonzini@gnu.org>
2032
+ Richard Henderson <rth@redhat.com>
2033
+
2034
+ Avoid that ffi.h includes fficonfig.h.
2035
+
2036
+ * Makefile.am (EXTRA_DIST): Include ffitarget.h files
2037
+ (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2038
+ (TARGET_SRC_MIPS_SGI): Removed.
2039
+ (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2040
+ (MIPS_SGI): Removed.
2041
+ (CLEANFILES): Removed.
2042
+ (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2043
+ targets.
2044
+ * acconfig.h: Removed.
2045
+ * configure.in: Compute sizeofs only for double and long double.
2046
+ Use them to define and subst HAVE_LONG_DOUBLE. Include comments
2047
+ into AC_DEFINE instead of using acconfig.h. Create
2048
+ include/ffitarget.h instead of include/fficonfig.h. Rename
2049
+ MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2050
+ AC_DEFINE EH_FRAME_FLAGS.
2051
+ * include/Makefile.am (DISTCLEANFILES): New automake macro.
2052
+ (hack_DATA): Add ffitarget.h.
2053
+ * include/ffi.h.in: Remove all system specific definitions.
2054
+ Declare raw API even if it is not installed, why bother?
2055
+ Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
2056
+ not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
2057
+ ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
2058
+ (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2059
+ * include/ffi_common.h (bool): Do not define.
2060
+ (ffi_assert): Accept failed assertion.
2061
+ (ffi_type_test): Return void and accept file/line.
2062
+ (FFI_ASSERT): Pass stringized failed assertion.
2063
+ (FFI_ASSERT_AT): New macro.
2064
+ (FFI_ASSERT_VALID_TYPE): New macro.
2065
+ (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2066
+ UINT64, SINT64): Define here with gcc's __attribute__ macro
2067
+ instead of in ffi.h
2068
+ (FLOAT32, ALIGN): Define here instead of in ffi.h
2069
+ * include/ffi-mips.h: Removed. Its content moved to
2070
+ src/mips/ffitarget.h after separating assembly and C sections.
2071
+ * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2072
+ src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2073
+ src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2074
+ src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2075
+ SIZEOF_ARG -> FFI_SIZEOF_ARG.
2076
+ * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2077
+ * src/debug.c (ffi_assert): Accept stringized failed assertion.
2078
+ (ffi_type_test): Rewritten.
2079
+ * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2080
+ FFI_ASSERT_VALID_TYPE.
2081
+ * src/alpha/ffitarget.h, src/arm/ffitarget.h,
2082
+ src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2083
+ src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2084
+ src/s390/ffitarget.h, src/sh/ffitarget.h,
2085
+ src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2086
+ src/x86/ffitarget.h: New files.
2087
+ * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2088
+ src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2089
+ src/powerpc/aix.S, src/powerpc/darwin.S,
2090
+ src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2091
+ src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2092
+ src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2093
+ src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2094
+ src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2095
+ include fficonfig.h
2096
+
2097
+ 2003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2098
+
2099
+ * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2100
+ _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2101
+
2102
+ 2003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
2103
+
2104
+ * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2105
+ Used when FFI_DEBUG = 1.
2106
+
2107
+ 2003-10-14 Alan Modra <amodra@bigpond.net.au>
2108
+
2109
+ * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2110
+ and align.
2111
+
2112
+ 2003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2113
+
2114
+ * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2115
+ FFI_MIPS_O32 for O32 ABI.
2116
+
2117
+ 2003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
2118
+
2119
+ * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2120
+ SPARC64. Cleanup whitespaces.
2121
+
2122
+ 2003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
2123
+
2124
+ * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2125
+ strongarm, xscale. Cleanup whitespaces.
2126
+ * testsuite/libffi.call/closure_fn1.c: Likewise.
2127
+ * testsuite/libffi.call/closure_fn2.c: Likewise.
2128
+ * testsuite/libffi.call/closure_fn3.c: Likewise.
2129
+ * testsuite/libffi.call/cls_12byte.c: Likewise.
2130
+ * testsuite/libffi.call/cls_16byte.c: Likewise.
2131
+ * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2132
+ * testsuite/libffi.call/cls_20byte.c: Likewise.
2133
+ * testsuite/libffi.call/cls_24byte.c: Likewise.
2134
+ * testsuite/libffi.call/cls_2byte.c: Likewise.
2135
+ * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2136
+ * testsuite/libffi.call/cls_3byte1.c: Likewise.
2137
+ * testsuite/libffi.call/cls_3byte2.c: Likewise.
2138
+ * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2139
+ * testsuite/libffi.call/cls_4byte.c: Likewise.
2140
+ * testsuite/libffi.call/cls_5byte.c: Likewise.
2141
+ * testsuite/libffi.call/cls_6byte.c: Likewise.
2142
+ * testsuite/libffi.call/cls_7byte.c: Likewise.
2143
+ * testsuite/libffi.call/cls_8byte.c: Likewise.
2144
+ * testsuite/libffi.call/cls_double.c: Likewise.
2145
+ * testsuite/libffi.call/cls_float.c: Likewise.
2146
+ * testsuite/libffi.call/cls_uchar.c: Likewise.
2147
+ * testsuite/libffi.call/cls_uint.c: Likewise.
2148
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2149
+ * testsuite/libffi.call/cls_ushort.c: Likewise.
2150
+ * testsuite/libffi.call/nested_struct.c: Likewise.
2151
+ * testsuite/libffi.call/nested_struct1.c: Likewise.
2152
+ * testsuite/libffi.call/problem1.c: Likewise.
2153
+ * testsuite/libffi.special/unwindtest.cc: Likewise.
2154
+ * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2155
+
2156
+ 2003-09-18 David Edelsohn <edelsohn@gnu.org>
2157
+
2158
+ * src/powerpc/aix.S: Cleanup whitespaces.
2159
+ * src/powerpc/aix_closure.S: Likewise.
2160
+
2161
+ 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2162
+
2163
+ * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2164
+ * src/powerpc/darwin_closure.S: Likewise.
2165
+ * src/powerpc/ffi_darwin.c: Likewise.
2166
+
2167
+ 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
2168
+ David Edelsohn <edelsohn@gnu.org>
2169
+
2170
+ * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2171
+ * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2172
+ parameter stack.
2173
+ * src/powerpc/darwin_closure.S: Likewise.
2174
+ * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2175
+ according to the Darwin/AIX ABI.
2176
+ (ffi_prep_cif_machdep): Likewise.
2177
+ (ffi_closure_helper_DARWIN): Likewise.
2178
+ Remove the outgoing parameter stack logic. Simplify the evaluation
2179
+ of the different CASE types.
2180
+ (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2181
+ statement in the trampoline code.
2182
+
2183
+ 2003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
2184
+
2185
+ * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2186
+ for the register size.
2187
+ (ffi_closure_helper_SYSV): Handle the structure return value
2188
+ address correctly.
2189
+ (ffi_closure_helper_SYSV): Return the appropriate type when
2190
+ the registers are used for the structure return value.
2191
+ * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2192
+ the 64-bit return value. Update copyright years.
2193
+
2194
+ 2003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2195
+
2196
+ * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2197
+ srcdir for ffi_mips.h.
2198
+
2199
+ 2003-09-12 Alan Modra <amodra@bigpond.net.au>
2200
+
2201
+ * src/prep_cif.c (initialize_aggregate): Include tail padding in
2202
+ structure size.
2203
+ * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2204
+ placement of float result.
2205
+ * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2206
+ cast of "resp" for big-endian 64 bit machines.
2207
+
2208
+ 2003-09-11 Alan Modra <amodra@bigpond.net.au>
2209
+
2210
+ * src/types.c (double, longdouble): Merge identical SH and ARM
2211
+ typedefs, and add POWERPC64.
2212
+ * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2213
+ struct split over gpr and rest.
2214
+ (ffi_prep_cif_machdep): Correct intarg_count for structures.
2215
+ * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2216
+
2217
+ 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
2218
+
2219
+ * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2220
+ passing correctly.
2221
+
2222
+ 2003-09-09 Alan Modra <amodra@bigpond.net.au>
2223
+
2224
+ * configure: Regenerate.
2225
+
2226
+ 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2227
+
2228
+ * Makefile.am: Remove build rules for ffitest.
2229
+ * Makefile.in: Rebuilt.
2230
+
2231
+ 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2232
+
2233
+ * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2234
+ about implicit declaration of abort().
2235
+
2236
+ 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
2237
+
2238
+ * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2239
+ * Makefile.in: Rebuilt.
2240
+ * configure.in: Add dejagnu test framework.
2241
+ * configure: Rebuilt.
2242
+
2243
+ * testsuite/Makefile.am: New file.
2244
+ * testsuite/Makefile.in: Built
2245
+ * testsuite/lib/libffi-dg.exp: New file.
2246
+ * testsuite/config/default.exp: Likewise.
2247
+ * testsuite/libffi.call/call.exp: Likewise.
2248
+ * testsuite/libffi.call/ffitest.h: Likewise.
2249
+ * testsuite/libffi.call/closure_fn0.c: Likewise.
2250
+ * testsuite/libffi.call/closure_fn1.c: Likewise.
2251
+ * testsuite/libffi.call/closure_fn2.c: Likewise.
2252
+ * testsuite/libffi.call/closure_fn3.c: Likewise.
2253
+ * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2254
+ * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2255
+ * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2256
+ * testsuite/libffi.call/cls_2byte.c: Likewise.
2257
+ * testsuite/libffi.call/cls_3byte1.c: Likewise.
2258
+ * testsuite/libffi.call/cls_3byte2.c: Likewise.
2259
+ * testsuite/libffi.call/cls_4byte.c: Likewise.
2260
+ * testsuite/libffi.call/cls_5byte.c: Likewise.
2261
+ * testsuite/libffi.call/cls_6byte.c: Likewise.
2262
+ * testsuite/libffi.call/cls_7byte.c: Likewise.
2263
+ * testsuite/libffi.call/cls_8byte.c: Likewise.
2264
+ * testsuite/libffi.call/cls_12byte.c: Likewise.
2265
+ * testsuite/libffi.call/cls_16byte.c: Likewise.
2266
+ * testsuite/libffi.call/cls_20byte.c: Likewise.
2267
+ * testsuite/libffi.call/cls_24byte.c: Likewise.
2268
+ * testsuite/libffi.call/cls_double.c: Likewise.
2269
+ * testsuite/libffi.call/cls_float.c: Likewise.
2270
+ * testsuite/libffi.call/cls_uchar.c: Likewise.
2271
+ * testsuite/libffi.call/cls_uint.c: Likewise.
2272
+ * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2273
+ * testsuite/libffi.call/cls_ushort.c: Likewise.
2274
+ * testsuite/libffi.call/float.c: Likewise.
2275
+ * testsuite/libffi.call/float1.c: Likewise.
2276
+ * testsuite/libffi.call/float2.c: Likewise.
2277
+ * testsuite/libffi.call/many.c: Likewise.
2278
+ * testsuite/libffi.call/many_win32.c: Likewise.
2279
+ * testsuite/libffi.call/nested_struct.c: Likewise.
2280
+ * testsuite/libffi.call/nested_struct1.c: Likewise.
2281
+ * testsuite/libffi.call/pyobjc-tc.c: Likewise.
2282
+ * testsuite/libffi.call/problem1.c: Likewise.
2283
+ * testsuite/libffi.call/promotion.c: Likewise.
2284
+ * testsuite/libffi.call/return_ll.c: Likewise.
2285
+ * testsuite/libffi.call/return_sc.c: Likewise.
2286
+ * testsuite/libffi.call/return_uc.c: Likewise.
2287
+ * testsuite/libffi.call/strlen.c: Likewise.
2288
+ * testsuite/libffi.call/strlen_win32.c: Likewise.
2289
+ * testsuite/libffi.call/struct1.c: Likewise.
2290
+ * testsuite/libffi.call/struct2.c: Likewise.
2291
+ * testsuite/libffi.call/struct3.c: Likewise.
2292
+ * testsuite/libffi.call/struct4.c: Likewise.
2293
+ * testsuite/libffi.call/struct5.c: Likewise.
2294
+ * testsuite/libffi.call/struct6.c: Likewise.
2295
+ * testsuite/libffi.call/struct7.c: Likewise.
2296
+ * testsuite/libffi.call/struct8.c: Likewise.
2297
+ * testsuite/libffi.call/struct9.c: Likewise.
2298
+ * testsuite/libffi.special/special.exp: New file.
2299
+ * testsuite/libffi.special/ffitestcxx.h: Likewise.
2300
+ * testsuite/libffi.special/unwindtest.cc: Likewise.
2301
+
2302
+
2303
+ 2003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
2304
+
2305
+ * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
2306
+ copyright years.
2307
+
2308
+ 2003-08-02 Alan Modra <amodra@bigpond.net.au>
2309
+
2310
+ * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2311
+ structure passing.
2312
+ (ffi_closure_helper_LINUX64): Likewise.
2313
+ * src/powerpc/linux64.S: Remove code writing to parm save area.
2314
+ * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2315
+ address in lr from ffi_closure_helper_LINUX64 call to calculate
2316
+ table address. Optimize function tail.
2317
+
2318
+ 2003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
2319
+
2320
+ * src/sparc/ffi.c: Handle all floating point registers.
2321
+ * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2322
+
2323
+ 2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2324
+
2325
+ * README: Note that libffi is not part of GCC. Update the project
2326
+ URL and status.
2327
+
2328
+ 2003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2329
+
2330
+ * src/powerpc/ppc_closure.S: Include ffi.h.
2331
+
2332
+ 2003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2333
+
2334
+ * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2335
+ Use C style comments.
2336
+
2337
+ 2003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2338
+
2339
+ * Makefile.am: Add SHmedia support. Fix a typo of SH support.
2340
+ * Makefile.in: Regenerate.
2341
+ * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2342
+ * configure: Regenerate.
2343
+ * include/ffi.h.in: Add SHmedia support.
2344
+ * src/sh64/ffi.c: New file.
2345
+ * src/sh64/sysv.S: New file.
2346
+
2347
+ 2003-05-16 Jakub Jelinek <jakub@redhat.com>
2348
+
2349
+ * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2350
+ should be read-only.
2351
+ * configure: Rebuilt.
2352
+ * fficonfig.h.in: Rebuilt.
2353
+ * include/ffi.h.in (EH_FRAME_FLAGS): Define.
2354
+ * src/alpha/osf.S: Use EH_FRAME_FLAGS.
2355
+ * src/powerpc/linux64.S: Likewise.
2356
+ * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
2357
+ * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
2358
+ if -fpic/-fPIC/-mrelocatable.
2359
+ * src/powerpc/powerpc_closure.S: Likewise.
2360
+ * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2361
+ #write in .eh_frame flags.
2362
+ * src/sparc/v9.S: Likewise.
2363
+ * src/x86/unix64.S: Use EH_FRAME_FLAGS.
2364
+ * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
2365
+ * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
2366
+
2367
+ 2003-05-07 Jeff Sturm <jsturm@one-point.com>
2368
+
2369
+ Fixes PR bootstrap/10656
2370
+ * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2371
+ support for .register pseudo-op.
2372
+ * src/sparc/v8.S: Use it.
2373
+ * fficonfig.h.in: Rebuilt.
2374
+ * configure: Rebuilt.
2375
+
2376
+ 2003-04-18 Jakub Jelinek <jakub@redhat.com>
2377
+
2378
+ * include/ffi.h.in (POWERPC64): Define if 64-bit.
2379
+ (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2380
+ Make it the default on POWERPC64.
2381
+ (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2382
+ * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2383
+ * configure: Rebuilt.
2384
+ * src/powerpc/ffi.c (hidden): Define.
2385
+ (ffi_prep_args_SYSV): Renamed from
2386
+ ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
2387
+ (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2388
+ ASM_NEEDS_REGISTERS64): New.
2389
+ (ffi_prep_args64): New function.
2390
+ (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2391
+ (ffi_call): Likewise.
2392
+ (ffi_prep_closure): Likewise.
2393
+ (flush_icache): Surround by #ifndef POWERPC64.
2394
+ (ffi_dblfl): New union type.
2395
+ (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2396
+ (ffi_closure_helper_LINUX64): New function.
2397
+ * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2398
+ __powerpc64__.
2399
+ * src/powerpc/sysv.S: Likewise.
2400
+ (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2401
+ * src/powerpc/linux64.S: New file.
2402
+ * src/powerpc/linux64_closure.S: New file.
2403
+ * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2404
+ src/powerpc/linux64_closure.S.
2405
+ (TARGET_SRC_POWERPC): Likewise.
2406
+
2407
+ * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2408
+ closure_test_fn3): Fix result printing on big-endian 64-bit
2409
+ machines.
2410
+ (main): Print tst2_arg instead of uninitialized tst2_result.
2411
+
2412
+ * src/ffitest.c (main): Hide what closure pointer really points to
2413
+ from the compiler.
2414
+
2415
+ 2003-04-16 Richard Earnshaw <rearnsha@arm.com>
2416
+
2417
+ * configure.in (arm-*-netbsdelf*): Add configuration.
2418
+ (configure): Regenerated.
2419
+
2420
+ 2003-04-04 Loren J. Rittle <ljrittle@acm.org>
2421
+
2422
+ * include/Makefile.in: Regenerate.
2423
+
2424
+ 2003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2425
+
2426
+ * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
2427
+ bit mode.
2428
+ * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
2429
+ Receive closure pointer through parameter, read args using
2430
+ __builtin_dwarf_cfa.
2431
+ (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
2432
+
2433
+ 2003-03-12 Andreas Schwab <schwab@suse.de>
2434
+
2435
+ * configure.in: Avoid trailing /. in toolexeclibdir.
2436
+ * configure: Rebuilt.
2437
+
2438
+ 2003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
2439
+
2440
+ * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
2441
+
2442
+ 2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
2443
+
2444
+ * libffi/src/powerpc/darwin_closure.S:
2445
+ Fix alignement bug, allocate 8 bytes for the result.
2446
+ * libffi/src/powerpc/aix_closure.S:
2447
+ Likewise.
2448
+ * libffi/src/powerpc/ffi_darwin.c:
2449
+ Update stackframe description for aix/darwin_closure.S.
2450
+
2451
+ 2003-02-06 Jakub Jelinek <jakub@redhat.com>
2452
+
2453
+ * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
2454
+ attribute.
2455
+
2456
+ 2003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
2457
+ Andreas Schwab <schwab@suse.de>
2458
+
2459
+ * configure.in: Adjust command to source config-ml.in to account
2460
+ for changes to the libffi_basedir definition.
2461
+ (libffi_basedir): Remove ${srcdir} from value and include trailing
2462
+ slash if nonempty.
2463
+
2464
+ * configure: Regenerate.
2465
+
2466
+ 2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2467
+
2468
+ * src/powerpc/ppc_closure.S: Recode to fit shared libs.
2469
+
2470
+ 2003-01-28 Andrew Haley <aph@redhat.com>
2471
+
2472
+ * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
2473
+ * src/x86/ffi64.c (ffi_prep_closure): New.
2474
+ (ffi_closure_UNIX64_inner): New.
2475
+ * src/x86/unix64.S (ffi_closure_UNIX64): New.
2476
+
2477
+ 2003-01-27 Alexandre Oliva <aoliva@redhat.com>
2478
+
2479
+ * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
2480
+ Remove USE_LIBDIR conditional.
2481
+ * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
2482
+ * Makefile.in, configure: Rebuilt.
2483
+
2484
+ 2003-01027 David Edelsohn <edelsohn@gnu.org>
2485
+
2486
+ * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
2487
+ * Makefile.in: Regenerate.
2488
+
2489
+ 2003-01-22 Andrew Haley <aph@redhat.com>
2490
+
2491
+ * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
2492
+ unwind info.
2493
+
2494
+ 2003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2495
+
2496
+ * src/powerpc/darwin.S: Add unwind info.
2497
+ * src/powerpc/darwin_closure.S: Likewise.
2498
+
2499
+ 2003-01-14 Andrew Haley <aph@redhat.com>
2500
+
2501
+ * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
2502
+ (ffi_prep_cif_machdep): Likewise.
2503
+ * src/x86/unix64.S: Add unwind info.
2504
+
2505
+ 2003-01-14 Andreas Jaeger <aj@suse.de>
2506
+
2507
+ * src/ffitest.c (main): Only use ffi_closures if those are
2508
+ supported.
2509
+
2510
+ 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
2511
+
2512
+ * libffi/src/ffitest.c
2513
+ add closure testcases
2514
+
2515
+ 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
2516
+
2517
+ * libffi/src/powerpc/ffi.c
2518
+ fix alignment bug for float (4 byte aligned iso 8 byte)
2519
+
2520
+ 2003-01-09 Geoffrey Keating <geoffk@apple.com>
2521
+
2522
+ * src/powerpc/ffi_darwin.c: Remove RCS version string.
2523
+ * src/powerpc/darwin.S: Remove RCS version string.
2524
+
2525
+ 2003-01-03 Jeff Sturm <jsturm@one-point.com>
2526
+
2527
+ * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
2528
+ * src/ffitest.c (main): Use static storage for closure.
2529
+ * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
2530
+ * src/sparc/v8.S (ffi_closure_v8): New.
2531
+ * src/sparc/v9.S (ffi_closure_v9): New.
2532
+
2533
+ 2002-11-10 Ranjit Mathew <rmathew@hotmail.com>
2534
+
2535
+ * include/ffi.h.in: Added FFI_STDCALL ffi_type
2536
+ enumeration for X86_WIN32.
2537
+ * src/x86/win32.S: Added ffi_call_STDCALL function
2538
+ definition.
2539
+ * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
2540
+ switch cases for recognising FFI_STDCALL and
2541
+ calling ffi_call_STDCALL if target is X86_WIN32.
2542
+ * src/ffitest.c (my_stdcall_strlen/stdcall_many):
2543
+ stdcall versions of the "my_strlen" and "many"
2544
+ test functions (for X86_WIN32).
2545
+ Added test cases to test stdcall invocation using
2546
+ these functions.
2547
+
2548
+ 2002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
2549
+
2550
+ * src/sh/sysv.S: Add DWARF2 unwind info.
2551
+
2552
+ 2002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
2553
+
2554
+ * src/s390/sysv.S (.eh_frame section): Make section read-only.
2555
+
2556
+ 2002-11-26 Jim Wilson <wilson@redhat.com>
2557
+
2558
+ * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
2559
+
2560
+ 2002-11-23 H.J. Lu <hjl@gnu.org>
2561
+
2562
+ * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
2563
+ Include ../config/accross.m4.
2564
+ * aclocal.m4; Rebuild.
2565
+ * configure: Likewise.
2566
+
2567
+ 2002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
2568
+
2569
+ * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
2570
+
2571
+ 2002-11-11 DJ Delorie <dj@redhat.com>
2572
+
2573
+ * configure.in: Look for common files in the right place.
2574
+
2575
+ 2002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
2576
+
2577
+ * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
2578
+ raw data as _Jv_word values, not ffi_raw.
2579
+ (ffi_java_ptrarray_to_raw): Likewise.
2580
+ (ffi_java_rvalue_to_raw): New function.
2581
+ (ffi_java_raw_call): Call it.
2582
+ (ffi_java_raw_to_rvalue): New function.
2583
+ (ffi_java_translate_args): Call it.
2584
+ * src/ffitest.c (closure_test_fn): Interpret return value
2585
+ as ffi_arg, not int.
2586
+ * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
2587
+ FFI_TYPE_POINTER case.
2588
+ (ffi_closure_helper_SYSV): Likewise. Also, assume return
2589
+ values extended to word size.
2590
+
2591
+ 2002-10-02 Andreas Jaeger <aj@suse.de>
2592
+
2593
+ * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
2594
+
2595
+ 2002-10-01 Bo Thorsen <bo@smetana.suse.de>
2596
+
2597
+ * include/ffi.h.in: Fix i386 win32 compilation.
2598
+
2599
+ 2002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
2600
+
2601
+ * configure.in: Add s390x-*-linux-* target.
2602
+ * configure: Regenerate.
2603
+ * include/ffi.h.in: Define S390X for s390x targets.
2604
+ (FFI_CLOSURES): Define for s390/s390x.
2605
+ (FFI_TRAMPOLINE_SIZE): Likewise.
2606
+ (FFI_NATIVE_RAW_API): Likewise.
2607
+ * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
2608
+ * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
2609
+ * src/s390/ffi.c: Major rework of existing code. Add support for
2610
+ s390x targets. Add closure support.
2611
+ * src/s390/sysv.S: Likewise.
2612
+
2613
+ 2002-09-29 Richard Earnshaw <rearnsha@arm.com>
2614
+
2615
+ * src/arm/sysv.S: Fix typo.
2616
+
2617
+ 2002-09-28 Richard Earnshaw <rearnsha@arm.com>
2618
+
2619
+ * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
2620
+ has defined __USER_LABEL_PREFIX__, then use it in CNAME.
2621
+ (ffi_call_SYSV): Handle soft-float.
2622
+
2623
+ 2002-09-27 Bo Thorsen <bo@suse.de>
2624
+
2625
+ * include/ffi.h.in: Fix multilib x86-64 support.
2626
+
2627
+ 2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2628
+
2629
+ * Makefile.am (all-multi): Fix multilib parallel build.
2630
+
2631
+ 2002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
2632
+
2633
+ * configure.in (sh[34]*-*-linux*): Add brackets.
2634
+ * configure: Regenerate.
2635
+
2636
+ 2002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
2637
+
2638
+ * Makefile.am: Add SH support.
2639
+ * Makefile.in: Regenerate.
2640
+ * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
2641
+ * configure: Regenerate.
2642
+ * include/ffi.h.in: Add SH support.
2643
+ * src/sh/ffi.c: New file.
2644
+ * src/sh/sysv.S: New file.
2645
+ * src/types.c: Add SH support.
2646
+
2647
+ 2002-07-16 Bo Thorsen <bo@suse.de>
2648
+
2649
+ * src/x86/ffi64.c: New file that adds x86-64 support.
2650
+ * src/x86/unix64.S: New file that handles argument setup for
2651
+ x86-64.
2652
+ * src/x86/sysv.S: Don't use this on x86-64.
2653
+ * src/x86/ffi.c: Don't use this on x86-64.
2654
+ Remove unused vars.
2655
+ * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
2656
+ for x86-64.
2657
+ * src/ffitest.c (struct6): New test that tests a special case in
2658
+ the x86-64 ABI.
2659
+ (struct7): Likewise.
2660
+ (struct8): Likewise.
2661
+ (struct9): Likewise.
2662
+ (closure_test_fn): Silence warning about this when it's not used.
2663
+ (main): Add the new tests.
2664
+ (main): Fix a couple of wrong casts and silence some compiler warnings.
2665
+ * include/ffi.h.in: Add x86-64 ABI definition.
2666
+ * fficonfig.h.in: Regenerate.
2667
+ * Makefile.am: Add x86-64 support.
2668
+ * configure.in: Likewise.
2669
+ * Makefile.in: Regenerate.
2670
+ * configure: Likewise.
2671
+
2672
+ 2002-06-24 Bo Thorsen <bo@suse.de>
2673
+
2674
+ * src/types.c: Merge settings for similar architectures.
2675
+ Add x86-64 sizes and alignments.
2676
+
2677
+ 2002-06-23 Bo Thorsen <bo@suse.de>
2678
+
2679
+ * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
2680
+ * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
2681
+ * src/mips/ffi.c (ffi_prep_args): Likewise.
2682
+ * src/m68k/ffi.c (ffi_prep_args): Likewise.
2683
+
2684
+ 2002-07-18 H.J. Lu (hjl@gnu.org)
2685
+
2686
+ * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
2687
+ (libffi_la_SOURCES): Support MIPS_LINUX.
2688
+ (libffi_convenience_la_SOURCES): Likewise.
2689
+ * Makefile.in: Regenerated.
2690
+
2691
+ * configure.in (mips64*-*): Skip.
2692
+ (mips*-*-linux*): New.
2693
+ * configure: Regenerated.
2694
+
2695
+ * src/mips/ffi.c: Include <sgidefs.h>.
2696
+
2697
+ 2002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
2698
+
2699
+ * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
2700
+
2701
+ 2002-05-27 Roger Sayle <roger@eyesopen.com>
2702
+
2703
+ * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
2704
+
2705
+ 2002-05-27 Bo Thorsen <bo@suse.de>
2706
+
2707
+ * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
2708
+ fix formatting.
2709
+
2710
+ 2002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
2711
+
2712
+ * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
2713
+ beginning of function (for older apple cc).
2714
+
2715
+ 2002-05-08 Alexandre Oliva <aoliva@redhat.com>
2716
+
2717
+ * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
2718
+ script entry, and set LD to it when configuring multilibs.
2719
+ * configure: Rebuilt.
2720
+
2721
+ 2002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
2722
+
2723
+ * configure.in (sparc64-*-netbsd*): Add target.
2724
+ (sparc-*-netbsdelf*): Likewise.
2725
+ * configure: Regenerate.
2726
+
2727
+ 2002-04-28 David S. Miller <davem@redhat.com>
2728
+
2729
+ * configure.in, configure: Fix SPARC test in previous change.
2730
+
2731
+ 2002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
2732
+
2733
+ * Makefile.am: Add Linux for S/390 support.
2734
+ * Makefile.in: Regenerate.
2735
+ * configure.in: Add Linux for S/390 support.
2736
+ * configure: Regenerate.
2737
+ * include/ffi.h.in: Add Linux for S/390 support.
2738
+ * src/s390/ffi.c: New file from libffi CVS tree.
2739
+ * src/s390/sysv.S: New file from libffi CVS tree.
2740
+
2741
+ 2002-04-28 Jakub Jelinek <jakub@redhat.com>
2742
+
2743
+ * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
2744
+ %r_disp32().
2745
+ * src/sparc/v8.S: Use it.
2746
+ * src/sparc/v9.S: Likewise.
2747
+ * fficonfig.h.in: Rebuilt.
2748
+ * configure: Rebuilt.
2749
+
2750
+ 2002-04-08 Hans Boehm <Hans_Boehm@hp.com>
2751
+
2752
+ * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
2753
+ correctly.
2754
+ * src/ia64/unix.S: Add unwind information. Fix comments.
2755
+ Save sp in a way that's compatible with unwind info.
2756
+ (ffi_call_unix): Correctly restore sp in all cases.
2757
+ * src/ia64/ffi.c: Add, fix comments.
2758
+
2759
+ 2002-04-08 Jakub Jelinek <jakub@redhat.com>
2760
+
2761
+ * src/sparc/v8.S: Make .eh_frame dependent on target word size.
2762
+
2763
+ 2002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
2764
+
2765
+ * configure.in (alpha*-*-netbsd*): Add target.
2766
+ * configure: Regenerate.
2767
+
2768
+ 2002-04-04 Jeff Sturm <jsturm@one-point.com>
2769
+
2770
+ * src/sparc/v8.S: Add unwind info.
2771
+ * src/sparc/v9.S: Likewise.
2772
+
2773
+ 2002-03-30 Krister Walfridsson <cato@df.lth.se>
2774
+
2775
+ * configure.in: Enable i*86-*-netbsdelf*.
2776
+ * configure: Rebuilt.
2777
+
2778
+ 2002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
2779
+
2780
+ PR other/2620
2781
+ * src/mips/n32.s: Delete
2782
+ * src/mips/o32.s: Delete
2783
+
2784
+ 2002-03-21 Loren J. Rittle <ljrittle@acm.org>
2785
+
2786
+ * configure.in: Enable alpha*-*-freebsd*.
2787
+ * configure: Rebuilt.
2788
+
2789
+ 2002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2790
+
2791
+ * Makefile.am: libfficonvenience -> libffi_convenience.
2792
+ * Makefile.in: Rebuilt.
2793
+
2794
+ * Makefile.am: Define ffitest_OBJECTS.
2795
+ * Makefile.in: Rebuilt.
2796
+
2797
+ 2002-03-07 Andreas Tobler <toa@pop.agri.ch>
2798
+ David Edelsohn <edelsohn@gnu.org>
2799
+
2800
+ * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
2801
+ (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
2802
+ (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
2803
+ * Makefile.in: Regenerate.
2804
+ * include/ffi.h.in: Add AIX and Darwin closure definitions.
2805
+ * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
2806
+ (flush_icache, flush_range): New functions.
2807
+ (ffi_closure_helper_DARWIN): New function.
2808
+ * src/powerpc/aix_closure.S: New file.
2809
+ * src/powerpc/darwin_closure.S: New file.
2810
+
2811
+ 2002-02-24 Jeff Sturm <jsturm@one-point.com>
2812
+
2813
+ * include/ffi.h.in: Add typedef for ffi_arg.
2814
+ * src/ffitest.c (main): Declare rint with ffi_arg.
2815
+
2816
+ 2002-02-21 Andreas Tobler <toa@pop.agri.ch>
2817
+
2818
+ * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
2819
+ number of GPRs for floating-point arguments.
2820
+
2821
+ 2002-01-31 Anthony Green <green@redhat.com>
2822
+
2823
+ * configure: Rebuilt.
2824
+ * configure.in: Replace CHECK_SIZEOF and endian tests with
2825
+ cross-compiler friendly macros.
2826
+ * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
2827
+ macros.
2828
+
2829
+ 2002-01-18 David Edelsohn <edelsohn@gnu.org>
2830
+
2831
+ * src/powerpc/darwin.S (_ffi_call_AIX): New.
2832
+ * src/powerpc/aix.S (ffi_call_DARWIN): New.
2833
+
2834
+ 2002-01-17 David Edelsohn <edelsohn@gnu.org>
2835
+
2836
+ * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
2837
+ (TARGET_SRC_POWERPC_AIX): New.
2838
+ (POWERPC_AIX): New stanza.
2839
+ * Makefile.in: Regenerate.
2840
+ * configure.in: Add AIX case.
2841
+ * configure: Regenerate.
2842
+ * include/ffi.h.in (ffi_abi): Add FFI_AIX.
2843
+ * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
2844
+ size. Fix "long double" support.
2845
+ (ffi_call): Add FFI_AIX case.
2846
+ * src/powerpc/aix.S: New.
2847
+
2848
+ 2001-10-09 John Hornkvist <john@toastedmarshmallow.com>
2849
+
2850
+ Implement Darwin PowerPC ABI.
2851
+ * configure.in: Handle powerpc-*-darwin*.
2852
+ * Makefile.am: Set source files for POWERPC_DARWIN.
2853
+ * configure: Rebuilt.
2854
+ * Makefile.in: Rebuilt.
2855
+ * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
2856
+ POWERPC_DARWIN.
2857
+ * src/powerpc/darwin.S: New file.
2858
+ * src/powerpc/ffi_darwin.c: New file.
2859
+
2860
+ 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
2861
+
2862
+ * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
2863
+
2864
+ 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2865
+
2866
+ * src/x86/sysv.S: Avoid gas-only .balign directive.
2867
+ Use C style comments.
2868
+
2869
+ 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2870
+
2871
+ * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
2872
+ Fixes PR bootstrap/3563.
2873
+
2874
+ 2001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2875
+
2876
+ * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
2877
+
2878
+ 2001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2879
+
2880
+ * configure.in: Recognize sparc*-sun-* host.
2881
+ * configure: Regenerate.
2882
+
2883
+ 2001-06-06 Andrew Haley <aph@redhat.com>
2884
+
2885
+ * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
2886
+
2887
+ 2001-06-03 Andrew Haley <aph@redhat.com>
2888
+
2889
+ * src/alpha/osf.S: Add unwind info.
2890
+ * src/powerpc/sysv.S: Add unwind info.
2891
+ * src/powerpc/ppc_closure.S: Likewise.
2892
+
2893
+ 2000-05-31 Jeff Sturm <jsturm@one-point.com>
2894
+
2895
+ * configure.in: Fix AC_ARG_ENABLE usage.
2896
+ * configure: Rebuilt.
2897
+
2898
+ 2001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2899
+
2900
+ * configure.in: Remove warning about beta code.
2901
+ * configure: Rebuilt.
2902
+
2903
+ 2001-04-25 Hans Boehm <Hans_Boehm@hp.com>
2904
+
2905
+ * src/ia64/unix.S: Restore stack pointer when returning from
2906
+ ffi_closure_UNIX.
2907
+ * src/ia64/ffi.c: Fix typo in comment.
2908
+
2909
+ 2001-04-18 Jim Wilson <wilson@redhat.com>
2910
+
2911
+ * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
2912
+ to eliminate RAW DV.
2913
+
2914
+ 2001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
2915
+
2916
+ * Makefile.am: Make a libtool convenience library.
2917
+ * Makefile.in: Rebuilt.
2918
+
2919
+ 2001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
2920
+
2921
+ * configure.in: Use different syntax for subdirectory creation.
2922
+ * configure: Rebuilt.
2923
+
2924
+ 2001-03-27 Jon Beniston <jon@beniston.com>
2925
+
2926
+ * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
2927
+ * configure: Rebuilt.
2928
+ * Makefile.am: Added X86_WIN32 target support.
2929
+ * Makefile.in: Rebuilt.
2930
+
2931
+ * include/ffi.h.in: Added X86_WIN32 target support.
2932
+
2933
+ * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
2934
+ * src/types.c: Added X86_WIN32 target support.
2935
+
2936
+ * src/x86/win32.S: New file. Based on sysv.S, but with EH
2937
+ stuff removed and made to work with CygWin's gas.
2938
+
2939
+ 2001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
2940
+
2941
+ * configure.in: Make target subdirectory in build dir.
2942
+ * Makefile.am: Override suffix based rules to specify correct output
2943
+ subdirectory.
2944
+ * Makefile.in: Rebuilt.
2945
+ * configure: Rebuilt.
2946
+
2947
+ 2001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
2948
+
2949
+ * src/powerpc/ppc_closure.S: New file.
2950
+ * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
2951
+ involving long long and register pairs.
2952
+ (ffi_prep_closure): New function.
2953
+ (flush_icache): Likewise.
2954
+ (ffi_closure_helper_SYSV): Likewise.
2955
+ * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
2956
+ (FFI_TRAMPOLINE_SIZE): Likewise.
2957
+ (FFI_NATIVE_RAW_API): Likewise.
2958
+ * Makefile.in: Rebuilt.
2959
+ * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
2960
+ (TARGET_SRC_POWERPC): Likewise.
2961
+
2962
+ 2001-03-19 Tom Tromey <tromey@redhat.com>
2963
+
2964
+ * Makefile.in: Rebuilt.
2965
+ * Makefile.am (ffitest_LDFLAGS): New macro.
2966
+
2967
+ 2001-03-02 Nick Clifton <nickc@redhat.com>
2968
+
2969
+ * include/ffi.h.in: Remove RCS ident string.
2970
+ * include/ffi_mips.h: Remove RCS ident string.
2971
+ * src/debug.c: Remove RCS ident string.
2972
+ * src/ffitest.c: Remove RCS ident string.
2973
+ * src/prep_cif.c: Remove RCS ident string.
2974
+ * src/types.c: Remove RCS ident string.
2975
+ * src/alpha/ffi.c: Remove RCS ident string.
2976
+ * src/alpha/osf.S: Remove RCS ident string.
2977
+ * src/arm/ffi.c: Remove RCS ident string.
2978
+ * src/arm/sysv.S: Remove RCS ident string.
2979
+ * src/mips/ffi.c: Remove RCS ident string.
2980
+ * src/mips/n32.S: Remove RCS ident string.
2981
+ * src/mips/o32.S: Remove RCS ident string.
2982
+ * src/sparc/ffi.c: Remove RCS ident string.
2983
+ * src/sparc/v8.S: Remove RCS ident string.
2984
+ * src/sparc/v9.S: Remove RCS ident string.
2985
+ * src/x86/ffi.c: Remove RCS ident string.
2986
+ * src/x86/sysv.S: Remove RCS ident string.
2987
+
2988
+ 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
2989
+
2990
+ * include/ffi.h.in: Change sourceware.cygnus.com references to
2991
+ gcc.gnu.org.
2992
+
2993
+ 2000-12-09 Richard Henderson <rth@redhat.com>
2994
+
2995
+ * src/alpha/ffi.c (ffi_call): Simplify struct return test.
2996
+ (ffi_closure_osf_inner): Index rather than increment avalue
2997
+ and arg_types. Give ffi_closure_osf the raw return value type.
2998
+ * src/alpha/osf.S (ffi_closure_osf): Handle return value type
2999
+ promotion.
3000
+
3001
+ 2000-12-07 Richard Henderson <rth@redhat.com>
3002
+
3003
+ * src/raw_api.c (ffi_translate_args): Fix typo.
3004
+ (ffi_prep_closure): Likewise.
3005
+
3006
+ * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3007
+ FFI_TRAMPOLINE_SIZE.
3008
+ * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3009
+ cif->bytes for new ffi_call_osf implementation.
3010
+ (ffi_prep_args): Absorb into ...
3011
+ (ffi_call): ... here. Do all stack allocation here and
3012
+ avoid a callback function.
3013
+ (ffi_prep_closure, ffi_closure_osf_inner): New.
3014
+ * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3015
+ (ffi_closure_osf): New.
3016
+
3017
+ 2000-09-10 Alexandre Oliva <aoliva@redhat.com>
3018
+
3019
+ * config.guess, config.sub, install-sh: Removed.
3020
+ * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3021
+ * Makefile.in: Rebuilt.
3022
+
3023
+ * acinclude.m4: Include libtool macros from the top level.
3024
+ * aclocal.m4, configure: Rebuilt.
3025
+
3026
+ 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
3027
+
3028
+ * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3029
+ * configure: Rebuilt.
3030
+
3031
+ 2000-05-11 Scott Bambrough <scottb@netwinder.org>
3032
+
3033
+ * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3034
+ memory correctly. Use conditional instructions, not branches where
3035
+ possible.
3036
+
3037
+ 2000-05-04 Tom Tromey <tromey@cygnus.com>
3038
+
3039
+ * configure: Rebuilt.
3040
+ * configure.in: Match `arm*-*-linux-*'.
3041
+ From Chris Dornan <cdornan@arm.com>.
3042
+
3043
+ 2000-04-28 Jakub Jelinek <jakub@redhat.com>
3044
+
3045
+ * Makefile.am (SUBDIRS): Define.
3046
+ (AM_MAKEFLAGS): Likewise.
3047
+ (Multilib support.): Add section.
3048
+ * Makefile.in: Rebuilt.
3049
+ * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
3050
+ New variables. Set for gcc using -print-multi-lib. Export them
3051
+ to libtool.
3052
+ (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3053
+ * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3054
+ for -shared links.
3055
+ (extra_compiler_flags_value, extra_compiler_flags): Check these
3056
+ for extra compiler options which need to be passed down in
3057
+ compiler_flags.
3058
+
3059
+ 2000-04-16 Anthony Green <green@redhat.com>
3060
+
3061
+ * configure: Rebuilt.
3062
+ * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3063
+
3064
+ 2000-04-14 Jakub Jelinek <jakub@redhat.com>
3065
+
3066
+ * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3067
+ Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3068
+ * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3069
+ Replace all void * sizeofs with sizeof(int).
3070
+ Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3071
+ different than DOUBLE.
3072
+ Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3073
+ (ffi_prep_args_v9): New function.
3074
+ (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3075
+ (ffi_V9_return_struct): New function.
3076
+ (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3077
+ 32bit code (not yet cross-arch calls).
3078
+ * src/sparc/v8.S: Add struct return delay nop.
3079
+ Handle long long.
3080
+ * src/sparc/v9.S: New file.
3081
+ * src/prep_cif.c (ffi_prep_cif): Return structure pointer
3082
+ is used on sparc64 only for structures larger than 32 bytes.
3083
+ Pass by reference for structures is done for structure arguments
3084
+ larger than 16 bytes.
3085
+ * src/ffitest.c (main): Use 64bit rint on sparc64.
3086
+ Run long long tests on sparc.
3087
+ * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3088
+ sparc64.
3089
+ (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3090
+ on sparc64.
3091
+ * configure.in (sparc-*-linux*): New supported target.
3092
+ (sparc64-*-linux*): Likewise.
3093
+ * configure: Rebuilt.
3094
+ * Makefile.am: Add v9.S to SPARC files.
3095
+ * Makefile.in: Likewise.
3096
+ (LINK): Surround $(CCLD) into double quotes, so that multilib
3097
+ compiles work correctly.
3098
+
3099
+ 2000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
3100
+
3101
+ * configure: Rebuilt.
3102
+ * configure.in: (i*86-*-solaris*): New libffi target. Patch
3103
+ proposed by Bryce McKinlay.
3104
+
3105
+ 2000-03-20 Tom Tromey <tromey@cygnus.com>
3106
+
3107
+ * Makefile.in: Hand edit for java_raw_api.lo.
3108
+
3109
+ 2000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
3110
+
3111
+ * config.guess, config.sub: Update from the gcc tree.
3112
+ Fix for PR libgcj/168.
3113
+
3114
+ 2000-03-03 Tom Tromey <tromey@cygnus.com>
3115
+
3116
+ * Makefile.in: Fixed ia64 by hand.
3117
+
3118
+ * configure: Rebuilt.
3119
+ * configure.in (--enable-multilib): New option.
3120
+ (libffi_basedir): New subst.
3121
+ (AC_OUTPUT): Added multilib code.
3122
+
3123
+ 2000-03-02 Tom Tromey <tromey@cygnus.com>
3124
+
3125
+ * Makefile.in: Rebuilt.
3126
+ * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3127
+ directory name.
3128
+
3129
+ 2000-02-25 Hans Boehm <boehm@acm.org>
3130
+
3131
+ * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3132
+ files.
3133
+ * src/raw_api.c (ffi_translate_args): Fixed typo in argument
3134
+ list.
3135
+ (ffi_prep_raw_closure): Use ffi_translate_args, not
3136
+ ffi_closure_translate.
3137
+ * src/java_raw_api.c: New file.
3138
+ * src/ffitest.c (closure_test_fn): New function.
3139
+ (main): Define `rint' as long long on IA64. Added new test when
3140
+ FFI_CLOSURES is defined.
3141
+ * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3142
+ (ffi_abi): Recognize IA64.
3143
+ (ffi_raw): Added `flt' field.
3144
+ Added "Java raw API" code.
3145
+ * configure.in: Recognize ia64.
3146
+ * Makefile.am (TARGET_SRC_IA64): New macro.
3147
+ (libffi_la_common_SOURCES): Added java_raw_api.c.
3148
+ (libffi_la_SOURCES): Define in IA64 case.
3149
+
3150
+ 2000-01-04 Tom Tromey <tromey@cygnus.com>
3151
+
3152
+ * Makefile.in: Rebuilt with newer automake.
3153
+
3154
+ 1999-12-31 Tom Tromey <tromey@cygnus.com>
3155
+
3156
+ * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3157
+
3158
+ 1999-09-01 Tom Tromey <tromey@cygnus.com>
3159
+
3160
+ * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3161
+ undefs.
3162
+ * fficonfig.h.in: Rebuilt.
3163
+ * configure: Rebuilt.
3164
+ * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3165
+ Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3166
+ * acconfig.h: Don't #undef PACKAGE or VERSION.
3167
+
3168
+ 1999-08-09 Anthony Green <green@cygnus.com>
3169
+
3170
+ * include/ffi.h.in: Try to work around messy header problem
3171
+ with PACKAGE and VERSION.
3172
+
3173
+ * configure: Rebuilt.
3174
+ * configure.in: Change version to 2.00-beta.
3175
+
3176
+ * fficonfig.h.in: Rebuilt.
3177
+ * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3178
+
3179
+ * src/x86/ffi.c (ffi_raw_call): Rename.
3180
+
3181
+ 1999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
3182
+
3183
+ * src/x86/ffi.c (ffi_closure_SYSV): New function.
3184
+ (ffi_prep_incoming_args_SYSV): Ditto.
3185
+ (ffi_prep_closure): Ditto.
3186
+ (ffi_closure_raw_SYSV): Ditto.
3187
+ (ffi_prep_raw_closure): More ditto.
3188
+ (ffi_call_raw): Final ditto.
3189
+
3190
+ * include/ffi.h.in: Add definitions for closure and raw API.
3191
+
3192
+ * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
3193
+ FFI_TYPE_UINT64.
3194
+
3195
+ * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3196
+
3197
+ * src/raw_api.c: New file.
3198
+
3199
+ * include/ffi.h.in (ffi_raw): New type.
3200
+ (UINT_ARG, SINT_ARG): New defines.
3201
+ (ffi_closure, ffi_raw_closure): New types.
3202
+ (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
3203
+
3204
+ * configure.in: Add check for endianness and sizeof void*.
3205
+
3206
+ * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3207
+ instead of directly.
3208
+
3209
+ * configure: Rebuilt.
3210
+
3211
+ Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
3212
+
3213
+ * configure.in: Add x86 and powerpc BeOS configurations.
3214
+ From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3215
+
3216
+ 1999-05-09 Anthony Green <green@cygnus.com>
3217
+
3218
+ * configure.in: Add warning about this being beta code.
3219
+ Remove src/Makefile.am from the picture.
3220
+ * configure: Rebuilt.
3221
+
3222
+ * Makefile.am: Move logic from src/Makefile.am. Add changes
3223
+ to support libffi as a target library.
3224
+ * Makefile.in: Rebuilt.
3225
+
3226
+ * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3227
+ Upgraded to new autoconf, automake, libtool.
3228
+
3229
+ * README: Tweaks.
3230
+
3231
+ * LICENSE: Update copyright date.
3232
+
3233
+ * src/Makefile.am, src/Makefile.in: Removed.
3234
+
3235
+ 1998-11-29 Anthony Green <green@cygnus.com>
3236
+
3237
+ * include/ChangeLog: Removed.
3238
+ * src/ChangeLog: Removed.
3239
+ * src/mips/ChangeLog: Removed.
3240
+ * src/sparc/ChangeLog: Remboved.
3241
+ * src/x86/ChangeLog: Removed.
3242
+
3243
+ * ChangeLog.v1: Created.