blob: 3d3046cc6b782ccb51a17578379d01ccaf3da840 [file] [log] [blame]
Anthony Greenf3a4f3f2013-02-07 09:57:20 -050012013-02-07 Anthony Green <green@moxielogic.com>
2
3 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
4 comments with /* */ for xlc compiler.
5 * testsuite/libffi.call/stret_large.c (main): Ditto.
6 * testsuite/libffi.call/stret_large2.c (main): Ditto.
7 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
8 * testsuite/libffi.call/huge_struct.c (main): Ditto.
9 * testsuite/libffi.call/float_va.c (main): Ditto.
10 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
11 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
12 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
13 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
14
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500152013-02-06 Anthony Green <green@moxielogic.com>
16
Anthony Green522f8fe2013-02-06 20:31:31 -050017 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
18
192013-02-06 Anthony Green <green@moxielogic.com>
20
Anthony Greenf7cd61e2013-02-06 17:38:04 -050021 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
22 * Makefile.in: Rebuild.
23
Anthony Green6a790122013-02-06 17:37:15 -0500242013-02-02 Mark H Weaver <mhw@netris.org>
25
26 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
27 via general purpose registers.
28
Anthony Greenaeb87192013-01-21 07:37:30 -0500292013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
30
31 * README: Add MicroBlaze details.
32 * Makefile.am: Add MicroBlaze support.
33 * configure.ac: Likewise.
34 * src/microblaze/ffi.c: New.
35 * src/microblaze/ffitarget.h: Likewise.
36 * src/microblaze/sysv.S: Likewise.
37
382013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
39 * testsuite/libffi.call/return_uc.c: Fixed issue.
40
Anthony Green20cae322013-01-21 07:07:38 -0500412013-01-21 Chris Zankel <chris@zankel.net>
42
43 * README: Add Xtensa support.
44 * Makefile.am: Likewise.
45 * configure.ac: Likewise.
46 * Makefile.in Regenerate.
47 * configure: Likewise.
48 * src/prep_cif.c: Handle Xtensa.
49 * src/xtensa: New directory.
50 * src/xtensa/ffi.c: New file.
51 * src/xtensa/ffitarget.h: Ditto.
52 * src/xtensa/sysv.S: Ditto.
53
Anthony Greenbff052d2013-01-11 10:24:32 -0500542013-01-11 Anthony Green <green@moxielogic.com>
55
Anthony Green05fbe1f2013-01-11 16:54:40 -050056 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
57 comments with /* */ for xlc compiler.
58 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -050059 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
60 deprecated inline function.
61 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -050062 * README: Add update for AIX support.
63
642013-01-11 Anthony Green <green@moxielogic.com>
65
Anthony Greenbff052d2013-01-11 10:24:32 -050066 * configure.ac: Robustify pc relative reloc check.
67 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
68 changing option for 32-bit x86.
69 * aclocal.m4, configure: Rebuilt.
70 * README: Update supported target list.
71
Anthony Green2d9b3932013-01-09 21:14:54 -0500722013-01-10 Anthony Green <green@moxielogic.com>
73
Anthony Greencd41aea2013-01-10 17:25:45 -050074 * README (tested): Add Compiler column to table.
75
762013-01-10 Anthony Green <green@moxielogic.com>
77
Anthony Green8bf987d2013-01-10 17:24:51 -050078 * src/x86/ffi64.c (struct register_args): Make sse array and array
79 of unions for sunpro compiler compatibility.
80
812013-01-10 Anthony Green <green@moxielogic.com>
82
Anthony Green13e2d7b2013-01-10 10:52:02 -050083 * configure.ac: Test target platform size_t size. Handle both 32
84 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
85 CFLAG option to change default settings).
86 * configure, aclocal.m4: Rebuilt.
87
882013-01-10 Anthony Green <green@moxielogic.com>
89
Anthony Green51415432013-01-10 07:35:53 -050090 * testsuite/libffi.special/special.exp: Only run exception
91 handling tests when using GNU compiler.
92
Anthony Green56ba8d82013-01-10 07:25:10 -050093 * m4/ax_compiler_vendor.m4: New file.
94 * configure.ac: Test for compiler vendor and don't use
95 AX_CFLAGS_WARN_ALL with the sun compiler.
96 * aclocal.m4, configure: Rebuilt.
97
982013-01-10 Anthony Green <green@moxielogic.com>
99
Anthony Green6a028ca2013-01-10 01:19:43 -0500100 * include/ffi_common.h: Don't use GCCisms to define types when
101 building with the SUNPRO compiler.
102
1032013-01-10 Anthony Green <green@moxielogic.com>
104
Anthony Green2d9b3932013-01-09 21:14:54 -0500105 * configure.ac: Put local.exp in the right place.
106 * configure: Rebuilt.
107
108 * src/x86/ffi.c: Update comment about regparm function attributes.
109 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
110 that all function arguments be passed on the stack (no regparm
111 support).
112
Anthony Greenf7879bc2013-01-08 07:30:28 -05001132013-01-08 Anthony Green <green@moxielogic.com>
114
Anthony Green83089842013-01-08 15:14:21 -0500115 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
116 when we are using the vendor compiler.
117 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
118 ../local.exp.
119 * configure, testsuite/Makefile.in: Rebuilt.
120
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500121 * testsuite/libffi.call/call.exp: Run tests with different
122 options, depending on whether or not we are using gcc or the
123 vendor compiler.
124 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
125 whether or not we are building/testing with gcc.
126
1272013-01-08 Anthony Green <green@moxielogic.com>
128
Anthony Green74c776e2013-01-08 12:25:54 -0500129 * configure.ac: Switch x86 solaris target to X86 by default.
130 * configure: Rebuilt.
131
1322013-01-08 Anthony Green <green@moxielogic.com>
133
Anthony Green8962c8c2013-01-08 12:22:24 -0500134 * configure.ac: Fix test for read-only eh_frame.
135 * configure: Rebuilt.
136
1372013-01-08 Anthony Green <green@moxielogic.com>
138
Anthony Green35ddb692013-01-08 07:53:37 -0500139 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
140 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500141 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
142 compiler.
143
Anthony Green8f4772f2013-01-07 06:14:53 -05001442013-01-07 Thorsten Glaser <tg@mirbsd.org>
145
Anthony Green67cea902013-01-07 06:30:24 -0500146 * testsuite/libffi.call/cls_uchar_va.c,
147 testsuite/libffi.call/cls_ushort_va.c,
148 testsuite/libffi.call/va_1.c: Testsuite fixes.
149
1502013-01-07 Thorsten Glaser <tg@mirbsd.org>
151
Anthony Green8f4772f2013-01-07 06:14:53 -0500152 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
153 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
154 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
155
Anthony Greenea7f8442013-01-04 09:09:32 -05001562013-01-04 Anthony Green <green@moxielogic.com>
157
158 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
159 and -Wall. This is set in the configure script after testing for
160 GCC.
161 * Makefile.in: Rebuilt.
162
Anthony Greenf06c0f12013-01-02 09:39:17 -05001632013-01-02 rofl0r <https://github.com/rofl0r>
164
165 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
166 when long double == double.
167
1682013-01-02 Reini Urban <rurban@x-ray.at>
169
170 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
171 (required for shared libs on cygwin/mingw).
172 * Makefile.in: Rebuilt.
173
Anthony Greendfadfb12012-10-31 06:46:41 -04001742012-10-31 Alan Modra <amodra@gmail.com>
175
176 * src/powerpc/linux64_closure.S: Add new ABI support.
177 * src/powerpc/linux64.S: Likewise.
178
Anthony Greene944b8c2012-10-30 14:06:09 -04001792012-10-30 Magnus Granberg <zorry@gentoo.org>
180 Pavel Labushev <pavel.labushev@runbox.ru>
181
182 * configure.ac: New options pax_emutramp
183 * configure, fficonfig.h.in: Regenerated
184 * src/closures.c: New function emutramp_enabled_check() and
185 checks.
186
Anthony Greenf3429962012-10-30 07:42:27 -04001872012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
188
189 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
190 lion) and future version.
191 * configure: Rebuild.
192
Anthony Green58e8b662012-10-30 07:07:19 -04001932012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
194 Marcus Shawcroft <marcus.shawcroft at arm.com>
195
196 * README: Add details of aarch64 port.
197 * src/aarch64/ffi.c: New.
198 * src/aarch64/ffitarget.h: Likewise.
199 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500200 * Makefile.am: Support aarch64.
201 * configure.ac: Support aarch64.
202 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400203
2042012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
205 Marcus Shawcroft <marcus.shawcroft at arm.com>
206
207 * testsuite/lib/libffi.exp: Add support for aarch64.
208 * testsuite/libffi.call/cls_struct_va1.c: New.
209 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
210 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500211 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400212 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
213 * testsuite/libffi.call/nested_struct11.c: Likewise.
214 * testsuite/libffi.call/uninitialized.c: Likewise.
215 * testsuite/libffi.call/va_1.c: Likewise.
216 * testsuite/libffi.call/va_struct1.c: Likewise.
217 * testsuite/libffi.call/va_struct2.c: Likewise.
218 * testsuite/libffi.call/va_struct3.c: Likewise.
219
Anthony Green9c00a3f2012-10-12 16:46:06 -04002202012-10-12 Walter Lee <walt@tilera.com>
221
222 * Makefile.am: Add TILE-Gx/TILEPro support.
223 * configure.ac: Likewise.
224 * Makefile.in: Regenerate.
225 * configure: Likewise.
226 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
227 * src/tile: New directory.
228 * src/tile/ffi.c: New file.
229 * src/tile/ffitarget.h: Ditto.
230 * src/tile/tile.S: Ditto.
231
2322012-10-12 Matthias Klose <doko@ubuntu.com>
233
234 * generate-osx-source-and-headers.py: Normalize whitespace.
235
Anthony Green048d2f42012-10-11 10:55:25 -04002362012-09-14 David Edelsohn <dje.gcc@gmail.com>
237
238 * configure: Regenerated.
239
2402012-08-26 Andrew Pinski <apinski@cavium.com>
241
242 PR libffi/53014
243 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
244 soft-float.
245
2462012-08-08 Uros Bizjak <ubizjak@gmail.com>
247
248 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
249 just return FFI_BAD_ABI when things are wrong.
250
2512012-07-18 H.J. Lu <hongjiu.lu@intel.com>
252
253 PR libffi/53982
254 PR libffi/53973
255 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
256 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
257
2582012-05-16 H.J. Lu <hongjiu.lu@intel.com>
259
260 * configure: Regenerated.
261
Nicolas Lelongd330f192012-05-05 09:37:02 -04002622012-05-05 Nicolas Lelong
263
264 * libffi.xcodeproj/project.pbxproj: Fixes.
265 * README: Update for iOS builds.
266
Anthony Green213ed152012-04-27 01:34:15 -04002672012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
268
269 * configure.ac: Add Blackfin/sysv support
270 * Makefile.am: Add Blackfin/sysv support
271 * src/bfin/ffi.c: Add Blackfin/sysv support
272 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400273
Anthony Green7e0a4122012-04-11 22:47:44 -04002742012-04-11 Anthony Green <green@moxielogic.com>
275
276 * Makefile.am (EXTRA_DIST): Add new script.
277 * Makefile.in: Rebuilt.
278
Zachary Waldowski39e6a582012-04-11 22:39:46 -04002792012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
280
281 * generate-ios-source-and-headers.py,
282 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
283 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
284 generation into an Xcode "run script" phase. Include both as
285 Xcode build scripts. Don't always regenerate config files.
286
Anthony Green853cc722012-04-10 06:33:33 -04002872012-04-10 Anthony Green <green@moxielogic.com>
288
289 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
290
Anthony Green3f502302012-04-06 20:34:51 -04002912012-04-06 Anthony Green <green@moxielogic.com>
292
293 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
294 * Makefile.in: Rebuilt.
295
Mike Lewisebb8e892012-04-06 20:02:08 -04002962012-04-06 Mike Lewis <mikelikespie@gmail.com>
297
298 * generate-ios-source-and-headers.py: New file.
299 * libffi.xcodeproj/project.pbxproj: New file.
300 * README: Update instructions on building iOS binary.
301 * build-ios.sh: Delete.
302
Anthony Greena044a562012-04-06 10:39:10 -04003032012-04-06 Anthony Green <green@moxielogic.com>
304
305 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
306 compilers, then use it.
307
Anthony Green048d2f42012-10-11 10:55:25 -04003082012-04-06 H.J. Lu <hongjiu.lu@intel.com>
309
310 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
311
Anthony Green59bb61a2012-04-06 08:26:14 -04003122012-04-06 Anthony Green <green@moxielogic.com>
313
314 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
315 * testsuite/Makefile.in: Rebuilt.
316
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04003172012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
318
319 * include/ffi.h.in: Add missing trampoline table fields.
320 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
321 in CNAME.
322 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
323
Anthony Green089dbce2013-01-02 08:37:35 -05003242012-04-02 Peter Bergner <bergner@vnet.ibm.com>
325
326 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
327 Silence casting pointer to integer of different size warning.
328 Delete goto to previously deleted label.
329 (ffi_call): Silence possibly undefined warning.
330 (ffi_closure_helper_SYSV): Declare variable type.
331
3322012-04-02 Peter Rosin <peda@lysator.liu.se>
333
334 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
335 value in the Intel version as is already done for the AT&T version.
336 (ffi_closure_SYSV): Likewise.
337 (ffi_closure_raw_SYSV): Likewise.
338 (ffi_closure_STDCALL): Likewise.
339
Peter Rosin0a1ab122012-03-30 08:14:08 -04003402012-03-29 Peter Rosin <peda@lysator.liu.se>
341
342 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
343 generation, fix the ENDP label and remove the surplus third arg
344 from the 'lea' insn.
345
3462012-03-29 Peter Rosin <peda@lysator.liu.se>
347
348 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
349 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
350 it. Also instruct the assembler to add a frame to the function.
351
3522012-03-23 Peter Rosin <peda@lysator.liu.se>
353
354 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
355 * Makefile.in: Rebuilt.
356 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
357 to all data exports, when compiling libffi clients using MSVC.
358
3592012-03-29 Peter Rosin <peda@lysator.liu.se>
360
361 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
362 make it the default for MSVC.
363 (FFI_TYPE_MS_STRUCT): New structure return convention.
364 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
365 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
366 instead of an ordinary FFI_TYPE_STRUCT.
367 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
368 (ffi_call): Likewise.
369 (ffi_prep_incoming_args_SYSV): Likewise.
370 (ffi_raw_call): Likewise.
371 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
372 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
373 return a pointer to the result structure in eax and don't pop
374 that pointer from the stack, the caller takes care of it.
375 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
376 (ffi_closure_raw_SYSV): Likewise.
377
3782012-03-22 Peter Rosin <peda@lysator.liu.se>
379
380 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
381 assembly version with Intel syntax.
382 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
383
3842012-03-23 Peter Rosin <peda@lysator.liu.se>
385
386 * testsuite/libffi.call/ffitest.h: Provide abstration of
387 __attribute__((fastcall)) in the form of a __FASTCALL__
388 define. Define it to __fastcall for MSVC.
389 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
390 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
391 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
392 * testsuite/libffi.call/strlen2_win32.c: Likewise.
393 * testsuite/libffi.call/struct1_win32.c: Likewise.
394 * testsuite/libffi.call/struct2_win32.c: Likewise.
395
3962012-03-22 Peter Rosin <peda@lysator.liu.se>
397
398 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
399 frame on function entry, MASM adds one automatically.
400
4012012-03-22 Peter Rosin <peda@lysator.liu.se>
402
403 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
404 bits in the MSVC headers.
405
4062012-03-22 Peter Rosin <peda@lysator.liu.se>
407
408 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
409 with no declarations after statements.
410 * testsuite/libffi.call/cls_16byte.c: Likewise.
411 * testsuite/libffi.call/cls_18byte.c: Likewise.
412 * testsuite/libffi.call/cls_19byte.c: Likewise.
413 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
414 * testsuite/libffi.call/cls_20byte.c: Likewise.
415 * testsuite/libffi.call/cls_20byte1.c: Likewise.
416 * testsuite/libffi.call/cls_24byte.c: Likewise.
417 * testsuite/libffi.call/cls_2byte.c: Likewise.
418 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
419 * testsuite/libffi.call/cls_3byte1.c: Likewise.
420 * testsuite/libffi.call/cls_3byte2.c: Likewise.
421 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
422 * testsuite/libffi.call/cls_4byte.c: Likewise.
423 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
424 * testsuite/libffi.call/cls_5byte.c: Likewise.
425 * testsuite/libffi.call/cls_64byte.c: Likewise.
426 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
427 * testsuite/libffi.call/cls_6byte.c: Likewise.
428 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
429 * testsuite/libffi.call/cls_7byte.c: Likewise.
430 * testsuite/libffi.call/cls_8byte.c: Likewise.
431 * testsuite/libffi.call/cls_9byte1.c: Likewise.
432 * testsuite/libffi.call/cls_9byte2.c: Likewise.
433 * testsuite/libffi.call/cls_align_double.c: Likewise.
434 * testsuite/libffi.call/cls_align_float.c: Likewise.
435 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
436 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
437 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
438 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
439 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
440 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
441 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
442 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
443 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
444 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
445 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
446 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
447 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
448 * testsuite/libffi.call/huge_struct.c: Likewise.
449 * testsuite/libffi.call/nested_struct.c: Likewise.
450 * testsuite/libffi.call/nested_struct1.c: Likewise.
451 * testsuite/libffi.call/nested_struct10.c: Likewise.
452 * testsuite/libffi.call/nested_struct2.c: Likewise.
453 * testsuite/libffi.call/nested_struct3.c: Likewise.
454 * testsuite/libffi.call/nested_struct4.c: Likewise.
455 * testsuite/libffi.call/nested_struct5.c: Likewise.
456 * testsuite/libffi.call/nested_struct6.c: Likewise.
457 * testsuite/libffi.call/nested_struct7.c: Likewise.
458 * testsuite/libffi.call/nested_struct8.c: Likewise.
459 * testsuite/libffi.call/nested_struct9.c: Likewise.
460 * testsuite/libffi.call/stret_large.c: Likewise.
461 * testsuite/libffi.call/stret_large2.c: Likewise.
462 * testsuite/libffi.call/stret_medium.c: Likewise.
463 * testsuite/libffi.call/stret_medium2.c: Likewise.
464 * testsuite/libffi.call/struct1.c: Likewise.
465 * testsuite/libffi.call/struct1_win32.c: Likewise.
466 * testsuite/libffi.call/struct2.c: Likewise.
467 * testsuite/libffi.call/struct2_win32.c: Likewise.
468 * testsuite/libffi.call/struct3.c: Likewise.
469 * testsuite/libffi.call/struct4.c: Likewise.
470 * testsuite/libffi.call/struct5.c: Likewise.
471 * testsuite/libffi.call/struct6.c: Likewise.
472 * testsuite/libffi.call/struct7.c: Likewise.
473 * testsuite/libffi.call/struct8.c: Likewise.
474 * testsuite/libffi.call/struct9.c: Likewise.
475 * testsuite/libffi.call/testclosure.c: Likewise.
476
Anthony Greene72ed5e2012-03-21 09:52:28 -04004772012-03-21 Peter Rosin <peda@lysator.liu.se>
478
479 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
480 printing doubles (%lf is for long doubles).
481 (main): Likewise.
482
Anthony Greenbd78c9c2012-03-21 08:09:30 -04004832012-03-21 Peter Rosin <peda@lysator.liu.se>
484
485 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
486 (set_ld_library_path_env_vars): Add the library search dir to PATH
487 (and save PATH for later).
488 (restore_ld_library_path_env_vars): Restore PATH.
489
Anthony Greenccee09a2013-01-02 08:41:55 -05004902012-03-21 Peter Rosin <peda@lysator.liu.se>
491
492 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
493 (set_ld_library_path_env_vars): Add the library search dir to PATH
494 (and save PATH for later).
495 (restore_ld_library_path_env_vars): Restore PATH.
496
Anthony Greenbd78c9c2012-03-21 08:09:30 -04004972012-03-20 Peter Rosin <peda@lysator.liu.se>
498
499 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
500 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
501 visible outside the PROC, so that ffi_closure_THISCALL can see it.
502
Anthony Green048d2f42012-10-11 10:55:25 -04005032012-03-20 Peter Rosin <peda@lysator.liu.se>
504
505 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
506 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
507 visible outside the PROC, so that ffi_closure_THISCALL can see it.
508
Anthony Greenbd78c9c2012-03-21 08:09:30 -04005092012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
510
511 * src/m68k/ffi.c: Add MINT support.
512 * src/m68k/sysv.S: Ditto.
513
Anthony Green048d2f42012-10-11 10:55:25 -04005142012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
515
516 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
517 ffi_call_VFP().
518 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
519 ffi_closure_VFP.
520 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
521
Anthony Green089dbce2013-01-02 08:37:35 -05005222012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400523
Anthony Green089dbce2013-01-02 08:37:35 -0500524 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
525 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400526
Anthony Green84d32532012-03-19 23:07:35 -04005272012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
528
529 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
530 just return FFI_BAD_ABI when things are wrong.
531 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
532
5332012-03-09 David Edelsohn <dje.gcc@gmail.com>
534
535 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
536 change to return value of ffi_closure_helper_DARWIN and load type
537 from return type.
538
Anthony Green964c5b92012-03-03 14:46:20 -05005392012-03-03 H.J. Lu <hongjiu.lu@intel.com>
540
541 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
542 long.
543 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
544 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
545 first.
546
547 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
548 (ffi_arg): Set to unsigned long long for x32.
549 (ffi_sarg): Set to long long for x32.
550
5512012-03-03 H.J. Lu <hongjiu.lu@intel.com>
552
553 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
554
Anthony Green6c194232012-03-03 14:17:54 -05005552012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
556
557 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
558 windows-like hosts.
559 * configure: Rebuilt.
560
Anthony Green7c5e60b2012-03-29 08:48:22 -04005612012-02-27 Mikael Pettersson <mikpe@it.uu.se>
562
563 PR libffi/52223
564 * Makefile.am (FLAGS_TO_PASS): Define.
565 * Makefile.in: Regenerate.
566
Anthony Green8360bf12012-02-23 07:01:13 -05005672012-02-23 Anthony Green <green@moxielogic.com>
568
569 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
570 directly.
571
Anthony Green7c5e60b2012-03-29 08:48:22 -04005722012-02-23 Kai Tietz <ktietz@redhat.com>
573
574 PR libffi/52221
575 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
576 prototype.
577 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
578 thiscall-convention.
579 (ffi_raw_call): Use ffi_prep_args_raw.
580 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
581 implementation for stub.
582
Anthony Greendee20f82012-02-10 13:06:46 -05005832012-02-10 Kai Tietz <ktietz@redhat.com>
584
585 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
586 windows target.
587 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500588
Anthony Greendee20f82012-02-10 13:06:46 -05005892012-02-08 Kai Tietz <ktietz@redhat.com>
590
591 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
592 also FFI_THISCALL.
593 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
594 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
595 (ffi_prep_closure_loc): Add FFI_THISCALL support.
596 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
597 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
598 for thiscall-calling convention.
599 * testsuite/libffi.call/closure_thiscall.c: New test.
600
Anthony Green1ff9c602012-02-01 16:34:30 -06006012012-01-28 Kai Tietz <ktietz@redhat.com>
602
603 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
604 argument to prototype for specify calling-convention.
605 (ffi_call): Add support for stdcall/thiscall convention.
606 (ffi_prep_args): Likewise.
607 (ffi_raw_call): Likewise.
608 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
609 FFI_FASTCALL.
610 * src/x86/win32.S (_ffi_call_win32): Add support for
611 fastcall/thiscall calling-convention calls.
612 * testsuite/libffi.call/fastthis1_win32.c: New test.
613 * testsuite/libffi.call/fastthis2_win32.c: New test.
614 * testsuite/libffi.call/fastthis3_win32.c: New test.
615 * testsuite/libffi.call/strlen2_win32.c: New test.
616 * testsuite/libffi.call/many2_win32.c: New test.
617 * testsuite/libffi.call/struct1_win32.c: New test.
618 * testsuite/libffi.call/struct2_win32.c: New test.
619
Anthony Green211060e2012-01-23 14:24:01 -05006202012-01-23 Uros Bizjak <ubizjak@gmail.com>
621
622 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
623
Anthony Green1ff9c602012-02-01 16:34:30 -06006242012-01-23 Anthony Green <green@moxielogic.com>
625 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500626
627 * configure.ac: Add Amiga support.
628 * configure: Rebuilt.
629
6302012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500631
632 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
633
Anthony Green1ff9c602012-02-01 16:34:30 -06006342012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500635
636 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
637 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
638
Anthony Greenc365ee72012-01-23 11:13:18 -05006392012-01-19 Jakub Jelinek <jakub@redhat.com>
640
641 PR rtl-optimization/48496
642 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
643
6442012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
645
646 * configure.ac (i?86-*-*): Set TARGET to X86_64.
647 * configure: Regenerate.
648
6492011-12-07 Andrew Pinski <apinski@cavium.com>
650
651 PR libffi/50051
652 * src/mips/n32.S: Add ".set mips4".
653
6542011-11-21 Andreas Tobler <andreast@fgznet.ch>
655
656 * configure: Regenerate.
657
Anthony Greenff9454d2011-11-12 17:18:51 -05006582011-11-12 David Gilbert <david.gilbert@linaro.org>
659
660 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
661 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
662 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
663 src/cris/ffi.c, src/prep_cif.c,
664 testsuite/libffi.call/cls_double_va.c,
665 testsuite/libffi.call/cls_longdouble_va.c,
666 testsuite/libffi.call/float_va.c: Many changes to support variadic
667 function calls.
668
Anthony Green52891f82011-11-12 16:35:55 -05006692011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
670
671 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
672 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
673 softfloat powerpc variants.
674
Anthony Green6a6e7f82011-11-12 16:20:42 -05006752011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
676
677 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
678 * configure: Rebuilt.
679
Anthony Greend52fbed2011-11-12 16:13:41 -05006802011-11-12 Timothy Wall <twall@users.sf.net>
681
682 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
683 alignment of 4 for wince on ARM.
684
Anthony Greenaf18df22011-11-12 15:52:08 -05006852011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
686 Anthony Green <green@moxielogic.com>
687
688 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
689 instructions (not available on some cores, like the PPC440).
690
Anthony Greenc411f142011-11-12 07:32:36 -05006912011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400692
Anthony Greenc411f142011-11-12 07:32:36 -0500693 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500694 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500695 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
696 X 10.7.
697 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400698
Anthony Green6a6e7f82011-11-12 16:20:42 -05006992011-11-12 Anthony Green <green@moxielogic.com>
700
701 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
702 files with debug info.
703 * Makefile.in: Rebuilt.
704
7052011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
706
707 * README: Update list of supported OpenBSD systems.
708
7092011-11-12 Anthony Green <green@moxielogic.com>
710
711 * libtool-version: Update.
712 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
713 FFI_DEBUG.
714 (libffi_la_SOURCES): Remove src/debug.c
715 (EXTRA_DIST): Add src/debug.c
716 * Makefile.in: Rebuilt.
717 * README: Update for 3.0.11.
718
Anthony Green3d561062011-11-12 07:20:24 -05007192011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -0400720
Anthony Green3d561062011-11-12 07:20:24 -0500721 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
722 * configure, aclocal.m4: Rebuild.
723
7242011-09-04 Iain Sandoe <iains@gcc.gnu.org>
725
726 PR libffi/49594
727 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
728 helper reference track the architecture pointer size.
729
7302011-08-25 Andrew Haley <aph@redhat.com>
731
732 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
733 instructions.
734 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -0400735
Anthony Greend992ac52011-07-29 17:32:53 -04007362011-07-11 Andrew Haley <aph@redhat.com>
737
738 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
739
7402011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
741
742 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
743 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
744
7452011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
746
747 PR libffi/46660
748 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
749 mips-sgi-irix6*.
750 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
751
7522011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
753
754 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
755 PRId8 instead of %hhu, %hhd.
756 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
757 PRIu8): Define.
758 [__sgi__] (PRId8, PRIu8): Define.
759
7602011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
761
762 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
763 Define.
764 Use them to handle ELF vs. ECOFF differences.
765 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
766
Anthony Green2d3fb362011-03-30 16:54:42 -04007672011-03-30 Timothy Wall <twall@users.sf.net>
768
769 * src/powerpc/darwin.S: Fix unknown FDE encoding.
770 * src/powerpc/darwin_closure.S: ditto.
771
Anthony Green25416792011-02-25 15:09:13 -05007722011-02-25 Anthony Green <green@moxielogic.com>
773
Anthony Green74ee6ea2011-02-25 15:52:14 -0500774 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
775 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -0500776
Anthony Green8cf88782011-02-15 15:19:49 -05007772011-02-15 Anthony Green <green@moxielogic.com>
778
779 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
780 * configure: Rebuilt.
781
Anthony Greend992ac52011-07-29 17:32:53 -04007822011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
783
784 * configure: Regenerate.
785
Anthony Green1fbf9dc2011-02-13 08:06:39 -05007862011-02-13 Anthony Green <green@moxielogic.com>
787
788 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
789 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
790 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
791
792 * src/prep_cif.c (initialize_aggregate): Convert assertion into
793 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
794
795 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
796 just return FFI_BAD_ABI when things are wrong.
797 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
798 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
799 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
800 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
801 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
802
Anthony Green1833aa02011-02-11 07:11:04 -05008032011-02-11 Anthony Green <green@moxielogic.com>
804
805 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
806 just return FFI_BAD_ABI when things are wrong.
807
Anthony Green7c5e60b2012-03-29 08:48:22 -04008082012-02-11 Eric Botcazou <ebotcazou@adacore.com>
809
810 * src/sparc/v9.S (STACKFRAME): Bump to 176.
811
Anthony Green42695e72011-02-09 15:12:35 -05008122011-02-09 Stuart Shelton <srcshelton@gmail.com>
813
814 http://bugs.gentoo.org/show_bug.cgi?id=286911
815 * src/mips/ffitarget.h: Clean up error messages.
816 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
817 ffi_raw*.
818 * include/ffi.h.in: Add pragma for SGI compiler.
819
Anthony Greena6e56b92011-02-09 15:00:42 -05008202011-02-09 Anthony Green <green@moxielogic.com>
821
822 * configure.ac: Add powerpc64-*-darwin* support.
823
Anthony Green0cad4382011-02-09 06:11:46 -05008242011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500825
Anthony Green747d6c32011-02-09 14:56:23 -0500826 * README: Mention Interix.
827
8282011-02-09 Jonathan Callen <abcd@gentoo.org>
829
830 * configure.ac: Add Interix to win32/cygwin/mingw case.
831 * configure: Ditto.
832 * src/closures.c: Treat Interix like Cygwin, instead of as a
833 generic win32.
834
8352011-02-09 Anthony Green <green@moxielogic.com>
836
Anthony Green69dbe842011-02-09 07:38:43 -0500837 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
838 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
839 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
840 (ffi_prep_closure_loc): Check for bad ABI.
841 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
842 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500843
Anthony Green90af15e2011-02-12 12:29:36 -05008442011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500845
846 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
847 src/arm/trampoline.S.
848 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
849 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
850 * src/arm/ffi.c (ffi_trampoline_table)
851 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
852 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
853 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
854 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
855 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
856 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
857 separately.
858 * src/arm/sysv.S: Handle Apple iOS host.
859 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -0500860 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -0500861 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -0500862 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -0500863
Anthony Greendc411e82011-02-08 10:49:29 -05008642011-02-08 Oren Held <orenhe@il.ibm.com>
865
866 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
867 redefinition of mallinfo on HP-UX.
868
Anthony Green404585d2011-02-08 10:44:36 -05008692011-02-08 Ginn Chen <ginn.chen@oracle.com>
870
871 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -0400872 aggregate return ABI. Flush cache.
873 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -0500874
Anthony Green6972a4f2011-02-11 07:32:51 -05008752011-02-11 Anthony Green <green@moxielogic.com>
876
877 From Tom Honermann <tom.honermann@oracle.com>:
878 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
879 AIX. Declare .ffi_prep_args. Insert nops after branch
880 instructions so that the AIX linker can insert TOC reload
881 instructions.
882 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
883
Anthony Greend992ac52011-07-29 17:32:53 -04008842011-02-08 Ed <ed@kdtc.net>
885
886 * src/powerpc/asm.h: Fix grammar nit in comment.
887
Anthony Green89284fe2011-02-08 10:19:19 -05008882011-02-08 Uli Link <ul.mcamafia@linkitup.de>
889
890 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
891
Anthony Greend992ac52011-07-29 17:32:53 -04008922011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
893
894 PR libffi/46661
895 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
896 uintptr_t first.
897 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
898
Anthony Greened2c5182011-02-08 10:10:07 -05008992011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
900
901 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -0500902 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -0500903
Anthony Green3b836242011-02-08 14:28:59 -05009042011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
905
906 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
907 Handle case when CPU variant does not have long double support.
908 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
909 and cores with soft floating point.
910
9112011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
912
913 * configure.ac: Add mips*-*-rtems* support.
914 * configure: Regenerate.
915 * src/mips/ffitarget.h: Ensure needed constants are available
916 for targets which do not have sgidefs.h.
917
Anthony Green0e584392011-02-08 07:52:40 -05009182011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
919
920 PR target/40125
921 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
922 * configure: Regenerate.
923
9242010-12-18 Iain Sandoe <iains@gcc.gnu.org>
925
926 PR libffi/29152
927 PR libffi/42378
928 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
929 update comments.
930 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
931 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
932 * src/powerpc/darwin.S: Provide Darwin64 implementation,
933 update comments.
934 * src/powerpc/ffi_darwin.c: Likewise.
935
9362010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
937
938 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
939 backslashes.
940 (libffi_cv_as_string_pseudo_op): Likewise.
941 * configure: Regenerate.
942
9432010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
944
945 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
946 (ffi_closure_VFP): Same.
947 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
948 directive.
949
9502010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
951
952 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
953 (PRIuPTR): Define.
954
9552010-11-29 Richard Henderson <rth@redhat.com>
956 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
957
958 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
959 (.eh_frame): Use FDE_ENCODING.
960 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
961
Anthony Green5b9cd522010-11-22 15:19:57 -05009622010-11-22 Jacek Caban <jacek@codeweavers.com>
963
964 * configure.ac: Check for symbol underscores on mingw-w64.
965 * configure: Rebuilt.
966 * src/x86/win64.S: Correctly access extern symbols in respect to
967 underscores.
968
Anthony Green2db72612010-11-21 10:50:56 -05009692010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
970
971 * testsuite/lib/libffi-dg.exp: Rename ...
972 * testsuite/lib/libffi.exp: ... to this.
973 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
974 * libffi/testsuite/libffi.special/special.exp: Likewise.
975
9762010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
977
978 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
979 code, new parameter, and return value. Update comments.
980 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
981 call to layout_vfp_args().
982 (ffi_call_SYSV): Update declaration.
983 (ffi_call_VFP): New declaration.
984 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
985 when ABI is FFI_VFP.
986 (ffi_closure_VFP): New declaration.
987 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
988 ffi_prep_incoming_args_SYSV().
989 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
990 case handling.
991 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
992 construction under VFP hard-float.
993 (rec_vfp_type_p): New function.
994 (vfp_type_p): Same.
995 (place_vfp_arg): Same.
996 (layout_vfp_args): Same.
997 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
998 based on __ARM_PCS_VFP.
999 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1000 fields.
1001 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1002 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1003 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1004 direct call. Move function pointer load upwards.
1005 (ffi_call_VFP): New function.
1006 (ffi_closure_VFP): Same.
1007
1008 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1009 (dg-skip-if): New function.
1010 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1011 and compiler options include -mfloat-abi=hard.
1012 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1013
10142010-10-01 Jakub Jelinek <jakub@redhat.com>
1015
1016 PR libffi/45677
1017 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1018 a multiple of 8.
1019 * testsuite/libffi.call/many2.c: New test.
1020
10212010-08-20 Mark Wielaard <mjw@redhat.com>
1022
1023 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1024 returns NULL.
1025
10262010-08-09 Andreas Tobler <andreast@fgznet.ch>
1027
1028 * configure.ac: Add target powerpc64-*-freebsd*.
1029 * configure: Regenerate.
1030 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1031 -mlong-double-128 only to linux targets.
1032 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1033 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1034 * testsuite/libffi.call/huge_struct.c: Likewise.
1035
Anthony Green00d0b592010-08-05 14:56:53 -040010362010-08-05 Dan Witte <dwitte@mozilla.com>
1037
1038 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1039 debug CRT when --enable-debug is given.
1040 * configure.ac: Define it.
1041 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1042
Anthony Greenc1d28ba2010-08-05 08:48:16 -040010432010-08-04 Dan Witte <dwitte@mozilla.com>
1044
1045 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1046 platforms.
1047 * src/x86/ffi.c: Remove redundant ifdef checks.
1048 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1049 for X86_ANY so return value space doesn't get added twice.
1050
Anthony Greenbda487e2010-08-05 09:02:41 -040010512010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1052
1053 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1054
Anthony Greend14178b2010-07-23 09:14:00 -040010552010-07-22 Dan Witte <dwitte@mozilla.com>
1056
1057 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1058 * src/prep_cif.c: Fix ABI assertion.
1059 * src/cris/ffi.c: Ditto.
1060
Anthony Greeneaf444e2010-07-10 08:59:09 -040010612010-07-10 Evan Phoenix <evan@fallingsnow.net>
1062
1063 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1064
Anthony Green5feacad2010-08-05 08:30:04 -040010652010-07-07 Dan Horák <dan@danny.cz>
1066
1067 * include/ffi.h.in: Protect #define with #ifndef.
1068 * src/powerpc/ffitarget.h: Ditto.
1069 * src/s390/ffitarget.h: Ditto.
1070 * src/sparc/ffitarget.h: Ditto.
1071
Anthony Green2db72612010-11-21 10:50:56 -050010722010-07-07 Neil Roberts <neil@linux.intel.com>
1073
1074 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1075 16-bytes.
1076
10772010-07-02 Jakub Jelinek <jakub@redhat.com>
1078
1079 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1080 * Makefile.in: Regenerated.
1081
10822010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1083
1084 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1085 output, too.
1086 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1087 (libffi_cv_as_string_pseudo_op): Check for .string.
1088 * configure: Regenerate.
1089 * fficonfig.h.in: Regenerate.
1090 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1091
Anthony Green10ea8482010-08-05 08:24:27 -040010922010-05-11 Dan Witte <dwitte@mozilla.com>
1093
1094 * doc/libffi.tex: Document previous change.
1095
10962010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1097
1098 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1099
Anthony Green63097412010-05-05 20:14:56 -040011002010-05-05 Michael Kohler <michaelkohler@live.com>
1101
1102 * src/dlmalloc.c (dlfree): Fix spelling.
1103 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1104 * configure.ac: Ditto.
1105 * configure: Rebuilt.
1106
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040011072010-04-13 Dan Witte <dwitte@mozilla.com>
1108
1109 * msvcc.sh: Build with -W3 instead of -Wall.
1110 * src/powerpc/ffi_darwin.c: Remove build warnings.
1111 * src/x86/ffi.c: Ditto.
1112 * src/x86/ffitarget.h: Ditto.
1113
Anthony Green2db72612010-11-21 10:50:56 -050011142010-04-12 Dan Witte <dwitte@mozilla.com>
1115 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001116
Anthony Green2db72612010-11-21 10:50:56 -05001117 * configure.ac: Add OS/2 support.
1118 * configure: Rebuilt.
1119 * src/closures.c: Ditto.
1120 * src/dlmalloc.c: Ditto.
1121 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001122
11232010-04-07 Jakub Jelinek <jakub@redhat.com>
1124
Anthony Green2db72612010-11-21 10:50:56 -05001125 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001126
11272010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1128
1129 * Makefile.in: Regenerate.
1130 * aclocal.m4: Regenerate.
1131 * include/Makefile.in: Regenerate.
1132 * man/Makefile.in: Regenerate.
1133 * testsuite/Makefile.in: Regenerate.
1134
Anthony Green2db72612010-11-21 10:50:56 -050011352010-03-30 Dan Witte <dwitte@mozilla.com>
1136
1137 * msvcc.sh: Disable build warnings.
1138 * README (tested): Clarify windows build procedure.
1139
Anthony Green3f5b1372010-07-12 14:39:18 -040011402010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1141
1142 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1143 * configure: Regenerate.
1144 * fficonfig.h.in: Regenerate.
1145 * libffi/src/x86/unix64.S (.eh_frame)
1146 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1147
Anthony Green2db72612010-11-21 10:50:56 -050011482010-03-14 Matthias Klose <doko@ubuntu.com>
1149
1150 * src/x86/ffi64.c: Fix typo in comment.
1151 * src/x86/ffi.c: Use /* ... */ comment style.
1152
Anthony Green9dc9a292010-04-13 10:33:52 -040011532010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1154
1155 * doc/libffi.texi (The Closure API): Fix typo.
1156 * doc/libffi.info: Remove.
1157
11582010-02-15 Matthias Klose <doko@ubuntu.com>
1159
1160 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1161 __ARM_ARCH_7EM__.
1162
Anthony Green2db72612010-11-21 10:50:56 -050011632010-01-15 Anthony Green <green@redhat.com>
1164
1165 * README: Add notes on building with Microsoft Visual C++.
1166
11672010-01-15 Daniel Witte <dwitte@mozilla.com>
1168
1169 * msvcc.sh: New file.
1170
1171 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1172 * src/x86/ffi.c: Tweak function declaration and remove excess
1173 parens.
1174 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1175 ffi_closure.
1176
1177 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1178 function ffi_call_win32 on X86_WIN32.
1179 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1180 (ffi_call_STDCALL): Remove.
1181
1182 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1183 to ffi_prep_cif_machdep for x86.
1184 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1185
11862010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1187
1188 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001189 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001190
11912010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1192
1193 * doc/libffi.texi: Add closure example.
1194
Anthony Green7b7a42f2010-01-12 09:14:14 -050011952010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1196
1197 PR libffi/40701
1198 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1199 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1200 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1201 alpha*-dec-osf*.
1202 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1203 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1204 * testsuite/libffi.call/return_ll1.c: Likewise.
1205 * testsuite/libffi.call/stret_medium2.c: Likewise.
1206 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1207 MAP_FAILED to char *.
1208
12092010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1210
1211 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1212
Anthony Greenc3042af2010-01-01 08:08:02 -050012132009-12-31 Anthony Green <green@redhat.com>
1214
1215 * README: Update for libffi 3.0.9.
1216
12172009-12-27 Matthias Klose <doko@ubuntu.com>
1218
1219 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1220 appropriate.
1221 * configure: Rebuilt.
1222
12232009-12-26 Anthony Green <green@redhat.com>
1224
1225 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1226 avr32*-*-*.
1227 * testsuite/libffi.call/cls_double_va.c: Ditto.
1228
12292009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1230
1231 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1232 and inttypes.h.
1233 * testsuite/libffi.special/unwindtest.cc: Ditto.
1234
12352009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1236
1237 * configure.ac: Add amd64-*-openbsd*.
1238 * configure: Rebuilt.
1239 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1240 openbsd programs with -lpthread.
1241
12422009-12-26 Anthony Green <green@redhat.com>
1243
1244 * testsuite/libffi.call/cls_double_va.c,
1245 testsuite/libffi.call/cls_longdouble.c,
1246 testsuite/libffi.call/cls_longdouble_va.c,
1247 testsuite/libffi.call/cls_pointer.c,
1248 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1249 mips*-*-* and arm*-*-*.
1250 * testsuite/libffi.call/cls_align_longdouble_split.c,
1251 testsuite/libffi.call/cls_align_longdouble_split2.c,
1252 testsuite/libffi.call/stret_medium2.c,
1253 testsuite/libffi.call/stret_medium.c,
1254 testsuite/libffi.call/stret_large.c,
1255 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1256
12572009-12-31 Kay Tietz <ktietz70@googlemail.com>
1258
1259 * testsuite/libffi.call/ffitest.h,
1260 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1261 definitions.
1262
12632009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1264
1265 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1266 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1267 * configure: Rebuilt.
1268 * Makefile.in: Rebuilt.
1269
12702009-12-31 Anthony Green <green@redhat.com>
1271 Blake Chaffin.
1272
1273 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1274 Chaffin @ Apple.
1275
Anthony Green0cfe60e2009-12-29 10:06:04 -050012762009-12-28 David Edelsohn <edelsohn@gnu.org>
1277
1278 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1279 local variables.
1280 (aix_adjust_aggregate_sizes): New function.
1281 (ffi_prep_cif_machdep): Call it.
1282
12832009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1284
1285 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1286 * configure: Regenerate.
1287 * fficonfig.h.in: Likewise.
1288 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1289 Solaris/x86.
1290
12912009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1292
1293 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1294 when a float arguments is passed in memory.
1295 (ffi_closure_helper_SYSV): Mark general registers as used up when
1296 a 64bit or soft-float long double argument is passed in memory.
1297
Anthony Green9458d882009-12-26 07:02:27 -050012982009-12-25 Matthias Klose <doko@ubuntu.com>
1299
1300 * man/ffi_call.3: Fix #include in examples.
1301 * doc/libffi.texi: Add dircategory.
1302
13032009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1304
1305 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1306 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1307 IRIX MIPSPro c99.
1308 * include/ffi_common.h: Added '__sgi' define to non
1309 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001310 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001311 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1312 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1313 FFI_LONGDOUBLE support and alignment(N32 only).
1314 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1315 fixed non '__attribute__((__mode__()))' integer typedefs.
1316 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1317 since they are Linux/GNU Assembler specific.
1318
13192009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1320
1321 * configure.ac, Makefile.am, src/avr32/ffi.c,
1322 src/avr32/ffitarget.h,
1323 src/avr32/sysv.S: Add AVR32 port.
1324 * configure, Makefile.in: Rebuilt.
1325
Anthony Green115ab362009-12-24 00:22:00 -050013262009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1327
1328 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1329 * configure: Regenerate.
1330
13312009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1332
1333 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1334
13352009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1336
1337 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1338 type on HP-UX.
1339
Anthony Green7c5e60b2012-03-29 08:48:22 -040013402012-02-13 Kai Tietz <ktietz@redhat.com>
1341
1342 PR libffi/52221
1343 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1344 support for X86_WIN32.
1345 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1346
Anthony Green115ab362009-12-24 00:22:00 -050013472009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1348
1349 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1350 double' arguments.
1351
13522009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1353
1354 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1355
13562009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1357
1358 PR libffi/40700
1359 * src/closures.c [X86_64 && __sun__ && __svr4__]
1360 (FFI_MMAP_EXEC_WRIT): Define.
1361
13622009-12-08 David Daney <ddaney@caviumnetworks.com>
1363
1364 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1365 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1366 * testsuite/libffi.call/stret_large.c: Same.
1367 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1368 * testsuite/libffi.call/stret_large2.c: Same.
1369 * testsuite/libffi.call/stret_medium2.c: Same.
1370
13712009-12-07 David Edelsohn <edelsohn@gnu.org>
1372
1373 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1374 typo.
1375
13762009-12-05 David Edelsohn <edelsohn@gnu.org>
1377
1378 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1379 code.
1380 * src/powerpc/aix_closure.S: Same.
1381
13822009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1383
1384 * Makefile.in: Regenerate.
1385 * configure: Regenerate.
1386 * include/Makefile.in: Regenerate.
1387 * man/Makefile.in: Regenerate.
1388 * testsuite/Makefile.in: Regenerate.
1389
13902009-12-04 David Edelsohn <edelsohn@gnu.org>
1391
1392 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001393 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001394
13952009-12-04 Uros Bizjak <ubizjak@gmail.com>
1396
1397 PR libffi/41908
1398 * src/x86/ffi64.c (classify_argument): Update from
1399 gcc/config/i386/i386.c.
1400 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1401 SSE registers directly.
1402 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1403 for x86_64 linux targets.
1404
14052009-12-04 David Edelsohn <edelsohn@gnu.org>
1406
1407 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1408 pfr for long double split between fpr13 and stack.
1409
14102009-12-03 David Edelsohn <edelsohn@gnu.org>
1411
1412 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1413 fparg_count twice for long double.
1414
14152009-12-03 David Edelsohn <edelsohn@gnu.org>
1416
1417 PR libffi/42243
1418 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1419
14202009-12-03 Uros Bizjak <ubizjak@gmail.com>
1421
1422 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1423 Remove xfails for x86 linux targets.
1424
14252009-12-02 David Edelsohn <edelsohn@gnu.org>
1426
1427 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1428 case.
1429
14302009-12-01 David Edelsohn <edelsohn@gnu.org>
1431
1432 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1433 register usage. Call ffi_prep_args directly. Add long double
1434 return value support.
1435 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1436 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1437 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1438 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1439 mode.
1440 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1441 into case.
1442 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1443 Allocate result area between params and FPRs.
1444
14452009-11-30 David Edelsohn <edelsohn@gnu.org>
1446
1447 PR target/35484
1448 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1449 AIX64.
1450 * src/powerpc/aix.S: Implement AIX64 version.
1451 * src/powerpc/aix_closure.S: Implement AIX64 version.
1452 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1453 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1454 support.
1455 (ffi_prep_cif_machdep): Same.
1456 (ffi_call): Same.
1457 (ffi_closure_helper_DARWIN): Same.
1458
14592009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1460
1461 PR libffi/41908
1462 * testsuite/libffi.call/testclosure.c: New test.
1463
Anthony Greenc6dddbd2009-10-04 08:11:33 -040014642009-09-28 Kai Tietz <kai.tietz@onevision.com>
1465
1466 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1467 assembly version use of ___chkstk.
1468
14692009-09-23 Matthias Klose <doko@ubuntu.com>
1470
1471 PR libffi/40242, PR libffi/41443
1472 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1473 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1474 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1475 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1476 for -mfloat-abi=softfp to work.
1477
14782009-09-17 Loren J. Rittle <ljrittle@acm.org>
1479
1480 PR testsuite/32843 (strikes again)
1481 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1482 enable proper extension on char and short.
1483
14842009-09-15 David Daney <ddaney@caviumnetworks.com>
1485
1486 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1487 handling for FFI_TYPE_POINTER.
1488 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1489 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1490 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1491 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1492 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1493 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1494 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1495 structure and pointer returns.
1496 (ffi_closure_N32): Add handling for pointer returns.
1497 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1498 calc_n32_return_struct_flags): Handle soft-float.
1499 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1500 (ffi_call_N32): Declare proper argument types.
1501 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1502 soft-float.
1503
15042009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1505
1506 * configure.ac (AC_PREREQ): Bump to 2.64.
1507
15082009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1509
1510 * Makefile.am (install-html, install-pdf): Remove.
1511 * Makefile.in: Regenerate.
1512
1513 * Makefile.in: Regenerate.
1514 * aclocal.m4: Regenerate.
1515 * configure: Regenerate.
1516 * fficonfig.h.in: Regenerate.
1517 * include/Makefile.in: Regenerate.
1518 * man/Makefile.in: Regenerate.
1519 * testsuite/Makefile.in: Regenerate.
1520
Anthony Green3d561062011-11-12 07:20:24 -050015212011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1522
1523 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1524 * configure: Rebuilt.
1525
Anthony Greenc6dddbd2009-10-04 08:11:33 -040015262009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1527
1528 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1529
15302009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1531
1532 PR libffi/40807
1533 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1534 return types for X86_WIN32.
1535 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1536 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1537 _ffi_closure_STDCALL): Likewise.
1538
1539 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1540 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1541
15422009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1543
1544 PR testsuite/40699
1545 PR testsuite/40707
1546 PR testsuite/40709
1547 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1548 2009-06-30 commits.
1549
15502009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1551
1552 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1553 to "" before adding paths. (This reinstates an assignment that
1554 was removed by my 2009-06-30 commit, but changes the initial
1555 value from "." to "".)
1556
15572009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1558
1559 PR testsuite/40601
1560 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1561 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1562 empty.
1563
15642009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1565
1566 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1567 to ld_library_path. Use add_path. Add just find_libgcc_s
1568 to ld_library_path, not every libgcc multilib directory.
1569
15702009-06-16 Wim Lewis <wiml@hhhh.org>
1571
1572 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1573 supposed to be callee-saved.
1574 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1575 return buffer for odd-size structs.
1576
15772009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1578
1579 PR libffi/40444
1580 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1581 allow_stack_execute for Darwin.
1582
15832009-06-16 Andrew Haley <aph@redhat.com>
1584
1585 * configure.ac (TARGETDIR): Add missing blank lines.
1586 * configure: Regenerate.
1587
15882009-06-16 Andrew Haley <aph@redhat.com>
1589
1590 * testsuite/libffi.call/cls_align_sint64.c,
1591 testsuite/libffi.call/cls_align_uint64.c,
1592 testsuite/libffi.call/cls_longdouble_va.c,
1593 testsuite/libffi.call/cls_ulonglong.c,
1594 testsuite/libffi.call/return_ll1.c,
1595 testsuite/libffi.call/stret_medium2.c: Fix printf format
1596 specifiers.
1597 * testsuite/libffi.call/ffitest.h,
1598 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1599
16002009-06-15 Andrew Haley <aph@redhat.com>
1601
1602 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1603 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001604
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016052009-06-12 Andrew Haley <aph@redhat.com>
1606
1607 * Makefile.am: Remove info_TEXINFOS.
1608
16092009-06-12 Andrew Haley <aph@redhat.com>
1610
1611 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1612 testsuite/libffi.call/cls_align_uint64.c,
1613 testsuite/libffi.call/cls_ulonglong.c,
1614 testsuite/libffi.call/return_ll1.c,
1615 testsuite/libffi.call/stret_medium2.c: Fix printf format
1616 specifiers.
1617 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1618
16192009-06-11 Timothy Wall <twall@users.sf.net>
1620
1621 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001622 configure.ac,
1623 include/ffi.h.in,
1624 include/ffi_common.h,
1625 src/closures.c,
1626 src/dlmalloc.c,
1627 src/x86/ffi.c,
1628 src/x86/ffitarget.h,
1629 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001630 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001631 * Makefile.in,
1632 include/Makefile.in,
1633 man/Makefile.in,
1634 testsuite/Makefile.in,
1635 configure,
1636 aclocal.m4: Regenerated
1637 * ltcf-c.sh: properly escape cygwin/w32 path
1638 * man/ffi_call.3: Clarify size requirements for return value.
1639 * src/x86/ffi64.c: Fix filename in comment.
1640 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001641
Anthony Green0cfe60e2009-12-29 10:06:04 -05001642 * testsuite/libffi.call/closure_fn0.c,
1643 testsuite/libffi.call/closure_fn1.c,
1644 testsuite/libffi.call/closure_fn2.c,
1645 testsuite/libffi.call/closure_fn3.c,
1646 testsuite/libffi.call/closure_fn4.c,
1647 testsuite/libffi.call/closure_fn5.c,
1648 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001649 testsuite/libffi.call/closure_stdcall.c,
1650 testsuite/libffi.call/cls_12byte.c,
1651 testsuite/libffi.call/cls_16byte.c,
1652 testsuite/libffi.call/cls_18byte.c,
1653 testsuite/libffi.call/cls_19byte.c,
1654 testsuite/libffi.call/cls_1_1byte.c,
1655 testsuite/libffi.call/cls_20byte.c,
1656 testsuite/libffi.call/cls_20byte1.c,
1657 testsuite/libffi.call/cls_24byte.c,
1658 testsuite/libffi.call/cls_2byte.c,
1659 testsuite/libffi.call/cls_3_1byte.c,
1660 testsuite/libffi.call/cls_3byte1.c,
1661 testsuite/libffi.call/cls_3byte2.c,
1662 testsuite/libffi.call/cls_4_1byte.c,
1663 testsuite/libffi.call/cls_4byte.c,
1664 testsuite/libffi.call/cls_5_1_byte.c,
1665 testsuite/libffi.call/cls_5byte.c,
1666 testsuite/libffi.call/cls_64byte.c,
1667 testsuite/libffi.call/cls_6_1_byte.c,
1668 testsuite/libffi.call/cls_6byte.c,
1669 testsuite/libffi.call/cls_7_1_byte.c,
1670 testsuite/libffi.call/cls_7byte.c,
1671 testsuite/libffi.call/cls_8byte.c,
1672 testsuite/libffi.call/cls_9byte1.c,
1673 testsuite/libffi.call/cls_9byte2.c,
1674 testsuite/libffi.call/cls_align_double.c,
1675 testsuite/libffi.call/cls_align_float.c,
1676 testsuite/libffi.call/cls_align_longdouble.c,
1677 testsuite/libffi.call/cls_align_longdouble_split.c,
1678 testsuite/libffi.call/cls_align_longdouble_split2.c,
1679 testsuite/libffi.call/cls_align_pointer.c,
1680 testsuite/libffi.call/cls_align_sint16.c,
1681 testsuite/libffi.call/cls_align_sint32.c,
1682 testsuite/libffi.call/cls_align_sint64.c,
1683 testsuite/libffi.call/cls_align_uint16.c,
1684 testsuite/libffi.call/cls_align_uint32.c,
1685 testsuite/libffi.call/cls_align_uint64.c,
1686 testsuite/libffi.call/cls_dbls_struct.c,
1687 testsuite/libffi.call/cls_double.c,
1688 testsuite/libffi.call/cls_double_va.c,
1689 testsuite/libffi.call/cls_float.c,
1690 testsuite/libffi.call/cls_longdouble.c,
1691 testsuite/libffi.call/cls_longdouble_va.c,
1692 testsuite/libffi.call/cls_multi_schar.c,
1693 testsuite/libffi.call/cls_multi_sshort.c,
1694 testsuite/libffi.call/cls_multi_sshortchar.c,
1695 testsuite/libffi.call/cls_multi_uchar.c,
1696 testsuite/libffi.call/cls_multi_ushort.c,
1697 testsuite/libffi.call/cls_multi_ushortchar.c,
1698 testsuite/libffi.call/cls_pointer.c,
1699 testsuite/libffi.call/cls_pointer_stack.c,
1700 testsuite/libffi.call/cls_schar.c,
1701 testsuite/libffi.call/cls_sint.c,
1702 testsuite/libffi.call/cls_sshort.c,
1703 testsuite/libffi.call/cls_uchar.c,
1704 testsuite/libffi.call/cls_uint.c,
1705 testsuite/libffi.call/cls_ulonglong.c,
1706 testsuite/libffi.call/cls_ushort.c,
1707 testsuite/libffi.call/err_bad_abi.c,
1708 testsuite/libffi.call/err_bad_typedef.c,
1709 testsuite/libffi.call/float2.c,
1710 testsuite/libffi.call/huge_struct.c,
1711 testsuite/libffi.call/nested_struct.c,
1712 testsuite/libffi.call/nested_struct1.c,
1713 testsuite/libffi.call/nested_struct10.c,
1714 testsuite/libffi.call/nested_struct2.c,
1715 testsuite/libffi.call/nested_struct3.c,
1716 testsuite/libffi.call/nested_struct4.c,
1717 testsuite/libffi.call/nested_struct5.c,
1718 testsuite/libffi.call/nested_struct6.c,
1719 testsuite/libffi.call/nested_struct7.c,
1720 testsuite/libffi.call/nested_struct8.c,
1721 testsuite/libffi.call/nested_struct9.c,
1722 testsuite/libffi.call/problem1.c,
1723 testsuite/libffi.call/return_ldl.c,
1724 testsuite/libffi.call/return_ll1.c,
1725 testsuite/libffi.call/stret_large.c,
1726 testsuite/libffi.call/stret_large2.c,
1727 testsuite/libffi.call/stret_medium.c,
1728 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001729 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1730 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001731
17322009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1733
1734 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1735 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1736 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1737
17382009-06-09 Andrew Haley <aph@redhat.com>
1739
1740 * src/x86/freebsd.S: Add missing file.
1741
17422009-06-08 Andrew Haley <aph@redhat.com>
1743
1744 Import from libffi 3.0.8:
1745
1746 * doc/libffi.texi: New file.
1747 * doc/libffi.info: Likewise.
1748 * doc/stamp-vti: Likewise.
1749 * man/Makefile.am: New file.
1750 * man/ffi_call.3: New file.
1751
1752 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1753 src/dlmalloc.c.
1754 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1755
1756 * configure.ac: Bump version to 3.0.8.
1757 parisc*-*-linux*: Add.
1758 i386-*-freebsd* | i386-*-openbsd*: Add.
1759 powerpc-*-beos*: Add.
1760 AM_CONDITIONAL X86_FREEBSD: Add.
1761 AC_CONFIG_FILES: Add man/Makefile.
1762
1763 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1764
17652009-06-08 Andrew Haley <aph@redhat.com>
1766
1767 * README: Import from libffi 3.0.8.
1768
17692009-06-08 Andrew Haley <aph@redhat.com>
1770
1771 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1772 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1773 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1774 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1775
1776 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1777 * testsuite/libffi.call/stret_medium.c: Likewise.
1778 * testsuite/libffi.call/stret_large2.c: Likewise.
1779 * testsuite/libffi.call/stret_large.c: Likewise.
1780
17812008-12-26 Timothy Wall <twall@users.sf.net>
1782
Anthony Green0cfe60e2009-12-29 10:06:04 -05001783 * testsuite/libffi.call/cls_longdouble.c,
1784 testsuite/libffi.call/cls_longdouble_va.c,
1785 testsuite/libffi.call/cls_align_longdouble.c,
1786 testsuite/libffi.call/cls_align_longdouble_split.c,
1787 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1788 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001789
17902008-12-22 Timothy Wall <twall@users.sf.net>
1791
Anthony Green0cfe60e2009-12-29 10:06:04 -05001792 * testsuite/libffi.call/closure_fn0.c,
1793 testsuite/libffi.call/closure_fn1.c,
1794 testsuite/libffi.call/closure_fn2.c,
1795 testsuite/libffi.call/closure_fn3.c,
1796 testsuite/libffi.call/closure_fn4.c,
1797 testsuite/libffi.call/closure_fn5.c,
1798 testsuite/libffi.call/closure_fn6.c,
1799 testsuite/libffi.call/closure_loc_fn0.c,
1800 testsuite/libffi.call/closure_stdcall.c,
1801 testsuite/libffi.call/cls_align_pointer.c,
1802 testsuite/libffi.call/cls_pointer.c,
1803 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1804 pointer to integer (intptr_t).
1805 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001806
18072008-07-24 Anthony Green <green@redhat.com>
1808
Anthony Green0cfe60e2009-12-29 10:06:04 -05001809 * testsuite/libffi.call/cls_dbls_struct.c,
1810 testsuite/libffi.call/cls_double_va.c,
1811 testsuite/libffi.call/cls_longdouble.c,
1812 testsuite/libffi.call/cls_longdouble_va.c,
1813 testsuite/libffi.call/cls_pointer.c,
1814 testsuite/libffi.call/cls_pointer_stack.c,
1815 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1816 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001817
18182008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001819 Blake Chaffin
1820 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001821
Anthony Green0cfe60e2009-12-29 10:06:04 -05001822 * testsuite/libffi.call/cls_align_longdouble_split2.c
1823 testsuite/libffi.call/cls_align_longdouble_split.c
1824 testsuite/libffi.call/cls_dbls_struct.c
1825 testsuite/libffi.call/cls_double_va.c
1826 testsuite/libffi.call/cls_longdouble.c
1827 testsuite/libffi.call/cls_longdouble_va.c
1828 testsuite/libffi.call/cls_pointer.c
1829 testsuite/libffi.call/cls_pointer_stack.c
1830 testsuite/libffi.call/err_bad_abi.c
1831 testsuite/libffi.call/err_bad_typedef.c
1832 testsuite/libffi.call/stret_large2.c
1833 testsuite/libffi.call/stret_large.c
1834 testsuite/libffi.call/stret_medium2.c
1835 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001836
18372009-06-05 Andrew Haley <aph@redhat.com>
1838
1839 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1840 libffi.
1841
18422009-06-04 Andrew Haley <aph@redhat.com>
1843
1844 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1845 stdcall changes.
1846
18472008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001848 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001849
Anthony Green0cfe60e2009-12-29 10:06:04 -05001850 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1851 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001852
18532008-02-03 Timothy Wall <twall@users.sf.net>
1854
Anthony Green0cfe60e2009-12-29 10:06:04 -05001855 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1856 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001857
18582008-01-31 Timothy Wall <twall@users.sf.net>
1859
Anthony Green0cfe60e2009-12-29 10:06:04 -05001860 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1861 closures.
1862 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1863 closures.
1864 * src/x86/win32.S: Add assembly for stdcall closure.
1865 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001866
18672009-06-04 Andrew Haley <aph@redhat.com>
1868
1869 * include/ffi.h.in: Change void (*)() to void (*)(void).
1870 * src/x86/ffi.c: Likewise.
1871
18722009-06-04 Andrew Haley <aph@redhat.com>
1873
1874 * src/powerpc/ppc_closure.S: Insert licence header.
1875 * src/powerpc/linux64_closure.S: Likewise.
1876 * src/m68k/sysv.S: Likewise.
1877
1878 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1879 * src/powerpc/ffi.c: Likewise.
1880 * src/powerpc/ffi_darwin.c: Likewise.
1881 * src/m32r/ffi.c: Likewise.
1882 * src/sh64/ffi.c: Likewise.
1883 * src/x86/ffi64.c: Likewise.
1884 * src/alpha/ffi.c: Likewise.
1885 * src/alpha/osf.S: Likewise.
1886 * src/frv/ffi.c: Likewise.
1887 * src/s390/ffi.c: Likewise.
1888 * src/pa/ffi.c: Likewise.
1889 * src/pa/hpux32.S: Likewise.
1890 * src/ia64/unix.S: Likewise.
1891 * src/ia64/ffi.c: Likewise.
1892 * src/sparc/ffi.c: Likewise.
1893 * src/mips/ffi.c: Likewise.
1894 * src/sh/ffi.c: Likewise.
1895
18962008-02-15 David Daney <ddaney@avtrex.com>
1897
Anthony Green0cfe60e2009-12-29 10:06:04 -05001898 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1899 Define (conditionally), and use it to include cachectl.h.
1900 (ffi_prep_closure_loc): Fix cache flushing.
1901 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001902
19032009-06-04 Andrew Haley <aph@redhat.com>
1904
1905 include/ffi.h.in,
1906 src/arm/ffitarget.h,
1907 src/arm/ffi.c,
1908 src/arm/sysv.S,
1909 src/powerpc/ffitarget.h,
1910 src/closures.c,
1911 src/sh64/ffitarget.h,
1912 src/sh64/ffi.c,
1913 src/sh64/sysv.S,
1914 src/types.c,
1915 src/x86/ffi64.c,
1916 src/x86/ffitarget.h,
1917 src/x86/win32.S,
1918 src/x86/darwin.S,
1919 src/x86/ffi.c,
1920 src/x86/sysv.S,
1921 src/x86/unix64.S,
1922 src/alpha/ffitarget.h,
1923 src/alpha/ffi.c,
1924 src/alpha/osf.S,
1925 src/m68k/ffitarget.h,
1926 src/frv/ffitarget.h,
1927 src/frv/ffi.c,
1928 src/s390/ffitarget.h,
1929 src/s390/sysv.S,
1930 src/cris/ffitarget.h,
1931 src/pa/linux.S,
1932 src/pa/ffitarget.h,
1933 src/pa/ffi.c,
1934 src/raw_api.c,
1935 src/ia64/ffitarget.h,
1936 src/ia64/unix.S,
1937 src/ia64/ffi.c,
1938 src/ia64/ia64_flags.h,
1939 src/java_raw_api.c,
1940 src/debug.c,
1941 src/sparc/v9.S,
1942 src/sparc/ffitarget.h,
1943 src/sparc/ffi.c,
1944 src/sparc/v8.S,
1945 src/mips/ffitarget.h,
1946 src/mips/n32.S,
1947 src/mips/o32.S,
1948 src/mips/ffi.c,
1949 src/prep_cif.c,
1950 src/sh/ffitarget.h,
1951 src/sh/ffi.c,
1952 src/sh/sysv.S: Update license text.
1953
19542009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1955
1956 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1957 (.eh_frame): Add FDE for it.
1958
19592009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1960
1961 * configure.ac: Also check if assembler supports pc-relative
1962 relocs on X86_WIN32 targets.
1963 * configure: Regenerate.
1964 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1965 (_ffi_call_SYSV): Add missing function type symbol .def and
1966 add EH markup labels.
1967 (_ffi_call_STDCALL): Likewise.
1968 (_ffi_closure_SYSV): Likewise.
1969 (_ffi_closure_raw_SYSV): Likewise.
1970 (.eh_frame): Add hand-crafted EH data.
1971
19722009-04-09 Jakub Jelinek <jakub@redhat.com>
1973
1974 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1975 version 3 of the GNU General Public License and to point readers
1976 at the COPYING3 file and the FSF's license web page.
1977 * testsuite/libffi.call/call.exp: Likewise.
1978 * testsuite/libffi.special/special.exp: Likewise.
1979
19802009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1981
1982 * configure: Regenerate.
1983
19842008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1985
1986 PR libffi/26048
1987 * configure.ac (HAVE_AS_X86_PCREL): New test.
1988 * configure: Regenerate.
1989 * fficonfig.h.in: Regenerate.
1990 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1991 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1992 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1993 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1994 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1995 (.Lload_table): Likewise.
1996 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1997
19982008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1999
2000 * configure: Regenerate.
2001
20022008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2003
2004 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2005 signed/unsigned int8/16 return values.
2006 * src/sparc/v8.S (ffi_call_v8): Likewise.
2007 (ffi_closure_v8): Likewise.
2008
20092008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002010 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002011
2012 * configure: Regenerate for new libtool.
2013 * Makefile.in: Ditto.
2014 * include/Makefile.in: Ditto.
2015 * aclocal.m4: Ditto.
2016
20172008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2018
2019 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2020 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2021 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2022 Adjust copyright notice.
2023 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2024 register or two register to use for FFI_SYSV structs.
2025 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2026 (ffi_closure_helper_SYSV): Fix the return type for
2027 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2028 Adjust copyright notice.
2029
20302008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2031
2032 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2033 int.
2034
20352008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2036
2037 * configure: Regenerate.
2038 * include/Makefile.in: Regenerate.
2039 * testsuite/Makefile.in: Regenerate.
2040
20412008-06-07 Joseph Myers <joseph@codesourcery.com>
2042
2043 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2044 powerpc-*-beos*): Remove.
2045 * configure: Regenerate.
2046
20472008-05-09 Julian Brown <julian@codesourcery.com>
2048
2049 * Makefile.am (LTLDFLAGS): New.
2050 (libffi_la_LDFLAGS): Use above.
2051 * Makefile.in: Regenerate.
2052
20532008-04-18 Paolo Bonzini <bonzini@gnu.org>
2054
2055 PR bootstrap/35457
2056 * aclocal.m4: Regenerate.
2057 * configure: Regenerate.
2058
20592008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2060
2061 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2062 * src/sh64/sysv.S: Likewise.
2063
20642008-03-26 Daniel Jacobowitz <dan@debian.org>
2065
2066 * src/arm/sysv.S: Fix ARM comment marker.
2067
20682008-03-26 Jakub Jelinek <jakub@redhat.com>
2069
2070 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2071 * src/s390/sysv.S: Likewise.
2072 * src/powerpc/ppc_closure.S: Likewise.
2073 * src/powerpc/sysv.S: Likewise.
2074 * src/x86/unix64.S: Likewise.
2075 * src/x86/sysv.S: Likewise.
2076 * src/sparc/v8.S: Likewise.
2077 * src/sparc/v9.S: Likewise.
2078 * src/m68k/sysv.S: Likewise.
2079 * src/arm/sysv.S: Likewise.
2080
20812008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2082
2083 * aclocal.m4: Regenerate.
2084 * configure: Likewise.
2085 * Makefile.in: Likewise.
2086 * include/Makefile.in: Likewise.
2087 * testsuite/Makefile.in: Likewise.
2088
20892008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2090 Andreas Tobler <a.tobler@schweiz.org>
2091
2092 * configure.ac: Add amd64-*-freebsd* target.
2093 * configure: Regenerate.
2094
20952008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2096
2097 PR libffi/34612
2098 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2099 returning struct.
2100
2101 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2102 tests.
2103
21042008-01-24 David Edelsohn <edelsohn@gnu.org>
2105
2106 * configure: Regenerate.
2107
21082008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2109
2110 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2111
21122008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2113
2114 PR testsuite/32843
2115 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2116 signed/unsigned int8/16 for X86_DARWIN.
2117 Updated copyright info.
2118 Handle one and two byte structs with special cif->flags.
2119 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2120 Updated copyright info.
2121 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2122 sysv.S
2123 Remove code to pop args from the stack after call.
2124 Special-case signed/unsigned for int8/16, one and two byte structs.
2125 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2126 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2127 FFI_TYPE_SINT32.
2128 Updated copyright info.
2129
21302007-12-08 David Daney <ddaney@avtrex.com>
2131
Anthony Green0cfe60e2009-12-29 10:06:04 -05002132 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002133 SUBU, add with ADDU and use smaller code sequences.
2134
21352007-12-07 David Daney <ddaney@avtrex.com>
2136
2137 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2138 type.
2139
21402007-12-06 David Daney <ddaney@avtrex.com>
2141
2142 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2143 defined.
2144 (ffi_java_raw): New typedef.
2145 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2146 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2147 ffi_java_raw.
2148 (ffi_java_raw_closure) : Same.
2149 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2150 parameter types.
2151 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2152 FFI_SIZEOF_JAVA_RAW.
2153 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2154 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2155 sizeof(ffi_java_raw) for alignment calculations.
2156 (ffi_java_ptrarray_to_raw): Same.
2157 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002158 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002159 (ffi_java_raw_to_rvalue): Same.
2160 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2161 (ffi_java_translate_args): Same.
2162 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2163 parameter types.
2164 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2165
21662007-12-06 David Daney <ddaney@avtrex.com>
2167
Anthony Green0cfe60e2009-12-29 10:06:04 -05002168 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002169 pointer values.
2170
21712007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2172
2173 PR libffi/31937
2174 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2175 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2176 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2177 set the NUM_FPR_ARG_REGISTERS according to.
2178 Add support for potential soft-float support under hard-float
2179 architecture.
2180 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2181 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2182 to the FFI_LINUX_SOFT_FLOAT ABI.
2183 (ffi_prep_cif_machdep): Likewise.
2184 (ffi_closure_helper_SYSV): Likewise.
2185 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2186 on archs where __NO_FPRS__ is true.
2187 Add FFI_TYPE_UINT128 support.
2188 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2189 Adjust copyright notice.
2190
21912007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2192
2193 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2194 * include/ffi_common.h: ... here.
2195 Update copyright.
2196
21972007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2198
2199 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2200 * src/powerpc/linux64.S: Likewise.
2201 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2202 * testsuite/libffi.call/return_ldl.c: New test.
2203
22042007-09-04 <aph@redhat.com>
2205
2206 * src/arm/sysv.S (UNWIND): New.
2207 (Whole file): Conditionally compile unwinder directives.
2208 * src/arm/sysv.S: Add unwinder directives.
2209
2210 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2211 Only treat r0 as a struct address if we're actually returning a
2212 struct by address.
2213 Only copy the bytes that are actually within a struct.
2214 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2215 is returned in r0, not passed by address.
2216 (ffi_call): Allocate a word-sized temporary for the case where
2217 a composite is returned in r0.
2218 (ffi_prep_incoming_args_SYSV): Align as necessary.
2219
22202007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2221
Anthony Green0cfe60e2009-12-29 10:06:04 -05002222 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002223 directly using the sys_cacheflush syscall.
2224
22252007-07-27 Andrew Haley <aph@redhat.com>
2226
2227 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2228
22292007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2230
2231 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2232 * configure.ac: Likewise.
2233 * Makefile.in: Regenerate.
2234 * include/Makefile.in: Likewise.
2235 * testsuite/Makefile.in: Likewise.
2236 * configure: Likewise.
2237
22382007-08-24 David Daney <ddaney@avtrex.com>
2239
2240 * testsuite/libffi.call/return_sl.c: New test.
2241
22422007-08-10 David Daney <ddaney@avtrex.com>
2243
2244 * testsuite/libffi.call/cls_multi_ushort.c,
2245 testsuite/libffi.call/cls_align_uint16.c,
2246 testsuite/libffi.call/nested_struct1.c,
2247 testsuite/libffi.call/nested_struct3.c,
2248 testsuite/libffi.call/cls_7_1_byte.c,
2249 testsuite/libffi.call/nested_struct5.c,
2250 testsuite/libffi.call/cls_double.c,
2251 testsuite/libffi.call/nested_struct7.c,
2252 testsuite/libffi.call/cls_sint.c,
2253 testsuite/libffi.call/nested_struct9.c,
2254 testsuite/libffi.call/cls_20byte1.c,
2255 testsuite/libffi.call/cls_multi_sshortchar.c,
2256 testsuite/libffi.call/cls_align_sint64.c,
2257 testsuite/libffi.call/cls_3byte2.c,
2258 testsuite/libffi.call/cls_multi_schar.c,
2259 testsuite/libffi.call/cls_multi_uchar.c,
2260 testsuite/libffi.call/cls_19byte.c,
2261 testsuite/libffi.call/cls_9byte1.c,
2262 testsuite/libffi.call/cls_align_float.c,
2263 testsuite/libffi.call/closure_fn1.c,
2264 testsuite/libffi.call/problem1.c,
2265 testsuite/libffi.call/closure_fn3.c,
2266 testsuite/libffi.call/cls_sshort.c,
2267 testsuite/libffi.call/closure_fn5.c,
2268 testsuite/libffi.call/cls_align_double.c,
2269 testsuite/libffi.call/nested_struct.c,
2270 testsuite/libffi.call/cls_2byte.c,
2271 testsuite/libffi.call/nested_struct10.c,
2272 testsuite/libffi.call/cls_4byte.c,
2273 testsuite/libffi.call/cls_6byte.c,
2274 testsuite/libffi.call/cls_8byte.c,
2275 testsuite/libffi.call/cls_multi_sshort.c,
2276 testsuite/libffi.call/cls_align_sint16.c,
2277 testsuite/libffi.call/cls_align_uint32.c,
2278 testsuite/libffi.call/cls_20byte.c,
2279 testsuite/libffi.call/cls_float.c,
2280 testsuite/libffi.call/nested_struct2.c,
2281 testsuite/libffi.call/cls_5_1_byte.c,
2282 testsuite/libffi.call/nested_struct4.c,
2283 testsuite/libffi.call/cls_24byte.c,
2284 testsuite/libffi.call/nested_struct6.c,
2285 testsuite/libffi.call/cls_64byte.c,
2286 testsuite/libffi.call/nested_struct8.c,
2287 testsuite/libffi.call/cls_uint.c,
2288 testsuite/libffi.call/cls_multi_ushortchar.c,
2289 testsuite/libffi.call/cls_schar.c,
2290 testsuite/libffi.call/cls_uchar.c,
2291 testsuite/libffi.call/cls_align_uint64.c,
2292 testsuite/libffi.call/cls_ulonglong.c,
2293 testsuite/libffi.call/cls_align_longdouble.c,
2294 testsuite/libffi.call/cls_1_1byte.c,
2295 testsuite/libffi.call/cls_12byte.c,
2296 testsuite/libffi.call/cls_3_1byte.c,
2297 testsuite/libffi.call/cls_3byte1.c,
2298 testsuite/libffi.call/cls_4_1byte.c,
2299 testsuite/libffi.call/cls_6_1_byte.c,
2300 testsuite/libffi.call/cls_16byte.c,
2301 testsuite/libffi.call/cls_18byte.c,
2302 testsuite/libffi.call/closure_fn0.c,
2303 testsuite/libffi.call/cls_9byte2.c,
2304 testsuite/libffi.call/closure_fn2.c,
2305 testsuite/libffi.call/closure_fn4.c,
2306 testsuite/libffi.call/cls_ushort.c,
2307 testsuite/libffi.call/closure_fn6.c,
2308 testsuite/libffi.call/cls_5byte.c,
2309 testsuite/libffi.call/cls_align_pointer.c,
2310 testsuite/libffi.call/cls_7byte.c,
2311 testsuite/libffi.call/cls_align_sint32.c,
2312 testsuite/libffi.special/unwindtest_ffi_call.cc,
2313 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2314
23152007-08-10 David Daney <ddaney@avtrex.com>
2316
2317 PR libffi/28313
2318 * configure.ac: Don't treat mips64 as a special case.
2319 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2320 * configure: Regenerate
2321 * Makefile.in: Ditto.
2322 * fficonfig.h.in: Ditto.
2323 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2324 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2325 (FFI_DEFAULT_ABI): Set for n64 case.
2326 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2327 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2328 (ffi_closure_N32): New function.
2329 (.eh_frame): New section
2330 * src/mips/o32.S: Clean up comments.
2331 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2332 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2333 _MIPS_SIM == _ABIN32 throughout.
2334 (FFI_MIPS_STOP_HERE): New, use in place of
2335 ffi_stop_here.
2336 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2337 to support n32/n64 ABIs.
2338 (calc_n32_struct_flags): Rewrite.
2339 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2340 position of flag bits.
2341 (ffi_prep_cif_machdep): Rewrite n32 portion.
2342 (ffi_call): Enable for n64. Add special handling for small structure
2343 return values.
2344 (ffi_prep_closure_loc): Add n32 and n64 support.
2345 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2346 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2347
23482007-08-08 David Daney <ddaney@avtrex.com>
2349
2350 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2351 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2352 specifiers.
2353 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2354 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2355 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2356 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2357 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2358 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2359 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2360 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2361 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2362 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2363 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2364 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2365 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2366 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2367 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2368 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2369 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2370 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2371 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2372 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2373 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2374 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2375 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2376 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2377 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2378 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2379 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2380 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2381 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2382 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2383 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2384
23852007-08-07 Andrew Haley <aph@redhat.com>
2386
2387 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2388 checkin.
2389
23902007-08-06 Andrew Haley <aph@redhat.com>
2391
2392 PR testsuite/32843
2393 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2394 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2395 FFI_TYPE_SINT32.
2396
23972007-08-02 David Daney <ddaney@avtrex.com>
2398
2399 * testsuite/libffi.call/return_ul.c (main): Define return type as
2400 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002401
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024022007-07-30 Andrew Haley <aph@redhat.com>
2403
2404 PR testsuite/32843
2405 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2406 signed/unsigned int8/16.
2407 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2408 Use a jump table.
2409 Remove code to pop args from the stack after call.
2410 Special-case signed/unsigned int8/16.
2411 * testsuite/libffi.call/return_sc.c (main): Revert.
2412
24132007-07-26 Richard Guenther <rguenther@suse.de>
2414
2415 PR testsuite/32843
2416 * testsuite/libffi.call/return_sc.c (main): Verify call
2417 result as signed char, not ffi_arg.
2418
24192007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2420
2421 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2422 * configure: Regenerate.
2423
24242007-07-11 David Daney <ddaney@avtrex.com>
2425
2426 * src/mips/ffi.c: Don't include sys/cachectl.h.
2427 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2428 cacheflush().
2429
24302007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2431
2432 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2433 from (ffi_prep_closure): ... this.
2434 (FFI_INIT_TRAMPOLINE): Adjust.
2435
24362005-12-31 Phil Blundell <pb@reciva.com>
2437
Anthony Green0cfe60e2009-12-29 10:06:04 -05002438 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2439 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002440 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2441 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2442 (FFI_CLOSURES): Enable closure support.
2443
24442007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2445
Anthony Green0cfe60e2009-12-29 10:06:04 -05002446 * testsuite/libffi.call/cls_multi_ushort.c,
2447 testsuite/libffi.call/cls_align_uint16.c,
2448 testsuite/libffi.call/nested_struct1.c,
2449 testsuite/libffi.call/nested_struct3.c,
2450 testsuite/libffi.call/cls_7_1_byte.c,
2451 testsuite/libffi.call/cls_double.c,
2452 testsuite/libffi.call/nested_struct5.c,
2453 testsuite/libffi.call/nested_struct7.c,
2454 testsuite/libffi.call/cls_sint.c,
2455 testsuite/libffi.call/nested_struct9.c,
2456 testsuite/libffi.call/cls_20byte1.c,
2457 testsuite/libffi.call/cls_multi_sshortchar.c,
2458 testsuite/libffi.call/cls_align_sint64.c,
2459 testsuite/libffi.call/cls_3byte2.c,
2460 testsuite/libffi.call/cls_multi_schar.c,
2461 testsuite/libffi.call/cls_multi_uchar.c,
2462 testsuite/libffi.call/cls_19byte.c,
2463 testsuite/libffi.call/cls_9byte1.c,
2464 testsuite/libffi.call/cls_align_float.c,
2465 testsuite/libffi.call/closure_fn1.c,
2466 testsuite/libffi.call/problem1.c,
2467 testsuite/libffi.call/closure_fn3.c,
2468 testsuite/libffi.call/cls_sshort.c,
2469 testsuite/libffi.call/closure_fn5.c,
2470 testsuite/libffi.call/cls_align_double.c,
2471 testsuite/libffi.call/cls_2byte.c,
2472 testsuite/libffi.call/nested_struct.c,
2473 testsuite/libffi.call/nested_struct10.c,
2474 testsuite/libffi.call/cls_4byte.c,
2475 testsuite/libffi.call/cls_6byte.c,
2476 testsuite/libffi.call/cls_8byte.c,
2477 testsuite/libffi.call/cls_multi_sshort.c,
2478 testsuite/libffi.call/cls_align_uint32.c,
2479 testsuite/libffi.call/cls_align_sint16.c,
2480 testsuite/libffi.call/cls_float.c,
2481 testsuite/libffi.call/cls_20byte.c,
2482 testsuite/libffi.call/cls_5_1_byte.c,
2483 testsuite/libffi.call/nested_struct2.c,
2484 testsuite/libffi.call/cls_24byte.c,
2485 testsuite/libffi.call/nested_struct4.c,
2486 testsuite/libffi.call/nested_struct6.c,
2487 testsuite/libffi.call/cls_64byte.c,
2488 testsuite/libffi.call/nested_struct8.c,
2489 testsuite/libffi.call/cls_uint.c,
2490 testsuite/libffi.call/cls_multi_ushortchar.c,
2491 testsuite/libffi.call/cls_schar.c,
2492 testsuite/libffi.call/cls_uchar.c,
2493 testsuite/libffi.call/cls_align_uint64.c,
2494 testsuite/libffi.call/cls_ulonglong.c,
2495 testsuite/libffi.call/cls_align_longdouble.c,
2496 testsuite/libffi.call/cls_1_1byte.c,
2497 testsuite/libffi.call/cls_12byte.c,
2498 testsuite/libffi.call/cls_3_1byte.c,
2499 testsuite/libffi.call/cls_3byte1.c,
2500 testsuite/libffi.call/cls_4_1byte.c,
2501 testsuite/libffi.call/cls_6_1_byte.c,
2502 testsuite/libffi.call/cls_16byte.c,
2503 testsuite/libffi.call/cls_18byte.c,
2504 testsuite/libffi.call/closure_fn0.c,
2505 testsuite/libffi.call/cls_9byte2.c,
2506 testsuite/libffi.call/closure_fn2.c,
2507 testsuite/libffi.call/closure_fn4.c,
2508 testsuite/libffi.call/cls_ushort.c,
2509 testsuite/libffi.call/closure_fn6.c,
2510 testsuite/libffi.call/cls_5byte.c,
2511 testsuite/libffi.call/cls_align_pointer.c,
2512 testsuite/libffi.call/cls_7byte.c,
2513 testsuite/libffi.call/cls_align_sint32.c,
2514 testsuite/libffi.special/unwindtest_ffi_call.cc,
2515 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002516
25172007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2518
2519 * aclocal.m4: Regenerated.
2520
25212007-06-02 Paolo Bonzini <bonzini@gnu.org>
2522
2523 * configure: Regenerate.
2524
25252007-05-23 Steve Ellcey <sje@cup.hp.com>
2526
2527 * Makefile.in: Regenerate.
2528 * configure: Regenerate.
2529 * aclocal.m4: Regenerate.
2530 * include/Makefile.in: Regenerate.
2531 * testsuite/Makefile.in: Regenerate.
2532
25332007-05-10 Roman Zippel <zippel@linux-m68k.org>
2534
2535 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2536 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2537 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2538 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2539 (FFI_CLOSURES): Enable closure support.
2540
25412007-05-10 Roman Zippel <zippel@linux-m68k.org>
2542
2543 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2544 * configure: Regenerate.
2545 * fficonfig.h.in: Regenerate.
2546 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2547 CFI_OFFSET,CFI_DEF_CFA): New macros.
2548 (ffi_call_SYSV): Add callframe annotation.
2549
25502007-05-10 Roman Zippel <zippel@linux-m68k.org>
2551
2552 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2553 numerous test suite failures.
2554 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2555
25562007-04-11 Paolo Bonzini <bonzini@gnu.org>
2557
2558 * Makefile.am (EXTRA_DIST): Bring up to date.
2559 * Makefile.in: Regenerate.
2560 * src/frv/eabi.S: Remove RCS keyword.
2561
25622007-04-06 Richard Henderson <rth@redhat.com>
2563
2564 * configure.ac: Tidy target case.
2565 (HAVE_LONG_DOUBLE): Allow the target to override.
2566 * configure: Regenerate.
2567 * include/ffi.h.in: Don't define ffi_type_foo if
2568 LIBFFI_HIDE_BASIC_TYPES is defined.
2569 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2570 to ffi_type_double.
2571 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2572 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2573 (ffi_type_longdouble): Special case for Alpha. Don't define
2574 if long double == double.
2575
2576 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2577 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2578 (ffi_call, ffi_closure_osf_inner): Likewise.
2579 (ffi_closure_osf_inner): Likewise. Mark hidden.
2580 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2581 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2582 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2583 (load_table): Handle 128-bit long double.
2584
2585 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2586
25872007-04-06 Tom Tromey <tromey@redhat.com>
2588
2589 PR libffi/31491:
2590 * README: Fixed bug in example.
2591
25922007-04-03 Jakub Jelinek <jakub@redhat.com>
2593
2594 * src/closures.c: Include sys/statfs.h.
2595 (_GNU_SOURCE): Define on Linux.
2596 (FFI_MMAP_EXEC_SELINUX): Define.
2597 (selinux_enabled): New variable.
2598 (selinux_enabled_check): New function.
2599 (is_selinux_enabled): Define.
2600 (dlmmap): Use it.
2601
26022007-03-24 Uros Bizjak <ubizjak@gmail.com>
2603
2604 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2605 Use 'volatile float sum' to create sum of floats to avoid false
2606 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002607 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002608
26092007-03-08 Alexandre Oliva <aoliva@redhat.com>
2610
2611 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2612 patch.
2613 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2614
26152007-03-07 Alexandre Oliva <aoliva@redhat.com>
2616
2617 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2618 (ffi_prep_closure_loc): New.
2619 (ffi_prep_raw_closure_loc): New.
2620 (ffi_prep_java_raw_closure_loc): New.
2621 * src/closures.c: New file.
2622 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2623 Replace sflags with exec_offset.
2624 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2625 sub_segment_exec_offset): New macros.
2626 (get_segment_flags, set_segment_flags, check_segment_merge): New
2627 macros.
2628 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2629 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2630 destroy_mspace): Use new macros.
2631 (sys_alloc): Silence warning.
2632 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2633 * Makefile.in: Rebuilt.
2634 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2635 terms of ffi_prep_closure_loc.
2636 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2637 from...
2638 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2639 renamed version.
2640 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2641 adjusted from...
2642 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2643 the renamed version.
2644 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2645 (ffi_prep_closure): ... this.
2646 * src/pa/ffi.c: Likewise.
2647 * src/cris/ffi.c: Likewise. Adjust.
2648 * src/frv/ffi.c: Likewise.
2649 * src/ia64/ffi.c: Likewise.
2650 * src/mips/ffi.c: Likewise.
2651 * src/powerpc/ffi_darwin.c: Likewise.
2652 * src/s390/ffi.c: Likewise.
2653 * src/sh/ffi.c: Likewise.
2654 * src/sh64/ffi.c: Likewise.
2655 * src/sparc/ffi.c: Likewise.
2656 * src/x86/ffi64.c: Likewise.
2657 * src/x86/ffi.c: Likewise.
2658 (FFI_INIT_TRAMPOLINE): Adjust.
2659 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2660 (ffi_prep_raw_closure): ... this.
2661 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2662 (ffi_prep_closure): ... this.
2663 (flush_icache): Adjust.
2664
26652007-03-07 Alexandre Oliva <aoliva@redhat.com>
2666
2667 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2668 Lea's malloc.
2669
26702007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2671
2672 * Makefile.am: Add dummy install-pdf target.
2673 * Makefile.in: Regenerate
2674
26752007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2676
2677 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2678 ffi_closure_helper_SYSV): Add long double handling.
2679
26802007-02-02 Jakub Jelinek <jakub@redhat.com>
2681
2682 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2683 immediately after bctrl instruction.
2684
26852007-01-18 Alexandre Oliva <aoliva@redhat.com>
2686
2687 * Makefile.am (all-recursive, install-recursive,
2688 mostlyclean-recursive, clean-recursive, distclean-recursive,
2689 maintainer-clean-recursive): Add missing targets.
2690 * Makefile.in: Rebuilt.
2691
26922006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2693
2694 * configure.ac: Add TARGET for x86_64-*-darwin*.
2695 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2696 for X86_DARWIN.
2697 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2698 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2699 * configure: Regenerate.
2700 * Makefile.in: Regenerate.
2701 * include/Makefile.in: Regenerate.
2702 * testsuite/Makefile.in: Regenerate.
2703 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2704 ffi_call only.
2705
27062006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2707
2708 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2709 Makefile.am.
2710
27112006-10-31 Geoffrey Keating <geoffk@apple.com>
2712
2713 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2714 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2715 Darwin.
2716 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2717 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2718
27192006-10-10 Paolo Bonzini <bonzini@gnu.org>
2720 Sandro Tolaini <tolaini@libero.it>
2721
Anthony Green0cfe60e2009-12-29 10:06:04 -05002722 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002723 conditional.
2724 * configure: Regenerated.
2725 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2726 (EXTRA_DIST): Add src/x86/darwin.S.
2727 * Makefile.in: Regenerated.
2728 * include/Makefile.in: Regenerated.
2729 * testsuite/Makefile.in: Regenerated.
2730
2731 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2732 X86_WIN32, and additionally align stack to 16 bytes.
2733 * src/x86/darwin.S: New, based on sysv.S.
2734 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2735
27362006-09-12 David Daney <ddaney@avtrex.com>
2737
2738 PR libffi/23935
2739 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2740 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2741 * aclocal.m4: Regenerated for automake 1.9.6.
2742 * Makefile.in: Regenerated.
2743 * include/Makefile.in: Regenerated.
2744 * testsuite/Makefile.in: Regenerated.
2745
27462006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2747
2748 * include/ffi_common.h (struct): Revert accidental commit.
2749
27502006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2751
2752 * include/ffi_common.h: Remove lint directives.
2753 * include/ffi.h.in: Likewise.
2754
27552006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2756
2757 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2758 for 32-bit architectures.
2759 * testsuite/libffi.call/return_ul.c: New test case.
2760
27612006-07-19 David Daney <ddaney@avtrex.com>
2762
2763 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2764 xfail remains for mips64.
2765
27662006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2767
2768 * Makefile.am: Add install-html target. Add install-html to .PHONY
2769 * Makefile.in: Regenerate.
2770 * aclocal.m4: Regenerate.
2771 * include/Makefile.in: Regenerate.
2772 * testsuite/Makefile.in: Regenerate.
2773
27742006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2775
2776 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2777 stack slot.
2778
27792006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2780
2781 * README: Remove notice about 'Crazy Comments'.
2782 * src/debug.c: Remove lint directives. Cleanup white spaces.
2783 * src/java_raw_api.c: Likewise.
2784 * src/prep_cif.c: Likewise.
2785 * src/raw_api.c: Likewise.
2786 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2787 to the testsuite.
2788 * src/arm/ffi.c: Remove lint directives.
2789 * src/m32r/ffi.c: Likewise.
2790 * src/pa/ffi.c: Likewise.
2791 * src/powerpc/ffi.c: Likewise.
2792 * src/powerpc/ffi_darwin.c: Likewise.
2793 * src/sh/ffi.c: Likewise.
2794 * src/sh64/ffi.c: Likewise.
2795 * src/x86/ffi.c: Likewise.
2796 * testsuite/libffi.call/float2.c: Likewise.
2797 * testsuite/libffi.call/promotion.c: Likewise.
2798 * testsuite/libffi.call/struct1.c: Likewise.
2799
28002006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2801
2802 * src/pa/hpux32.S: Correct unwind offset calculation for
2803 ffi_closure_pa32.
2804 * src/pa/linux.S: Likewise.
2805
28062006-04-12 James E Wilson <wilson@specifix.com>
2807
2808 PR libgcj/26483
2809 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2810 (hfa_type_load): Call stf_spill.
2811 (hfa_type_store): Call ldf_fill.
2812 (ffi_call): Adjust calls to above routines. Add local temps for
2813 macro result.
2814
28152006-04-10 Matthias Klose <doko@debian.org>
2816
2817 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2818 directory names containing underscores.
2819
28202006-04-07 James E Wilson <wilson@specifix.com>
2821
2822 * testsuite/libffi.call/float4.c: New testcase.
2823
28242006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2825 Andreas Tobler <a.tobler@schweiz.ch>
2826
2827 * Makefile.am: Add PA_HPUX port.
2828 * Makefile.in: Regenerate.
2829 * include/Makefile.in: Likewise.
2830 * testsuite/Makefile.in: Likewise.
2831 * configure.ac: Add PA_HPUX rules.
2832 * configure: Regenerate.
2833 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2834 Add PA_HPUX and PA64_HPUX.
2835 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2836 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2837 (FFI_TYPE_SMALL_STRUCT2): Define.
2838 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2839 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2840 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2841 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2842 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2843 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2844 * src/pa/ffi.c (ROUND_DOWN): Delete.
2845 (fldw, fstw, fldd, fstd): Use '__asm__'.
2846 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2847 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2848 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2849 Simplify incrementing of stack slot variable. Change type of local
2850 'n' to unsigned int.
2851 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2852 double on PA_HPUX.
2853 (ffi_prep_cif_machdep): Likewise.
2854 (ffi_call): Likewise.
2855 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2856 return type to ffi_status. Simplify incrementing of stack slot
2857 variable. Only copy floating point argument registers when PA_LINUX
2858 is true. Reformat debug statement.
2859 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2860 FFI_TYPE_SMALL_STRUCT8.
2861 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2862 declaration.
2863 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2864 Add nops to cache flush. Add trampoline for PA_HPUX.
2865 * src/pa/hpux32.S: New file.
2866 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2867 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2868 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2869 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2870 argument type checks so that common argument types appear first.
2871 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2872 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2873
28742006-03-24 Alan Modra <amodra@bigpond.net.au>
2875
2876 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2877 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2878 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2879 FFI_TYPE_LONGDOUBLE.
2880 (ffi_prep_args64): Assert using IBM extended double.
2881 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2882 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2883 (ffi_call): Handle FFI_LINUX.
2884 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2885 gpr3 return pointer as for struct return. Handle FFI_LINUX
2886 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2887 unnecessarily.
2888 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2889 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2890 Don't use r6 as pointer to results, instead use sp offset. Don't
2891 make a special call to load lr with case table address, instead
2892 use offset from previous call.
2893 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2894 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2895 return.
2896
28972006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2898
2899 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2900 passed with FP registers correctly.
2901 (ffi_closure_helper_SYSV): Likewise.
2902 * src/sh64/sysv.S: Likewise.
2903
29042006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2905
2906 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2907 args and userdata unused.
2908 (closure_test_fn1): Mark cif and userdata unused.
2909 (main): Remove unused res.
2910
29112006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2912
2913 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2914 -O2, -O3, -Os and the warning flags -W -Wall.
2915 * testsuite/libffi.special/special.exp: Likewise.
2916 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2917 unused parameter unused for gcc or else do nothing.
2918 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2919 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2920 and userdata unused.
2921 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2922 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2923 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2924 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2925 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2926 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2927 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2928 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2929 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2930 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2931 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2932 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2933 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2934 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2935 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2936 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2937 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2938 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2939 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2940 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2941 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2942 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2943 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2944 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2945 Likewise.
2946 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2947 Likewise.
2948 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2949 Likewise.
2950 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2951 void* to avoid compiler warning.
2952 (main): Likewise.
2953 (cls_struct_align_gn): Mark cif and userdata unused.
2954 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2955 Likewise.
2956 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2957 Likewise.
2958 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2959 Likewise.
2960 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2961 Likewise.
2962 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2963 Likewise.
2964 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2965 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2966 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2967 data unused.
2968 (main): Cast res_call to silence gcc.
2969 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2970 data unused.
2971 (main): Cast res_call to silence gcc.
2972 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2973 and data unused.
2974 (main): Cast res_call to silence gcc.
2975 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2976 data unused.
2977 (main): Cast res_call to silence gcc.
2978 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2979 data unused.
2980 (main): Cast res_call to silence gcc.
2981 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2982 and data unused.
2983 (main): Cast res_call to silence gcc.
2984 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2985 userdata unused.
2986 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2987 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2988 userdata unused.
2989 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2990 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2991 userdata unused.
2992 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2993 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2994 userdata unused.
2995 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2996 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2997 userdata unused.
2998 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2999 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3000 and userdata unused.
3001 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3002 userdata unused.
3003 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3004 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3005 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3006 Cleanup white spaces.
3007 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3008 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3009 cif and userdata unused.
3010 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3011 Likewise.
3012 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3013 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3014 formatters to silence gcc.
3015 (B_gn): Mark cif and userdata unused.
3016 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3017 unused.
3018 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3019 (B_gn): Mark cif and userdata unused.
3020 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3021 unused.
3022 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3023 (B_gn): Mark cif and userdata unused.
3024 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3025 unused.
3026 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3027 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3028 * testsuite/libffi.call/problem1.c (stub): Likewise.
3029 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3030 gcc.
3031 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3032 in the last commit for this test case in the test case itself.
3033 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3034 unused.
3035 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3036 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3037 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3038 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3039 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3040 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3041
30422006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3043
3044 * src/sh/sysv.S: Fix register numbers in the FDE for
3045 ffi_closure_SYSV.
3046
30472006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3048
3049 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3050 declaration to avoid a false negative on ix86. See PR323.
3051
30522006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3053
3054 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3055 and cast integer to void * if needed. Update the pointer to
3056 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003057
Anthony Greenc6dddbd2009-10-04 08:11:33 -040030582006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3059
3060 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3061 is fixed.
3062 * testsuite/libffi.call/nested_struct4.c: Likewise.
3063
30642006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3065
3066 * testsuite/libffi.call/return_dbl.c: New test case.
3067 * testsuite/libffi.call/return_dbl1.c: Likewise.
3068 * testsuite/libffi.call/return_dbl2.c: Likewise.
3069 * testsuite/libffi.call/return_fl.c: Likewise.
3070 * testsuite/libffi.call/return_fl1.c: Likewise.
3071 * testsuite/libffi.call/return_fl2.c: Likewise.
3072 * testsuite/libffi.call/return_fl3.c: Likewise.
3073 * testsuite/libffi.call/closure_fn6.c: Likewise.
3074
3075 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3076 definition.
3077 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3078 here to be used by other test cases too.
3079
3080 * testsuite/libffi.call/nested_struct10.c: New test case.
3081 * testsuite/libffi.call/nested_struct9.c: Likewise.
3082 * testsuite/libffi.call/nested_struct8.c: Likewise.
3083 * testsuite/libffi.call/nested_struct7.c: Likewise.
3084 * testsuite/libffi.call/nested_struct6.c: Likewise.
3085 * testsuite/libffi.call/nested_struct5.c: Likewise.
3086 * testsuite/libffi.call/nested_struct4.c: Likewise.
3087
30882006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3089
3090 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3091 * configure: Rebuilt.
3092
30932006-01-18 Jakub Jelinek <jakub@redhat.com>
3094
3095 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3096 instead do the shifting inline.
3097 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3098 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3099 and 8 byte structs, for the remaining struct sizes don't call
3100 __lshrdi3, instead do the shifting inline.
3101
31022005-12-07 Thiemo Seufer <ths@networkno.de>
3103
3104 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3105 missing parentheses.
3106 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3107 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3108 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3109 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3110 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3111 FA_0_0_OFF2.
3112 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3113 endianness bugs.
3114 (ffi_prep_closure): Improve trampoline instruction scheduling.
3115 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3116
31172005-12-03 Alan Modra <amodra@bigpond.net.au>
3118
3119 * src/powerpc/ffi.c: Formatting.
3120 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3121 (ffi_prep_args64): Likewise.
3122
31232005-09-30 Geoffrey Keating <geoffk@apple.com>
3124
3125 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3126 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3127
31282005-09-26 Tom Tromey <tromey@redhat.com>
3129
3130 * testsuite/libffi.call/float1.c (value_type): New typedef.
3131 (CANARY): New define.
3132 (main): Check for result buffer overflow.
3133 * src/powerpc/linux64.S: Handle linux64 long double returns.
3134 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3135 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3136
31372005-08-25 Alan Modra <amodra@bigpond.net.au>
3138
3139 PR target/23404
3140 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3141 homed fp args.
3142 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3143
31442005-08-11 Jakub Jelinek <jakub@redhat.com>
3145
3146 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3147 (AH_BOTTOM): Add FFI_HIDDEN definition.
3148 * configure: Rebuilt.
3149 * fficonfig.h.in: Rebuilt.
3150 * src/powerpc/ffi.c (hidden): Remove.
3151 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3152 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3153 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3154 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3155 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3156 add FFI_HIDDEN to its prototype.
3157 (ffi_closure_SYSV_inner): New.
3158 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3159 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3160
31612005-08-10 Alfred M. Szmidt <ams@gnu.org>
3162
3163 PR libffi/21819:
3164 * configure: Rebuilt.
3165 * configure.ac: Handle i*86-*-gnu*.
3166
31672005-08-09 Jakub Jelinek <jakub@redhat.com>
3168
3169 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3170 DW_CFA_offset_extended_sf rather than
3171 DW_CFA_GNU_negative_offset_extended.
3172 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3173
31742005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3175
3176 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3177 on sh3.
3178 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3179 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3180 partially on register.
3181 (ffi_closure_helper_SYSV): Likewise.
3182 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3183
31842005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3185
3186 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3187 Remove empty line.
3188 * src/sh64/ffi.c (simple_type): Remove.
3189 (return_type): Handle small structures correctly.
3190 (ffi_prep_args): Likewise.
3191 (ffi_call): Likewise.
3192 (ffi_closure_helper_SYSV): Likewise.
3193 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3194 Emit position independent code if PIC and remove wrong datalabel
3195 prefixes from EH data.
3196
31972005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3198
3199 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3200 * Makefile.in: Regenerate.
3201 * include/Makefile.in: Likewise.
3202 * testsuite/Makefile.in: Likewise.
3203 * configure.ac: Add POWERPC_FREEBSD rules.
3204 * configure: Regenerate.
3205 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3206 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3207 * src/powerpc/ffi.c: Add flags to handle small structure returns
3208 in ffi_call_SYSV.
3209 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3210 Aka FFI_SYSV.
3211 (ffi_closure_helper_SYSV): Likewise.
3212 * src/powerpc/ppc_closure.S: Add return types for small structures.
3213 * src/powerpc/sysv.S: Add bits to handle small structures for
3214 final SYSV 4 ABI.
3215
32162005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3217
3218 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3219 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3220 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3221
32222005-07-05 Randolph Chung <tausq@debian.org>
3223
3224 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3225 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3226 structures. Kill compilation warnings.
3227 (ffi_closure_inner_LINUX): Print return values as hex in debug
3228 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3229 Properly handle 5-7 byte structure returns.
3230 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3231 (FFI_TYPE_SMALL_STRUCT2): Remove.
3232 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3233 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3234 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3235 (checksmst1, checksmst2): Remove.
3236 (checksmst3): Optimize handling of 3-byte struct returns.
3237 (checksmst567): Properly handle 5-7 byte struct returns.
3238
32392005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3240
3241 PR libgcj/21943
3242 * src/mips/n32.S: Enforce PIC code.
3243 * src/mips/o32.S: Likewise.
3244
32452005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3246
3247 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3248 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003249
Anthony Greenc6dddbd2009-10-04 08:11:33 -040032502005-06-01 Alan Modra <amodra@bigpond.net.au>
3251
3252 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3253 to call ffi_closure_helper_SYSV. Append @local instead.
3254 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3255
32562005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3257
3258 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3259 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3260 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3261 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3262 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003263
Anthony Greenc6dddbd2009-10-04 08:11:33 -040032642005-05-09 Mike Stump <mrs@apple.com>
3265
3266 * configure: Regenerate.
3267
32682005-05-08 Richard Henderson <rth@redhat.com>
3269
3270 PR libffi/21285
3271 * src/alpha/osf.S: Update unwind into to match code.
3272
32732005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3274 Richard Henderson <rth@redhat.com>
3275
3276 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3277 bit 11 of flags.
3278 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3279 (ffi_prep_closure): Set carry bit if sse-used flag set.
3280 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3281 Only load sse registers if ssecount non-zero.
3282 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3283
32842005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3285
3286 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3287 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3288 * configure: Regenerate.
3289
32902005-04-20 Hans-Peter Nilsson <hp@axis.com>
3291
3292 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3293 have Tcl8.3-compatible intermediate variable.
3294
Anthony Green0cfe60e2009-12-29 10:06:04 -050032952005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003296 Hans-Peter Nilsson <hp@axis.com>
3297
3298 * Makefile.am: Add CRIS support.
3299 * configure.ac: Likewise.
3300 * Makefile.in, configure, testsuite/Makefile.in,
3301 include/Makefile.in: Regenerate.
3302 * src/cris: New directory.
3303 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3304 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3305
3306 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3307 \r?\n in output tests.
3308
33092005-04-12 Mike Stump <mrs@apple.com>
3310
3311 * configure: Regenerate.
3312
33132005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3314
3315 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003316
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033172005-03-30 Steve Ellcey <sje@cup.hp.com>
3318
3319 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3320 (ffi_sarg) Ditto.
3321 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3322 to 64 bits in ILP32 mode.
3323 Load 64 bits even for short data.
3324
33252005-03-23 Mike Stump <mrs@apple.com>
3326
3327 * src/powerpc/darwin.S: Update for -m64 multilib.
3328 * src/powerpc/darwin_closure.S: Likewise.
3329
33302005-03-21 Zack Weinberg <zack@codesourcery.com>
3331
3332 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3333 Do not set tool_include_dir.
3334 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3335 Regenerate.
3336 * include/Makefile.am: Set gcc_version and toollibffidir.
3337 * include/Makefile.in: Regenerate.
3338
33392005-02-22 Andrew Haley <aph@redhat.com>
3340
3341 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3342 odd-numbered register pairs for 64-bit integer types.
3343
33442005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3345
3346 PR libffi/20104
3347 * testsuite/libffi.call/return_ll1.c: New test case.
3348
33492005-02-11 Janis Johnson <janis187@us.ibm.com>
3350
3351 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3352 * testsuite/libffi.call/float.c: Ditto.
3353 * testsuite/libffi.call/float2.c: Ditto.
3354 * testsuite/libffi.call/float3.c: Ditto.
3355
33562005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3357
3358 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3359
33602005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3361
3362 * testsuite/libffi.special/special.exp (cxx_options): Add
3363 -shared-libgcc.
3364
33652004-12-31 Richard Henderson <rth@redhat.com>
3366
3367 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3368 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3369 offset parameters with a type parameter; deduce size and structure
3370 alignment. Update all users.
3371
33722004-12-31 Richard Henderson <rth@redhat.com>
3373
3374 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3375 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3376 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3377 into ffi_prep_closure.
3378 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3379 from scratch.
3380
33812004-12-27 Richard Henderson <rth@redhat.com>
3382
3383 * src/x86/unix64.S: Fix typo in unwind info.
3384
33852004-12-25 Richard Henderson <rth@redhat.com>
3386
3387 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3388 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3389 (merge_classes): Check for it.
3390 (SSE_CLASS_P): New.
3391 (classify_argument): Pass byte_offset by value; perform all updates
3392 inside struct case.
3393 (examine_argument): Add classes argument; handle
3394 X86_64_COMPLEX_X87_CLASS.
3395 (ffi_prep_args): Merge into ...
3396 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3397 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3398 (ffi_fill_return_value): Remove.
3399 (ffi_prep_closure): Remove dead assert.
3400 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3401 Rewrite to use struct register_args instead of va_list. Create
3402 flags for handling structure returns.
3403 * src/x86/unix64.S: Remove dead strings.
3404 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3405 stack frame with ffi_call. Handle structure returns properly.
3406 (float2sse, floatfloat2sse, double2sse): Remove.
3407 (sse2float, sse2double, sse2floatfloat): Remove.
3408 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3409 to handle structure returns properly.
3410
34112004-12-08 David Edelsohn <edelsohn@gnu.org>
3412
3413 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3414 PICFLAG.
3415 * Makefile.in: Regenerated.
3416
34172004-12-02 Richard Sandiford <rsandifo@redhat.com>
3418
3419 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3420 * configure, aclocal.m4, Makefile.in: Regenerate.
3421 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3422
34232004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3424
3425 * configure: Regenerate for libtool change.
3426
34272004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3428
3429 * configure: Regenerate for libtool reversion.
3430
34312004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3432
3433 * configure: Regenerate for libtool change.
3434
34352004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3436
3437 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3438
34392004-11-23 Richard Sandiford <rsandifo@redhat.com>
3440
3441 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3442 of jal. Use an absolute encoding for the frame information.
3443
34442004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3445
3446 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3447 * acinclude.m4: Delete logic for sincludes.
3448 * aclocal.m4, Makefile.in, configure: Regenerate.
3449 * include/Makefile: Likewise.
3450 * testsuite/Makefile: Likewise.
3451
34522004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3453
3454 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3455 on a 8-byte boundary.
3456 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3457
34582004-10-27 Richard Earnshaw <rearnsha@arm.com>
3459
3460 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3461 long long values. Round stack allocation to a multiple of 8 bytes
3462 for ATPCS compatibility.
3463 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3464 names. Handle returning long long types. Add Thumb and interworking
3465 support. Improve soft-float code.
3466
34672004-10-27 Richard Earnshaw <rearnsha@arm.com>
3468
3469 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3470 (libffi_exit): New function.
3471 (libffi_init): Build the testglue wrapper if needed.
3472
34732004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3474
3475 PR other/18138
3476 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3477
34782004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3479
3480 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3481
34822004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3483
3484 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3485 * testsuite/libffi.call/float3.c: New test case.
3486
34872004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3488
3489 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3490 the function returning a structure pointed with R2.
3491 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3492 the structure return value if T bit set. Emit position
3493 independent code and EH data if PIC.
3494
34952004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3496
3497 * Makefile.am: Add m32r support.
3498 * configure.ac: Likewise.
3499 * Makefile.in: Regenerate.
3500 * confiugre: Regenerate.
3501 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3502 (uint64, sint64, double, longdouble)
3503 * src/m32r: New directory.
3504 * src/m32r/ffi.c: New file.
3505 * src/m32r/sysv.S: Likewise.
3506 * src/m32r/ffitarget.h: Likewise.
3507
35082004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3509
3510 * testsuite/libffi.call/negint.c: New test case.
3511
35122004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3513
3514 PR libgcj/17465
3515 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3516 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3517 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3518 DYLD_LIBRARY_PATH.
3519
35202004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3521
3522 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3523 * testsuite/libffi.call/promotion.c: Likewise.
3524 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3525 whitespaces.
3526 * testsuite/libffi.call/return_sc.c: Likewise.
3527 * testsuite/libffi.call/return_uc.c: Likewise.
3528
35292004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3530
3531 * src/powerpc/darwin.S: Fix comments and identation.
3532 * src/powerpc/darwin_closure.S: Likewise.
3533
35342004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3535
3536 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3537 (ffi_prep_args): Handle longdouble arguments.
3538 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3539 longdouble.
3540 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3541 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3542 values.
3543 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3544 * src/types.c: Defined longdouble size and alignment for darwin.
3545
35462004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3547
3548 * src/powerpc/aix.S: Remove whitespaces.
3549 * src/powerpc/aix_closure.S: Likewise.
3550 * src/powerpc/asm.h: Likewise.
3551 * src/powerpc/ffi.c: Likewise.
3552 * src/powerpc/ffitarget.h: Likewise.
3553 * src/powerpc/linux64.S: Likewise.
3554 * src/powerpc/linux64_closure.S: Likewise.
3555 * src/powerpc/ppc_closure.S: Likewise.
3556 * src/powerpc/sysv.S: Likewise.
3557
35582004-08-30 Anthony Green <green@redhat.com>
3559
3560 * Makefile.am: Add frv support.
3561 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3562 * configure.ac: Read configure.host.
3563 * configure.in: Read configure.host.
3564 * configure.host: New file. frv-elf needs libgloss.
3565 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3566 alignment. This is needed to frv and shouldn't harm the others.
3567 * include/ffi_common.h (ALIGN_DOWN): New macro.
3568 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3569
35702004-08-24 David Daney <daney@avtrex.com>
3571
3572 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3573 * testsuite/libffi.call/closure_fn1.c: Likewise.
3574 * testsuite/libffi.call/closure_fn2.c Likewise.
3575 * testsuite/libffi.call/closure_fn3.c: Likewise.
3576 * testsuite/libffi.call/closure_fn4.c: Likewise.
3577 * testsuite/libffi.call/closure_fn5.c: Likewise.
3578 * testsuite/libffi.call/cls_18byte.c: Likewise.
3579 * testsuite/libffi.call/cls_19byte.c: Likewise.
3580 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3581 * testsuite/libffi.call/cls_20byte.c: Likewise.
3582 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3583 * testsuite/libffi.call/cls_24byte.c: Likewise.
3584 * testsuite/libffi.call/cls_2byte.c: Likewise.
3585 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3586 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3587 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3588 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3589 * testsuite/libffi.call/cls_4byte.c: Likewise.
3590 * testsuite/libffi.call/cls_64byte.c: Likewise.
3591 * testsuite/libffi.call/cls_6byte.c: Likewise.
3592 * testsuite/libffi.call/cls_7byte.c: Likewise.
3593 * testsuite/libffi.call/cls_8byte.c: Likewise.
3594 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3595 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3596 * testsuite/libffi.call/cls_align_double.c: Likewise.
3597 * testsuite/libffi.call/cls_align_float.c: Likewise.
3598 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3599 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3600 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3601 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3602 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3603 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3604 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3605 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3606 * testsuite/libffi.call/cls_double.c: Likewise.
3607 * testsuite/libffi.call/cls_float.c: Likewise.
3608 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3609 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3610 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3611 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3612 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3613 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3614 * testsuite/libffi.call/cls_schar.c: Likewise.
3615 * testsuite/libffi.call/cls_sint.c: Likewise.
3616 * testsuite/libffi.call/cls_sshort.c: Likewise.
3617 * testsuite/libffi.call/cls_uchar.c: Likewise.
3618 * testsuite/libffi.call/cls_uint.c: Likewise.
3619 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3620 * testsuite/libffi.call/cls_ushort.c: Likewise.
3621 * testsuite/libffi.call/nested_struct.c: Likewise.
3622 * testsuite/libffi.call/nested_struct1.c: Likewise.
3623 * testsuite/libffi.call/nested_struct2.c: Likewise.
3624 * testsuite/libffi.call/nested_struct3.c: Likewise.
3625 * testsuite/libffi.call/problem1.c: Likewise.
3626 * testsuite/libffi.special/unwindtest.cc: Likewise.
3627 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3628 to zero.
3629 * testsuite/libffi.call/cls_16byte.c: Likewise.
3630 * testsuite/libffi.call/cls_5byte.c: Likewise.
3631
36322004-08-23 David Daney <daney@avtrex.com>
3633
3634 PR libgcj/13141
3635 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3636 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3637 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3638 parameters and return types.
3639 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3640 (ffi_prep_closure): Ditto.
3641 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3642 alignment calculations.
3643 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3644 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3645
36462004-08-14 Casey Marshall <csm@gnu.org>
3647
3648 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3649 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3650 integer (O32 ABI only).
3651 (ffi_prep_closure): new function.
3652 (ffi_closure_mips_inner_O32): new function.
3653 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3654 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3655 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3656 64 bit integers correctly.
3657 (ffi_closure_O32): new function.
3658 Added DWARF-2 unwind info for both functions.
3659
36602004-08-10 Andrew Haley <aph@redhat.com>
3661
3662 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3663
36642004-08-01 Robert Millan <robertmh@gnu.org>
3665
3666 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3667 * configure: Regenerate.
3668
36692004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3670
3671 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3672 and mmap() explicitly instead of relying on preset autoconf cache
3673 variables.
3674 * aclocal.m4: Regenerate.
3675 * configure: Regenerate.
3676
36772004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3678
3679 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3680 (ffi_check_float_struct): Remove unused prototype.
3681
36822004-06-30 Geoffrey Keating <geoffk@apple.com>
3683
3684 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3685 character on Darwin, use '\n\t' instead.
3686
36872004-06-26 Matthias Klose <doko@debian.org>
3688
3689 * libtool-version: Fix typo in revision/age.
3690
36912004-06-17 Matthias Klose <doko@debian.org>
3692
3693 * libtool-version: New.
3694 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3695 * Makefile.in: Regenerate.
3696
36972004-06-15 Paolo Bonzini <bonzini@gnu.org>
3698
3699 * Makefile.am: Remove useless multilib rules.
3700 * Makefile.in: Regenerate.
3701 * aclocal.m4: Regenerate with automake 1.8.5.
3702 * configure.ac: Remove useless multilib configury.
3703 * configure: Regenerate.
3704
37052004-06-15 Paolo Bonzini <bonzini@gnu.org>
3706
3707 * .cvsignore: New file.
3708
37092004-06-10 Jakub Jelinek <jakub@redhat.com>
3710
3711 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3712 fp_done.
3713 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3714 changed from 8.
3715
37162004-06-06 Sean McNeil <sean@mcneil.com>
3717
3718 * configure.ac: Add x86_64-*-freebsd* support.
3719 * configure: Regenerate.
3720
37212004-04-26 Joe Buck <jbuck@welsh-buck.org>
3722
3723 Bug 15093
3724 * configure.ac: Test for existence of mmap and sys/mman.h before
3725 checking blacklist. Fix suggested by Jim Wilson.
3726 * configure: Regenerate.
3727
37282004-04-26 Matt Austern <austern@apple.com>
3729
3730 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3731 FDE location.
3732 * src/powerpc/darwin_closure.S: Likewise.
3733
37342004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3735
3736 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3737 error. Reported by Thomas Heller <theller@python.net>.
3738 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3739 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3740
37412004-03-20 Matthias Klose <doko@debian.org>
3742
3743 * src/pa/linux.S: Fix typo.
3744
37452004-03-19 Matthias Klose <doko@debian.org>
3746
3747 * Makefile.am: Update.
3748 * Makefile.in: Regenerate.
3749 * src/pa/ffi.h.in: Remove.
3750 * src/pa/ffitarget.h: New file.
3751
37522004-02-10 Randolph Chung <tausq@debian.org>
3753
3754 * Makefile.am: Add PA support.
3755 * Makefile.in: Regenerate.
3756 * include/Makefile.in: Regenerate.
3757 * configure.ac: Add PA target.
3758 * configure: Regenerate.
3759 * src/pa/ffi.c: New file.
3760 * src/pa/ffi.h.in: Add PA support.
3761 * src/pa/linux.S: New file.
3762 * prep_cif.c: Add PA support.
3763
37642004-03-16 Hosaka Yuji <hos@tamanegi.org>
3765
3766 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3767 double.
3768 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3769 with ecif->cif->flags.
3770 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3771 with cif->flags.
3772 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3773 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3774 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3775 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3776
37772004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3778
3779 * configure.in: Rename file to ...
3780 * configure.ac: ... this.
3781 * fficonfig.h.in: Regenerate.
3782 * Makefile.in: Regenerate.
3783 * include/Makefile.in: Regenerate.
3784 * testsuite/Makefile.in: Regenerate.
3785
37862004-03-12 Matt Austern <austern@apple.com>
3787
3788 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3789 changes in EH format resulting from addition of linkonce support.
3790 * src/powerpc/darwin_closure.S: Likewise.
3791
37922004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3793 Paolo Bonzini <bonzini@gnu.org>
3794
3795 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3796 Remove VPATH. Remove rules for object files. Remove multilib support.
3797 (AM_CCASFLAGS): Add.
3798 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3799 (AC_PREREQ): Bump version to 2.59.
3800 (AC_INIT): Fill with version info and bug address.
3801 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3802 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3803 De-precious CC so that the right flags are passed down to multilibs.
3804 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3805 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3806 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3807 * configure: Rebuilt.
3808 * aclocal.m4: Likewise.
3809 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3810 * fficonfig.h.in: Likewise.
3811
38122004-03-11 Andreas Schwab <schwab@suse.de>
3813
3814 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3815 arguments from fp registers only for the first 8 parameter slots.
3816 Don't convert a float parameter when passed in memory.
3817
38182004-03-09 Hans-Peter Nilsson <hp@axis.com>
3819
3820 * configure: Regenerate for config/accross.m4 correction.
3821
38222004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3823
3824 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3825 ecif->cif->bytes to bytes.
3826 (ffi_prep_cif_machdep): Add braces around nested if statement.
3827
38282004-02-09 Alan Modra <amodra@bigpond.net.au>
3829
3830 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3831
3832 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3833 (ffi_closure_helper_LINUX64): Fix typo.
3834 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3835 for powerpc64-*-*.
3836 * testsuite/libffi.call/float.c: Likewise.
3837 * testsuite/libffi.call/float2.c: Likewise.
3838
38392004-02-08 Alan Modra <amodra@bigpond.net.au>
3840
3841 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3842 long double function return and long double arg handling.
3843 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3844 Use "end_pfr" instead of "nf". Correct long double handling.
3845 Localise "temp".
3846 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3847 return value.
3848 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3849 space for long double return value. Adjust stack frame and offsets.
3850 Load f2 long double return.
3851
38522004-02-07 Alan Modra <amodra@bigpond.net.au>
3853
3854 * src/types.c: Use 16 byte long double for POWERPC64.
3855
38562004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3857
3858 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3859 when the structure return address is passed in %o0.
3860 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3861 (ffi_v9_layout_struct): Align the field following a nested structure
3862 on a word boundary. Use memmove instead of memcpy.
3863 (ffi_call): Update call to ffi_V9_return_struct.
3864 (ffi_prep_closure): Define 'ctx' only for V8.
3865 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3866 and ffi_closure_sparc_inner_v9.
3867 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3868 Always skip the structure return address. For structures and long
3869 doubles, copy the argument directly.
3870 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3871 if required. Shift the maximum floating-point slot accordingly. For
3872 big structures, copy the argument directly; otherwise, left-justify the
3873 argument and call ffi_v9_layout_struct to lay out the structure on
3874 the stack.
3875 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3876 (ffi_closure_v8): Pass the structure return address. Update call to
3877 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3878 Skip the 'unimp' insn when returning long doubles and structures.
3879 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3880 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3881 FFI_TYPE_INT handling. Load structures both in integers and
3882 floating-point registers on return.
3883 * README: Update status of the SPARC port.
3884
38852004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3886
3887 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3888 as of type ffi_arg.
3889 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3890
38912004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3892
3893 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3894 value as of type ffi_arg, not unsigned int.
3895
38962004-01-21 Michael Ritzert <ritzert@t-online.de>
3897
3898 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3899 of the LHS.
3900
39012004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3902
3903 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3904 Solaris.
3905
39062004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3907
3908 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3909 to void *.
3910
39112003-12-10 Richard Henderson <rth@redhat.com>
3912
3913 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3914 size_t instead of int.
3915
39162003-12-04 Hosaka Yuji <hos@tamanegi.org>
3917
3918 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3919 * testsuite/libffi.call/many_win32.c (main): Replace variable
3920 int i with unsigned long ul.
3921
3922 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3923 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3924 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3925 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3926 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3927 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3928 * testsuite/libffi.call/cls_align_float.c: Likewise.
3929 * testsuite/libffi.call/cls_align_double.c: Likewise.
3930 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3931 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3932
39332003-12-02 Hosaka Yuji <hos@tamanegi.org>
3934
3935 PR other/13221
3936 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3937 Align arguments to 32 bits.
3938
39392003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3940
3941 PR other/13221
3942 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3943 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3944 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3945 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3946 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3947 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3948
3949 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3950
39512003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3952
3953 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3954 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3955
39562003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3957
3958 * Makefile.in: Rebuilt.
3959 * configure: Likewise.
3960 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3961 the right type.
3962
39632003-11-21 Andreas Jaeger <aj@suse.de>
3964 Andreas Tobler <a.tobler@schweiz.ch>
3965
3966 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3967 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3968 * Makefile.in: Rebuilt.
3969 * aclocal.m4: Likewise.
3970 * configure: Likewise.
3971 * fficonfig.h.in: Likewise.
3972 * testsuite/lib/libffi-dg.exp: Add include dir.
3973 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3974 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3975 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3976 for ffi_closure if available.
3977 * testsuite/libffi.call/closure_fn1.c: Likewise.
3978 * testsuite/libffi.call/closure_fn2.c: Likewise.
3979 * testsuite/libffi.call/closure_fn3.c: Likewise.
3980 * testsuite/libffi.call/closure_fn4.c: Likewise.
3981 * testsuite/libffi.call/closure_fn5.c: Likewise.
3982 * testsuite/libffi.call/cls_12byte.c: Likewise.
3983 * testsuite/libffi.call/cls_16byte.c: Likewise.
3984 * testsuite/libffi.call/cls_18byte.c: Likewise.
3985 * testsuite/libffi.call/cls_19byte.c: Likewise.
3986 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3987 * testsuite/libffi.call/cls_20byte.c: Likewise.
3988 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3989 * testsuite/libffi.call/cls_24byte.c: Likewise.
3990 * testsuite/libffi.call/cls_2byte.c: Likewise.
3991 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3992 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3993 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3994 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3995 * testsuite/libffi.call/cls_4byte.c: Likewise.
3996 * testsuite/libffi.call/cls_5byte.c: Likewise.
3997 * testsuite/libffi.call/cls_64byte.c: Likewise.
3998 * testsuite/libffi.call/cls_6byte.c: Likewise.
3999 * testsuite/libffi.call/cls_7byte.c: Likewise.
4000 * testsuite/libffi.call/cls_8byte.c: Likewise.
4001 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4002 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4003 * testsuite/libffi.call/cls_double.c: Likewise.
4004 * testsuite/libffi.call/cls_float.c: Likewise.
4005 * testsuite/libffi.call/cls_schar.c: Likewise.
4006 * testsuite/libffi.call/cls_sint.c: Likewise.
4007 * testsuite/libffi.call/cls_sshort.c: Likewise.
4008 * testsuite/libffi.call/cls_uchar.c: Likewise.
4009 * testsuite/libffi.call/cls_uint.c: Likewise.
4010 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4011 * testsuite/libffi.call/cls_ushort.c: Likewise.
4012 * testsuite/libffi.call/nested_struct.c: Likewise.
4013 * testsuite/libffi.call/nested_struct1.c: Likewise.
4014 * testsuite/libffi.call/nested_struct2.c: Likewise.
4015 * testsuite/libffi.call/nested_struct3.c: Likewise.
4016 * testsuite/libffi.call/problem1.c: Likewise.
4017 * testsuite/libffi.special/unwindtest.cc: Likewise.
4018
40192003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4020
4021 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4022
40232003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4024
4025 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4026 Add -lgcc_s to additional flags.
4027
40282003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4029
4030 * configure.in, include/Makefile.am: PR libgcj/11147, install
4031 the ffitarget.h header file in a gcc versioned and target
4032 dependent place.
4033 * configure: Regenerated.
4034 * Makefile.in, include/Makefile.in: Likewise.
4035 * testsuite/Makefile.in: Likewise.
4036
40372003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4038
4039 * testsuite/libffi.call/closure_fn0.c: Print result and check
4040 with dg-output to make debugging easier.
4041 * testsuite/libffi.call/closure_fn1.c: Likewise.
4042 * testsuite/libffi.call/closure_fn2.c: Likewise.
4043 * testsuite/libffi.call/closure_fn3.c: Likewise.
4044 * testsuite/libffi.call/closure_fn4.c: Likewise.
4045 * testsuite/libffi.call/closure_fn5.c: Likewise.
4046 * testsuite/libffi.call/cls_12byte.c: Likewise.
4047 * testsuite/libffi.call/cls_16byte.c: Likewise.
4048 * testsuite/libffi.call/cls_18byte.c: Likewise.
4049 * testsuite/libffi.call/cls_19byte.c: Likewise.
4050 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4051 * testsuite/libffi.call/cls_20byte.c: Likewise.
4052 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4053 * testsuite/libffi.call/cls_24byte.c: Likewise.
4054 * testsuite/libffi.call/cls_2byte.c: Likewise.
4055 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4056 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4057 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4058 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4059 * testsuite/libffi.call/cls_4byte.c: Likewise.
4060 * testsuite/libffi.call/cls_5byte.c: Likewise.
4061 * testsuite/libffi.call/cls_64byte.c: Likewise.
4062 * testsuite/libffi.call/cls_6byte.c: Likewise.
4063 * testsuite/libffi.call/cls_7byte.c: Likewise.
4064 * testsuite/libffi.call/cls_8byte.c: Likewise.
4065 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4066 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4067 * testsuite/libffi.call/cls_double.c: Likewise.
4068 * testsuite/libffi.call/cls_float.c: Likewise.
4069 * testsuite/libffi.call/cls_schar.c: Likewise.
4070 * testsuite/libffi.call/cls_sint.c: Likewise.
4071 * testsuite/libffi.call/cls_sshort.c: Likewise.
4072 * testsuite/libffi.call/cls_uchar.c: Likewise.
4073 * testsuite/libffi.call/cls_uint.c: Likewise.
4074 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4075 * testsuite/libffi.call/cls_ushort.c: Likewise.
4076 * testsuite/libffi.call/problem1.c: Likewise.
4077
4078 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4079 static.
4080
40812003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4082
4083 * testsuite/libffi.call/cls_9byte2.c: New test case.
4084 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4085 * testsuite/libffi.call/cls_64byte.c: Likewise.
4086 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4087 * testsuite/libffi.call/cls_19byte.c: Likewise.
4088 * testsuite/libffi.call/cls_18byte.c: Likewise.
4089 * testsuite/libffi.call/closure_fn4.c: Likewise.
4090 * testsuite/libffi.call/closure_fn5.c: Likewise.
4091 * testsuite/libffi.call/cls_schar.c: Likewise.
4092 * testsuite/libffi.call/cls_sint.c: Likewise.
4093 * testsuite/libffi.call/cls_sshort.c: Likewise.
4094 * testsuite/libffi.call/nested_struct2.c: Likewise.
4095 * testsuite/libffi.call/nested_struct3.c: Likewise.
4096
40972003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4098
4099 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4100 * testsuite/libffi.call/cls_uchar.c: Likewise.
4101 * testsuite/libffi.call/cls_uint.c: Likewise.
4102 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4103 * testsuite/libffi.call/cls_ushort.c: Likewise.
4104 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4105
41062003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4107
4108 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4109 the initialization.
4110
41112003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4112
4113 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4114 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4115
41162003-10-22 David Daney <ddaney@avtrex.com>
4117
4118 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4119 __attribute__((__mode__(__SI__))) and friends.
4120
41212003-10-22 Andreas Schwab <schwab@suse.de>
4122
4123 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4124
41252003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4126
4127 * configure.in: AC_LINK_FILES(ffitarget.h).
4128 * configure: Regenerate.
4129 * Makefile.in: Likewise.
4130 * include/Makefile.in: Likewise.
4131 * testsuite/Makefile.in: Likewise.
4132 * fficonfig.h.in: Likewise.
4133
41342003-10-21 Paolo Bonzini <bonzini@gnu.org>
4135 Richard Henderson <rth@redhat.com>
4136
4137 Avoid that ffi.h includes fficonfig.h.
4138
4139 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4140 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4141 (TARGET_SRC_MIPS_SGI): Removed.
4142 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4143 (MIPS_SGI): Removed.
4144 (CLEANFILES): Removed.
4145 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4146 targets.
4147 * acconfig.h: Removed.
4148 * configure.in: Compute sizeofs only for double and long double.
4149 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4150 into AC_DEFINE instead of using acconfig.h. Create
4151 include/ffitarget.h instead of include/fficonfig.h. Rename
4152 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4153 AC_DEFINE EH_FRAME_FLAGS.
4154 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4155 (hack_DATA): Add ffitarget.h.
4156 * include/ffi.h.in: Remove all system specific definitions.
4157 Declare raw API even if it is not installed, why bother?
4158 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4159 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4160 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4161 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4162 * include/ffi_common.h (bool): Do not define.
4163 (ffi_assert): Accept failed assertion.
4164 (ffi_type_test): Return void and accept file/line.
4165 (FFI_ASSERT): Pass stringized failed assertion.
4166 (FFI_ASSERT_AT): New macro.
4167 (FFI_ASSERT_VALID_TYPE): New macro.
4168 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4169 UINT64, SINT64): Define here with gcc's __attribute__ macro
4170 instead of in ffi.h
4171 (FLOAT32, ALIGN): Define here instead of in ffi.h
4172 * include/ffi-mips.h: Removed. Its content moved to
4173 src/mips/ffitarget.h after separating assembly and C sections.
4174 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4175 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4176 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4177 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4178 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4179 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4180 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4181 (ffi_type_test): Rewritten.
4182 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4183 FFI_ASSERT_VALID_TYPE.
4184 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4185 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4186 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4187 src/s390/ffitarget.h, src/sh/ffitarget.h,
4188 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4189 src/x86/ffitarget.h: New files.
4190 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4191 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4192 src/powerpc/aix.S, src/powerpc/darwin.S,
4193 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4194 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4195 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4196 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4197 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4198 include fficonfig.h
4199
42002003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4201
4202 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4203 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4204
42052003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4206
4207 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4208 Used when FFI_DEBUG = 1.
4209
42102003-10-14 Alan Modra <amodra@bigpond.net.au>
4211
4212 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4213 and align.
4214
42152003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4216
4217 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4218 FFI_MIPS_O32 for O32 ABI.
4219
42202003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4221
4222 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4223 SPARC64. Cleanup whitespaces.
4224
42252003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4226
4227 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4228 strongarm, xscale. Cleanup whitespaces.
4229 * testsuite/libffi.call/closure_fn1.c: Likewise.
4230 * testsuite/libffi.call/closure_fn2.c: Likewise.
4231 * testsuite/libffi.call/closure_fn3.c: Likewise.
4232 * testsuite/libffi.call/cls_12byte.c: Likewise.
4233 * testsuite/libffi.call/cls_16byte.c: Likewise.
4234 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4235 * testsuite/libffi.call/cls_20byte.c: Likewise.
4236 * testsuite/libffi.call/cls_24byte.c: Likewise.
4237 * testsuite/libffi.call/cls_2byte.c: Likewise.
4238 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4239 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4240 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4241 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4242 * testsuite/libffi.call/cls_4byte.c: Likewise.
4243 * testsuite/libffi.call/cls_5byte.c: Likewise.
4244 * testsuite/libffi.call/cls_6byte.c: Likewise.
4245 * testsuite/libffi.call/cls_7byte.c: Likewise.
4246 * testsuite/libffi.call/cls_8byte.c: Likewise.
4247 * testsuite/libffi.call/cls_double.c: Likewise.
4248 * testsuite/libffi.call/cls_float.c: Likewise.
4249 * testsuite/libffi.call/cls_uchar.c: Likewise.
4250 * testsuite/libffi.call/cls_uint.c: Likewise.
4251 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4252 * testsuite/libffi.call/cls_ushort.c: Likewise.
4253 * testsuite/libffi.call/nested_struct.c: Likewise.
4254 * testsuite/libffi.call/nested_struct1.c: Likewise.
4255 * testsuite/libffi.call/problem1.c: Likewise.
4256 * testsuite/libffi.special/unwindtest.cc: Likewise.
4257 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4258
42592003-09-18 David Edelsohn <edelsohn@gnu.org>
4260
4261 * src/powerpc/aix.S: Cleanup whitespaces.
4262 * src/powerpc/aix_closure.S: Likewise.
4263
42642003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4265
4266 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4267 * src/powerpc/darwin_closure.S: Likewise.
4268 * src/powerpc/ffi_darwin.c: Likewise.
4269
42702003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4271 David Edelsohn <edelsohn@gnu.org>
4272
4273 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4274 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4275 parameter stack.
4276 * src/powerpc/darwin_closure.S: Likewise.
4277 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4278 according to the Darwin/AIX ABI.
4279 (ffi_prep_cif_machdep): Likewise.
4280 (ffi_closure_helper_DARWIN): Likewise.
4281 Remove the outgoing parameter stack logic. Simplify the evaluation
4282 of the different CASE types.
4283 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4284 statement in the trampoline code.
4285
42862003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4287
4288 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4289 for the register size.
4290 (ffi_closure_helper_SYSV): Handle the structure return value
4291 address correctly.
4292 (ffi_closure_helper_SYSV): Return the appropriate type when
4293 the registers are used for the structure return value.
4294 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4295 the 64-bit return value. Update copyright years.
4296
42972003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4298
4299 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4300 srcdir for ffi_mips.h.
4301
43022003-09-12 Alan Modra <amodra@bigpond.net.au>
4303
4304 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4305 structure size.
4306 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4307 placement of float result.
4308 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4309 cast of "resp" for big-endian 64 bit machines.
4310
43112003-09-11 Alan Modra <amodra@bigpond.net.au>
4312
4313 * src/types.c (double, longdouble): Merge identical SH and ARM
4314 typedefs, and add POWERPC64.
4315 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4316 struct split over gpr and rest.
4317 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4318 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4319
43202003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4321
4322 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4323 passing correctly.
4324
43252003-09-09 Alan Modra <amodra@bigpond.net.au>
4326
4327 * configure: Regenerate.
4328
43292003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4330
4331 * Makefile.am: Remove build rules for ffitest.
4332 * Makefile.in: Rebuilt.
4333
43342003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4335
4336 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4337 about implicit declaration of abort().
4338
43392003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4340
4341 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4342 * Makefile.in: Rebuilt.
4343 * configure.in: Add dejagnu test framework.
4344 * configure: Rebuilt.
4345
4346 * testsuite/Makefile.am: New file.
4347 * testsuite/Makefile.in: Built
4348 * testsuite/lib/libffi-dg.exp: New file.
4349 * testsuite/config/default.exp: Likewise.
4350 * testsuite/libffi.call/call.exp: Likewise.
4351 * testsuite/libffi.call/ffitest.h: Likewise.
4352 * testsuite/libffi.call/closure_fn0.c: Likewise.
4353 * testsuite/libffi.call/closure_fn1.c: Likewise.
4354 * testsuite/libffi.call/closure_fn2.c: Likewise.
4355 * testsuite/libffi.call/closure_fn3.c: Likewise.
4356 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4357 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4358 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4359 * testsuite/libffi.call/cls_2byte.c: Likewise.
4360 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4361 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4362 * testsuite/libffi.call/cls_4byte.c: Likewise.
4363 * testsuite/libffi.call/cls_5byte.c: Likewise.
4364 * testsuite/libffi.call/cls_6byte.c: Likewise.
4365 * testsuite/libffi.call/cls_7byte.c: Likewise.
4366 * testsuite/libffi.call/cls_8byte.c: Likewise.
4367 * testsuite/libffi.call/cls_12byte.c: Likewise.
4368 * testsuite/libffi.call/cls_16byte.c: Likewise.
4369 * testsuite/libffi.call/cls_20byte.c: Likewise.
4370 * testsuite/libffi.call/cls_24byte.c: Likewise.
4371 * testsuite/libffi.call/cls_double.c: Likewise.
4372 * testsuite/libffi.call/cls_float.c: Likewise.
4373 * testsuite/libffi.call/cls_uchar.c: Likewise.
4374 * testsuite/libffi.call/cls_uint.c: Likewise.
4375 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4376 * testsuite/libffi.call/cls_ushort.c: Likewise.
4377 * testsuite/libffi.call/float.c: Likewise.
4378 * testsuite/libffi.call/float1.c: Likewise.
4379 * testsuite/libffi.call/float2.c: Likewise.
4380 * testsuite/libffi.call/many.c: Likewise.
4381 * testsuite/libffi.call/many_win32.c: Likewise.
4382 * testsuite/libffi.call/nested_struct.c: Likewise.
4383 * testsuite/libffi.call/nested_struct1.c: Likewise.
4384 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4385 * testsuite/libffi.call/problem1.c: Likewise.
4386 * testsuite/libffi.call/promotion.c: Likewise.
4387 * testsuite/libffi.call/return_ll.c: Likewise.
4388 * testsuite/libffi.call/return_sc.c: Likewise.
4389 * testsuite/libffi.call/return_uc.c: Likewise.
4390 * testsuite/libffi.call/strlen.c: Likewise.
4391 * testsuite/libffi.call/strlen_win32.c: Likewise.
4392 * testsuite/libffi.call/struct1.c: Likewise.
4393 * testsuite/libffi.call/struct2.c: Likewise.
4394 * testsuite/libffi.call/struct3.c: Likewise.
4395 * testsuite/libffi.call/struct4.c: Likewise.
4396 * testsuite/libffi.call/struct5.c: Likewise.
4397 * testsuite/libffi.call/struct6.c: Likewise.
4398 * testsuite/libffi.call/struct7.c: Likewise.
4399 * testsuite/libffi.call/struct8.c: Likewise.
4400 * testsuite/libffi.call/struct9.c: Likewise.
4401 * testsuite/libffi.special/special.exp: New file.
4402 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4403 * testsuite/libffi.special/unwindtest.cc: Likewise.
4404
4405
44062003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4407
4408 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4409 copyright years.
4410
44112003-08-02 Alan Modra <amodra@bigpond.net.au>
4412
4413 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4414 structure passing.
4415 (ffi_closure_helper_LINUX64): Likewise.
4416 * src/powerpc/linux64.S: Remove code writing to parm save area.
4417 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4418 address in lr from ffi_closure_helper_LINUX64 call to calculate
4419 table address. Optimize function tail.
4420
44212003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4422
4423 * src/sparc/ffi.c: Handle all floating point registers.
4424 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4425
44262003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4427
4428 * README: Note that libffi is not part of GCC. Update the project
4429 URL and status.
4430
44312003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4432
4433 * src/powerpc/ppc_closure.S: Include ffi.h.
4434
44352003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4436
4437 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4438 Use C style comments.
4439
44402003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4441
4442 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4443 * Makefile.in: Regenerate.
4444 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4445 * configure: Regenerate.
4446 * include/ffi.h.in: Add SHmedia support.
4447 * src/sh64/ffi.c: New file.
4448 * src/sh64/sysv.S: New file.
4449
44502003-05-16 Jakub Jelinek <jakub@redhat.com>
4451
4452 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4453 should be read-only.
4454 * configure: Rebuilt.
4455 * fficonfig.h.in: Rebuilt.
4456 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4457 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4458 * src/powerpc/linux64.S: Likewise.
4459 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4460 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4461 if -fpic/-fPIC/-mrelocatable.
4462 * src/powerpc/powerpc_closure.S: Likewise.
4463 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4464 #write in .eh_frame flags.
4465 * src/sparc/v9.S: Likewise.
4466 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4467 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4468 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4469
44702003-05-07 Jeff Sturm <jsturm@one-point.com>
4471
4472 Fixes PR bootstrap/10656
4473 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4474 support for .register pseudo-op.
4475 * src/sparc/v8.S: Use it.
4476 * fficonfig.h.in: Rebuilt.
4477 * configure: Rebuilt.
4478
44792003-04-18 Jakub Jelinek <jakub@redhat.com>
4480
4481 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4482 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4483 Make it the default on POWERPC64.
4484 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4485 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4486 * configure: Rebuilt.
4487 * src/powerpc/ffi.c (hidden): Define.
4488 (ffi_prep_args_SYSV): Renamed from
4489 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4490 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4491 ASM_NEEDS_REGISTERS64): New.
4492 (ffi_prep_args64): New function.
4493 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4494 (ffi_call): Likewise.
4495 (ffi_prep_closure): Likewise.
4496 (flush_icache): Surround by #ifndef POWERPC64.
4497 (ffi_dblfl): New union type.
4498 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4499 (ffi_closure_helper_LINUX64): New function.
4500 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4501 __powerpc64__.
4502 * src/powerpc/sysv.S: Likewise.
4503 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4504 * src/powerpc/linux64.S: New file.
4505 * src/powerpc/linux64_closure.S: New file.
4506 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4507 src/powerpc/linux64_closure.S.
4508 (TARGET_SRC_POWERPC): Likewise.
4509
4510 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4511 closure_test_fn3): Fix result printing on big-endian 64-bit
4512 machines.
4513 (main): Print tst2_arg instead of uninitialized tst2_result.
4514
4515 * src/ffitest.c (main): Hide what closure pointer really points to
4516 from the compiler.
4517
45182003-04-16 Richard Earnshaw <rearnsha@arm.com>
4519
4520 * configure.in (arm-*-netbsdelf*): Add configuration.
4521 (configure): Regenerated.
4522
45232003-04-04 Loren J. Rittle <ljrittle@acm.org>
4524
4525 * include/Makefile.in: Regenerate.
4526
45272003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4528
4529 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4530 bit mode.
4531 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4532 Receive closure pointer through parameter, read args using
4533 __builtin_dwarf_cfa.
4534 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4535
45362003-03-12 Andreas Schwab <schwab@suse.de>
4537
4538 * configure.in: Avoid trailing /. in toolexeclibdir.
4539 * configure: Rebuilt.
4540
45412003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4542
4543 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4544
45452003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4546
4547 * libffi/src/powerpc/darwin_closure.S:
4548 Fix alignement bug, allocate 8 bytes for the result.
4549 * libffi/src/powerpc/aix_closure.S:
4550 Likewise.
4551 * libffi/src/powerpc/ffi_darwin.c:
4552 Update stackframe description for aix/darwin_closure.S.
4553
45542003-02-06 Jakub Jelinek <jakub@redhat.com>
4555
4556 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4557 attribute.
4558
45592003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4560 Andreas Schwab <schwab@suse.de>
4561
4562 * configure.in: Adjust command to source config-ml.in to account
4563 for changes to the libffi_basedir definition.
4564 (libffi_basedir): Remove ${srcdir} from value and include trailing
4565 slash if nonempty.
4566
4567 * configure: Regenerate.
4568
45692003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4570
4571 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4572
45732003-01-28 Andrew Haley <aph@redhat.com>
4574
4575 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4576 * src/x86/ffi64.c (ffi_prep_closure): New.
4577 (ffi_closure_UNIX64_inner): New.
4578 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4579
45802003-01-27 Alexandre Oliva <aoliva@redhat.com>
4581
4582 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4583 Remove USE_LIBDIR conditional.
4584 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4585 * Makefile.in, configure: Rebuilt.
4586
45872003-01027 David Edelsohn <edelsohn@gnu.org>
4588
4589 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4590 * Makefile.in: Regenerate.
4591
45922003-01-22 Andrew Haley <aph@redhat.com>
4593
4594 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4595 unwind info.
4596
45972003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4598
4599 * src/powerpc/darwin.S: Add unwind info.
4600 * src/powerpc/darwin_closure.S: Likewise.
4601
46022003-01-14 Andrew Haley <aph@redhat.com>
4603
4604 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4605 (ffi_prep_cif_machdep): Likewise.
4606 * src/x86/unix64.S: Add unwind info.
4607
46082003-01-14 Andreas Jaeger <aj@suse.de>
4609
4610 * src/ffitest.c (main): Only use ffi_closures if those are
4611 supported.
4612
46132003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4614
4615 * libffi/src/ffitest.c
4616 add closure testcases
4617
46182003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4619
4620 * libffi/src/powerpc/ffi.c
4621 fix alignment bug for float (4 byte aligned iso 8 byte)
4622
46232003-01-09 Geoffrey Keating <geoffk@apple.com>
4624
4625 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4626 * src/powerpc/darwin.S: Remove RCS version string.
4627
46282003-01-03 Jeff Sturm <jsturm@one-point.com>
4629
4630 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4631 * src/ffitest.c (main): Use static storage for closure.
4632 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4633 * src/sparc/v8.S (ffi_closure_v8): New.
4634 * src/sparc/v9.S (ffi_closure_v9): New.
4635
46362002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4637
4638 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4639 enumeration for X86_WIN32.
4640 * src/x86/win32.S: Added ffi_call_STDCALL function
4641 definition.
4642 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4643 switch cases for recognising FFI_STDCALL and
4644 calling ffi_call_STDCALL if target is X86_WIN32.
4645 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4646 stdcall versions of the "my_strlen" and "many"
4647 test functions (for X86_WIN32).
4648 Added test cases to test stdcall invocation using
4649 these functions.
4650
46512002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4652
4653 * src/sh/sysv.S: Add DWARF2 unwind info.
4654
46552002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4656
4657 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4658
46592002-11-26 Jim Wilson <wilson@redhat.com>
4660
4661 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4662
46632002-11-23 H.J. Lu <hjl@gnu.org>
4664
4665 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4666 Include ../config/accross.m4.
4667 * aclocal.m4; Rebuild.
4668 * configure: Likewise.
4669
46702002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4671
4672 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4673
46742002-11-11 DJ Delorie <dj@redhat.com>
4675
4676 * configure.in: Look for common files in the right place.
4677
46782002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4679
4680 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4681 raw data as _Jv_word values, not ffi_raw.
4682 (ffi_java_ptrarray_to_raw): Likewise.
4683 (ffi_java_rvalue_to_raw): New function.
4684 (ffi_java_raw_call): Call it.
4685 (ffi_java_raw_to_rvalue): New function.
4686 (ffi_java_translate_args): Call it.
4687 * src/ffitest.c (closure_test_fn): Interpret return value
4688 as ffi_arg, not int.
4689 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4690 FFI_TYPE_POINTER case.
4691 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4692 values extended to word size.
4693
46942002-10-02 Andreas Jaeger <aj@suse.de>
4695
4696 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4697
46982002-10-01 Bo Thorsen <bo@smetana.suse.de>
4699
4700 * include/ffi.h.in: Fix i386 win32 compilation.
4701
47022002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4703
4704 * configure.in: Add s390x-*-linux-* target.
4705 * configure: Regenerate.
4706 * include/ffi.h.in: Define S390X for s390x targets.
4707 (FFI_CLOSURES): Define for s390/s390x.
4708 (FFI_TRAMPOLINE_SIZE): Likewise.
4709 (FFI_NATIVE_RAW_API): Likewise.
4710 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4711 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4712 * src/s390/ffi.c: Major rework of existing code. Add support for
4713 s390x targets. Add closure support.
4714 * src/s390/sysv.S: Likewise.
4715
47162002-09-29 Richard Earnshaw <rearnsha@arm.com>
4717
4718 * src/arm/sysv.S: Fix typo.
4719
47202002-09-28 Richard Earnshaw <rearnsha@arm.com>
4721
4722 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4723 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4724 (ffi_call_SYSV): Handle soft-float.
4725
47262002-09-27 Bo Thorsen <bo@suse.de>
4727
4728 * include/ffi.h.in: Fix multilib x86-64 support.
4729
47302002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4731
4732 * Makefile.am (all-multi): Fix multilib parallel build.
4733
47342002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4735
4736 * configure.in (sh[34]*-*-linux*): Add brackets.
4737 * configure: Regenerate.
4738
47392002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4740
4741 * Makefile.am: Add SH support.
4742 * Makefile.in: Regenerate.
4743 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4744 * configure: Regenerate.
4745 * include/ffi.h.in: Add SH support.
4746 * src/sh/ffi.c: New file.
4747 * src/sh/sysv.S: New file.
4748 * src/types.c: Add SH support.
4749
47502002-07-16 Bo Thorsen <bo@suse.de>
4751
4752 * src/x86/ffi64.c: New file that adds x86-64 support.
4753 * src/x86/unix64.S: New file that handles argument setup for
4754 x86-64.
4755 * src/x86/sysv.S: Don't use this on x86-64.
4756 * src/x86/ffi.c: Don't use this on x86-64.
4757 Remove unused vars.
4758 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4759 for x86-64.
4760 * src/ffitest.c (struct6): New test that tests a special case in
4761 the x86-64 ABI.
4762 (struct7): Likewise.
4763 (struct8): Likewise.
4764 (struct9): Likewise.
4765 (closure_test_fn): Silence warning about this when it's not used.
4766 (main): Add the new tests.
4767 (main): Fix a couple of wrong casts and silence some compiler warnings.
4768 * include/ffi.h.in: Add x86-64 ABI definition.
4769 * fficonfig.h.in: Regenerate.
4770 * Makefile.am: Add x86-64 support.
4771 * configure.in: Likewise.
4772 * Makefile.in: Regenerate.
4773 * configure: Likewise.
4774
47752002-06-24 Bo Thorsen <bo@suse.de>
4776
4777 * src/types.c: Merge settings for similar architectures.
4778 Add x86-64 sizes and alignments.
4779
47802002-06-23 Bo Thorsen <bo@suse.de>
4781
4782 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4783 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4784 * src/mips/ffi.c (ffi_prep_args): Likewise.
4785 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4786
47872002-07-18 H.J. Lu (hjl@gnu.org)
4788
4789 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4790 (libffi_la_SOURCES): Support MIPS_LINUX.
4791 (libffi_convenience_la_SOURCES): Likewise.
4792 * Makefile.in: Regenerated.
4793
4794 * configure.in (mips64*-*): Skip.
4795 (mips*-*-linux*): New.
4796 * configure: Regenerated.
4797
4798 * src/mips/ffi.c: Include <sgidefs.h>.
4799
48002002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4801
4802 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4803
48042002-05-27 Roger Sayle <roger@eyesopen.com>
4805
4806 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4807
48082002-05-27 Bo Thorsen <bo@suse.de>
4809
4810 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4811 fix formatting.
4812
48132002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4814
4815 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4816 beginning of function (for older apple cc).
4817
48182002-05-08 Alexandre Oliva <aoliva@redhat.com>
4819
4820 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4821 script entry, and set LD to it when configuring multilibs.
4822 * configure: Rebuilt.
4823
48242002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4825
4826 * configure.in (sparc64-*-netbsd*): Add target.
4827 (sparc-*-netbsdelf*): Likewise.
4828 * configure: Regenerate.
4829
48302002-04-28 David S. Miller <davem@redhat.com>
4831
4832 * configure.in, configure: Fix SPARC test in previous change.
4833
48342002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4835
4836 * Makefile.am: Add Linux for S/390 support.
4837 * Makefile.in: Regenerate.
4838 * configure.in: Add Linux for S/390 support.
4839 * configure: Regenerate.
4840 * include/ffi.h.in: Add Linux for S/390 support.
4841 * src/s390/ffi.c: New file from libffi CVS tree.
4842 * src/s390/sysv.S: New file from libffi CVS tree.
4843
48442002-04-28 Jakub Jelinek <jakub@redhat.com>
4845
4846 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4847 %r_disp32().
4848 * src/sparc/v8.S: Use it.
4849 * src/sparc/v9.S: Likewise.
4850 * fficonfig.h.in: Rebuilt.
4851 * configure: Rebuilt.
4852
48532002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4854
4855 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4856 correctly.
4857 * src/ia64/unix.S: Add unwind information. Fix comments.
4858 Save sp in a way that's compatible with unwind info.
4859 (ffi_call_unix): Correctly restore sp in all cases.
4860 * src/ia64/ffi.c: Add, fix comments.
4861
48622002-04-08 Jakub Jelinek <jakub@redhat.com>
4863
4864 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4865
48662002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4867
4868 * configure.in (alpha*-*-netbsd*): Add target.
4869 * configure: Regenerate.
4870
48712002-04-04 Jeff Sturm <jsturm@one-point.com>
4872
4873 * src/sparc/v8.S: Add unwind info.
4874 * src/sparc/v9.S: Likewise.
4875
48762002-03-30 Krister Walfridsson <cato@df.lth.se>
4877
4878 * configure.in: Enable i*86-*-netbsdelf*.
4879 * configure: Rebuilt.
4880
48812002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4882
4883 PR other/2620
4884 * src/mips/n32.s: Delete
4885 * src/mips/o32.s: Delete
4886
48872002-03-21 Loren J. Rittle <ljrittle@acm.org>
4888
4889 * configure.in: Enable alpha*-*-freebsd*.
4890 * configure: Rebuilt.
4891
48922002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4893
4894 * Makefile.am: libfficonvenience -> libffi_convenience.
4895 * Makefile.in: Rebuilt.
4896
4897 * Makefile.am: Define ffitest_OBJECTS.
4898 * Makefile.in: Rebuilt.
4899
49002002-03-07 Andreas Tobler <toa@pop.agri.ch>
4901 David Edelsohn <edelsohn@gnu.org>
4902
4903 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4904 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4905 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4906 * Makefile.in: Regenerate.
4907 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4908 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4909 (flush_icache, flush_range): New functions.
4910 (ffi_closure_helper_DARWIN): New function.
4911 * src/powerpc/aix_closure.S: New file.
4912 * src/powerpc/darwin_closure.S: New file.
4913
49142002-02-24 Jeff Sturm <jsturm@one-point.com>
4915
4916 * include/ffi.h.in: Add typedef for ffi_arg.
4917 * src/ffitest.c (main): Declare rint with ffi_arg.
4918
49192002-02-21 Andreas Tobler <toa@pop.agri.ch>
4920
4921 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4922 number of GPRs for floating-point arguments.
4923
49242002-01-31 Anthony Green <green@redhat.com>
4925
4926 * configure: Rebuilt.
4927 * configure.in: Replace CHECK_SIZEOF and endian tests with
4928 cross-compiler friendly macros.
4929 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4930 macros.
4931
49322002-01-18 David Edelsohn <edelsohn@gnu.org>
4933
4934 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4935 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4936
49372002-01-17 David Edelsohn <edelsohn@gnu.org>
4938
4939 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4940 (TARGET_SRC_POWERPC_AIX): New.
4941 (POWERPC_AIX): New stanza.
4942 * Makefile.in: Regenerate.
4943 * configure.in: Add AIX case.
4944 * configure: Regenerate.
4945 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4946 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4947 size. Fix "long double" support.
4948 (ffi_call): Add FFI_AIX case.
4949 * src/powerpc/aix.S: New.
4950
49512001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4952
4953 Implement Darwin PowerPC ABI.
4954 * configure.in: Handle powerpc-*-darwin*.
4955 * Makefile.am: Set source files for POWERPC_DARWIN.
4956 * configure: Rebuilt.
4957 * Makefile.in: Rebuilt.
4958 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4959 POWERPC_DARWIN.
4960 * src/powerpc/darwin.S: New file.
4961 * src/powerpc/ffi_darwin.c: New file.
4962
49632001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4964
4965 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4966
49672001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4968
4969 * src/x86/sysv.S: Avoid gas-only .balign directive.
4970 Use C style comments.
4971
49722001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4973
4974 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4975 Fixes PR bootstrap/3563.
4976
49772001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4978
4979 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4980
49812001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4982
4983 * configure.in: Recognize sparc*-sun-* host.
4984 * configure: Regenerate.
4985
49862001-06-06 Andrew Haley <aph@redhat.com>
4987
4988 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4989
49902001-06-03 Andrew Haley <aph@redhat.com>
4991
4992 * src/alpha/osf.S: Add unwind info.
4993 * src/powerpc/sysv.S: Add unwind info.
4994 * src/powerpc/ppc_closure.S: Likewise.
4995
49962000-05-31 Jeff Sturm <jsturm@one-point.com>
4997
4998 * configure.in: Fix AC_ARG_ENABLE usage.
4999 * configure: Rebuilt.
5000
50012001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5002
5003 * configure.in: Remove warning about beta code.
5004 * configure: Rebuilt.
5005
50062001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5007
5008 * src/ia64/unix.S: Restore stack pointer when returning from
5009 ffi_closure_UNIX.
5010 * src/ia64/ffi.c: Fix typo in comment.
5011
50122001-04-18 Jim Wilson <wilson@redhat.com>
5013
5014 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5015 to eliminate RAW DV.
5016
50172001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5018
5019 * Makefile.am: Make a libtool convenience library.
5020 * Makefile.in: Rebuilt.
5021
50222001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5023
5024 * configure.in: Use different syntax for subdirectory creation.
5025 * configure: Rebuilt.
5026
50272001-03-27 Jon Beniston <jon@beniston.com>
5028
5029 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5030 * configure: Rebuilt.
5031 * Makefile.am: Added X86_WIN32 target support.
5032 * Makefile.in: Rebuilt.
5033
5034 * include/ffi.h.in: Added X86_WIN32 target support.
5035
5036 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5037 * src/types.c: Added X86_WIN32 target support.
5038
5039 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5040 stuff removed and made to work with CygWin's gas.
5041
50422001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5043
5044 * configure.in: Make target subdirectory in build dir.
5045 * Makefile.am: Override suffix based rules to specify correct output
5046 subdirectory.
5047 * Makefile.in: Rebuilt.
5048 * configure: Rebuilt.
5049
50502001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5051
5052 * src/powerpc/ppc_closure.S: New file.
5053 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5054 involving long long and register pairs.
5055 (ffi_prep_closure): New function.
5056 (flush_icache): Likewise.
5057 (ffi_closure_helper_SYSV): Likewise.
5058 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5059 (FFI_TRAMPOLINE_SIZE): Likewise.
5060 (FFI_NATIVE_RAW_API): Likewise.
5061 * Makefile.in: Rebuilt.
5062 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5063 (TARGET_SRC_POWERPC): Likewise.
5064
50652001-03-19 Tom Tromey <tromey@redhat.com>
5066
5067 * Makefile.in: Rebuilt.
5068 * Makefile.am (ffitest_LDFLAGS): New macro.
5069
50702001-03-02 Nick Clifton <nickc@redhat.com>
5071
5072 * include/ffi.h.in: Remove RCS ident string.
5073 * include/ffi_mips.h: Remove RCS ident string.
5074 * src/debug.c: Remove RCS ident string.
5075 * src/ffitest.c: Remove RCS ident string.
5076 * src/prep_cif.c: Remove RCS ident string.
5077 * src/types.c: Remove RCS ident string.
5078 * src/alpha/ffi.c: Remove RCS ident string.
5079 * src/alpha/osf.S: Remove RCS ident string.
5080 * src/arm/ffi.c: Remove RCS ident string.
5081 * src/arm/sysv.S: Remove RCS ident string.
5082 * src/mips/ffi.c: Remove RCS ident string.
5083 * src/mips/n32.S: Remove RCS ident string.
5084 * src/mips/o32.S: Remove RCS ident string.
5085 * src/sparc/ffi.c: Remove RCS ident string.
5086 * src/sparc/v8.S: Remove RCS ident string.
5087 * src/sparc/v9.S: Remove RCS ident string.
5088 * src/x86/ffi.c: Remove RCS ident string.
5089 * src/x86/sysv.S: Remove RCS ident string.
5090
50912001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5092
5093 * include/ffi.h.in: Change sourceware.cygnus.com references to
5094 gcc.gnu.org.
5095
50962000-12-09 Richard Henderson <rth@redhat.com>
5097
5098 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5099 (ffi_closure_osf_inner): Index rather than increment avalue
5100 and arg_types. Give ffi_closure_osf the raw return value type.
5101 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5102 promotion.
5103
51042000-12-07 Richard Henderson <rth@redhat.com>
5105
5106 * src/raw_api.c (ffi_translate_args): Fix typo.
5107 (ffi_prep_closure): Likewise.
5108
5109 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5110 FFI_TRAMPOLINE_SIZE.
5111 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5112 cif->bytes for new ffi_call_osf implementation.
5113 (ffi_prep_args): Absorb into ...
5114 (ffi_call): ... here. Do all stack allocation here and
5115 avoid a callback function.
5116 (ffi_prep_closure, ffi_closure_osf_inner): New.
5117 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5118 (ffi_closure_osf): New.
5119
51202000-09-10 Alexandre Oliva <aoliva@redhat.com>
5121
5122 * config.guess, config.sub, install-sh: Removed.
5123 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5124 * Makefile.in: Rebuilt.
5125
5126 * acinclude.m4: Include libtool macros from the top level.
5127 * aclocal.m4, configure: Rebuilt.
5128
51292000-08-22 Alexandre Oliva <aoliva@redhat.com>
5130
5131 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5132 * configure: Rebuilt.
5133
51342000-05-11 Scott Bambrough <scottb@netwinder.org>
5135
5136 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5137 memory correctly. Use conditional instructions, not branches where
5138 possible.
5139
51402000-05-04 Tom Tromey <tromey@cygnus.com>
5141
5142 * configure: Rebuilt.
5143 * configure.in: Match `arm*-*-linux-*'.
5144 From Chris Dornan <cdornan@arm.com>.
5145
51462000-04-28 Jakub Jelinek <jakub@redhat.com>
5147
5148 * Makefile.am (SUBDIRS): Define.
5149 (AM_MAKEFLAGS): Likewise.
5150 (Multilib support.): Add section.
5151 * Makefile.in: Rebuilt.
5152 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5153 New variables. Set for gcc using -print-multi-lib. Export them
5154 to libtool.
5155 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5156 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5157 for -shared links.
5158 (extra_compiler_flags_value, extra_compiler_flags): Check these
5159 for extra compiler options which need to be passed down in
5160 compiler_flags.
5161
51622000-04-16 Anthony Green <green@redhat.com>
5163
5164 * configure: Rebuilt.
5165 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5166
51672000-04-14 Jakub Jelinek <jakub@redhat.com>
5168
5169 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5170 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5171 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5172 Replace all void * sizeofs with sizeof(int).
5173 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5174 different than DOUBLE.
5175 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5176 (ffi_prep_args_v9): New function.
5177 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5178 (ffi_V9_return_struct): New function.
5179 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5180 32bit code (not yet cross-arch calls).
5181 * src/sparc/v8.S: Add struct return delay nop.
5182 Handle long long.
5183 * src/sparc/v9.S: New file.
5184 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5185 is used on sparc64 only for structures larger than 32 bytes.
5186 Pass by reference for structures is done for structure arguments
5187 larger than 16 bytes.
5188 * src/ffitest.c (main): Use 64bit rint on sparc64.
5189 Run long long tests on sparc.
5190 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5191 sparc64.
5192 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5193 on sparc64.
5194 * configure.in (sparc-*-linux*): New supported target.
5195 (sparc64-*-linux*): Likewise.
5196 * configure: Rebuilt.
5197 * Makefile.am: Add v9.S to SPARC files.
5198 * Makefile.in: Likewise.
5199 (LINK): Surround $(CCLD) into double quotes, so that multilib
5200 compiles work correctly.
5201
52022000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5203
5204 * configure: Rebuilt.
5205 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5206 proposed by Bryce McKinlay.
5207
52082000-03-20 Tom Tromey <tromey@cygnus.com>
5209
5210 * Makefile.in: Hand edit for java_raw_api.lo.
5211
52122000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5213
5214 * config.guess, config.sub: Update from the gcc tree.
5215 Fix for PR libgcj/168.
5216
52172000-03-03 Tom Tromey <tromey@cygnus.com>
5218
5219 * Makefile.in: Fixed ia64 by hand.
5220
5221 * configure: Rebuilt.
5222 * configure.in (--enable-multilib): New option.
5223 (libffi_basedir): New subst.
5224 (AC_OUTPUT): Added multilib code.
5225
52262000-03-02 Tom Tromey <tromey@cygnus.com>
5227
5228 * Makefile.in: Rebuilt.
5229 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5230 directory name.
5231
52322000-02-25 Hans Boehm <boehm@acm.org>
5233
5234 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5235 files.
5236 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5237 list.
5238 (ffi_prep_raw_closure): Use ffi_translate_args, not
5239 ffi_closure_translate.
5240 * src/java_raw_api.c: New file.
5241 * src/ffitest.c (closure_test_fn): New function.
5242 (main): Define `rint' as long long on IA64. Added new test when
5243 FFI_CLOSURES is defined.
5244 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5245 (ffi_abi): Recognize IA64.
5246 (ffi_raw): Added `flt' field.
5247 Added "Java raw API" code.
5248 * configure.in: Recognize ia64.
5249 * Makefile.am (TARGET_SRC_IA64): New macro.
5250 (libffi_la_common_SOURCES): Added java_raw_api.c.
5251 (libffi_la_SOURCES): Define in IA64 case.
5252
52532000-01-04 Tom Tromey <tromey@cygnus.com>
5254
5255 * Makefile.in: Rebuilt with newer automake.
5256
52571999-12-31 Tom Tromey <tromey@cygnus.com>
5258
5259 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5260
52611999-09-01 Tom Tromey <tromey@cygnus.com>
5262
5263 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5264 undefs.
5265 * fficonfig.h.in: Rebuilt.
5266 * configure: Rebuilt.
5267 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5268 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5269 * acconfig.h: Don't #undef PACKAGE or VERSION.
5270
52711999-08-09 Anthony Green <green@cygnus.com>
5272
5273 * include/ffi.h.in: Try to work around messy header problem
5274 with PACKAGE and VERSION.
5275
5276 * configure: Rebuilt.
5277 * configure.in: Change version to 2.00-beta.
5278
5279 * fficonfig.h.in: Rebuilt.
5280 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5281
5282 * src/x86/ffi.c (ffi_raw_call): Rename.
5283
52841999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5285
5286 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5287 (ffi_prep_incoming_args_SYSV): Ditto.
5288 (ffi_prep_closure): Ditto.
5289 (ffi_closure_raw_SYSV): Ditto.
5290 (ffi_prep_raw_closure): More ditto.
5291 (ffi_call_raw): Final ditto.
5292
5293 * include/ffi.h.in: Add definitions for closure and raw API.
5294
5295 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5296 FFI_TYPE_UINT64.
5297
5298 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5299
5300 * src/raw_api.c: New file.
5301
5302 * include/ffi.h.in (ffi_raw): New type.
5303 (UINT_ARG, SINT_ARG): New defines.
5304 (ffi_closure, ffi_raw_closure): New types.
5305 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5306
5307 * configure.in: Add check for endianness and sizeof void*.
5308
5309 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5310 instead of directly.
5311
5312 * configure: Rebuilt.
5313
5314Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5315
5316 * configure.in: Add x86 and powerpc BeOS configurations.
5317 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5318
53191999-05-09 Anthony Green <green@cygnus.com>
5320
5321 * configure.in: Add warning about this being beta code.
5322 Remove src/Makefile.am from the picture.
5323 * configure: Rebuilt.
5324
5325 * Makefile.am: Move logic from src/Makefile.am. Add changes
5326 to support libffi as a target library.
5327 * Makefile.in: Rebuilt.
5328
5329 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5330 Upgraded to new autoconf, automake, libtool.
5331
5332 * README: Tweaks.
5333
5334 * LICENSE: Update copyright date.
5335
5336 * src/Makefile.am, src/Makefile.in: Removed.
5337
53381998-11-29 Anthony Green <green@cygnus.com>
5339
5340 * include/ChangeLog: Removed.
5341 * src/ChangeLog: Removed.
5342 * src/mips/ChangeLog: Removed.
5343 * src/sparc/ChangeLog: Remboved.
5344 * src/x86/ChangeLog: Removed.
5345
5346 * ChangeLog.v1: Created.