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