cygwin fix & updates for 3.0.13
[libffi.git] / ChangeLog
1 2013-03-17  Anthony Green  <green@moxielogic.com>
2
3         * README: Update for 3.0.13.
4         * configure.ac: Ditto.
5         * configure: Rebuilt.
6         * doc/*: Update version.
7
8 2013-03-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9
10         * src/closures.c (is_emutramp_enabled
11         [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
12         enclosing #if scope.
13
14 2013-03-17  Anthony Green  <green@moxielogic.com>
15
16         * configure.ac: Only modify toolexecdir in certain cases.
17         * configure: Rebuilt.
18
19 2013-03-16  Gilles Talis  <gilles.talis@gmail.com>
20
21         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
22         fparg_count,etc on __NO_FPRS__ targets.
23
24 2013-03-16  Alan Hourihane  <alanh@fairlite.co.uk>
25
26         * src/m68k/sysv.S (epilogue): Don't use extb instruction on
27         m680000 machines.
28
29 2013-03-16  Alex Gaynor <alex.gaynor@gmail.com>
30
31         * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
32
33 2013-03-13  Markos Chandras <markos.chandras@imgtec.com>
34
35         * configure.ac: Add support for Imagination Technologies Meta.
36         * Makefile.am: Likewise.
37         * README: Add Imagination Technologies Meta details.
38         * src/metag/ffi.c: New.
39         * src/metag/ffitarget.h: Likewise.
40         * src/metag/sysv.S: Likewise.
41
42 2013-02-24  Andreas Schwab  <schwab@linux-m68k.org>
43
44         * doc/libffi.texi (Structures): Fix missing category argument of
45         @deftp.
46
47 2013-02-11  Anthony Green <green@moxielogic.com>
48
49         * configure.ac: Update release number to 3.0.12.
50         * configure: Rebuilt.
51         * README: Update release info.
52
53 2013-02-10  Anthony Green <green@moxielogic.com>
54
55         * README: Add Moxie.
56         * src/moxie/ffi.c: Created.
57         * src/moxie/eabi.S: Created.
58         * src/moxie/ffitarget.h: Created.
59         * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
60         * Makefile.in: Rebuilt.
61         * configure.ac: Add Moxie.
62         * configure: Rebuilt.
63         * testsuite/libffi.call/huge_struct.c: Disable format string
64         warnings for moxie*-*-elf tests.
65
66 2013-02-10  Anthony Green <green@moxielogic.com>
67
68         * Makefile.am (LTLDFLAGS): Fix reference.
69         * Makefile.in: Rebuilt.
70
71 2013-02-10  Anthony Green <green@moxielogic.com>
72
73         * README: Update supported platforms.  Update test results link.
74
75 2013-02-09  Anthony Green <green@moxielogic.com>
76
77         * testsuite/libffi.call/negint.c: Remove forced -O2.
78         * testsuite/libffi.call/many2.c (foo): Remove GCCism.
79         * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
80
81         * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
82         closure return type fix developed by Martin v. Löwis for cpython
83         fork.
84
85 2013-02-08  Andreas Tobler  <andreast@fgznet.ch>
86
87         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
88         support.
89         * src/powerpc/sysv.S: Ditto.
90
91 2013-02-08  Anthony Green <green@moxielogic.com>
92
93         * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
94         arm*-*-*.
95
96 2013-02-08  Anthony Green <green@moxielogic.com>
97
98         * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
99
100 2013-02-08  Matthias Klose  <doko@ubuntu.com>
101
102         * man/ffi_prep_cif.3: Clean up for debian linter.
103
104 2013-02-08  Peter Bergner  <bergner@vnet.ibm.com>
105
106         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
107         on the stack.
108
109 2013-02-08  Anthony Green <green@moxielogic.com>
110
111         * Makefile.am (EXTRA_DIST): Add missing files.
112         * testsuite/Makefile.am (EXTRA_DIST): Ditto.
113         * Makefile.in: Rebuilt.
114
115 2013-02-08  Anthony Green <green@moxielogic.com>
116
117         * configure.ac: Move sparc asm config checks to within functions
118         for compatibility with sun tools.
119         * configure: Rebuilt.
120         * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
121         systems.
122         * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
123         flusher.
124
125 2013-02-08  Nathan Rossi <nathan.rossi@xilinx.com>
126
127         * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
128         small big-endian structures.
129         (ffi_prep_args): Ditto.
130
131 2013-02-07  Anthony Green <green@moxielogic.com>
132
133         * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
134         (effectively hiding ffi_call_v8).
135
136 2013-02-07  Anthony Green <green@moxielogic.com>
137
138         * configure.ac: Update bug reporting address.
139         * configure.in: Rebuild.
140
141         * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
142         Sun compiler.
143         * src/sparc/ffi.c (ffi_call): Remove warning.
144         Call ffi_flush_icache for non-GCC builds.
145         (ffi_prep_closure_loc): Use ffi_flush_icache.
146
147         * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
148         * Makefile.in: Rebuilt.
149         * libtool-ldflags: New file.
150
151 2013-02-07  Daniel Schepler <dschepler@gmail.com>
152
153         * configure.ac: Correctly identify x32 systems as 64-bit.
154         * m4/libtool.m4: Remove libtool expr error.
155         * aclocal.m4, configure: Rebuilt.
156
157 2013-02-07  Anthony Green <green@moxielogic.com>
158
159         * configure.ac: Fix GCC usage test.
160         * configure: Rebuilt.
161         * README: Mention LLVM/GCC x86_64 issue.
162         * testsuite/Makefile.in: Rebuilt.
163
164 2013-02-07  Anthony Green <green@moxielogic.com>
165
166         * testsuite/libffi.call/cls_double_va.c (main): Replace // style
167         comments with /* */ for xlc compiler.
168         * testsuite/libffi.call/stret_large.c (main): Ditto.
169         * testsuite/libffi.call/stret_large2.c (main): Ditto.
170         * testsuite/libffi.call/nested_struct1.c (main): Ditto.
171         * testsuite/libffi.call/huge_struct.c (main): Ditto.
172         * testsuite/libffi.call/float_va.c (main): Ditto.
173         * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
174         * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
175         * testsuite/libffi.call/cls_pointer.c (main): Ditto.
176         * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
177
178 2013-02-06  Anthony Green <green@moxielogic.com>
179
180         * man/ffi_prep_cif.3: Clean up for debian lintian checker.
181
182 2013-02-06  Anthony Green <green@moxielogic.com>
183
184         * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
185         * Makefile.in: Rebuild.
186
187 2013-02-02  Mark H Weaver <mhw@netris.org>
188
189         * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
190         via general purpose registers.
191
192 2013-01-21  Nathan Rossi <nathan.rossi@xilinx.com>
193
194         * README: Add MicroBlaze details.
195         * Makefile.am: Add MicroBlaze support.
196         * configure.ac: Likewise.
197         * src/microblaze/ffi.c: New.
198         * src/microblaze/ffitarget.h: Likewise.
199         * src/microblaze/sysv.S: Likewise.
200
201 2013-01-21  Nathan Rossi <nathan.rossi@xilinx.com>
202         * testsuite/libffi.call/return_uc.c: Fixed issue.
203
204 2013-01-21  Chris Zankel   <chris@zankel.net>
205
206         * README: Add Xtensa support.
207         * Makefile.am: Likewise.
208         * configure.ac: Likewise.
209         * Makefile.in Regenerate.
210         * configure: Likewise.
211         * src/prep_cif.c: Handle Xtensa.
212         * src/xtensa: New directory.
213         * src/xtensa/ffi.c: New file.
214         * src/xtensa/ffitarget.h: Ditto.
215         * src/xtensa/sysv.S: Ditto.
216
217 2013-01-11  Anthony Green  <green@moxielogic.com>
218
219         * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
220         comments with /* */ for xlc compiler.
221         * src/powerpc/aix.S (ffi_call_AIX): Ditto.
222         * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
223         deprecated inline function.
224         * testsuite/libffi.special/ffitestcxx.h: Ditto.
225         * README: Add update for AIX support.
226
227 2013-01-11  Anthony Green  <green@moxielogic.com>
228
229         * configure.ac: Robustify pc relative reloc check.
230         * m4/ax_cc_maxopt.m4: Don't -malign-double.  This is an ABI
231         changing option for 32-bit x86.
232         * aclocal.m4, configure: Rebuilt.
233         * README: Update supported target list.
234
235 2013-01-10  Anthony Green  <green@moxielogic.com>
236
237         * README (tested): Add Compiler column to table.
238
239 2013-01-10  Anthony Green  <green@moxielogic.com>
240
241         * src/x86/ffi64.c (struct register_args): Make sse array and array
242         of unions for sunpro compiler compatibility.
243
244 2013-01-10  Anthony Green  <green@moxielogic.com>
245
246         * configure.ac: Test target platform size_t size.  Handle both 32
247         and 64-bit builds for x86_64-* and i?86-* targets (allowing for
248         CFLAG option to change default settings).
249         * configure, aclocal.m4: Rebuilt.
250
251 2013-01-10  Anthony Green  <green@moxielogic.com>
252
253         * testsuite/libffi.special/special.exp: Only run exception
254         handling tests when using GNU compiler.
255
256         * m4/ax_compiler_vendor.m4: New file.
257         * configure.ac: Test for compiler vendor and don't use
258         AX_CFLAGS_WARN_ALL with the sun compiler.
259         * aclocal.m4, configure: Rebuilt.
260
261 2013-01-10  Anthony Green  <green@moxielogic.com>
262
263         * include/ffi_common.h: Don't use GCCisms to define types when
264         building with the SUNPRO compiler.
265
266 2013-01-10  Anthony Green  <green@moxielogic.com>
267
268         * configure.ac: Put local.exp in the right place.
269         * configure: Rebuilt.
270
271         * src/x86/ffi.c: Update comment about regparm function attributes.
272         * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
273         that all function arguments be passed on the stack (no regparm
274         support).
275
276 2013-01-08  Anthony Green  <green@moxielogic.com>
277
278         * configure.ac: Generate local.exp.  This sets CC_FOR_TARGET
279         when we are using the vendor compiler.
280         * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
281         ../local.exp.
282         * configure, testsuite/Makefile.in: Rebuilt.
283
284         * testsuite/libffi.call/call.exp: Run tests with different
285         options, depending on whether or not we are using gcc or the
286         vendor compiler.
287         * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
288         whether or not we are building/testing with gcc.
289
290 2013-01-08  Anthony Green  <green@moxielogic.com>
291
292         * configure.ac: Switch x86 solaris target to X86 by default.
293         * configure: Rebuilt.
294
295 2013-01-08  Anthony Green  <green@moxielogic.com>
296
297         * configure.ac: Fix test for read-only eh_frame.
298         * configure: Rebuilt.
299
300 2013-01-08  Anthony Green  <green@moxielogic.com>
301
302         * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
303         when building with the GNU toolchain.
304         * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
305         compiler.
306
307 2013-01-07  Thorsten Glaser <tg@mirbsd.org>
308
309         * testsuite/libffi.call/cls_uchar_va.c,
310         testsuite/libffi.call/cls_ushort_va.c,
311         testsuite/libffi.call/va_1.c: Testsuite fixes.
312
313 2013-01-07  Thorsten Glaser <tg@mirbsd.org>
314
315         * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
316         (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
317         * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
318
319 2013-01-04  Anthony Green  <green@moxielogic.com>
320
321         * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
322         and -Wall.  This is set in the configure script after testing for
323         GCC.
324         * Makefile.in: Rebuilt.
325
326 2013-01-02  rofl0r <https://github.com/rofl0r>
327
328         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
329         when long double == double.
330
331 2013-01-02  Reini Urban  <rurban@x-ray.at>
332
333         * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
334         (required for shared libs on cygwin/mingw).
335         * Makefile.in: Rebuilt.
336
337 2012-10-31  Alan Modra  <amodra@gmail.com>
338
339         * src/powerpc/linux64_closure.S: Add new ABI support.
340         * src/powerpc/linux64.S: Likewise.
341
342 2012-10-30  Magnus Granberg  <zorry@gentoo.org>
343             Pavel Labushev  <pavel.labushev@runbox.ru>
344
345         * configure.ac: New options pax_emutramp
346         * configure, fficonfig.h.in: Regenerated
347         * src/closures.c: New function emutramp_enabled_check() and
348         checks.
349
350 2012-10-30  Frederick Cheung  <frederick.cheung@gmail.com>
351
352         * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
353         lion) and future version.
354         * configure: Rebuild.
355
356 2012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
357             Marcus Shawcroft  <marcus.shawcroft at arm.com>
358
359         * README: Add details of aarch64 port.
360         * src/aarch64/ffi.c: New.
361         * src/aarch64/ffitarget.h: Likewise.
362         * src/aarch64/sysv.S: Likewise.
363         * Makefile.am: Support aarch64.
364         * configure.ac: Support aarch64.
365         * Makefile.in, configure: Rebuilt.
366
367 2012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
368             Marcus Shawcroft  <marcus.shawcroft at arm.com>
369
370         * testsuite/lib/libffi.exp: Add support for aarch64.
371         * testsuite/libffi.call/cls_struct_va1.c: New.
372         * testsuite/libffi.call/cls_uchar_va.c: Likewise.
373         * testsuite/libffi.call/cls_uint_va.c: Likewise.
374         * testsuite/libffi.call/cls_ulong_va.c: Likewise.
375         * testsuite/libffi.call/cls_ushort_va.c: Likewise.
376         * testsuite/libffi.call/nested_struct11.c: Likewise.
377         * testsuite/libffi.call/uninitialized.c: Likewise.
378         * testsuite/libffi.call/va_1.c: Likewise.
379         * testsuite/libffi.call/va_struct1.c: Likewise.
380         * testsuite/libffi.call/va_struct2.c: Likewise.
381         * testsuite/libffi.call/va_struct3.c: Likewise.
382
383 2012-10-12  Walter Lee  <walt@tilera.com>
384
385         * Makefile.am: Add TILE-Gx/TILEPro support.
386         * configure.ac: Likewise.
387         * Makefile.in: Regenerate.
388         * configure: Likewise.
389         * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
390         * src/tile: New directory.
391         * src/tile/ffi.c: New file.
392         * src/tile/ffitarget.h: Ditto.
393         * src/tile/tile.S: Ditto.
394
395 2012-10-12  Matthias Klose  <doko@ubuntu.com>
396
397         * generate-osx-source-and-headers.py: Normalize whitespace.
398
399 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
400
401         * configure: Regenerated.
402
403 2012-08-26  Andrew Pinski  <apinski@cavium.com>
404
405         PR libffi/53014
406         * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
407         soft-float.
408
409 2012-08-08  Uros Bizjak  <ubizjak@gmail.com>
410
411         * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
412         just return FFI_BAD_ABI when things are wrong.
413
414 2012-07-18  H.J. Lu  <hongjiu.lu@intel.com>
415
416         PR libffi/53982
417         PR libffi/53973
418         * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
419         (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
420
421 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
422
423         * configure: Regenerated.
424
425 2012-05-05  Nicolas Lelong
426
427         * libffi.xcodeproj/project.pbxproj: Fixes.
428         * README: Update for iOS builds.
429
430 2012-04-23  Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
431
432         * configure.ac: Add Blackfin/sysv support
433         * Makefile.am: Add Blackfin/sysv support
434         * src/bfin/ffi.c:  Add Blackfin/sysv support
435         * src/bfin/ffitarget.h: Add Blackfin/sysv support
436
437 2012-04-11  Anthony Green  <green@moxielogic.com>
438
439         * Makefile.am (EXTRA_DIST): Add new script.
440         * Makefile.in: Rebuilt.
441
442 2012-04-11  Zachary Waldowski  <zwaldowski@gmail.com>
443
444         * generate-ios-source-and-headers.py,
445         libffi.xcodeproj/project.pbxproj: Support a Mac static library via
446         Xcode. Set iOS compatibility to 4.0.  Move iOS trampoline
447         generation into an Xcode "run script" phase.  Include both as
448         Xcode build scripts. Don't always regenerate config files.
449
450 2012-04-10  Anthony Green  <green@moxielogic.com>
451
452         * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
453
454 2012-04-06  Anthony Green  <green@moxielogic.com>
455
456         * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
457         * Makefile.in: Rebuilt.
458
459 2012-04-06  Mike Lewis  <mikelikespie@gmail.com>
460
461         * generate-ios-source-and-headers.py: New file.
462         * libffi.xcodeproj/project.pbxproj: New file.
463         * README: Update instructions on building iOS binary.
464         * build-ios.sh: Delete.
465
466 2012-04-06  Anthony Green  <green@moxielogic.com>
467
468         * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
469         compilers, then use it.
470
471 2012-04-06  H.J. Lu  <hongjiu.lu@intel.com>
472
473         * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
474
475 2012-04-06  Anthony Green  <green@moxielogic.com>
476
477         * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
478         * testsuite/Makefile.in: Rebuilt.
479
480 2012-04-05  Zachary Waldowski  <zwaldowski@gmail.com>
481
482         * include/ffi.h.in: Add missing trampoline table fields.
483         * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
484         in CNAME.
485         * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
486
487 2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
488
489         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
490         Silence casting pointer to integer of different size warning.
491         Delete goto to previously deleted label.
492         (ffi_call): Silence possibly undefined warning.
493         (ffi_closure_helper_SYSV): Declare variable type.
494
495 2012-04-02  Peter Rosin  <peda@lysator.liu.se>
496
497         * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
498         value in the Intel version as is already done for the AT&T version.
499         (ffi_closure_SYSV): Likewise.
500         (ffi_closure_raw_SYSV): Likewise.
501         (ffi_closure_STDCALL): Likewise.
502
503 2012-03-29  Peter Rosin  <peda@lysator.liu.se>
504
505         * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
506         generation, fix the ENDP label and remove the surplus third arg
507         from the 'lea' insn.
508
509 2012-03-29  Peter Rosin  <peda@lysator.liu.se>
510
511         * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
512         visible outside the PROC, so that ffi_closure_raw_THISCALL can see
513         it.  Also instruct the assembler to add a frame to the function.
514
515 2012-03-23  Peter Rosin  <peda@lysator.liu.se>
516
517         * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
518         * Makefile.in: Rebuilt.
519         * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
520         to all data exports, when compiling libffi clients using MSVC.
521
522 2012-03-29  Peter Rosin  <peda@lysator.liu.se>
523
524         * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
525         make it the default for MSVC.
526         (FFI_TYPE_MS_STRUCT): New structure return convention.
527         * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
528         return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
529         instead of an ordinary FFI_TYPE_STRUCT.
530         (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
531         (ffi_call): Likewise.
532         (ffi_prep_incoming_args_SYSV): Likewise.
533         (ffi_raw_call): Likewise.
534         (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
535         * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
536         return a pointer to the result structure in eax and don't pop
537         that pointer from the stack, the caller takes care of it.
538         (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
539         (ffi_closure_raw_SYSV): Likewise.
540
541 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
542
543         * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
544         assembly version with Intel syntax.
545         * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
546
547 2012-03-23  Peter Rosin  <peda@lysator.liu.se>
548
549         * testsuite/libffi.call/ffitest.h: Provide abstration of
550         __attribute__((fastcall)) in the form of a __FASTCALL__
551         define.  Define it to __fastcall for MSVC.
552         * testsuite/libffi.call/fastthis1_win32.c: Use the above.
553         * testsuite/libffi.call/fastthis2_win32.c: Likewise.
554         * testsuite/libffi.call/fastthis3_win32.c: Likewise.
555         * testsuite/libffi.call/strlen2_win32.c: Likewise.
556         * testsuite/libffi.call/struct1_win32.c: Likewise.
557         * testsuite/libffi.call/struct2_win32.c: Likewise.
558
559 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
560
561         * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
562         frame on function entry, MASM adds one automatically.
563
564 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
565
566         * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
567         bits in the MSVC headers.
568
569 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
570
571         * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
572         with no declarations after statements.
573         * testsuite/libffi.call/cls_16byte.c: Likewise.
574         * testsuite/libffi.call/cls_18byte.c: Likewise.
575         * testsuite/libffi.call/cls_19byte.c: Likewise.
576         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
577         * testsuite/libffi.call/cls_20byte.c: Likewise.
578         * testsuite/libffi.call/cls_20byte1.c: Likewise.
579         * testsuite/libffi.call/cls_24byte.c: Likewise.
580         * testsuite/libffi.call/cls_2byte.c: Likewise.
581         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
582         * testsuite/libffi.call/cls_3byte1.c: Likewise.
583         * testsuite/libffi.call/cls_3byte2.c: Likewise.
584         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
585         * testsuite/libffi.call/cls_4byte.c: Likewise.
586         * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
587         * testsuite/libffi.call/cls_5byte.c: Likewise.
588         * testsuite/libffi.call/cls_64byte.c: Likewise.
589         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
590         * testsuite/libffi.call/cls_6byte.c: Likewise.
591         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
592         * testsuite/libffi.call/cls_7byte.c: Likewise.
593         * testsuite/libffi.call/cls_8byte.c: Likewise.
594         * testsuite/libffi.call/cls_9byte1.c: Likewise.
595         * testsuite/libffi.call/cls_9byte2.c: Likewise.
596         * testsuite/libffi.call/cls_align_double.c: Likewise.
597         * testsuite/libffi.call/cls_align_float.c: Likewise.
598         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
599         * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
600         * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
601         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
602         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
603         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
604         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
605         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
606         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
607         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
608         * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
609         * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
610         * testsuite/libffi.call/err_bad_typedef.c: Likewise.
611         * testsuite/libffi.call/huge_struct.c: Likewise.
612         * testsuite/libffi.call/nested_struct.c: Likewise.
613         * testsuite/libffi.call/nested_struct1.c: Likewise.
614         * testsuite/libffi.call/nested_struct10.c: Likewise.
615         * testsuite/libffi.call/nested_struct2.c: Likewise.
616         * testsuite/libffi.call/nested_struct3.c: Likewise.
617         * testsuite/libffi.call/nested_struct4.c: Likewise.
618         * testsuite/libffi.call/nested_struct5.c: Likewise.
619         * testsuite/libffi.call/nested_struct6.c: Likewise.
620         * testsuite/libffi.call/nested_struct7.c: Likewise.
621         * testsuite/libffi.call/nested_struct8.c: Likewise.
622         * testsuite/libffi.call/nested_struct9.c: Likewise.
623         * testsuite/libffi.call/stret_large.c: Likewise.
624         * testsuite/libffi.call/stret_large2.c: Likewise.
625         * testsuite/libffi.call/stret_medium.c: Likewise.
626         * testsuite/libffi.call/stret_medium2.c: Likewise.
627         * testsuite/libffi.call/struct1.c: Likewise.
628         * testsuite/libffi.call/struct1_win32.c: Likewise.
629         * testsuite/libffi.call/struct2.c: Likewise.
630         * testsuite/libffi.call/struct2_win32.c: Likewise.
631         * testsuite/libffi.call/struct3.c: Likewise.
632         * testsuite/libffi.call/struct4.c: Likewise.
633         * testsuite/libffi.call/struct5.c: Likewise.
634         * testsuite/libffi.call/struct6.c: Likewise.
635         * testsuite/libffi.call/struct7.c: Likewise.
636         * testsuite/libffi.call/struct8.c: Likewise.
637         * testsuite/libffi.call/struct9.c: Likewise.
638         * testsuite/libffi.call/testclosure.c: Likewise.
639
640 2012-03-21  Peter Rosin  <peda@lysator.liu.se>
641
642         * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
643         printing doubles (%lf is for long doubles).
644         (main): Likewise.
645
646 2012-03-21  Peter Rosin  <peda@lysator.liu.se>
647
648         * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
649         (set_ld_library_path_env_vars): Add the library search dir to PATH
650         (and save PATH for later).
651         (restore_ld_library_path_env_vars): Restore PATH.
652
653 2012-03-21  Peter Rosin  <peda@lysator.liu.se>
654
655         * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
656         (set_ld_library_path_env_vars): Add the library search dir to PATH
657         (and save PATH for later).
658         (restore_ld_library_path_env_vars): Restore PATH.
659
660 2012-03-20  Peter Rosin  <peda@lysator.liu.se>
661
662         * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
663         * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
664         visible outside the PROC, so that ffi_closure_THISCALL can see it.
665
666 2012-03-20  Peter Rosin  <peda@lysator.liu.se>
667
668         * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
669         * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
670         visible outside the PROC, so that ffi_closure_THISCALL can see it.
671
672 2012-03-19  Alan Hourihane  <alanh@fairlite.co.uk>
673
674         * src/m68k/ffi.c: Add MINT support.
675         * src/m68k/sysv.S: Ditto.
676
677 2012-03-06  Chung-Lin Tang  <cltang@codesourcery.com>
678
679         * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
680         ffi_call_VFP().
681         (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
682         ffi_closure_VFP.
683         * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
684
685 2012-03-19  chennam  <csit@axway.com>
686
687         * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
688         support.
689
690 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
691
692         * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
693         just return FFI_BAD_ABI when things are wrong.
694         * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
695
696 2012-03-09  David Edelsohn  <dje.gcc@gmail.com>
697
698         * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
699         change to return value of ffi_closure_helper_DARWIN and load type
700         from return type.
701
702 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
703
704         * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
705         long.
706         (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
707         (ffi_closure_unix64_inner): Cast return pointer to unsigned long
708         first.
709
710         * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
711         (ffi_arg): Set to unsigned long long for x32.
712         (ffi_sarg): Set to long long for x32.
713
714 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
715
716         * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
717
718 2012-03-03  Andoni Morales Alastruey  <ylatuya@gmail.com>
719
720         * configure.ac: Add -no-undefined for both 32- and 64-bit x86
721         windows-like hosts.
722         * configure: Rebuilt.
723
724 2012-02-27  Mikael Pettersson  <mikpe@it.uu.se>
725
726         PR libffi/52223
727         * Makefile.am (FLAGS_TO_PASS): Define.
728         * Makefile.in: Regenerate.
729
730 2012-02-23  Anthony Green  <green@moxielogic.com>
731
732         * src/*/ffitarget.h: Ensure that users never include ffitarget.h
733         directly.
734
735 2012-02-23  Kai Tietz  <ktietz@redhat.com>
736
737         PR libffi/52221
738         * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
739         prototype.
740         (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
741         thiscall-convention.
742         (ffi_raw_call): Use ffi_prep_args_raw.
743         * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
744         implementation for stub.
745
746 2012-02-10  Kai Tietz  <ktietz@redhat.com>
747
748         * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
749         windows target.
750         * configure: Regenerated.
751
752 2012-02-08  Kai Tietz  <ktietz@redhat.com>
753
754         * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
755         also FFI_THISCALL.
756         * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
757         (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
758         (ffi_prep_closure_loc): Add FFI_THISCALL support.
759         * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
760         * src/x86/win32.S (ffi_closure_THISCALL): New closure code
761         for thiscall-calling convention.
762         * testsuite/libffi.call/closure_thiscall.c: New test.
763
764 2012-01-28  Kai Tietz  <ktietz@redhat.com>
765
766         * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
767         argument to prototype for specify calling-convention.
768         (ffi_call): Add support for stdcall/thiscall convention.
769         (ffi_prep_args): Likewise.
770         (ffi_raw_call): Likewise.
771         * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
772         FFI_FASTCALL.
773         * src/x86/win32.S (_ffi_call_win32): Add support for
774         fastcall/thiscall calling-convention calls.
775         * testsuite/libffi.call/fastthis1_win32.c: New test.
776         * testsuite/libffi.call/fastthis2_win32.c: New test.
777         * testsuite/libffi.call/fastthis3_win32.c: New test.
778         * testsuite/libffi.call/strlen2_win32.c: New test.
779         * testsuite/libffi.call/many2_win32.c: New test.
780         * testsuite/libffi.call/struct1_win32.c: New test.
781         * testsuite/libffi.call/struct2_win32.c: New test.
782
783 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
784
785         * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
786
787 2012-01-23  Anthony Green  <green@moxielogic.com>
788             Chris Young  <cdyoung@ntlworld.com>
789
790         * configure.ac: Add Amiga support.
791         * configure: Rebuilt.
792
793 2012-01-23  Dmitry Nadezhin  <dmitry.nadezhin@gmail.com>
794
795         * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
796
797 2012-01-23  Andreas Schwab  <schwab@linux-m68k.org>
798
799         * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
800         mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.
801
802 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
803
804         PR rtl-optimization/48496
805         * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
806
807 2012-01-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
808
809         * configure.ac (i?86-*-*): Set TARGET to X86_64.
810         * configure: Regenerate.
811
812 2011-12-07  Andrew Pinski  <apinski@cavium.com>
813
814         PR libffi/50051
815         * src/mips/n32.S: Add ".set mips4".
816
817 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
818
819         * configure: Regenerate.
820
821 2011-11-12  David Gilbert <david.gilbert@linaro.org>
822
823         * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
824         man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
825         man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
826         src/cris/ffi.c, src/prep_cif.c,
827         testsuite/libffi.call/cls_double_va.c,
828         testsuite/libffi.call/cls_longdouble_va.c,
829         testsuite/libffi.call/float_va.c: Many changes to support variadic
830         function calls.
831
832 2011-11-12  Kyle Moffett <Kyle.D.Moffett@boeing.com>
833
834         * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
835         src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
836         softfloat powerpc variants.
837
838 2011-11-12  Petr Salinger <Petr.Salinger@seznam.cz>
839
840         * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
841         * configure: Rebuilt.
842
843 2011-11-12  Timothy Wall  <twall@users.sf.net>
844
845         * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
846         alignment of 4 for wince on ARM.
847
848 2011-11-12  Kyle Moffett <Kyle.D.Moffett@boeing.com>
849             Anthony Green <green@moxielogic.com>
850
851         * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
852         instructions (not available on some cores, like the PPC440).
853
854 2011-11-12  Kimura Wataru  <kimuraw@i.nifty.jp>
855
856         * m4/ax_enable_builddir: Change from string comparison to numeric
857         comparison for wc output.
858         * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
859         X 10.7.
860         * configure: Rebuilt.
861
862 2011-11-12  Anthony Green  <green@moxielogic.com>
863
864         * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
865         files with debug info.
866         * Makefile.in: Rebuilt.
867
868 2011-11-12  Jasper Lievisse Adriaanse <jasper@openbsd.org>
869
870         * README: Update list of supported OpenBSD systems.
871
872 2011-11-12  Anthony Green  <green@moxielogic.com>
873
874         * libtool-version: Update.
875         * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
876         FFI_DEBUG.
877         (libffi_la_SOURCES): Remove src/debug.c
878         (EXTRA_DIST): Add src/debug.c
879         * Makefile.in: Rebuilt.
880         * README: Update for 3.0.11.
881
882 2011-11-10  Richard Henderson  <rth@redhat.com>
883
884         * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
885         * configure, aclocal.m4: Rebuild.
886
887 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
888
889         PR libffi/49594
890         * src/powerpc/darwin_closure.S (stubs): Make the stub binding
891         helper reference track the architecture pointer size.
892
893 2011-08-25  Andrew Haley  <aph@redhat.com>
894
895         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
896         instructions.
897         * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
898
899 2011-07-11  Andrew Haley  <aph@redhat.com>
900
901         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
902
903 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
904
905         * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
906         * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
907
908 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
909
910         PR libffi/46660
911         * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
912         mips-sgi-irix6*.
913         * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
914
915 2011-06-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
916
917         * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
918         PRId8 instead of %hhu, %hhd.
919         * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
920         PRIu8): Define.
921         [__sgi__] (PRId8, PRIu8): Define.
922
923 2011-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
924
925         * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
926         Define.
927         Use them to handle ELF vs. ECOFF differences.
928         [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
929
930 2011-03-30  Timothy Wall  <twall@users.sf.net>
931
932         * src/powerpc/darwin.S: Fix unknown FDE encoding.
933         * src/powerpc/darwin_closure.S: ditto.
934
935 2011-02-25  Anthony Green  <green@moxielogic.com>
936
937         * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
938         32-bit ABIs.
939
940 2011-02-15  Anthony Green  <green@moxielogic.com>
941
942         * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
943         * configure: Rebuilt.
944
945 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
946
947         * configure: Regenerate.
948
949 2011-02-13  Anthony Green  <green@moxielogic.com>
950
951         * include/ffi_common.h (UNLIKELY, LIKELY): Define.
952         * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
953         * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
954
955         * src/prep_cif.c (initialize_aggregate): Convert assertion into
956         FFI_BAD_TYPEDEF return.  Initialize arg size and alignment to 0.
957
958         * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
959         just return FFI_BAD_ABI when things are wrong.
960         * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
961         * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
962         * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
963         * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
964         * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
965
966 2011-02-11  Anthony Green  <green@moxielogic.com>
967
968         * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
969         just return FFI_BAD_ABI when things are wrong.
970
971 2012-02-11  Eric Botcazou  <ebotcazou@adacore.com>
972
973         * src/sparc/v9.S (STACKFRAME): Bump to 176.
974
975 2011-02-09  Stuart Shelton  <srcshelton@gmail.com>
976
977         http://bugs.gentoo.org/show_bug.cgi?id=286911
978         * src/mips/ffitarget.h: Clean up error messages.
979         * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
980         ffi_raw*.
981         * include/ffi.h.in: Add pragma for SGI compiler.
982
983 2011-02-09  Anthony Green  <green@moxielogic.com>
984
985         * configure.ac: Add powerpc64-*-darwin* support.
986
987 2011-02-09  Anthony Green <green@moxielogic.com>
988
989         * README: Mention Interix.
990
991 2011-02-09  Jonathan Callen  <abcd@gentoo.org>
992
993         * configure.ac: Add Interix to win32/cygwin/mingw case.
994         * configure: Ditto.
995         * src/closures.c: Treat Interix like Cygwin, instead of as a
996         generic win32.
997
998 2011-02-09  Anthony Green <green@moxielogic.com>
999
1000         * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1001         * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1002         * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1003         (ffi_prep_closure_loc): Check for bad ABI.
1004         * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1005         (initialize_aggregate): Check for bad types.
1006
1007 2011-02-09  Landon Fuller <landonf@plausible.coop>
1008
1009         * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1010         src/arm/trampoline.S.
1011         (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1012         * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1013         * src/arm/ffi.c (ffi_trampoline_table)
1014         (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1015         (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1016         (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1017         (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1018         Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1019         (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1020         separately.
1021         * src/arm/sysv.S: Handle Apple iOS host.
1022         * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
1023         * build-ios.sh: New file.
1024         * fficonfig.h.in, configure, Makefile.in: Rebuilt.
1025         * README: Mention ARM iOS.
1026
1027 2011-02-08  Oren Held  <orenhe@il.ibm.com>
1028
1029         * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1030         redefinition of mallinfo on HP-UX.
1031
1032 2011-02-08  Ginn Chen  <ginn.chen@oracle.com>
1033
1034         * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
1035         aggregate return ABI.  Flush cache.
1036         (ffi_prep_closure_loc): Flush cache.
1037
1038 2011-02-11  Anthony Green  <green@moxielogic.com>
1039
1040         From Tom Honermann <tom.honermann@oracle.com>:
1041         * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1042         AIX.  Declare .ffi_prep_args.  Insert nops after branch
1043         instructions so that the AIX linker can insert TOC reload
1044         instructions.
1045         * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1046
1047 2011-02-08  Ed  <ed@kdtc.net>
1048
1049         * src/powerpc/asm.h: Fix grammar nit in comment.
1050
1051 2011-02-08  Uli Link  <ul.mcamafia@linkitup.de>
1052
1053         * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1054
1055 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1056
1057         PR libffi/46661
1058         * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1059         uintptr_t first.
1060         * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1061
1062 2011-02-08  Rafael Avila de Espindola  <respindola@mozilla.com>
1063
1064         * configure.ac: Fix x86 test for pc related relocs.
1065         * configure: Rebuilt.
1066
1067 2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
1068
1069         * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1070         Handle case when CPU variant does not have long double support.
1071         * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1072         and cores with soft floating point.
1073
1074 2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
1075
1076         * configure.ac: Add mips*-*-rtems* support.
1077         * configure: Regenerate.
1078         * src/mips/ffitarget.h: Ensure needed constants are available
1079         for targets which do not have sgidefs.h.
1080
1081 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
1082
1083         PR target/40125
1084         * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1085         * configure: Regenerate.
1086
1087 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
1088
1089         PR libffi/29152
1090         PR libffi/42378
1091         * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1092         update comments.
1093         * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1094         (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1095         * src/powerpc/darwin.S: Provide Darwin64 implementation,
1096         update comments.
1097         * src/powerpc/ffi_darwin.c: Likewise.
1098
1099 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1100
1101         * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1102         backslashes.
1103         (libffi_cv_as_string_pseudo_op): Likewise.
1104         * configure: Regenerate.
1105
1106 2010-12-03  Chung-Lin Tang  <cltang@codesourcery.com>
1107
1108         * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1109         (ffi_closure_VFP): Same.
1110         (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1111         directive.
1112
1113 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1114
1115         * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1116         (PRIuPTR): Define.
1117
1118 2010-11-29  Richard Henderson  <rth@redhat.com>
1119             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1120
1121         * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1122         (.eh_frame): Use FDE_ENCODING.
1123         (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1124
1125 2010-11-22  Jacek Caban <jacek@codeweavers.com>
1126
1127         * configure.ac: Check for symbol underscores on mingw-w64.
1128         * configure: Rebuilt.
1129         * src/x86/win64.S: Correctly access extern symbols in respect to
1130         underscores.
1131
1132 2010-11-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1133
1134         * testsuite/lib/libffi-dg.exp: Rename ...
1135         * testsuite/lib/libffi.exp: ... to this.
1136         * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1137         * libffi/testsuite/libffi.special/special.exp: Likewise.
1138
1139 2010-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
1140
1141         * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1142         code, new parameter, and return value. Update comments.
1143         (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1144         call to layout_vfp_args().
1145         (ffi_call_SYSV): Update declaration.
1146         (ffi_call_VFP): New declaration.
1147         (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1148         when ABI is FFI_VFP.
1149         (ffi_closure_VFP): New declaration.
1150         (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1151         ffi_prep_incoming_args_SYSV().
1152         (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1153         case handling.
1154         (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1155         construction under VFP hard-float.
1156         (rec_vfp_type_p): New function.
1157         (vfp_type_p): Same.
1158         (place_vfp_arg): Same.
1159         (layout_vfp_args): Same.
1160         * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1161         based on __ARM_PCS_VFP.
1162         (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1163         fields.
1164         (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1165         (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1166         * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1167         direct call. Move function pointer load upwards.
1168         (ffi_call_VFP): New function.
1169         (ffi_closure_VFP): Same.
1170
1171         * testsuite/lib/libffi-dg.exp (check-flags): New function.
1172         (dg-skip-if): New function.
1173         * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1174         and compiler options include -mfloat-abi=hard.
1175         * testsuite/libffi.call/cls_longdouble_va.c: Same.
1176
1177 2010-10-01  Jakub Jelinek  <jakub@redhat.com>
1178
1179         PR libffi/45677
1180         * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1181         a multiple of 8.
1182         * testsuite/libffi.call/many2.c: New test.
1183
1184 2010-08-20  Mark Wielaard  <mjw@redhat.com>
1185
1186         * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1187         returns NULL.
1188
1189 2010-08-09  Andreas Tobler  <andreast@fgznet.ch>
1190
1191         * configure.ac: Add target powerpc64-*-freebsd*.
1192         * configure: Regenerate.
1193         * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1194         -mlong-double-128 only to linux targets.
1195         * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1196         * testsuite/libffi.call/cls_longdouble.c: Likewise.
1197         * testsuite/libffi.call/huge_struct.c: Likewise.
1198
1199 2010-08-05  Dan Witte  <dwitte@mozilla.com>
1200
1201         * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1202         debug CRT when --enable-debug is given.
1203         * configure.ac: Define it.
1204         * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1205
1206 2010-08-04  Dan Witte  <dwitte@mozilla.com>
1207
1208         * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1209         platforms.
1210         * src/x86/ffi.c: Remove redundant ifdef checks.
1211         * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1212         for X86_ANY so return value space doesn't get added twice.
1213
1214 2010-08-03  Neil Rashbrooke <neil@parkwaycc.co.uk>
1215
1216         * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1217
1218 2010-07-22  Dan Witte  <dwitte@mozilla.com>
1219
1220         * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1221         * src/prep_cif.c: Fix ABI assertion.
1222         * src/cris/ffi.c: Ditto.
1223
1224 2010-07-10  Evan Phoenix  <evan@fallingsnow.net>
1225
1226         * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1227
1228 2010-07-07  Dan Horák <dan@danny.cz>
1229
1230         * include/ffi.h.in: Protect #define with #ifndef.
1231         * src/powerpc/ffitarget.h: Ditto.
1232         * src/s390/ffitarget.h: Ditto.
1233         * src/sparc/ffitarget.h: Ditto.
1234
1235 2010-07-07   Neil Roberts <neil@linux.intel.com>
1236
1237         * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1238         16-bytes.
1239
1240 2010-07-02  Jakub Jelinek  <jakub@redhat.com>
1241
1242         * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1243         * Makefile.in: Regenerated.
1244
1245 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1246
1247         * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1248         output, too.
1249         (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1250         (libffi_cv_as_string_pseudo_op): Check for .string.
1251         * configure: Regenerate.
1252         * fficonfig.h.in: Regenerate.
1253         * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1254
1255 2010-05-11  Dan Witte  <dwitte@mozilla.com>
1256
1257         * doc/libffi.tex: Document previous change.
1258
1259 2010-05-11  Makoto Kato <m_kato@ga2.so-net.ne.jp>
1260
1261         * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1262
1263 2010-05-05  Michael Kohler <michaelkohler@live.com>
1264
1265         * src/dlmalloc.c (dlfree): Fix spelling.
1266         * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1267         * configure.ac: Ditto.
1268         * configure: Rebuilt.
1269
1270 2010-04-13  Dan Witte  <dwitte@mozilla.com>
1271
1272         * msvcc.sh: Build with -W3 instead of -Wall.
1273         * src/powerpc/ffi_darwin.c: Remove build warnings.
1274         * src/x86/ffi.c: Ditto.
1275         * src/x86/ffitarget.h: Ditto.
1276
1277 2010-04-12  Dan Witte  <dwitte@mozilla.com>
1278             Walter Meinl <wuno@lsvw.de>
1279
1280         * configure.ac: Add OS/2 support.
1281         * configure: Rebuilt.
1282         * src/closures.c: Ditto.
1283         * src/dlmalloc.c: Ditto.
1284         * src/x86/win32.S: Ditto.
1285
1286 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
1287
1288         * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
1289
1290 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1291
1292         * Makefile.in: Regenerate.
1293         * aclocal.m4: Regenerate.
1294         * include/Makefile.in: Regenerate.
1295         * man/Makefile.in: Regenerate.
1296         * testsuite/Makefile.in: Regenerate.
1297
1298 2010-03-30  Dan Witte  <dwitte@mozilla.com>
1299
1300         * msvcc.sh: Disable build warnings.
1301         * README (tested): Clarify windows build procedure.
1302
1303 2010-03-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1304
1305         * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1306         * configure: Regenerate.
1307         * fficonfig.h.in: Regenerate.
1308         * libffi/src/x86/unix64.S (.eh_frame)
1309         [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1310
1311 2010-03-14  Matthias Klose  <doko@ubuntu.com>
1312
1313         * src/x86/ffi64.c: Fix typo in comment.
1314         * src/x86/ffi.c: Use /* ... */ comment style.
1315
1316 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1317
1318         * doc/libffi.texi (The Closure API): Fix typo.
1319         * doc/libffi.info: Remove.
1320
1321 2010-02-15  Matthias Klose  <doko@ubuntu.com>
1322
1323         * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1324         __ARM_ARCH_7EM__.
1325
1326 2010-01-15  Anthony Green  <green@redhat.com>
1327
1328         * README: Add notes on building with Microsoft Visual C++.
1329
1330 2010-01-15  Daniel Witte  <dwitte@mozilla.com>
1331
1332         * msvcc.sh: New file.
1333
1334         * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1335         * src/x86/ffi.c: Tweak function declaration and remove excess
1336         parens.
1337         * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1338         ffi_closure.
1339
1340         * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1341         function ffi_call_win32 on X86_WIN32.
1342         * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1343         (ffi_call_STDCALL): Remove.
1344
1345         * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1346         to ffi_prep_cif_machdep for x86.
1347         * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1348
1349 2010-01-15  Oliver Kiddle  <okiddle@yahoo.co.uk>
1350
1351         * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
1352         Sun Studio compiler compatibility.
1353
1354 2010-01-12  Conrad Irwin <conrad.irwin@gmail.com>
1355
1356         * doc/libffi.texi: Add closure example.
1357
1358 2010-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1359
1360         PR libffi/40701
1361         * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1362         PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1363         * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1364         alpha*-dec-osf*.
1365         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1366         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1367         * testsuite/libffi.call/return_ll1.c: Likewise.
1368         * testsuite/libffi.call/stret_medium2.c: Likewise.
1369         * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1370         MAP_FAILED to char *.
1371
1372 2010-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1373
1374         * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1375
1376 2009-12-31  Anthony Green  <green@redhat.com>
1377
1378         * README: Update for libffi 3.0.9.
1379
1380 2009-12-27  Matthias Klose  <doko@ubuntu.com>
1381
1382         * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1383         appropriate.
1384         * configure: Rebuilt.
1385
1386 2009-12-26  Anthony Green  <green@redhat.com>
1387
1388         * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1389         avr32*-*-*.
1390         * testsuite/libffi.call/cls_double_va.c: Ditto.
1391
1392 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1393
1394         * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1395         and inttypes.h.
1396         * testsuite/libffi.special/unwindtest.cc: Ditto.
1397
1398 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1399
1400         * configure.ac: Add amd64-*-openbsd*.
1401         * configure: Rebuilt.
1402         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1403         openbsd programs with -lpthread.
1404
1405 2009-12-26  Anthony Green  <green@redhat.com>
1406
1407         * testsuite/libffi.call/cls_double_va.c,
1408         testsuite/libffi.call/cls_longdouble.c,
1409         testsuite/libffi.call/cls_longdouble_va.c,
1410         testsuite/libffi.call/cls_pointer.c,
1411         testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1412         mips*-*-* and arm*-*-*.
1413         * testsuite/libffi.call/cls_align_longdouble_split.c,
1414         testsuite/libffi.call/cls_align_longdouble_split2.c,
1415         testsuite/libffi.call/stret_medium2.c,
1416         testsuite/libffi.call/stret_medium.c,
1417         testsuite/libffi.call/stret_large.c,
1418         testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1419
1420 2009-12-31  Kay Tietz  <ktietz70@googlemail.com>
1421
1422         * testsuite/libffi.call/ffitest.h,
1423         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1424         definitions.
1425
1426 2009-12-31  Carlo Bramini  <carlo.bramix@libero.it>
1427
1428         * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1429         * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1430         * configure: Rebuilt.
1431         * Makefile.in: Rebuilt.
1432
1433 2009-12-31  Anthony Green  <green@redhat.com>
1434             Blake Chaffin.
1435
1436         * testsuite/libffi.call/huge_struct.c: New test case from Blake
1437         Chaffin @ Apple.
1438
1439 2009-12-28  David Edelsohn  <edelsohn@gnu.org>
1440
1441         * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1442         local variables.
1443         (aix_adjust_aggregate_sizes): New function.
1444         (ffi_prep_cif_machdep): Call it.
1445
1446 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1447
1448         * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1449         * configure: Regenerate.
1450         * fficonfig.h.in: Likewise.
1451         * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1452         Solaris/x86.
1453
1454 2009-12-26  Andreas Schwab  <schwab@linux-m68k.org>
1455
1456         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1457         when a float arguments is passed in memory.
1458         (ffi_closure_helper_SYSV): Mark general registers as used up when
1459         a 64bit or soft-float long double argument is passed in memory.
1460
1461 2009-12-25  Matthias Klose  <doko@ubuntu.com>
1462
1463         * man/ffi_call.3: Fix #include in examples.
1464         * doc/libffi.texi: Add dircategory.
1465
1466 2009-12-25  Frank Everdij <f.p.x.everdij@tudelft.nl>
1467
1468         * include/ffi.h.in: Placed '__GNUC__' ifdef around
1469         '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1470         IRIX MIPSPro c99.
1471         * include/ffi_common.h: Added '__sgi' define to non
1472         '__attribute__((__mode__()))' integer typedefs.
1473         * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
1474         ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1475         (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1476         FFI_LONGDOUBLE support and alignment(N32 only).
1477         * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1478         fixed non '__attribute__((__mode__()))' integer typedefs.
1479         * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1480         since they are Linux/GNU Assembler specific.
1481
1482 2009-12-25  Bradley Smith  <brad@brad-smith.co.uk>
1483
1484         * configure.ac, Makefile.am, src/avr32/ffi.c,
1485         src/avr32/ffitarget.h,
1486         src/avr32/sysv.S: Add AVR32 port.
1487         * configure, Makefile.in: Rebuilt.
1488
1489 2009-12-21  Andreas Tobler  <a.tobler@schweiz.org>
1490
1491         * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1492         * configure: Regenerate.
1493
1494 2009-12-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1495
1496         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1497
1498 2009-12-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1499
1500         * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1501         type on HP-UX.
1502
1503 2012-02-13  Kai Tietz  <ktietz@redhat.com>
1504
1505         PR libffi/52221
1506         * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1507         support for X86_WIN32.
1508         (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1509
1510 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1511
1512         * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1513         double' arguments.
1514
1515 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1516
1517         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1518
1519 2009-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1520
1521         PR libffi/40700
1522         * src/closures.c [X86_64 && __sun__ && __svr4__]
1523         (FFI_MMAP_EXEC_WRIT): Define.
1524
1525 2009-12-08  David Daney  <ddaney@caviumnetworks.com>
1526
1527         * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1528         * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1529         * testsuite/libffi.call/stret_large.c: Same.
1530         * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1531         * testsuite/libffi.call/stret_large2.c: Same.
1532         * testsuite/libffi.call/stret_medium2.c: Same.
1533
1534 2009-12-07  David Edelsohn  <edelsohn@gnu.org>
1535
1536         * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1537         typo.
1538
1539 2009-12-05  David Edelsohn  <edelsohn@gnu.org>
1540
1541         * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1542         code.
1543         * src/powerpc/aix_closure.S: Same.
1544
1545 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1546
1547         * Makefile.in: Regenerate.
1548         * configure: Regenerate.
1549         * include/Makefile.in: Regenerate.
1550         * man/Makefile.in: Regenerate.
1551         * testsuite/Makefile.in: Regenerate.
1552
1553 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
1554
1555         * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
1556         linux64_closure.S.
1557
1558 2009-12-04  Uros Bizjak  <ubizjak@gmail.com>
1559
1560         PR libffi/41908
1561         * src/x86/ffi64.c (classify_argument): Update from
1562         gcc/config/i386/i386.c.
1563         (ffi_closure_unix64_inner): Do not use the address of two consecutive
1564         SSE registers directly.
1565         * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1566         for x86_64 linux targets.
1567
1568 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
1569
1570         * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1571         pfr for long double split between fpr13 and stack.
1572
1573 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
1574
1575         * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1576         fparg_count twice for long double.
1577
1578 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
1579
1580         PR libffi/42243
1581         * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1582
1583 2009-12-03  Uros Bizjak  <ubizjak@gmail.com>
1584
1585         * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1586         Remove xfails for x86 linux targets.
1587
1588 2009-12-02  David Edelsohn  <edelsohn@gnu.org>
1589
1590         * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1591         case.
1592
1593 2009-12-01  David Edelsohn  <edelsohn@gnu.org>
1594
1595         * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1596         register usage.  Call ffi_prep_args directly.  Add long double
1597         return value support.
1598         * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1599         applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
1600         Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1601         (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1602         mode.
1603         (ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
1604         into case.
1605         * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1606         Allocate result area between params and FPRs.
1607
1608 2009-11-30  David Edelsohn  <edelsohn@gnu.org>
1609
1610         PR target/35484
1611         * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1612         AIX64.
1613         * src/powerpc/aix.S: Implement AIX64 version.
1614         * src/powerpc/aix_closure.S: Implement AIX64 version.
1615         (ffi_closure_ASM): Use extsb, lha and displament addresses.
1616         * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1617         support.
1618         (ffi_prep_cif_machdep): Same.
1619         (ffi_call): Same.
1620         (ffi_closure_helper_DARWIN): Same.
1621
1622 2009-11-02  Andreas Tobler  <a.tobler@schweiz.org>
1623
1624         PR libffi/41908
1625         * testsuite/libffi.call/testclosure.c: New test.
1626
1627 2009-09-28  Kai Tietz  <kai.tietz@onevision.com>
1628
1629         * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1630         assembly version use of ___chkstk.
1631
1632 2009-09-23  Matthias Klose  <doko@ubuntu.com>
1633
1634         PR libffi/40242, PR libffi/41443
1635         * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1636         __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1637         __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1638         Change the conditionals to __SOFTFP__ || __ARM_EABI__
1639         for -mfloat-abi=softfp to work.
1640
1641 2009-09-17  Loren J. Rittle  <ljrittle@acm.org>
1642
1643         PR testsuite/32843 (strikes again)
1644         * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1645         enable proper extension on char and short.
1646
1647 2009-09-15  David Daney  <ddaney@caviumnetworks.com>
1648
1649         * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1650         handling for FFI_TYPE_POINTER.
1651         * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1652         FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1653         FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1654         FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1655         (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1656         (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1657         * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1658         structure and pointer returns.
1659         (ffi_closure_N32): Add handling for pointer returns.
1660         * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1661         calc_n32_return_struct_flags): Handle soft-float.
1662         (ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
1663         (ffi_call_N32): Declare proper argument types.
1664         (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1665         soft-float.
1666
1667 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1668
1669         * configure.ac (AC_PREREQ): Bump to 2.64.
1670
1671 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1672
1673         * Makefile.am (install-html, install-pdf): Remove.
1674         * Makefile.in: Regenerate.
1675
1676         * Makefile.in: Regenerate.
1677         * aclocal.m4: Regenerate.
1678         * configure: Regenerate.
1679         * fficonfig.h.in: Regenerate.
1680         * include/Makefile.in: Regenerate.
1681         * man/Makefile.in: Regenerate.
1682         * testsuite/Makefile.in: Regenerate.
1683
1684 2011-08-22  Jasper Lievisse Adriaanse <jasper@openbsd.org>
1685
1686         * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1687         * configure: Rebuilt.
1688
1689 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1690
1691         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1692
1693 2009-07-24  Dave Korn  <dave.korn.cygwin@gmail.com>
1694
1695         PR libffi/40807
1696         * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1697         return types for X86_WIN32.
1698         * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1699         (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1700         _ffi_closure_STDCALL): Likewise.
1701
1702         * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1703         (dlmmap, dlmunmap): Also use these functions on Cygwin.
1704
1705 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1706
1707         PR testsuite/40699
1708         PR testsuite/40707
1709         PR testsuite/40709
1710         * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1711         2009-06-30 commits.
1712
1713 2009-07-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1714
1715         * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1716         to "" before adding paths.  (This reinstates an assignment that
1717         was removed by my 2009-06-30 commit, but changes the initial
1718         value from "." to "".)
1719
1720 2009-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1721
1722         PR testsuite/40601
1723         * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1724         gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
1725         empty.
1726
1727 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1728
1729         * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1730         to ld_library_path.  Use add_path.  Add just find_libgcc_s
1731         to ld_library_path, not every libgcc multilib directory.
1732
1733 2009-06-16  Wim Lewis  <wiml@hhhh.org>
1734
1735         * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1736         supposed to be callee-saved.
1737         * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1738         return buffer for odd-size structs.
1739
1740 2009-06-16  Andreas Tobler  <a.tobler@schweiz.org>
1741
1742         PR libffi/40444
1743         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1744         allow_stack_execute for Darwin.
1745
1746 2009-06-16  Andrew Haley  <aph@redhat.com>
1747
1748         * configure.ac (TARGETDIR): Add missing blank lines.
1749         * configure: Regenerate.
1750
1751 2009-06-16  Andrew Haley  <aph@redhat.com>
1752
1753         * testsuite/libffi.call/cls_align_sint64.c,
1754         testsuite/libffi.call/cls_align_uint64.c,
1755         testsuite/libffi.call/cls_longdouble_va.c,
1756         testsuite/libffi.call/cls_ulonglong.c,
1757         testsuite/libffi.call/return_ll1.c,
1758         testsuite/libffi.call/stret_medium2.c: Fix printf format
1759         specifiers.
1760         * testsuite/libffi.call/ffitest.h,
1761         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1762
1763 2009-06-15  Andrew Haley  <aph@redhat.com>
1764
1765         * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1766         * testsuite/libffi.call/err_bad_abi.c: Likewise.
1767
1768 2009-06-12  Andrew Haley  <aph@redhat.com>
1769
1770         * Makefile.am: Remove info_TEXINFOS.
1771
1772 2009-06-12  Andrew Haley  <aph@redhat.com>
1773
1774         * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1775         testsuite/libffi.call/cls_align_uint64.c,
1776         testsuite/libffi.call/cls_ulonglong.c,
1777         testsuite/libffi.call/return_ll1.c,
1778         testsuite/libffi.call/stret_medium2.c: Fix printf format
1779         specifiers.
1780         testsuite/libffi.special/unwindtest.cc: include stdint.h.
1781
1782 2009-06-11  Timothy Wall  <twall@users.sf.net>
1783
1784         * Makefile.am,
1785         configure.ac,
1786         include/ffi.h.in,
1787         include/ffi_common.h,
1788         src/closures.c,
1789         src/dlmalloc.c,
1790         src/x86/ffi.c,
1791         src/x86/ffitarget.h,
1792         src/x86/win64.S (new),
1793         README: Added win64 support (mingw or MSVC)
1794         * Makefile.in,
1795         include/Makefile.in,
1796         man/Makefile.in,
1797         testsuite/Makefile.in,
1798         configure,
1799         aclocal.m4: Regenerated
1800         * ltcf-c.sh: properly escape cygwin/w32 path
1801         * man/ffi_call.3: Clarify size requirements for return value.
1802         * src/x86/ffi64.c: Fix filename in comment.
1803         * src/x86/win32.S: Remove unused extern.
1804
1805         * testsuite/libffi.call/closure_fn0.c,
1806         testsuite/libffi.call/closure_fn1.c,
1807         testsuite/libffi.call/closure_fn2.c,
1808         testsuite/libffi.call/closure_fn3.c,
1809         testsuite/libffi.call/closure_fn4.c,
1810         testsuite/libffi.call/closure_fn5.c,
1811         testsuite/libffi.call/closure_fn6.c,
1812         testsuite/libffi.call/closure_stdcall.c,
1813         testsuite/libffi.call/cls_12byte.c,
1814         testsuite/libffi.call/cls_16byte.c,
1815         testsuite/libffi.call/cls_18byte.c,
1816         testsuite/libffi.call/cls_19byte.c,
1817         testsuite/libffi.call/cls_1_1byte.c,
1818         testsuite/libffi.call/cls_20byte.c,
1819         testsuite/libffi.call/cls_20byte1.c,
1820         testsuite/libffi.call/cls_24byte.c,
1821         testsuite/libffi.call/cls_2byte.c,
1822         testsuite/libffi.call/cls_3_1byte.c,
1823         testsuite/libffi.call/cls_3byte1.c,
1824         testsuite/libffi.call/cls_3byte2.c,
1825         testsuite/libffi.call/cls_4_1byte.c,
1826         testsuite/libffi.call/cls_4byte.c,
1827         testsuite/libffi.call/cls_5_1_byte.c,
1828         testsuite/libffi.call/cls_5byte.c,
1829         testsuite/libffi.call/cls_64byte.c,
1830         testsuite/libffi.call/cls_6_1_byte.c,
1831         testsuite/libffi.call/cls_6byte.c,
1832         testsuite/libffi.call/cls_7_1_byte.c,
1833         testsuite/libffi.call/cls_7byte.c,
1834         testsuite/libffi.call/cls_8byte.c,
1835         testsuite/libffi.call/cls_9byte1.c,
1836         testsuite/libffi.call/cls_9byte2.c,
1837         testsuite/libffi.call/cls_align_double.c,
1838         testsuite/libffi.call/cls_align_float.c,
1839         testsuite/libffi.call/cls_align_longdouble.c,
1840         testsuite/libffi.call/cls_align_longdouble_split.c,
1841         testsuite/libffi.call/cls_align_longdouble_split2.c,
1842         testsuite/libffi.call/cls_align_pointer.c,
1843         testsuite/libffi.call/cls_align_sint16.c,
1844         testsuite/libffi.call/cls_align_sint32.c,
1845         testsuite/libffi.call/cls_align_sint64.c,
1846         testsuite/libffi.call/cls_align_uint16.c,
1847         testsuite/libffi.call/cls_align_uint32.c,
1848         testsuite/libffi.call/cls_align_uint64.c,
1849         testsuite/libffi.call/cls_dbls_struct.c,
1850         testsuite/libffi.call/cls_double.c,
1851         testsuite/libffi.call/cls_double_va.c,
1852         testsuite/libffi.call/cls_float.c,
1853         testsuite/libffi.call/cls_longdouble.c,
1854         testsuite/libffi.call/cls_longdouble_va.c,
1855         testsuite/libffi.call/cls_multi_schar.c,
1856         testsuite/libffi.call/cls_multi_sshort.c,
1857         testsuite/libffi.call/cls_multi_sshortchar.c,
1858         testsuite/libffi.call/cls_multi_uchar.c,
1859         testsuite/libffi.call/cls_multi_ushort.c,
1860         testsuite/libffi.call/cls_multi_ushortchar.c,
1861         testsuite/libffi.call/cls_pointer.c,
1862         testsuite/libffi.call/cls_pointer_stack.c,
1863         testsuite/libffi.call/cls_schar.c,
1864         testsuite/libffi.call/cls_sint.c,
1865         testsuite/libffi.call/cls_sshort.c,
1866         testsuite/libffi.call/cls_uchar.c,
1867         testsuite/libffi.call/cls_uint.c,
1868         testsuite/libffi.call/cls_ulonglong.c,
1869         testsuite/libffi.call/cls_ushort.c,
1870         testsuite/libffi.call/err_bad_abi.c,
1871         testsuite/libffi.call/err_bad_typedef.c,
1872         testsuite/libffi.call/float2.c,
1873         testsuite/libffi.call/huge_struct.c,
1874         testsuite/libffi.call/nested_struct.c,
1875         testsuite/libffi.call/nested_struct1.c,
1876         testsuite/libffi.call/nested_struct10.c,
1877         testsuite/libffi.call/nested_struct2.c,
1878         testsuite/libffi.call/nested_struct3.c,
1879         testsuite/libffi.call/nested_struct4.c,
1880         testsuite/libffi.call/nested_struct5.c,
1881         testsuite/libffi.call/nested_struct6.c,
1882         testsuite/libffi.call/nested_struct7.c,
1883         testsuite/libffi.call/nested_struct8.c,
1884         testsuite/libffi.call/nested_struct9.c,
1885         testsuite/libffi.call/problem1.c,
1886         testsuite/libffi.call/return_ldl.c,
1887         testsuite/libffi.call/return_ll1.c,
1888         testsuite/libffi.call/stret_large.c,
1889         testsuite/libffi.call/stret_large2.c,
1890         testsuite/libffi.call/stret_medium.c,
1891         testsuite/libffi.call/stret_medium2.c,
1892         testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1893         of checking for MMAP.  Use intptr_t instead of long casts.
1894
1895 2009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1896
1897         * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1898         * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1899         * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1900
1901 2009-06-09  Andrew Haley  <aph@redhat.com>
1902
1903         * src/x86/freebsd.S: Add missing file.
1904
1905 2009-06-08  Andrew Haley  <aph@redhat.com>
1906
1907         Import from libffi 3.0.8:
1908
1909         * doc/libffi.texi: New file.
1910         * doc/libffi.info: Likewise.
1911         * doc/stamp-vti: Likewise.
1912         * man/Makefile.am: New file.
1913         * man/ffi_call.3: New file.
1914
1915         * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1916         src/dlmalloc.c.
1917         (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1918
1919         * configure.ac: Bump version to 3.0.8.
1920         parisc*-*-linux*: Add.
1921         i386-*-freebsd* | i386-*-openbsd*: Add.
1922         powerpc-*-beos*: Add.
1923         AM_CONDITIONAL X86_FREEBSD: Add.
1924         AC_CONFIG_FILES: Add man/Makefile.
1925
1926         * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1927
1928 2009-06-08  Andrew Haley  <aph@redhat.com>
1929
1930         * README: Import from libffi 3.0.8.
1931
1932 2009-06-08  Andrew Haley  <aph@redhat.com>
1933
1934         * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1935         * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1936         * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1937         * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1938
1939         * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1940         * testsuite/libffi.call/stret_medium.c: Likewise.
1941         * testsuite/libffi.call/stret_large2.c: Likewise.
1942         * testsuite/libffi.call/stret_large.c:  Likewise.
1943
1944 2008-12-26  Timothy Wall  <twall@users.sf.net>
1945
1946         * testsuite/libffi.call/cls_longdouble.c,
1947         testsuite/libffi.call/cls_longdouble_va.c,
1948         testsuite/libffi.call/cls_align_longdouble.c,
1949         testsuite/libffi.call/cls_align_longdouble_split.c,
1950         testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1951         failures on x86_64 cygwin/mingw.
1952
1953 2008-12-22  Timothy Wall  <twall@users.sf.net>
1954
1955         * testsuite/libffi.call/closure_fn0.c,
1956         testsuite/libffi.call/closure_fn1.c,
1957         testsuite/libffi.call/closure_fn2.c,
1958         testsuite/libffi.call/closure_fn3.c,
1959         testsuite/libffi.call/closure_fn4.c,
1960         testsuite/libffi.call/closure_fn5.c,
1961         testsuite/libffi.call/closure_fn6.c,
1962         testsuite/libffi.call/closure_loc_fn0.c,
1963         testsuite/libffi.call/closure_stdcall.c,
1964         testsuite/libffi.call/cls_align_pointer.c,
1965         testsuite/libffi.call/cls_pointer.c,
1966         testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1967         pointer to integer (intptr_t).
1968         * testsuite/libffi.call/cls_longdouble.c: disable for win64.
1969
1970 2008-07-24  Anthony Green  <green@redhat.com>
1971
1972         * testsuite/libffi.call/cls_dbls_struct.c,
1973         testsuite/libffi.call/cls_double_va.c,
1974         testsuite/libffi.call/cls_longdouble.c,
1975         testsuite/libffi.call/cls_longdouble_va.c,
1976         testsuite/libffi.call/cls_pointer.c,
1977         testsuite/libffi.call/cls_pointer_stack.c,
1978         testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1979         compiler warnings.
1980
1981 2008-03-04  Anthony Green  <green@redhat.com>
1982             Blake Chaffin
1983             hos@tamanegi.org
1984
1985         * testsuite/libffi.call/cls_align_longdouble_split2.c
1986           testsuite/libffi.call/cls_align_longdouble_split.c
1987           testsuite/libffi.call/cls_dbls_struct.c
1988           testsuite/libffi.call/cls_double_va.c
1989           testsuite/libffi.call/cls_longdouble.c
1990           testsuite/libffi.call/cls_longdouble_va.c
1991           testsuite/libffi.call/cls_pointer.c
1992           testsuite/libffi.call/cls_pointer_stack.c
1993           testsuite/libffi.call/err_bad_abi.c
1994           testsuite/libffi.call/err_bad_typedef.c
1995           testsuite/libffi.call/stret_large2.c
1996           testsuite/libffi.call/stret_large.c
1997           testsuite/libffi.call/stret_medium2.c
1998           testsuite/libffi.call/stret_medium.c: New tests from Apple.
1999
2000 2009-06-05  Andrew Haley  <aph@redhat.com>
2001
2002         * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2003         libffi.
2004
2005 2009-06-04  Andrew Haley  <aph@redhat.com>
2006
2007         * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2008         stdcall changes.
2009
2010 2008-02-26  Anthony Green  <green@redhat.com>
2011             Thomas Heller  <theller@ctypes.org>
2012
2013         * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2014         comment.
2015
2016 2008-02-03  Timothy Wall  <twall@users.sf.net>
2017
2018         * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2019           offset based on code pointer, not data pointer.
2020
2021 2008-01-31  Timothy Wall <twall@users.sf.net>
2022
2023         * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2024         closures.
2025         * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2026         closures.
2027         * src/x86/win32.S: Add assembly for stdcall closure.
2028         * src/x86/ffi.c: Initialize stdcall closure trampoline.
2029
2030 2009-06-04  Andrew Haley  <aph@redhat.com>
2031
2032         * include/ffi.h.in: Change void (*)() to void (*)(void).
2033         * src/x86/ffi.c: Likewise.
2034
2035 2009-06-04  Andrew Haley  <aph@redhat.com>
2036
2037         * src/powerpc/ppc_closure.S: Insert licence header.
2038         * src/powerpc/linux64_closure.S: Likewise.
2039         * src/m68k/sysv.S: Likewise.
2040
2041         * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2042         * src/powerpc/ffi.c: Likewise.
2043         * src/powerpc/ffi_darwin.c: Likewise.
2044         * src/m32r/ffi.c: Likewise.
2045         * src/sh64/ffi.c: Likewise.
2046         * src/x86/ffi64.c: Likewise.
2047         * src/alpha/ffi.c: Likewise.
2048         * src/alpha/osf.S: Likewise.
2049         * src/frv/ffi.c: Likewise.
2050         * src/s390/ffi.c: Likewise.
2051         * src/pa/ffi.c: Likewise.
2052         * src/pa/hpux32.S: Likewise.
2053         * src/ia64/unix.S: Likewise.
2054         * src/ia64/ffi.c: Likewise.
2055         * src/sparc/ffi.c: Likewise.
2056         * src/mips/ffi.c: Likewise.
2057         * src/sh/ffi.c: Likewise.
2058
2059 2008-02-15  David Daney  <ddaney@avtrex.com>
2060
2061         * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2062         Define (conditionally), and use it to include cachectl.h.
2063         (ffi_prep_closure_loc): Fix cache flushing.
2064         * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
2065
2066 2009-06-04  Andrew Haley  <aph@redhat.com>
2067
2068         include/ffi.h.in,
2069         src/arm/ffitarget.h,
2070         src/arm/ffi.c,
2071         src/arm/sysv.S,
2072         src/powerpc/ffitarget.h,
2073         src/closures.c,
2074         src/sh64/ffitarget.h,
2075         src/sh64/ffi.c,
2076         src/sh64/sysv.S,
2077         src/types.c,
2078         src/x86/ffi64.c,
2079         src/x86/ffitarget.h,
2080         src/x86/win32.S,
2081         src/x86/darwin.S,
2082         src/x86/ffi.c,
2083         src/x86/sysv.S,
2084         src/x86/unix64.S,
2085         src/alpha/ffitarget.h,
2086         src/alpha/ffi.c,
2087         src/alpha/osf.S,
2088         src/m68k/ffitarget.h,
2089         src/frv/ffitarget.h,
2090         src/frv/ffi.c,
2091         src/s390/ffitarget.h,
2092         src/s390/sysv.S,
2093         src/cris/ffitarget.h,
2094         src/pa/linux.S,
2095         src/pa/ffitarget.h,
2096         src/pa/ffi.c,
2097         src/raw_api.c,
2098         src/ia64/ffitarget.h,
2099         src/ia64/unix.S,
2100         src/ia64/ffi.c,
2101         src/ia64/ia64_flags.h,
2102         src/java_raw_api.c,
2103         src/debug.c,
2104         src/sparc/v9.S,
2105         src/sparc/ffitarget.h,
2106         src/sparc/ffi.c,
2107         src/sparc/v8.S,
2108         src/mips/ffitarget.h,
2109         src/mips/n32.S,
2110         src/mips/o32.S,
2111         src/mips/ffi.c,
2112         src/prep_cif.c,
2113         src/sh/ffitarget.h,
2114         src/sh/ffi.c,
2115         src/sh/sysv.S: Update license text.
2116
2117 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2118
2119         * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
2120         (.eh_frame):  Add FDE for it.
2121
2122 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2123
2124         * configure.ac:  Also check if assembler supports pc-relative
2125         relocs on X86_WIN32 targets.
2126         * configure:  Regenerate.
2127         * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
2128         (_ffi_call_SYSV):  Add missing function type symbol .def and
2129         add EH markup labels.
2130         (_ffi_call_STDCALL):  Likewise.
2131         (_ffi_closure_SYSV):  Likewise.
2132         (_ffi_closure_raw_SYSV):  Likewise.
2133         (.eh_frame):  Add hand-crafted EH data.
2134
2135 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2136
2137         * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2138         version 3 of the GNU General Public License and to point readers
2139         at the COPYING3 file and the FSF's license web page.
2140         * testsuite/libffi.call/call.exp: Likewise.
2141         * testsuite/libffi.special/special.exp: Likewise.
2142
2143 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2144
2145         * configure: Regenerate.
2146
2147 2008-12-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2148
2149         PR libffi/26048
2150         * configure.ac (HAVE_AS_X86_PCREL): New test.
2151         * configure: Regenerate.
2152         * fficonfig.h.in: Regenerate.
2153         * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2154         RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2155         RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2156         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2157         * src/x86/unix64.S (.Lstore_table): Move to .text section.
2158         (.Lload_table): Likewise.
2159         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2160
2161 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2162
2163         * configure: Regenerate.
2164
2165 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2166
2167         * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2168         signed/unsigned int8/16 return values.
2169         * src/sparc/v8.S (ffi_call_v8): Likewise.
2170         (ffi_closure_v8): Likewise.
2171
2172 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2173             Steve Ellcey  <sje@cup.hp.com>
2174
2175         * configure: Regenerate for new libtool.
2176         * Makefile.in: Ditto.
2177         * include/Makefile.in: Ditto.
2178         * aclocal.m4: Ditto.
2179
2180 2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
2181
2182         * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2183         FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2184         Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2185         Adjust copyright notice.
2186         * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2187         register or two register to use for FFI_SYSV structs.
2188         (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2189         (ffi_closure_helper_SYSV): Fix the return type for
2190         FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2191         Adjust copyright notice.
2192
2193 2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2194
2195         * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2196         int.
2197
2198 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2199
2200         * configure: Regenerate.
2201         * include/Makefile.in: Regenerate.
2202         * testsuite/Makefile.in: Regenerate.
2203
2204 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
2205
2206         * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2207         powerpc-*-beos*): Remove.
2208         * configure: Regenerate.
2209
2210 2008-05-09  Julian Brown  <julian@codesourcery.com>
2211
2212         * Makefile.am (LTLDFLAGS): New.
2213         (libffi_la_LDFLAGS): Use above.
2214         * Makefile.in: Regenerate.
2215
2216 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2217
2218         PR bootstrap/35457
2219         * aclocal.m4: Regenerate.
2220         * configure: Regenerate.
2221
2222 2008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2223
2224         * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2225         * src/sh64/sysv.S: Likewise.
2226
2227 2008-03-26  Daniel Jacobowitz  <dan@debian.org>
2228
2229         * src/arm/sysv.S: Fix ARM comment marker.
2230
2231 2008-03-26  Jakub Jelinek  <jakub@redhat.com>
2232
2233         * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2234         * src/s390/sysv.S: Likewise.
2235         * src/powerpc/ppc_closure.S: Likewise.
2236         * src/powerpc/sysv.S: Likewise.
2237         * src/x86/unix64.S: Likewise.
2238         * src/x86/sysv.S: Likewise.
2239         * src/sparc/v8.S: Likewise.
2240         * src/sparc/v9.S: Likewise.
2241         * src/m68k/sysv.S: Likewise.
2242         * src/arm/sysv.S: Likewise.
2243
2244 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2245
2246         * aclocal.m4: Regenerate.
2247         * configure: Likewise.
2248         * Makefile.in: Likewise.
2249         * include/Makefile.in: Likewise.
2250         * testsuite/Makefile.in: Likewise.
2251
2252 2008-02-12  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
2253             Andreas Tobler  <a.tobler@schweiz.org>
2254
2255         * configure.ac: Add amd64-*-freebsd* target.
2256         * configure: Regenerate.
2257
2258 2008-01-30  H.J. Lu  <hongjiu.lu@intel.com>
2259
2260         PR libffi/34612
2261         * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2262         returning struct.
2263
2264         * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2265         tests.
2266
2267 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2268
2269         * configure: Regenerate.
2270
2271 2008-01-06  Andreas Tobler  <a.tobler@schweiz.org>
2272
2273         * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2274
2275 2008-01-05  Andreas Tobler  <a.tobler@schweiz.org>
2276
2277         PR testsuite/32843
2278         * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2279         signed/unsigned int8/16 for X86_DARWIN.
2280         Updated copyright info.
2281         Handle one and two byte structs with special cif->flags.
2282         * src/x86/ffitarget.h: Add special types for one and two byte structs.
2283         Updated copyright info.
2284         * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2285         sysv.S
2286         Remove code to pop args from the stack after call.
2287         Special-case signed/unsigned for int8/16, one and two byte structs.
2288         (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2289         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2290         FFI_TYPE_SINT32.
2291         Updated copyright info.
2292
2293 2007-12-08  David Daney  <ddaney@avtrex.com>
2294
2295         * src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with
2296         SUBU, add with ADDU and use smaller code sequences.
2297
2298 2007-12-07  David Daney  <ddaney@avtrex.com>
2299
2300         * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2301         type.
2302
2303 2007-12-06  David Daney  <ddaney@avtrex.com>
2304
2305         * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2306         defined.
2307         (ffi_java_raw): New typedef.
2308         (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2309         ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2310         ffi_java_raw.
2311         (ffi_java_raw_closure) : Same.
2312         (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2313         parameter types.
2314         * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
2315         FFI_SIZEOF_JAVA_RAW.
2316         (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2317         Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2318         sizeof(ffi_java_raw) for alignment calculations.
2319         (ffi_java_ptrarray_to_raw): Same.
2320         (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
2321         if FFI_SIZEOF_JAVA_RAW == 4.
2322         (ffi_java_raw_to_rvalue): Same.
2323         (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2324         (ffi_java_translate_args): Same.
2325         (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2326         parameter types.
2327         * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2328
2329 2007-12-06  David Daney  <ddaney@avtrex.com>
2330
2331         * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
2332         pointer values.
2333
2334 2007-12-01  Andreas Tobler  <a.tobler@schweiz.org>
2335
2336         PR libffi/31937
2337         * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2338         Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2339         * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2340         set the NUM_FPR_ARG_REGISTERS according to.
2341         Add support for potential soft-float support under hard-float
2342         architecture.
2343         (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2344         FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2345         to the FFI_LINUX_SOFT_FLOAT ABI.
2346         (ffi_prep_cif_machdep): Likewise.
2347         (ffi_closure_helper_SYSV): Likewise.
2348         * src/powerpc/ppc_closure.S: Make sure not to store float/double
2349         on archs where __NO_FPRS__ is true.
2350         Add FFI_TYPE_UINT128 support.
2351         * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2352         Adjust copyright notice.
2353
2354 2007-11-25  Andreas Tobler  <a.tobler@schweiz.org>
2355
2356         * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2357         * include/ffi_common.h: ... here.
2358         Update copyright.
2359
2360 2007-11-17  Andreas Tobler  <a.tobler@schweiz.org>
2361
2362         * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2363         * src/powerpc/linux64.S: Likewise.
2364         * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2365         * testsuite/libffi.call/return_ldl.c: New test.
2366
2367 2007-09-04    <aph@redhat.com>
2368
2369         * src/arm/sysv.S (UNWIND): New.
2370         (Whole file): Conditionally compile unwinder directives.
2371         * src/arm/sysv.S: Add unwinder directives.
2372
2373         * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2374         Only treat r0 as a struct address if we're actually returning a
2375         struct by address.
2376         Only copy the bytes that are actually within a struct.
2377         (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2378         is returned in r0, not passed by address.
2379         (ffi_call): Allocate a word-sized temporary for the case where
2380         a composite is returned in r0.
2381         (ffi_prep_incoming_args_SYSV): Align as necessary.
2382
2383 2007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>
2384
2385         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
2386         directly using the sys_cacheflush syscall.
2387
2388 2007-07-27  Andrew Haley  <aph@redhat.com>
2389
2390         * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2391
2392 2007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>
2393
2394         * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2395         * configure.ac: Likewise.
2396         * Makefile.in: Regenerate.
2397         * include/Makefile.in: Likewise.
2398         * testsuite/Makefile.in: Likewise.
2399         * configure: Likewise.
2400
2401 2007-08-24  David Daney  <ddaney@avtrex.com>
2402
2403         * testsuite/libffi.call/return_sl.c: New test.
2404
2405 2007-08-10  David Daney  <ddaney@avtrex.com>
2406
2407         * testsuite/libffi.call/cls_multi_ushort.c,
2408         testsuite/libffi.call/cls_align_uint16.c,
2409         testsuite/libffi.call/nested_struct1.c,
2410         testsuite/libffi.call/nested_struct3.c,
2411         testsuite/libffi.call/cls_7_1_byte.c,
2412         testsuite/libffi.call/nested_struct5.c,
2413         testsuite/libffi.call/cls_double.c,
2414         testsuite/libffi.call/nested_struct7.c,
2415         testsuite/libffi.call/cls_sint.c,
2416         testsuite/libffi.call/nested_struct9.c,
2417         testsuite/libffi.call/cls_20byte1.c,
2418         testsuite/libffi.call/cls_multi_sshortchar.c,
2419         testsuite/libffi.call/cls_align_sint64.c,
2420         testsuite/libffi.call/cls_3byte2.c,
2421         testsuite/libffi.call/cls_multi_schar.c,
2422         testsuite/libffi.call/cls_multi_uchar.c,
2423         testsuite/libffi.call/cls_19byte.c,
2424         testsuite/libffi.call/cls_9byte1.c,
2425         testsuite/libffi.call/cls_align_float.c,
2426         testsuite/libffi.call/closure_fn1.c,
2427         testsuite/libffi.call/problem1.c,
2428         testsuite/libffi.call/closure_fn3.c,
2429         testsuite/libffi.call/cls_sshort.c,
2430         testsuite/libffi.call/closure_fn5.c,
2431         testsuite/libffi.call/cls_align_double.c,
2432         testsuite/libffi.call/nested_struct.c,
2433         testsuite/libffi.call/cls_2byte.c,
2434         testsuite/libffi.call/nested_struct10.c,
2435         testsuite/libffi.call/cls_4byte.c,
2436         testsuite/libffi.call/cls_6byte.c,
2437         testsuite/libffi.call/cls_8byte.c,
2438         testsuite/libffi.call/cls_multi_sshort.c,
2439         testsuite/libffi.call/cls_align_sint16.c,
2440         testsuite/libffi.call/cls_align_uint32.c,
2441         testsuite/libffi.call/cls_20byte.c,
2442         testsuite/libffi.call/cls_float.c,
2443         testsuite/libffi.call/nested_struct2.c,
2444         testsuite/libffi.call/cls_5_1_byte.c,
2445         testsuite/libffi.call/nested_struct4.c,
2446         testsuite/libffi.call/cls_24byte.c,
2447         testsuite/libffi.call/nested_struct6.c,
2448         testsuite/libffi.call/cls_64byte.c,
2449         testsuite/libffi.call/nested_struct8.c,
2450         testsuite/libffi.call/cls_uint.c,
2451         testsuite/libffi.call/cls_multi_ushortchar.c,
2452         testsuite/libffi.call/cls_schar.c,
2453         testsuite/libffi.call/cls_uchar.c,
2454         testsuite/libffi.call/cls_align_uint64.c,
2455         testsuite/libffi.call/cls_ulonglong.c,
2456         testsuite/libffi.call/cls_align_longdouble.c,
2457         testsuite/libffi.call/cls_1_1byte.c,
2458         testsuite/libffi.call/cls_12byte.c,
2459         testsuite/libffi.call/cls_3_1byte.c,
2460         testsuite/libffi.call/cls_3byte1.c,
2461         testsuite/libffi.call/cls_4_1byte.c,
2462         testsuite/libffi.call/cls_6_1_byte.c,
2463         testsuite/libffi.call/cls_16byte.c,
2464         testsuite/libffi.call/cls_18byte.c,
2465         testsuite/libffi.call/closure_fn0.c,
2466         testsuite/libffi.call/cls_9byte2.c,
2467         testsuite/libffi.call/closure_fn2.c,
2468         testsuite/libffi.call/closure_fn4.c,
2469         testsuite/libffi.call/cls_ushort.c,
2470         testsuite/libffi.call/closure_fn6.c,
2471         testsuite/libffi.call/cls_5byte.c,
2472         testsuite/libffi.call/cls_align_pointer.c,
2473         testsuite/libffi.call/cls_7byte.c,
2474         testsuite/libffi.call/cls_align_sint32.c,
2475         testsuite/libffi.special/unwindtest_ffi_call.cc,
2476         testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2477
2478 2007-08-10  David Daney  <ddaney@avtrex.com>
2479
2480         PR libffi/28313
2481         * configure.ac: Don't treat mips64 as a special case.
2482         * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2483         * configure: Regenerate
2484         * Makefile.in: Ditto.
2485         * fficonfig.h.in: Ditto.
2486         * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2487         (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2488         (FFI_DEFAULT_ABI): Set for n64 case.
2489         (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2490         * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2491         (ffi_closure_N32): New function.
2492         (.eh_frame): New section
2493         * src/mips/o32.S: Clean up comments.
2494         (ffi_closure_O32): Pass ffi_closure parameter in $12.
2495         * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2496         _MIPS_SIM == _ABIN32 throughout.
2497         (FFI_MIPS_STOP_HERE): New, use in place of
2498         ffi_stop_here.
2499         (ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
2500         to support n32/n64 ABIs.
2501         (calc_n32_struct_flags): Rewrite.
2502         (calc_n32_return_struct_flags): Remove unused variable.  Reverse
2503         position of flag bits.
2504         (ffi_prep_cif_machdep): Rewrite n32 portion.
2505         (ffi_call): Enable for n64.  Add special handling for small structure
2506         return values.
2507         (ffi_prep_closure_loc): Add n32 and n64 support.
2508         (ffi_closure_mips_inner_O32): Add cast to silence warning.
2509         (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2510
2511 2007-08-08  David Daney  <ddaney@avtrex.com>
2512
2513         * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2514         * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2515         specifiers.
2516         * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2517         * testsuite/libffi.call/cls_sint.c (main): Ditto.
2518         * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2519         * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2520         * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2521         * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2522         * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2523         * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2524         * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2525         * testsuite/libffi.call/return_fl3.c (main): Ditto.
2526         * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2527         * testsuite/libffi.call/nested_struct.c (main): Ditto.
2528         * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2529         * testsuite/libffi.call/return_ll1.c (main): Ditto.
2530         * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2531         * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2532         * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2533         * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2534         * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2535         * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2536         * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2537         * testsuite/libffi.call/cls_uint.c (main): Ditto.
2538         * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2539         * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2540         * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2541         * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2542         * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2543         * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2544         * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2545         * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2546         * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2547
2548 2007-08-07  Andrew Haley  <aph@redhat.com>
2549
2550         * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2551         checkin.
2552
2553 2007-08-06  Andrew Haley  <aph@redhat.com>
2554
2555         PR testsuite/32843
2556         * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2557         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2558         FFI_TYPE_SINT32.
2559
2560 2007-08-02  David Daney  <ddaney@avtrex.com>
2561
2562         * testsuite/libffi.call/return_ul.c (main): Define return type as
2563         ffi_arg.  Use proper printf conversion specifier.
2564
2565 2007-07-30  Andrew Haley  <aph@redhat.com>
2566
2567         PR testsuite/32843
2568         * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2569         signed/unsigned int8/16.
2570         * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2571         Use a jump table.
2572         Remove code to pop args from the stack after call.
2573         Special-case signed/unsigned int8/16.
2574         * testsuite/libffi.call/return_sc.c (main): Revert.
2575
2576 2007-07-26  Richard Guenther  <rguenther@suse.de>
2577
2578         PR testsuite/32843
2579         * testsuite/libffi.call/return_sc.c (main): Verify call
2580         result as signed char, not ffi_arg.
2581
2582 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2583
2584         * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2585         * configure: Regenerate.
2586
2587 2007-07-11  David Daney  <ddaney@avtrex.com>
2588
2589         * src/mips/ffi.c: Don't include sys/cachectl.h.
2590         (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2591         cacheflush().
2592
2593 2007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
2594
2595         * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2596         from (ffi_prep_closure): ... this.
2597         (FFI_INIT_TRAMPOLINE): Adjust.
2598
2599 2005-12-31  Phil Blundell  <pb@reciva.com>
2600
2601         * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2602         ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
2603         * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2604         * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2605         (FFI_CLOSURES): Enable closure support.
2606
2607 2007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
2608
2609         * testsuite/libffi.call/cls_multi_ushort.c,
2610         testsuite/libffi.call/cls_align_uint16.c,
2611         testsuite/libffi.call/nested_struct1.c,
2612         testsuite/libffi.call/nested_struct3.c,
2613         testsuite/libffi.call/cls_7_1_byte.c,
2614         testsuite/libffi.call/cls_double.c,
2615         testsuite/libffi.call/nested_struct5.c,
2616         testsuite/libffi.call/nested_struct7.c,
2617         testsuite/libffi.call/cls_sint.c,
2618         testsuite/libffi.call/nested_struct9.c,
2619         testsuite/libffi.call/cls_20byte1.c,
2620         testsuite/libffi.call/cls_multi_sshortchar.c,
2621         testsuite/libffi.call/cls_align_sint64.c,
2622         testsuite/libffi.call/cls_3byte2.c,
2623         testsuite/libffi.call/cls_multi_schar.c,
2624         testsuite/libffi.call/cls_multi_uchar.c,
2625         testsuite/libffi.call/cls_19byte.c,
2626         testsuite/libffi.call/cls_9byte1.c,
2627         testsuite/libffi.call/cls_align_float.c,
2628         testsuite/libffi.call/closure_fn1.c,
2629         testsuite/libffi.call/problem1.c,
2630         testsuite/libffi.call/closure_fn3.c,
2631         testsuite/libffi.call/cls_sshort.c,
2632         testsuite/libffi.call/closure_fn5.c,
2633         testsuite/libffi.call/cls_align_double.c,
2634         testsuite/libffi.call/cls_2byte.c,
2635         testsuite/libffi.call/nested_struct.c,
2636         testsuite/libffi.call/nested_struct10.c,
2637         testsuite/libffi.call/cls_4byte.c,
2638         testsuite/libffi.call/cls_6byte.c,
2639         testsuite/libffi.call/cls_8byte.c,
2640         testsuite/libffi.call/cls_multi_sshort.c,
2641         testsuite/libffi.call/cls_align_uint32.c,
2642         testsuite/libffi.call/cls_align_sint16.c,
2643         testsuite/libffi.call/cls_float.c,
2644         testsuite/libffi.call/cls_20byte.c,
2645         testsuite/libffi.call/cls_5_1_byte.c,
2646         testsuite/libffi.call/nested_struct2.c,
2647         testsuite/libffi.call/cls_24byte.c,
2648         testsuite/libffi.call/nested_struct4.c,
2649         testsuite/libffi.call/nested_struct6.c,
2650         testsuite/libffi.call/cls_64byte.c,
2651         testsuite/libffi.call/nested_struct8.c,
2652         testsuite/libffi.call/cls_uint.c,
2653         testsuite/libffi.call/cls_multi_ushortchar.c,
2654         testsuite/libffi.call/cls_schar.c,
2655         testsuite/libffi.call/cls_uchar.c,
2656         testsuite/libffi.call/cls_align_uint64.c,
2657         testsuite/libffi.call/cls_ulonglong.c,
2658         testsuite/libffi.call/cls_align_longdouble.c,
2659         testsuite/libffi.call/cls_1_1byte.c,
2660         testsuite/libffi.call/cls_12byte.c,
2661         testsuite/libffi.call/cls_3_1byte.c,
2662         testsuite/libffi.call/cls_3byte1.c,
2663         testsuite/libffi.call/cls_4_1byte.c,
2664         testsuite/libffi.call/cls_6_1_byte.c,
2665         testsuite/libffi.call/cls_16byte.c,
2666         testsuite/libffi.call/cls_18byte.c,
2667         testsuite/libffi.call/closure_fn0.c,
2668         testsuite/libffi.call/cls_9byte2.c,
2669         testsuite/libffi.call/closure_fn2.c,
2670         testsuite/libffi.call/closure_fn4.c,
2671         testsuite/libffi.call/cls_ushort.c,
2672         testsuite/libffi.call/closure_fn6.c,
2673         testsuite/libffi.call/cls_5byte.c,
2674         testsuite/libffi.call/cls_align_pointer.c,
2675         testsuite/libffi.call/cls_7byte.c,
2676         testsuite/libffi.call/cls_align_sint32.c,
2677         testsuite/libffi.special/unwindtest_ffi_call.cc,
2678         testsuite/libffi.special/unwindtest.cc: Enable for ARM.
2679
2680 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2681
2682         * aclocal.m4: Regenerated.
2683
2684 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2685
2686         * configure: Regenerate.
2687
2688 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2689
2690         * Makefile.in: Regenerate.
2691         * configure: Regenerate.
2692         * aclocal.m4: Regenerate.
2693         * include/Makefile.in: Regenerate.
2694         * testsuite/Makefile.in: Regenerate.
2695
2696 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
2697
2698         * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2699         ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2700         * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2701         * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2702         (FFI_CLOSURES): Enable closure support.
2703
2704 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
2705
2706         * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2707         * configure: Regenerate.
2708         * fficonfig.h.in: Regenerate.
2709         * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2710         CFI_OFFSET,CFI_DEF_CFA): New macros.
2711         (ffi_call_SYSV): Add callframe annotation.
2712
2713 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
2714
2715         * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2716         numerous test suite failures.
2717         * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2718
2719 2007-04-11  Paolo Bonzini  <bonzini@gnu.org>
2720
2721         * Makefile.am (EXTRA_DIST): Bring up to date.
2722         * Makefile.in: Regenerate.
2723         * src/frv/eabi.S: Remove RCS keyword.
2724
2725 2007-04-06  Richard Henderson  <rth@redhat.com>
2726
2727         * configure.ac: Tidy target case.
2728         (HAVE_LONG_DOUBLE): Allow the target to override.
2729         * configure: Regenerate.
2730         * include/ffi.h.in: Don't define ffi_type_foo if
2731         LIBFFI_HIDE_BASIC_TYPES is defined.
2732         (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2733         to ffi_type_double.
2734         * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2735         (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2736         (ffi_type_longdouble): Special case for Alpha.  Don't define
2737         if long double == double.
2738
2739         * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2740         (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2741         (ffi_call, ffi_closure_osf_inner): Likewise.
2742         (ffi_closure_osf_inner): Likewise.  Mark hidden.
2743         (ffi_call_osf, ffi_closure_osf): Mark hidden.
2744         * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2745         * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2746         (load_table): Handle 128-bit long double.
2747
2748         * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2749
2750 2007-04-06  Tom Tromey  <tromey@redhat.com>
2751
2752         PR libffi/31491:
2753         * README: Fixed bug in example.
2754
2755 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
2756
2757         * src/closures.c: Include sys/statfs.h.
2758         (_GNU_SOURCE): Define on Linux.
2759         (FFI_MMAP_EXEC_SELINUX): Define.
2760         (selinux_enabled): New variable.
2761         (selinux_enabled_check): New function.
2762         (is_selinux_enabled): Define.
2763         (dlmmap): Use it.
2764
2765 2007-03-24  Uros Bizjak  <ubizjak@gmail.com>
2766
2767         * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2768         Use 'volatile float sum' to create sum of floats to avoid false
2769         negative due to excess precision on ix86 targets.
2770         (main): Ditto.
2771
2772 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
2773
2774         * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2775         patch.
2776         (ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
2777
2778 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
2779
2780         * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2781         (ffi_prep_closure_loc): New.
2782         (ffi_prep_raw_closure_loc): New.
2783         (ffi_prep_java_raw_closure_loc): New.
2784         * src/closures.c: New file.
2785         * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2786         Replace sflags with exec_offset.
2787         [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2788         sub_segment_exec_offset): New macros.
2789         (get_segment_flags, set_segment_flags, check_segment_merge): New
2790         macros.
2791         (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2792         (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2793         destroy_mspace): Use new macros.
2794         (sys_alloc): Silence warning.
2795         * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2796         * Makefile.in: Rebuilt.
2797         * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2798         terms of ffi_prep_closure_loc.
2799         * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2800         from...
2801         (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
2802         renamed version.
2803         * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2804         adjusted from...
2805         (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
2806         the renamed version.
2807         * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2808         (ffi_prep_closure): ... this.
2809         * src/pa/ffi.c: Likewise.
2810         * src/cris/ffi.c: Likewise.  Adjust.
2811         * src/frv/ffi.c: Likewise.
2812         * src/ia64/ffi.c: Likewise.
2813         * src/mips/ffi.c: Likewise.
2814         * src/powerpc/ffi_darwin.c: Likewise.
2815         * src/s390/ffi.c: Likewise.
2816         * src/sh/ffi.c: Likewise.
2817         * src/sh64/ffi.c: Likewise.
2818         * src/sparc/ffi.c: Likewise.
2819         * src/x86/ffi64.c: Likewise.
2820         * src/x86/ffi.c: Likewise.
2821         (FFI_INIT_TRAMPOLINE): Adjust.
2822         (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2823         (ffi_prep_raw_closure): ... this.
2824         * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2825         (ffi_prep_closure): ... this.
2826         (flush_icache): Adjust.
2827
2828 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
2829
2830         * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2831         Lea's malloc.
2832
2833 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2834
2835         * Makefile.am: Add dummy install-pdf target.
2836         * Makefile.in: Regenerate
2837
2838 2007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2839
2840         * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2841         ffi_closure_helper_SYSV): Add long double handling.
2842
2843 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
2844
2845         * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2846         immediately after bctrl instruction.
2847
2848 2007-01-18  Alexandre Oliva  <aoliva@redhat.com>
2849
2850         * Makefile.am (all-recursive, install-recursive,
2851         mostlyclean-recursive, clean-recursive, distclean-recursive,
2852         maintainer-clean-recursive): Add missing targets.
2853         * Makefile.in: Rebuilt.
2854
2855 2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
2856
2857         * configure.ac: Add TARGET for x86_64-*-darwin*.
2858         * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2859         for X86_DARWIN.
2860         * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2861         * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2862         * configure: Regenerate.
2863         * Makefile.in: Regenerate.
2864         * include/Makefile.in: Regenerate.
2865         * testsuite/Makefile.in: Regenerate.
2866         * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2867         ffi_call only.
2868
2869 2006-12-13  Andreas Tobler <a.tobler@schweiz.org>
2870
2871         * aclocal.m4: Regenerate with aclocal -I .. as written in the
2872         Makefile.am.
2873
2874 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2875
2876         * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2877         (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2878         Darwin.
2879         * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2880         * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2881
2882 2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
2883             Sandro Tolaini  <tolaini@libero.it>
2884
2885         * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
2886         conditional.
2887         * configure: Regenerated.
2888         * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2889         (EXTRA_DIST): Add src/x86/darwin.S.
2890         * Makefile.in: Regenerated.
2891         * include/Makefile.in: Regenerated.
2892         * testsuite/Makefile.in: Regenerated.
2893
2894         * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2895         X86_WIN32, and additionally align stack to 16 bytes.
2896         * src/x86/darwin.S: New, based on sysv.S.
2897         * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2898
2899 2006-09-12  David Daney  <ddaney@avtrex.com>
2900
2901         PR libffi/23935
2902         * include/Makefile.am: Install both ffi.h and ffitarget.h in
2903         $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2904         * aclocal.m4: Regenerated for automake 1.9.6.
2905         * Makefile.in: Regenerated.
2906         * include/Makefile.in: Regenerated.
2907         * testsuite/Makefile.in: Regenerated.
2908
2909 2006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
2910
2911         * include/ffi_common.h (struct): Revert accidental commit.
2912
2913 2006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
2914
2915         * include/ffi_common.h: Remove lint directives.
2916         * include/ffi.h.in: Likewise.
2917
2918 2006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
2919
2920         * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2921         for 32-bit architectures.
2922         * testsuite/libffi.call/return_ul.c: New test case.
2923
2924 2006-07-19  David Daney  <ddaney@avtrex.com>
2925
2926         * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2927         xfail remains for mips64.
2928
2929 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
2930
2931         * Makefile.am: Add install-html target. Add install-html to .PHONY
2932         * Makefile.in: Regenerate.
2933         * aclocal.m4: Regenerate.
2934         * include/Makefile.in: Regenerate.
2935         * testsuite/Makefile.in: Regenerate.
2936
2937 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2938
2939         * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2940         stack slot.
2941
2942 2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
2943
2944         * README: Remove notice about 'Crazy Comments'.
2945         * src/debug.c: Remove lint directives. Cleanup white spaces.
2946         * src/java_raw_api.c: Likewise.
2947         * src/prep_cif.c: Likewise.
2948         * src/raw_api.c: Likewise.
2949         * src/ffitest.c: Delete. No longer needed, all test cases migrated
2950         to the testsuite.
2951         * src/arm/ffi.c: Remove lint directives.
2952         * src/m32r/ffi.c: Likewise.
2953         * src/pa/ffi.c: Likewise.
2954         * src/powerpc/ffi.c: Likewise.
2955         * src/powerpc/ffi_darwin.c: Likewise.
2956         * src/sh/ffi.c: Likewise.
2957         * src/sh64/ffi.c: Likewise.
2958         * src/x86/ffi.c: Likewise.
2959         * testsuite/libffi.call/float2.c: Likewise.
2960         * testsuite/libffi.call/promotion.c: Likewise.
2961         * testsuite/libffi.call/struct1.c: Likewise.
2962
2963 2006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
2964
2965         * src/pa/hpux32.S: Correct unwind offset calculation for
2966         ffi_closure_pa32.
2967         * src/pa/linux.S: Likewise.
2968
2969 2006-04-12  James E Wilson  <wilson@specifix.com>
2970
2971         PR libgcj/26483
2972         * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2973         (hfa_type_load): Call stf_spill.
2974         (hfa_type_store): Call ldf_fill.
2975         (ffi_call): Adjust calls to above routines.  Add local temps for
2976         macro result.
2977
2978 2006-04-10  Matthias Klose  <doko@debian.org>
2979
2980         * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2981         directory names containing underscores.
2982
2983 2006-04-07  James E Wilson  <wilson@specifix.com>
2984
2985         * testsuite/libffi.call/float4.c: New testcase.
2986
2987 2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2988             Andreas Tobler  <a.tobler@schweiz.ch>
2989
2990         * Makefile.am: Add PA_HPUX port.
2991         * Makefile.in: Regenerate.
2992         * include/Makefile.in: Likewise.
2993         * testsuite/Makefile.in: Likewise.
2994         * configure.ac: Add PA_HPUX rules.
2995         * configure: Regenerate.
2996         * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2997         Add PA_HPUX and PA64_HPUX.
2998         Rename FFI_LINUX ABI to FFI_PA32 ABI.
2999         (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3000         (FFI_TYPE_SMALL_STRUCT2): Define.
3001         (FFI_TYPE_SMALL_STRUCT4): Likewise.
3002         (FFI_TYPE_SMALL_STRUCT8): Likewise.
3003         (FFI_TYPE_SMALL_STRUCT3): Redefine.
3004         (FFI_TYPE_SMALL_STRUCT5): Likewise.
3005         (FFI_TYPE_SMALL_STRUCT6): Likewise.
3006         (FFI_TYPE_SMALL_STRUCT7): Likewise.
3007         * src/pa/ffi.c (ROUND_DOWN): Delete.
3008         (fldw, fstw, fldd, fstd): Use '__asm__'.
3009         (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3010         FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3011         (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3012         Simplify incrementing of stack slot variable. Change type of local
3013         'n' to unsigned int.
3014         (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3015         double on PA_HPUX.
3016         (ffi_prep_cif_machdep): Likewise.
3017         (ffi_call): Likewise.
3018         (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3019         return type to ffi_status. Simplify incrementing of stack slot
3020         variable. Only copy floating point argument registers when PA_LINUX
3021         is true. Reformat debug statement.
3022         Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3023         FFI_TYPE_SMALL_STRUCT8.
3024         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3025         declaration.
3026         (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3027         Add nops to cache flush.  Add trampoline for PA_HPUX.
3028         * src/pa/hpux32.S: New file.
3029         * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3030         ffi_prep_args_LINUX to ffi_prep_args_pa32.
3031         Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3032         unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3033         argument type checks so that common argument types appear first.
3034         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3035         ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3036
3037 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
3038
3039         * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
3040         for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
3041         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3042         FFI_TYPE_LONGDOUBLE.
3043         (ffi_prep_args64): Assert using IBM extended double.
3044         (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3045         Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3046         (ffi_call): Handle FFI_LINUX.
3047         (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3048         gpr3 return pointer as for struct return.  Handle FFI_LINUX
3049         FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
3050         unnecessarily.
3051         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3052         for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
3053         Don't use r6 as pointer to results, instead use sp offset.  Don't
3054         make a special call to load lr with case table address, instead
3055         use offset from previous call.
3056         * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3057         * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3058         return.
3059
3060 2006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3061
3062         * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3063         passed with FP registers correctly.
3064         (ffi_closure_helper_SYSV): Likewise.
3065         * src/sh64/sysv.S: Likewise.
3066
3067 2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
3068
3069         * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3070         args and userdata unused.
3071         (closure_test_fn1): Mark cif and userdata unused.
3072         (main): Remove unused res.
3073
3074 2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
3075
3076         * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3077         -O2, -O3, -Os and the warning flags -W -Wall.
3078         * testsuite/libffi.special/special.exp: Likewise.
3079         * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3080         unused parameter unused for gcc or else do nothing.
3081         * testsuite/libffi.special/ffitestcxx.h: Likewise.
3082         * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3083         and userdata unused.
3084         * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3085         * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3086         * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3087         * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3088         * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3089         * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3090         * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3091         * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3092         * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3093         * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3094         * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3095         * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3096         * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3097         * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3098         * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3099         * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3100         * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3101         * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3102         * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3103         * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3104         * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3105         * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3106         * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3107         * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3108         Likewise.
3109         * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3110         Likewise.
3111         * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3112         Likewise.
3113         * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3114         void* to avoid compiler warning.
3115         (main): Likewise.
3116         (cls_struct_align_gn): Mark cif and userdata unused.
3117         * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3118         Likewise.
3119         * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3120         Likewise.
3121         * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3122         Likewise.
3123         * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3124         Likewise.
3125         * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3126         Likewise.
3127         * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3128         * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3129         * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3130         data unused.
3131         (main): Cast res_call to silence gcc.
3132         * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3133         data unused.
3134         (main): Cast res_call to silence gcc.
3135         * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3136         and data unused.
3137         (main): Cast res_call to silence gcc.
3138         * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3139         data unused.
3140         (main): Cast res_call to silence gcc.
3141         * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3142         data unused.
3143         (main): Cast res_call to silence gcc.
3144         * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3145         and data unused.
3146         (main): Cast res_call to silence gcc.
3147         * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3148         userdata unused.
3149         (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3150         * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3151         userdata unused.
3152         (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3153         * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3154         userdata unused.
3155         (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3156         * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
3157         userdata unused.
3158         (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3159         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3160         userdata unused.
3161         (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3162         * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3163         and userdata unused.
3164         * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3165         userdata unused.
3166         (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3167         * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3168         * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3169         Cleanup white spaces.
3170         * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3171         * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3172         cif and userdata unused.
3173         * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3174         Likewise.
3175         * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3176         * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3177         formatters to silence gcc.
3178         (B_gn): Mark cif and userdata unused.
3179         * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3180         unused.
3181         * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3182         (B_gn): Mark cif and userdata unused.
3183         * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3184         unused.
3185         * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3186         (B_gn): Mark cif and userdata unused.
3187         * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3188         unused.
3189         * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3190         * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3191         * testsuite/libffi.call/problem1.c (stub): Likewise.
3192         * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3193         gcc.
3194         * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3195         in the last commit for this test case in the test case itself.
3196         * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3197         unused.
3198         * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3199         * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3200         * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3201         * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3202         * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3203         * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3204
3205 2006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3206
3207         * src/sh/sysv.S: Fix register numbers in the FDE for
3208         ffi_closure_SYSV.
3209
3210 2006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
3211
3212         * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3213         declaration to avoid a false negative on ix86. See PR323.
3214
3215 2006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3216
3217         * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3218         and cast integer to void * if needed.  Update the pointer to
3219         the FP register saved area correctly.
3220
3221 2006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
3222
3223         * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3224         is fixed.
3225         * testsuite/libffi.call/nested_struct4.c: Likewise.
3226
3227 2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
3228
3229         * testsuite/libffi.call/return_dbl.c: New test case.
3230         * testsuite/libffi.call/return_dbl1.c: Likewise.
3231         * testsuite/libffi.call/return_dbl2.c: Likewise.
3232         * testsuite/libffi.call/return_fl.c: Likewise.
3233         * testsuite/libffi.call/return_fl1.c: Likewise.
3234         * testsuite/libffi.call/return_fl2.c: Likewise.
3235         * testsuite/libffi.call/return_fl3.c: Likewise.
3236         * testsuite/libffi.call/closure_fn6.c: Likewise.
3237
3238         * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3239         definition.
3240         * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3241         here to be used by other test cases too.
3242
3243         * testsuite/libffi.call/nested_struct10.c: New test case.
3244         * testsuite/libffi.call/nested_struct9.c: Likewise.
3245         * testsuite/libffi.call/nested_struct8.c: Likewise.
3246         * testsuite/libffi.call/nested_struct7.c: Likewise.
3247         * testsuite/libffi.call/nested_struct6.c: Likewise.
3248         * testsuite/libffi.call/nested_struct5.c: Likewise.
3249         * testsuite/libffi.call/nested_struct4.c: Likewise.
3250
3251 2006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
3252
3253         * configure.ac: Enable libffi for sparc64-*-freebsd*.
3254         * configure: Rebuilt.
3255
3256 2006-01-18  Jakub Jelinek  <jakub@redhat.com>
3257
3258         * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3259         instead do the shifting inline.
3260         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3261         shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
3262         and 8 byte structs, for the remaining struct sizes don't call
3263         __lshrdi3, instead do the shifting inline.
3264
3265 2005-12-07  Thiemo Seufer  <ths@networkno.de>
3266
3267         * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3268         missing parentheses.
3269         * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3270         and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3271         (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3272         A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3273         V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3274         FA_0_0_OFF2.
3275         * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3276         endianness bugs.
3277         (ffi_prep_closure): Improve trampoline instruction scheduling.
3278         (ffi_closure_mips_inner_O32): Fix endianness bugs.
3279
3280 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
3281
3282         * src/powerpc/ffi.c: Formatting.
3283         (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3284         (ffi_prep_args64): Likewise.
3285
3286 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
3287
3288         * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3289         darwin, use -shared-libgcc not -lgcc_s, and explain why.
3290
3291 2005-09-26  Tom Tromey  <tromey@redhat.com>
3292
3293         * testsuite/libffi.call/float1.c (value_type): New typedef.
3294         (CANARY): New define.
3295         (main): Check for result buffer overflow.
3296         * src/powerpc/linux64.S: Handle linux64 long double returns.
3297         * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3298         (ffi_prep_cif_machdep): Handle linux64 long double returns.
3299
3300 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
3301
3302         PR target/23404
3303         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3304         homed fp args.
3305         (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3306
3307 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
3308
3309         * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3310         (AH_BOTTOM): Add FFI_HIDDEN definition.
3311         * configure: Rebuilt.
3312         * fficonfig.h.in: Rebuilt.
3313         * src/powerpc/ffi.c (hidden): Remove.
3314         (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3315         ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3316         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3317         .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3318         * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3319         add FFI_HIDDEN to its prototype.
3320         (ffi_closure_SYSV_inner): New.
3321         * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3322         * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3323
3324 2005-08-10  Alfred M. Szmidt  <ams@gnu.org>
3325
3326         PR libffi/21819:
3327         * configure: Rebuilt.
3328         * configure.ac: Handle i*86-*-gnu*.
3329
3330 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
3331
3332         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3333         DW_CFA_offset_extended_sf rather than
3334         DW_CFA_GNU_negative_offset_extended.
3335         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3336
3337 2005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
3338
3339         * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3340         on sh3.
3341         (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3342         * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3343         partially on register.
3344         (ffi_closure_helper_SYSV): Likewise.
3345         (ffi_prep_cif_machdep): Don't set too many cif->flags.
3346
3347 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3348
3349         * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3350         Remove empty line.
3351         * src/sh64/ffi.c (simple_type): Remove.
3352         (return_type): Handle small structures correctly.
3353         (ffi_prep_args): Likewise.
3354         (ffi_call): Likewise.
3355         (ffi_closure_helper_SYSV): Likewise.
3356         * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3357         Emit position independent code if PIC and remove wrong datalabel
3358         prefixes from EH data.
3359
3360 2005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
3361
3362         * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3363         * Makefile.in: Regenerate.
3364         * include/Makefile.in: Likewise.
3365         * testsuite/Makefile.in: Likewise.
3366         * configure.ac: Add POWERPC_FREEBSD rules.
3367         * configure: Regenerate.
3368         * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3369         (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3370         * src/powerpc/ffi.c: Add flags to handle small structure returns
3371         in ffi_call_SYSV.
3372         (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3373         Aka FFI_SYSV.
3374         (ffi_closure_helper_SYSV): Likewise.
3375         * src/powerpc/ppc_closure.S: Add return types for small structures.
3376         * src/powerpc/sysv.S: Add bits to handle small structures for
3377         final SYSV 4 ABI.
3378
3379 2005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
3380
3381         * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3382         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3383         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3384
3385 2005-07-05  Randolph Chung  <tausq@debian.org>
3386
3387         * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3388         as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
3389         structures.  Kill compilation warnings.
3390         (ffi_closure_inner_LINUX): Print return values as hex in debug
3391         message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3392         Properly handle 5-7 byte structure returns.
3393         * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3394         (FFI_TYPE_SMALL_STRUCT2): Remove.
3395         (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3396         (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3397         * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3398         (checksmst1, checksmst2): Remove.
3399         (checksmst3): Optimize handling of 3-byte struct returns.
3400         (checksmst567): Properly handle 5-7 byte struct returns.
3401
3402 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3403
3404         PR libgcj/21943
3405         * src/mips/n32.S: Enforce PIC code.
3406         * src/mips/o32.S: Likewise.
3407
3408 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3409
3410         * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3411         * configure: Regenerate.
3412
3413 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
3414
3415         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3416         to call ffi_closure_helper_SYSV.  Append @local instead.
3417         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3418
3419 2005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
3420
3421         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3422         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3423         * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3424         * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3425         include/Makefile.in, testsuite/Makefile.in: Regenerate.
3426
3427 2005-05-09  Mike Stump  <mrs@apple.com>
3428
3429         * configure: Regenerate.
3430
3431 2005-05-08  Richard Henderson  <rth@redhat.com>
3432
3433         PR libffi/21285
3434         * src/alpha/osf.S: Update unwind into to match code.
3435
3436 2005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
3437             Richard Henderson  <rth@redhat.com>
3438
3439         * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3440         bit 11 of flags.
3441         (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
3442         (ffi_prep_closure): Set carry bit if sse-used flag set.
3443         * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3444         Only load sse registers if ssecount non-zero.
3445         (ffi_closure_unix64): Only save sse registers if carry set on entry.
3446
3447 2005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
3448
3449         * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3450         powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3451         * configure: Regenerate.
3452
3453 2005-04-20  Hans-Peter Nilsson  <hp@axis.com>
3454
3455         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3456         have Tcl8.3-compatible intermediate variable.
3457
3458 2005-04-18  Simon Posnjak <simon.posnjak@siol.net>
3459             Hans-Peter Nilsson  <hp@axis.com>
3460
3461         * Makefile.am: Add CRIS support.
3462         * configure.ac: Likewise.
3463         * Makefile.in, configure, testsuite/Makefile.in,
3464         include/Makefile.in: Regenerate.
3465         * src/cris: New directory.
3466         * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3467         * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3468
3469         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3470         \r?\n in output tests.
3471
3472 2005-04-12  Mike Stump  <mrs@apple.com>
3473
3474         * configure: Regenerate.
3475
3476 2005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
3477
3478         * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
3479
3480 2005-03-30  Steve Ellcey  <sje@cup.hp.com>
3481
3482         * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3483         (ffi_sarg) Ditto.
3484         * src/ia64/unix.S (ffi_closure_unix): Extend gp
3485         to 64 bits in ILP32 mode.
3486         Load 64 bits even for short data.
3487
3488 2005-03-23  Mike Stump  <mrs@apple.com>
3489
3490         * src/powerpc/darwin.S: Update for -m64 multilib.
3491         * src/powerpc/darwin_closure.S: Likewise.
3492
3493 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
3494
3495         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3496         Do not set tool_include_dir.
3497         * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3498         Regenerate.
3499         * include/Makefile.am: Set gcc_version and toollibffidir.
3500         * include/Makefile.in: Regenerate.
3501
3502 2005-02-22  Andrew Haley  <aph@redhat.com>
3503
3504         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3505         odd-numbered register pairs for 64-bit integer types.
3506
3507 2005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
3508
3509         PR libffi/20104
3510         * testsuite/libffi.call/return_ll1.c: New test case.
3511
3512 2005-02-11  Janis Johnson  <janis187@us.ibm.com>
3513
3514         * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3515         * testsuite/libffi.call/float.c: Ditto.
3516         * testsuite/libffi.call/float2.c: Ditto.
3517         * testsuite/libffi.call/float3.c: Ditto.
3518
3519 2005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
3520
3521         * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3522
3523 2005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3524
3525         * testsuite/libffi.special/special.exp (cxx_options): Add
3526         -shared-libgcc.
3527
3528 2004-12-31  Richard Henderson  <rth@redhat.com>
3529
3530         * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3531         (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
3532         offset parameters with a type parameter; deduce size and structure
3533         alignment.  Update all users.
3534
3535 2004-12-31  Richard Henderson  <rth@redhat.com>
3536
3537         * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3538         (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3539         * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3540         into ffi_prep_closure.
3541         * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3542         from scratch.
3543
3544 2004-12-27  Richard Henderson  <rth@redhat.com>
3545
3546         * src/x86/unix64.S: Fix typo in unwind info.
3547
3548 2004-12-25  Richard Henderson  <rth@redhat.com>
3549
3550         * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3551         (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3552         (merge_classes): Check for it.
3553         (SSE_CLASS_P): New.
3554         (classify_argument): Pass byte_offset by value; perform all updates
3555         inside struct case.
3556         (examine_argument): Add classes argument; handle
3557         X86_64_COMPLEX_X87_CLASS.
3558         (ffi_prep_args): Merge into ...
3559         (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
3560         (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3561         (ffi_fill_return_value): Remove.
3562         (ffi_prep_closure): Remove dead assert.
3563         (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3564         Rewrite to use struct register_args instead of va_list.  Create
3565         flags for handling structure returns.
3566         * src/x86/unix64.S: Remove dead strings.
3567         (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
3568         stack frame with ffi_call.  Handle structure returns properly.
3569         (float2sse, floatfloat2sse, double2sse): Remove.
3570         (sse2float, sse2double, sse2floatfloat): Remove.
3571         (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
3572         to handle structure returns properly.
3573
3574 2004-12-08  David Edelsohn  <edelsohn@gnu.org>
3575
3576         * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3577         PICFLAG.
3578         * Makefile.in: Regenerated.
3579
3580 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
3581
3582         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3583         * configure, aclocal.m4, Makefile.in: Regenerate.
3584         * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3585
3586 2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
3587
3588         * configure: Regenerate for libtool change.
3589
3590 2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
3591
3592         * configure: Regenerate for libtool reversion.
3593
3594 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
3595
3596         * configure: Regenerate for libtool change.
3597
3598 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3599
3600         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3601
3602 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
3603
3604         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3605         of jal.  Use an absolute encoding for the frame information.
3606
3607 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
3608
3609         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
3610         * acinclude.m4: Delete logic for sincludes.
3611         * aclocal.m4, Makefile.in, configure: Regenerate.
3612         * include/Makefile: Likewise.
3613         * testsuite/Makefile: Likewise.
3614
3615 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3616
3617         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3618         on a 8-byte boundary.
3619         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3620
3621 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
3622
3623         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3624         long long values.  Round stack allocation to a multiple of 8 bytes
3625         for ATPCS compatibility.
3626         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3627         names.  Handle returning long long types.  Add Thumb and interworking
3628         support.  Improve soft-float code.
3629
3630 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
3631
3632         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3633         (libffi_exit): New function.
3634         (libffi_init): Build the testglue wrapper if needed.
3635
3636 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
3637
3638         PR other/18138
3639         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3640
3641 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3642
3643         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3644
3645 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3646
3647         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3648         * testsuite/libffi.call/float3.c: New test case.
3649
3650 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3651
3652         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3653         the function returning a structure pointed with R2.
3654         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3655         the structure return value if T bit set.  Emit position
3656         independent code and EH data if PIC.
3657
3658 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3659
3660         * Makefile.am: Add m32r support.
3661         * configure.ac: Likewise.
3662         * Makefile.in: Regenerate.
3663         * confiugre: Regenerate.
3664         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3665         (uint64, sint64, double, longdouble)
3666         * src/m32r: New directory.
3667         * src/m32r/ffi.c: New file.
3668         * src/m32r/sysv.S: Likewise.
3669         * src/m32r/ffitarget.h: Likewise.
3670
3671 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3672
3673         * testsuite/libffi.call/negint.c: New test case.
3674
3675 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3676
3677         PR libgcj/17465
3678         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3679         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3680         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3681         DYLD_LIBRARY_PATH.
3682
3683 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
3684
3685         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3686         * testsuite/libffi.call/promotion.c: Likewise.
3687         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3688         whitespaces.
3689         * testsuite/libffi.call/return_sc.c: Likewise.
3690         * testsuite/libffi.call/return_uc.c: Likewise.
3691
3692 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
3693
3694         * src/powerpc/darwin.S: Fix comments and identation.
3695         * src/powerpc/darwin_closure.S: Likewise.
3696
3697 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
3698
3699         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3700         (ffi_prep_args): Handle longdouble arguments.
3701         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3702         longdouble.
3703         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3704         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3705         values.
3706         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3707         * src/types.c: Defined longdouble size and alignment for darwin.
3708
3709 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
3710
3711         * src/powerpc/aix.S: Remove whitespaces.
3712         * src/powerpc/aix_closure.S: Likewise.
3713         * src/powerpc/asm.h: Likewise.
3714         * src/powerpc/ffi.c: Likewise.
3715         * src/powerpc/ffitarget.h: Likewise.
3716         * src/powerpc/linux64.S: Likewise.
3717         * src/powerpc/linux64_closure.S: Likewise.
3718         * src/powerpc/ppc_closure.S: Likewise.
3719         * src/powerpc/sysv.S: Likewise.
3720
3721 2004-08-30  Anthony Green  <green@redhat.com>
3722
3723         * Makefile.am: Add frv support.
3724         * Makefile.in, testsuite/Makefile.in: Rebuilt.
3725         * configure.ac: Read configure.host.
3726         * configure.in: Read configure.host.
3727         * configure.host: New file.  frv-elf needs libgloss.
3728         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3729         alignment.  This is needed to frv and shouldn't harm the others.
3730         * include/ffi_common.h (ALIGN_DOWN): New macro.
3731         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3732
3733 2004-08-24  David Daney  <daney@avtrex.com>
3734
3735         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3736         * testsuite/libffi.call/closure_fn1.c: Likewise.
3737         * testsuite/libffi.call/closure_fn2.c  Likewise.
3738         * testsuite/libffi.call/closure_fn3.c: Likewise.
3739         * testsuite/libffi.call/closure_fn4.c: Likewise.
3740         * testsuite/libffi.call/closure_fn5.c: Likewise.
3741         * testsuite/libffi.call/cls_18byte.c: Likewise.
3742         * testsuite/libffi.call/cls_19byte.c: Likewise.
3743         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3744         * testsuite/libffi.call/cls_20byte.c: Likewise.
3745         * testsuite/libffi.call/cls_20byte1.c: Likewise.
3746         * testsuite/libffi.call/cls_24byte.c: Likewise.
3747         * testsuite/libffi.call/cls_2byte.c: Likewise.
3748         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3749         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3750         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3751         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3752         * testsuite/libffi.call/cls_4byte.c: Likewise.
3753         * testsuite/libffi.call/cls_64byte.c: Likewise.
3754         * testsuite/libffi.call/cls_6byte.c: Likewise.
3755         * testsuite/libffi.call/cls_7byte.c: Likewise.
3756         * testsuite/libffi.call/cls_8byte.c: Likewise.
3757         * testsuite/libffi.call/cls_9byte1.c: Likewise.
3758         * testsuite/libffi.call/cls_9byte2.c: Likewise.
3759         * testsuite/libffi.call/cls_align_double.c: Likewise.
3760         * testsuite/libffi.call/cls_align_float.c: Likewise.
3761         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3762         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3763         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3764         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3765         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3766         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3767         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3768         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3769         * testsuite/libffi.call/cls_double.c: Likewise.
3770         * testsuite/libffi.call/cls_float.c: Likewise.
3771         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3772         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3773         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3774         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3775         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3776         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3777         * testsuite/libffi.call/cls_schar.c: Likewise.
3778         * testsuite/libffi.call/cls_sint.c: Likewise.
3779         * testsuite/libffi.call/cls_sshort.c: Likewise.
3780         * testsuite/libffi.call/cls_uchar.c: Likewise.
3781         * testsuite/libffi.call/cls_uint.c: Likewise.
3782         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3783         * testsuite/libffi.call/cls_ushort.c: Likewise.
3784         * testsuite/libffi.call/nested_struct.c: Likewise.
3785         * testsuite/libffi.call/nested_struct1.c: Likewise.
3786         * testsuite/libffi.call/nested_struct2.c: Likewise.
3787         * testsuite/libffi.call/nested_struct3.c: Likewise.
3788         * testsuite/libffi.call/problem1.c: Likewise.
3789         * testsuite/libffi.special/unwindtest.cc: Likewise.
3790         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3791         to zero.
3792         * testsuite/libffi.call/cls_16byte.c: Likewise.
3793         * testsuite/libffi.call/cls_5byte.c: Likewise.
3794
3795 2004-08-23  David Daney <daney@avtrex.com>
3796
3797         PR libgcj/13141
3798         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3799         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3800         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3801         parameters and return types.
3802         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3803         (ffi_prep_closure): Ditto.
3804         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3805         alignment calculations.
3806         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3807         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3808
3809 2004-08-14  Casey Marshall <csm@gnu.org>
3810
3811         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3812         contain `FFI_TYPE_UINT64' as return type for any 64-bit
3813         integer (O32 ABI only).
3814         (ffi_prep_closure): new function.
3815         (ffi_closure_mips_inner_O32): new function.
3816         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3817         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3818         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3819         64 bit integers correctly.
3820         (ffi_closure_O32): new function.
3821         Added DWARF-2 unwind info for both functions.
3822
3823 2004-08-10  Andrew Haley  <aph@redhat.com>
3824
3825         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3826
3827 2004-08-01  Robert Millan  <robertmh@gnu.org>
3828
3829         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3830         * configure: Regenerate.
3831
3832 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
3833
3834         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3835         and mmap() explicitly instead of relying on preset autoconf cache
3836         variables.
3837         * aclocal.m4: Regenerate.
3838         * configure: Regenerate.
3839
3840 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
3841
3842         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3843         (ffi_check_float_struct): Remove unused prototype.
3844
3845 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
3846
3847         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3848         character on Darwin, use '\n\t' instead.
3849
3850 2004-06-26  Matthias Klose  <doko@debian.org>
3851
3852         * libtool-version: Fix typo in revision/age.
3853
3854 2004-06-17  Matthias Klose  <doko@debian.org>
3855
3856         * libtool-version: New.
3857         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3858         * Makefile.in: Regenerate.
3859
3860 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3861
3862         * Makefile.am: Remove useless multilib rules.
3863         * Makefile.in: Regenerate.
3864         * aclocal.m4: Regenerate with automake 1.8.5.
3865         * configure.ac: Remove useless multilib configury.
3866         * configure: Regenerate.
3867
3868 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
3869
3870         * .cvsignore: New file.
3871
3872 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
3873
3874         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3875         fp_done.
3876         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3877         changed from 8.
3878
3879 2004-06-06  Sean McNeil  <sean@mcneil.com>
3880
3881         * configure.ac: Add x86_64-*-freebsd* support.
3882         * configure: Regenerate.
3883
3884 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
3885
3886         Bug 15093
3887         * configure.ac: Test for existence of mmap and sys/mman.h before
3888         checking blacklist.  Fix suggested by Jim Wilson.
3889         * configure: Regenerate.
3890
3891 2004-04-26  Matt Austern  <austern@apple.com>
3892
3893         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3894         FDE location.
3895         * src/powerpc/darwin_closure.S: Likewise.
3896
3897 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
3898
3899         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3900         error. Reported by Thomas Heller <theller@python.net>.
3901         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3902         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3903
3904 2004-03-20  Matthias Klose  <doko@debian.org>
3905
3906         * src/pa/linux.S: Fix typo.
3907
3908 2004-03-19  Matthias Klose  <doko@debian.org>
3909
3910         * Makefile.am: Update.
3911         * Makefile.in: Regenerate.
3912         * src/pa/ffi.h.in: Remove.
3913         * src/pa/ffitarget.h: New file.
3914
3915 2004-02-10  Randolph Chung  <tausq@debian.org>
3916
3917         * Makefile.am: Add PA support.
3918         * Makefile.in: Regenerate.
3919         * include/Makefile.in: Regenerate.
3920         * configure.ac: Add PA target.
3921         * configure: Regenerate.
3922         * src/pa/ffi.c: New file.
3923         * src/pa/ffi.h.in: Add PA support.
3924         * src/pa/linux.S: New file.
3925         * prep_cif.c: Add PA support.
3926
3927 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
3928
3929         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3930         double.
3931         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3932         with ecif->cif->flags.
3933         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3934         with cif->flags.
3935         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3936         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3937         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3938         sc_retstruct2b): Add for 1 or 2-bytes struct case.
3939
3940 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3941
3942         * configure.in: Rename file to ...
3943         * configure.ac: ... this.
3944         * fficonfig.h.in: Regenerate.
3945         * Makefile.in: Regenerate.
3946         * include/Makefile.in: Regenerate.
3947         * testsuite/Makefile.in: Regenerate.
3948
3949 2004-03-12  Matt Austern  <austern@apple.com>
3950
3951         * src/powerpc/darwin.S: Fix EH information so it corresponds to
3952         changes in EH format resulting from addition of linkonce support.
3953         * src/powerpc/darwin_closure.S: Likewise.
3954
3955 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
3956             Paolo Bonzini  <bonzini@gnu.org>
3957
3958         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3959         Remove VPATH. Remove rules for object files. Remove multilib support.
3960         (AM_CCASFLAGS): Add.
3961         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3962         (AC_PREREQ): Bump version to 2.59.
3963         (AC_INIT): Fill with version info and bug address.
3964         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3965         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3966         De-precious CC so that the right flags are passed down to multilibs.
3967         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3968         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3969         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3970         * configure: Rebuilt.
3971         * aclocal.m4: Likewise.
3972         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3973         * fficonfig.h.in: Likewise.
3974
3975 2004-03-11  Andreas Schwab  <schwab@suse.de>
3976
3977         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3978         arguments from fp registers only for the first 8 parameter slots.
3979         Don't convert a float parameter when passed in memory.
3980
3981 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3982
3983         * configure: Regenerate for config/accross.m4 correction.
3984
3985 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
3986
3987         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3988         ecif->cif->bytes to bytes.
3989         (ffi_prep_cif_machdep): Add braces around nested if statement.
3990
3991 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
3992
3993         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3994
3995         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3996         (ffi_closure_helper_LINUX64): Fix typo.
3997         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3998         for powerpc64-*-*.
3999         * testsuite/libffi.call/float.c: Likewise.
4000         * testsuite/libffi.call/float2.c: Likewise.
4001
4002 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
4003
4004         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4005         long double function return and long double arg handling.
4006         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
4007         Use "end_pfr" instead of "nf".  Correct long double handling.
4008         Localise "temp".
4009         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4010         return value.
4011         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4012         space for long double return value.  Adjust stack frame and offsets.
4013         Load f2 long double return.
4014
4015 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
4016
4017         * src/types.c: Use 16 byte long double for POWERPC64.
4018
4019 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4020
4021         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4022         when the structure return address is passed in %o0.
4023         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4024         (ffi_v9_layout_struct): Align the field following a nested structure
4025         on a word boundary.  Use memmove instead of memcpy.
4026         (ffi_call): Update call to ffi_V9_return_struct.
4027         (ffi_prep_closure): Define 'ctx' only for V8.
4028         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4029         and ffi_closure_sparc_inner_v9.
4030         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4031         Always skip the structure return address.  For structures and long
4032         doubles, copy the argument directly.
4033         (ffi_closure_sparc_inner_v9): Skip the structure return address only
4034         if required.  Shift the maximum floating-point slot accordingly.  For
4035         big structures, copy the argument directly; otherwise, left-justify the
4036         argument and call ffi_v9_layout_struct to lay out the structure on
4037         the stack.
4038         * src/sparc/v8.S: Undef STACKFRAME before defining it.
4039         (ffi_closure_v8): Pass the structure return address.  Update call to
4040         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
4041         Skip the 'unimp' insn when returning long doubles and structures.
4042         * src/sparc/v9.S: Undef STACKFRAME before defining it.
4043         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
4044         FFI_TYPE_INT handling.  Load structures both in integers and
4045         floating-point registers on return.
4046         * README: Update status of the SPARC port.
4047
4048 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
4049
4050         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4051         as of type ffi_arg.
4052         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4053
4054 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
4055
4056         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4057         value as of type ffi_arg, not unsigned int.
4058
4059 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
4060
4061         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4062         of the LHS.
4063
4064 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
4065
4066         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4067         Solaris.
4068
4069 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4070
4071         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4072         to void *.
4073
4074 2003-12-10  Richard Henderson  <rth@redhat.com>
4075
4076         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4077         size_t instead of int.
4078
4079 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
4080
4081         * testsuite/libffi.call/many_win32.c: Include <float.h>.
4082         * testsuite/libffi.call/many_win32.c (main): Replace variable
4083         int i with unsigned long ul.
4084
4085         * testsuite/libffi.call/cls_align_uint64.c: New test case.
4086         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4087         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4088         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4089         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4090         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4091         * testsuite/libffi.call/cls_align_float.c: Likewise.
4092         * testsuite/libffi.call/cls_align_double.c: Likewise.
4093         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4094         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4095
4096 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
4097
4098         PR other/13221
4099         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4100         Align arguments to 32 bits.
4101
4102 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
4103
4104         PR other/13221
4105         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4106         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4107         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4108         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4109         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4110         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4111
4112         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4113
4114 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4115
4116         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4117         * testsuite/libffi.special/ffitestcxx.h: Likewise.
4118
4119 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
4120
4121         * Makefile.in: Rebuilt.
4122         * configure: Likewise.
4123         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4124         the right type.
4125
4126 2003-11-21  Andreas Jaeger  <aj@suse.de>
4127             Andreas Tobler  <a.tobler@schweiz.ch>
4128
4129         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4130         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4131         * Makefile.in: Rebuilt.
4132         * aclocal.m4: Likewise.
4133         * configure: Likewise.
4134         * fficonfig.h.in: Likewise.
4135         * testsuite/lib/libffi-dg.exp: Add include dir.
4136         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4137         * testsuite/libffi.special/ffitestcxx.h: Likewise.
4138         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4139         for ffi_closure if available.
4140         * testsuite/libffi.call/closure_fn1.c: Likewise.
4141         * testsuite/libffi.call/closure_fn2.c: Likewise.
4142         * testsuite/libffi.call/closure_fn3.c: Likewise.
4143         * testsuite/libffi.call/closure_fn4.c: Likewise.
4144         * testsuite/libffi.call/closure_fn5.c: Likewise.
4145         * testsuite/libffi.call/cls_12byte.c: Likewise.
4146         * testsuite/libffi.call/cls_16byte.c: Likewise.
4147         * testsuite/libffi.call/cls_18byte.c: Likewise.
4148         * testsuite/libffi.call/cls_19byte.c: Likewise.
4149         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4150         * testsuite/libffi.call/cls_20byte.c: Likewise.
4151         * testsuite/libffi.call/cls_20byte1.c: Likewise.
4152         * testsuite/libffi.call/cls_24byte.c: Likewise.
4153         * testsuite/libffi.call/cls_2byte.c: Likewise.
4154         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4155         * testsuite/libffi.call/cls_3byte1.c: Likewise.
4156         * testsuite/libffi.call/cls_3byte2.c: Likewise.
4157         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4158         * testsuite/libffi.call/cls_4byte.c: Likewise.
4159         * testsuite/libffi.call/cls_5byte.c: Likewise.
4160         * testsuite/libffi.call/cls_64byte.c: Likewise.
4161         * testsuite/libffi.call/cls_6byte.c: Likewise.
4162         * testsuite/libffi.call/cls_7byte.c: Likewise.
4163         * testsuite/libffi.call/cls_8byte.c: Likewise.
4164         * testsuite/libffi.call/cls_9byte1.c: Likewise.
4165         * testsuite/libffi.call/cls_9byte2.c: Likewise.
4166         * testsuite/libffi.call/cls_double.c: Likewise.
4167         * testsuite/libffi.call/cls_float.c: Likewise.
4168         * testsuite/libffi.call/cls_schar.c: Likewise.
4169         * testsuite/libffi.call/cls_sint.c: Likewise.
4170         * testsuite/libffi.call/cls_sshort.c: Likewise.
4171         * testsuite/libffi.call/cls_uchar.c: Likewise.
4172         * testsuite/libffi.call/cls_uint.c: Likewise.
4173         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4174         * testsuite/libffi.call/cls_ushort.c: Likewise.
4175         * testsuite/libffi.call/nested_struct.c: Likewise.
4176         * testsuite/libffi.call/nested_struct1.c: Likewise.
4177         * testsuite/libffi.call/nested_struct2.c: Likewise.
4178         * testsuite/libffi.call/nested_struct3.c: Likewise.
4179         * testsuite/libffi.call/problem1.c: Likewise.
4180         * testsuite/libffi.special/unwindtest.cc: Likewise.
4181
4182 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
4183
4184         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4185
4186 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
4187
4188         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4189         Add -lgcc_s to additional flags.
4190
4191 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
4192
4193         * configure.in, include/Makefile.am: PR libgcj/11147, install
4194         the ffitarget.h header file in a gcc versioned and target
4195         dependent place.
4196         * configure: Regenerated.
4197         * Makefile.in, include/Makefile.in: Likewise.
4198         * testsuite/Makefile.in: Likewise.
4199
4200 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
4201
4202         * testsuite/libffi.call/closure_fn0.c: Print result and check
4203         with dg-output to make debugging easier.
4204         * testsuite/libffi.call/closure_fn1.c: Likewise.
4205         * testsuite/libffi.call/closure_fn2.c: Likewise.
4206         * testsuite/libffi.call/closure_fn3.c: Likewise.
4207         * testsuite/libffi.call/closure_fn4.c: Likewise.
4208         * testsuite/libffi.call/closure_fn5.c: Likewise.
4209         * testsuite/libffi.call/cls_12byte.c: Likewise.
4210         * testsuite/libffi.call/cls_16byte.c: Likewise.
4211         * testsuite/libffi.call/cls_18byte.c: Likewise.
4212         * testsuite/libffi.call/cls_19byte.c: Likewise.
4213         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4214         * testsuite/libffi.call/cls_20byte.c: Likewise.
4215         * testsuite/libffi.call/cls_20byte1.c: Likewise.
4216         * testsuite/libffi.call/cls_24byte.c: Likewise.
4217         * testsuite/libffi.call/cls_2byte.c: Likewise.
4218         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4219         * testsuite/libffi.call/cls_3byte1.c: Likewise.
4220         * testsuite/libffi.call/cls_3byte2.c: Likewise.
4221         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4222         * testsuite/libffi.call/cls_4byte.c: Likewise.
4223         * testsuite/libffi.call/cls_5byte.c: Likewise.
4224         * testsuite/libffi.call/cls_64byte.c: Likewise.
4225         * testsuite/libffi.call/cls_6byte.c: Likewise.
4226         * testsuite/libffi.call/cls_7byte.c: Likewise.
4227         * testsuite/libffi.call/cls_8byte.c: Likewise.
4228         * testsuite/libffi.call/cls_9byte1.c: Likewise.
4229         * testsuite/libffi.call/cls_9byte2.c: Likewise.
4230         * testsuite/libffi.call/cls_double.c: Likewise.
4231         * testsuite/libffi.call/cls_float.c: Likewise.
4232         * testsuite/libffi.call/cls_schar.c: Likewise.
4233         * testsuite/libffi.call/cls_sint.c: Likewise.
4234         * testsuite/libffi.call/cls_sshort.c: Likewise.
4235         * testsuite/libffi.call/cls_uchar.c: Likewise.
4236         * testsuite/libffi.call/cls_uint.c: Likewise.
4237         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4238         * testsuite/libffi.call/cls_ushort.c: Likewise.
4239         * testsuite/libffi.call/problem1.c: Likewise.
4240
4241         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4242         static.
4243
4244 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
4245
4246         * testsuite/libffi.call/cls_9byte2.c: New test case.
4247         * testsuite/libffi.call/cls_9byte1.c: Likewise.
4248         * testsuite/libffi.call/cls_64byte.c: Likewise.
4249         * testsuite/libffi.call/cls_20byte1.c: Likewise.
4250         * testsuite/libffi.call/cls_19byte.c: Likewise.
4251         * testsuite/libffi.call/cls_18byte.c: Likewise.
4252         * testsuite/libffi.call/closure_fn4.c: Likewise.
4253         * testsuite/libffi.call/closure_fn5.c: Likewise.
4254         * testsuite/libffi.call/cls_schar.c: Likewise.
4255         * testsuite/libffi.call/cls_sint.c: Likewise.
4256         * testsuite/libffi.call/cls_sshort.c: Likewise.
4257         * testsuite/libffi.call/nested_struct2.c: Likewise.
4258         * testsuite/libffi.call/nested_struct3.c: Likewise.
4259
4260 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
4261
4262         * testsuite/libffi.call/cls_double.c: Do a check on the result.
4263         * testsuite/libffi.call/cls_uchar.c: Likewise.
4264         * testsuite/libffi.call/cls_uint.c: Likewise.
4265         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4266         * testsuite/libffi.call/cls_ushort.c: Likewise.
4267         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4268
4269 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
4270
4271         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4272         the initialization.
4273
4274 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
4275
4276         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4277         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4278
4279 2003-10-22  David Daney  <ddaney@avtrex.com>
4280
4281         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4282         __attribute__((__mode__(__SI__))) and friends.
4283
4284 2003-10-22  Andreas Schwab  <schwab@suse.de>
4285
4286         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4287
4288 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
4289
4290         * configure.in: AC_LINK_FILES(ffitarget.h).
4291         * configure: Regenerate.
4292         * Makefile.in: Likewise.
4293         * include/Makefile.in: Likewise.
4294         * testsuite/Makefile.in: Likewise.
4295         * fficonfig.h.in: Likewise.
4296
4297 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
4298             Richard Henderson  <rth@redhat.com>
4299
4300         Avoid that ffi.h includes fficonfig.h.
4301
4302         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4303         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4304         (TARGET_SRC_MIPS_SGI): Removed.
4305         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4306         (MIPS_SGI): Removed.
4307         (CLEANFILES): Removed.
4308         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4309         targets.
4310         * acconfig.h: Removed.
4311         * configure.in: Compute sizeofs only for double and long double.
4312         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
4313         into AC_DEFINE instead of using acconfig.h.  Create
4314         include/ffitarget.h instead of include/fficonfig.h.  Rename
4315         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4316         AC_DEFINE EH_FRAME_FLAGS.
4317         * include/Makefile.am (DISTCLEANFILES): New automake macro.
4318         (hack_DATA): Add ffitarget.h.
4319         * include/ffi.h.in: Remove all system specific definitions.
4320         Declare raw API even if it is not installed, why bother?
4321         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
4322         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
4323         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
4324         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4325         * include/ffi_common.h (bool): Do not define.
4326         (ffi_assert): Accept failed assertion.
4327         (ffi_type_test): Return void and accept file/line.
4328         (FFI_ASSERT): Pass stringized failed assertion.
4329         (FFI_ASSERT_AT): New macro.
4330         (FFI_ASSERT_VALID_TYPE): New macro.
4331         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4332         UINT64, SINT64): Define here with gcc's __attribute__ macro
4333         instead of in ffi.h
4334         (FLOAT32, ALIGN): Define here instead of in ffi.h
4335         * include/ffi-mips.h: Removed.  Its content moved to
4336         src/mips/ffitarget.h after separating assembly and C sections.
4337         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4338         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4339         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4340         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4341         SIZEOF_ARG -> FFI_SIZEOF_ARG.
4342         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4343         * src/debug.c (ffi_assert): Accept stringized failed assertion.
4344         (ffi_type_test): Rewritten.
4345         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4346         FFI_ASSERT_VALID_TYPE.
4347         * src/alpha/ffitarget.h, src/arm/ffitarget.h,