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