The powerpc64 support opted to pass floating point values both in the
[platform/upstream/libffi.git] / ChangeLog
1 2013-11-16  Alan Modra  <amodra@gmail.com>
2
3         * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
4         (FFI_EXTRA_CIF_FIELDS): Define.
5         * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
6         ABI, not to both fpr and param save area.
7         (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
8         Keep initial flags.  Formatting.  Remove dead FFI_LINUX_SOFT_FLOAT
9         code.
10         (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
11         (ffi_closure_helper_LINUX64): Pass floating point as per ABI,
12         not to both fpr and parameter save areas.
13
14         * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
15         function cast and don't call ffi_prep_cif.
16         * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
17
18 2013-11-15  Andrew Haley  <aph@redhat.com>
19
20         * doc/libffi.texi (Closure Example): Fix the sample code.
21         * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
22
23 2013-11-15  Andrew Haley  <aph@redhat.com>
24
25         * testsuite/libffi.call/va_struct1.c (main): Fix broken test.
26         * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
27         * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
28         * testsuite/libffi.call/va_1.c (main): Likewise.
29
30 2013-11-14  David Schneider  <david.schneider@bivab.de>
31
32         * src/arm/ffi.c: Fix register allocation for mixed float and
33         doubles.
34         * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
35         for many mixed float and double arguments.
36
37 2013-11-13  Alan Modra  <amodra@gmail.com>
38
39         * doc/libffi.texi (Simple Example): Correct example code.
40         * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
41
42 2013-11-13  Anthony Green  <green@moxielogic.com>
43
44         * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
45         based build. (Thanks to tmr111116 on github)
46
47 2013-11-09  Anthony Green  <green@moxielogic.com>
48
49         * m4/libtool.m4: Refresh.
50         * configure, Makefile.in: Rebuilt.
51         * README: Add more notes about next release.
52
53 2013-11-09  Shigeharu TAKENO  <shige@iee.niit.ac.jp>
54
55         * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
56         UltraSPARC-IIi as ultrasparc3.
57
58 2013-11-06  Mark Kettenis  <kettenis@gnu.org>
59
60         * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
61         16-bytes.
62
63 2013-11-06  Konstantin Belousov <kib@freebsd.org>
64
65         * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
66         source as not requiring executable stack.
67
68 2013-11-02  Anthony Green  <green@moxielogic.com>
69
70         * doc/libffi.texi (The Basics): Clarify return value buffer size
71         requirements.  Also, NULL result buffer pointers are no longer
72         supported.
73         * doc/libffi.info: Rebuilt.
74
75 2013-11-02  Mischa Jonker  <mjonker@synopsys.com>
76
77         * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
78         * Makefile.in: Rebuilt.
79
80 2013-11-02  David Schneider  <david.schneider@bivab.de>
81
82         * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
83         * testsuite/libffi.call/many_mixed.c: New file.
84         * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
85
86 2013-11-02  Vitaly Budovski
87
88         * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
89
90 2013-10-23  Mark H Weaver  <mhw@netris.org>
91
92         * src/mips/ffi.c: Fix handling of uint32_t arguments on the
93         MIPS N32 ABI.
94
95 2013-10-13  Sandra Loosemore  <sandra@codesourcery.com>
96
97         * README: Add Nios II to table of supported platforms.
98         * Makefile.am (EXTRA_DIST): Add nios2 files.
99         (nodist_libffi_la_SOURCES): Likewise.
100         * Makefile.in: Regenerated.
101         * configure.ac (nios2*-linux*): New host.
102         (NIOS2): Add AM_CONDITIONAL.
103         * configure: Regenerated.
104         * src/nios2/ffi.c: New.
105         * src/nios2/ffitarget.h: New.
106         * src/nios2/sysv.S: New.
107         * src/prep_cif.c (initialize_aggregate): Handle extra structure
108         alignment via FFI_AGGREGATE_ALIGNMENT.
109         (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
110
111 2013-10-10  Sandra Loosemore  <sandra@codesourcery.com>
112
113         * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
114         Fix uninitialized variable.
115
116 2013-10-11  Marcus Shawcroft  <marcus.shawcroft@arm.com>
117
118         * testsuite/libffi.call/many.c (many): Replace * with +.
119
120 2013-10-08  Ondřej Bílka  <neleai@seznam.cz>
121
122         * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
123         src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
124         src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
125         src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
126         src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
127         src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
128         spelling errors.
129
130 2013-10-08  Anthony Green  <green@moxielogic.com>
131
132         * aclocal.m4, compile, config.guess, config.sub, depcomp,
133         install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
134         * configure.ac: Update version to 3.0.14-rc0.
135         * Makefile.in, configure, Makefile.in, include/Makefile.in,
136         man/Makefile.in, testsuite/Makefile.in: Rebuilt.
137         * README: Mention M88K and VAX.
138
139 2013-07-15  Miod Vallat  <miod@openbsd.org>
140
141         * Makefile.am,
142         configure.ac,
143         src/m88k/ffi.c,
144         src/m88k/ffitarget.h,
145         src/m88k/obsd.S,
146         src/vax/elfbsd.S,
147         src/vax/ffi.c,
148         src/vax/ffitarget.h: Add m88k and vax support.
149
150 2013-06-24 Alan Modra  <amodra@gmail.com>
151
152         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
153         before statements.
154         (ffi_prep_args64): Support little-endian.
155         (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
156         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
157         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
158
159 2013-06-12  Mischa Jonker  <mjonker@synopsys.com>
160
161          * configure.ac: Add support for ARC.
162          * Makefile.am: Likewise.
163          * README: Add ARC details.
164          * src/arc/arcompact.S: New.
165          * src/arc/ffi.c: Likewise.
166          * src/arc/ffitarget.h: Likewise.
167
168 2013-03-28  David Schneider  <david.schneider@bivab.de>
169
170          * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
171          * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
172          * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
173          mixed arguments, many doubles.
174          * testsuite/libffi.call/many_double.c: testcase for calling a function using
175          more than 8 doubles.
176          * testcase/libffi.call/many.c: use absolute value to check result against an
177          epsilon
178
179 2013-03-17  Anthony Green  <green@moxielogic.com>
180
181         * README: Update for 3.0.13.
182         * configure.ac: Ditto.
183         * configure: Rebuilt.
184         * doc/*: Update version.
185
186 2013-03-17  Dave Korn  <dave.korn.cygwin@gmail.com>
187
188         * src/closures.c (is_emutramp_enabled
189         [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
190         enclosing #if scope.
191
192 2013-03-17  Anthony Green  <green@moxielogic.com>
193
194         * configure.ac: Only modify toolexecdir in certain cases.
195         * configure: Rebuilt.
196
197 2013-03-16  Gilles Talis  <gilles.talis@gmail.com>
198
199         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
200         fparg_count,etc on __NO_FPRS__ targets.
201
202 2013-03-16  Alan Hourihane  <alanh@fairlite.co.uk>
203
204         * src/m68k/sysv.S (epilogue): Don't use extb instruction on
205         m680000 machines.
206
207 2013-03-16  Alex Gaynor <alex.gaynor@gmail.com>
208
209         * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
210
211 2013-03-13  Markos Chandras <markos.chandras@imgtec.com>
212
213         * configure.ac: Add support for Imagination Technologies Meta.
214         * Makefile.am: Likewise.
215         * README: Add Imagination Technologies Meta details.
216         * src/metag/ffi.c: New.
217         * src/metag/ffitarget.h: Likewise.
218         * src/metag/sysv.S: Likewise.
219
220 2013-02-24  Andreas Schwab  <schwab@linux-m68k.org>
221
222         * doc/libffi.texi (Structures): Fix missing category argument of
223         @deftp.
224
225 2013-02-11  Anthony Green <green@moxielogic.com>
226
227         * configure.ac: Update release number to 3.0.12.
228         * configure: Rebuilt.
229         * README: Update release info.
230
231 2013-02-10  Anthony Green <green@moxielogic.com>
232
233         * README: Add Moxie.
234         * src/moxie/ffi.c: Created.
235         * src/moxie/eabi.S: Created.
236         * src/moxie/ffitarget.h: Created.
237         * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
238         * Makefile.in: Rebuilt.
239         * configure.ac: Add Moxie.
240         * configure: Rebuilt.
241         * testsuite/libffi.call/huge_struct.c: Disable format string
242         warnings for moxie*-*-elf tests.
243
244 2013-02-10  Anthony Green <green@moxielogic.com>
245
246         * Makefile.am (LTLDFLAGS): Fix reference.
247         * Makefile.in: Rebuilt.
248
249 2013-02-10  Anthony Green <green@moxielogic.com>
250
251         * README: Update supported platforms.  Update test results link.
252
253 2013-02-09  Anthony Green <green@moxielogic.com>
254
255         * testsuite/libffi.call/negint.c: Remove forced -O2.
256         * testsuite/libffi.call/many2.c (foo): Remove GCCism.
257         * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
258
259         * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
260         closure return type fix developed by Martin v. Löwis for cpython
261         fork.
262
263 2013-02-08  Andreas Tobler  <andreast@fgznet.ch>
264
265         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
266         support.
267         * src/powerpc/sysv.S: Ditto.
268
269 2013-02-08  Anthony Green <green@moxielogic.com>
270
271         * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
272         arm*-*-*.
273
274 2013-02-08  Anthony Green <green@moxielogic.com>
275
276         * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
277
278 2013-02-08  Matthias Klose  <doko@ubuntu.com>
279
280         * man/ffi_prep_cif.3: Clean up for debian linter.
281
282 2013-02-08  Peter Bergner  <bergner@vnet.ibm.com>
283
284         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
285         on the stack.
286
287 2013-02-08  Anthony Green <green@moxielogic.com>
288
289         * Makefile.am (EXTRA_DIST): Add missing files.
290         * testsuite/Makefile.am (EXTRA_DIST): Ditto.
291         * Makefile.in: Rebuilt.
292
293 2013-02-08  Anthony Green <green@moxielogic.com>
294
295         * configure.ac: Move sparc asm config checks to within functions
296         for compatibility with sun tools.
297         * configure: Rebuilt.
298         * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
299         systems.
300         * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
301         flusher.
302
303 2013-02-08  Nathan Rossi <nathan.rossi@xilinx.com>
304
305         * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
306         small big-endian structures.
307         (ffi_prep_args): Ditto.
308
309 2013-02-07  Anthony Green <green@moxielogic.com>
310
311         * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
312         (effectively hiding ffi_call_v8).
313
314 2013-02-07  Anthony Green <green@moxielogic.com>
315
316         * configure.ac: Update bug reporting address.
317         * configure.in: Rebuild.
318
319         * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
320         Sun compiler.
321         * src/sparc/ffi.c (ffi_call): Remove warning.
322         Call ffi_flush_icache for non-GCC builds.
323         (ffi_prep_closure_loc): Use ffi_flush_icache.
324
325         * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
326         * Makefile.in: Rebuilt.
327         * libtool-ldflags: New file.
328
329 2013-02-07  Daniel Schepler <dschepler@gmail.com>
330
331         * configure.ac: Correctly identify x32 systems as 64-bit.
332         * m4/libtool.m4: Remove libtool expr error.
333         * aclocal.m4, configure: Rebuilt.
334
335 2013-02-07  Anthony Green <green@moxielogic.com>
336
337         * configure.ac: Fix GCC usage test.
338         * configure: Rebuilt.
339         * README: Mention LLVM/GCC x86_64 issue.
340         * testsuite/Makefile.in: Rebuilt.
341
342 2013-02-07  Anthony Green <green@moxielogic.com>
343
344         * testsuite/libffi.call/cls_double_va.c (main): Replace // style
345         comments with /* */ for xlc compiler.
346         * testsuite/libffi.call/stret_large.c (main): Ditto.
347         * testsuite/libffi.call/stret_large2.c (main): Ditto.
348         * testsuite/libffi.call/nested_struct1.c (main): Ditto.
349         * testsuite/libffi.call/huge_struct.c (main): Ditto.
350         * testsuite/libffi.call/float_va.c (main): Ditto.
351         * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
352         * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
353         * testsuite/libffi.call/cls_pointer.c (main): Ditto.
354         * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
355
356 2013-02-06  Anthony Green <green@moxielogic.com>
357
358         * man/ffi_prep_cif.3: Clean up for debian lintian checker.
359
360 2013-02-06  Anthony Green <green@moxielogic.com>
361
362         * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
363         * Makefile.in: Rebuild.
364
365 2013-02-02  Mark H Weaver <mhw@netris.org>
366
367         * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
368         via general purpose registers.
369
370 2013-01-21  Nathan Rossi <nathan.rossi@xilinx.com>
371
372         * README: Add MicroBlaze details.
373         * Makefile.am: Add MicroBlaze support.
374         * configure.ac: Likewise.
375         * src/microblaze/ffi.c: New.
376         * src/microblaze/ffitarget.h: Likewise.
377         * src/microblaze/sysv.S: Likewise.
378
379 2013-01-21  Nathan Rossi <nathan.rossi@xilinx.com>
380         * testsuite/libffi.call/return_uc.c: Fixed issue.
381
382 2013-01-21  Chris Zankel   <chris@zankel.net>
383
384         * README: Add Xtensa support.
385         * Makefile.am: Likewise.
386         * configure.ac: Likewise.
387         * Makefile.in Regenerate.
388         * configure: Likewise.
389         * src/prep_cif.c: Handle Xtensa.
390         * src/xtensa: New directory.
391         * src/xtensa/ffi.c: New file.
392         * src/xtensa/ffitarget.h: Ditto.
393         * src/xtensa/sysv.S: Ditto.
394
395 2013-01-11  Anthony Green  <green@moxielogic.com>
396
397         * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
398         comments with /* */ for xlc compiler.
399         * src/powerpc/aix.S (ffi_call_AIX): Ditto.
400         * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
401         deprecated inline function.
402         * testsuite/libffi.special/ffitestcxx.h: Ditto.
403         * README: Add update for AIX support.
404
405 2013-01-11  Anthony Green  <green@moxielogic.com>
406
407         * configure.ac: Robustify pc relative reloc check.
408         * m4/ax_cc_maxopt.m4: Don't -malign-double.  This is an ABI
409         changing option for 32-bit x86.
410         * aclocal.m4, configure: Rebuilt.
411         * README: Update supported target list.
412
413 2013-01-10  Anthony Green  <green@moxielogic.com>
414
415         * README (tested): Add Compiler column to table.
416
417 2013-01-10  Anthony Green  <green@moxielogic.com>
418
419         * src/x86/ffi64.c (struct register_args): Make sse array and array
420         of unions for sunpro compiler compatibility.
421
422 2013-01-10  Anthony Green  <green@moxielogic.com>
423
424         * configure.ac: Test target platform size_t size.  Handle both 32
425         and 64-bit builds for x86_64-* and i?86-* targets (allowing for
426         CFLAG option to change default settings).
427         * configure, aclocal.m4: Rebuilt.
428
429 2013-01-10  Anthony Green  <green@moxielogic.com>
430
431         * testsuite/libffi.special/special.exp: Only run exception
432         handling tests when using GNU compiler.
433
434         * m4/ax_compiler_vendor.m4: New file.
435         * configure.ac: Test for compiler vendor and don't use
436         AX_CFLAGS_WARN_ALL with the sun compiler.
437         * aclocal.m4, configure: Rebuilt.
438
439 2013-01-10  Anthony Green  <green@moxielogic.com>
440
441         * include/ffi_common.h: Don't use GCCisms to define types when
442         building with the SUNPRO compiler.
443
444 2013-01-10  Anthony Green  <green@moxielogic.com>
445
446         * configure.ac: Put local.exp in the right place.
447         * configure: Rebuilt.
448
449         * src/x86/ffi.c: Update comment about regparm function attributes.
450         * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
451         that all function arguments be passed on the stack (no regparm
452         support).
453
454 2013-01-08  Anthony Green  <green@moxielogic.com>
455
456         * configure.ac: Generate local.exp.  This sets CC_FOR_TARGET
457         when we are using the vendor compiler.
458         * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
459         ../local.exp.
460         * configure, testsuite/Makefile.in: Rebuilt.
461
462         * testsuite/libffi.call/call.exp: Run tests with different
463         options, depending on whether or not we are using gcc or the
464         vendor compiler.
465         * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
466         whether or not we are building/testing with gcc.
467
468 2013-01-08  Anthony Green  <green@moxielogic.com>
469
470         * configure.ac: Switch x86 solaris target to X86 by default.
471         * configure: Rebuilt.
472
473 2013-01-08  Anthony Green  <green@moxielogic.com>
474
475         * configure.ac: Fix test for read-only eh_frame.
476         * configure: Rebuilt.
477
478 2013-01-08  Anthony Green  <green@moxielogic.com>
479
480         * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
481         when building with the GNU toolchain.
482         * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
483         compiler.
484
485 2013-01-07  Thorsten Glaser <tg@mirbsd.org>
486
487         * testsuite/libffi.call/cls_uchar_va.c,
488         testsuite/libffi.call/cls_ushort_va.c,
489         testsuite/libffi.call/va_1.c: Testsuite fixes.
490
491 2013-01-07  Thorsten Glaser <tg@mirbsd.org>
492
493         * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
494         (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
495         * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
496
497 2013-01-04  Anthony Green  <green@moxielogic.com>
498
499         * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
500         and -Wall.  This is set in the configure script after testing for
501         GCC.
502         * Makefile.in: Rebuilt.
503
504 2013-01-02  rofl0r <https://github.com/rofl0r>
505
506         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
507         when long double == double.
508
509 2013-01-02  Reini Urban  <rurban@x-ray.at>
510
511         * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
512         (required for shared libs on cygwin/mingw).
513         * Makefile.in: Rebuilt.
514
515 2012-10-31  Alan Modra  <amodra@gmail.co>
516
517         * src/powerpc/linux64_closure.S: Add new ABI support.
518         * src/powerpc/linux64.S: Likewise.
519
520 2012-10-30  Magnus Granberg  <zorry@gentoo.org>
521             Pavel Labushev  <pavel.labushev@runbox.ru>
522
523         * configure.ac: New options pax_emutramp
524         * configure, fficonfig.h.in: Regenerated
525         * src/closures.c: New function emutramp_enabled_check() and
526         checks.
527
528 2012-10-30  Frederick Cheung  <frederick.cheung@gmail.com>
529
530         * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
531         lion) and future version.
532         * configure: Rebuild.
533
534 2012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
535             Marcus Shawcroft  <marcus.shawcroft at arm.com>
536
537         * README: Add details of aarch64 port.
538         * src/aarch64/ffi.c: New.
539         * src/aarch64/ffitarget.h: Likewise.
540         * src/aarch64/sysv.S: Likewise.
541         * Makefile.am: Support aarch64.
542         * configure.ac: Support aarch64.
543         * Makefile.in, configure: Rebuilt.
544
545 2012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
546             Marcus Shawcroft  <marcus.shawcroft at arm.com>
547
548         * testsuite/lib/libffi.exp: Add support for aarch64.
549         * testsuite/libffi.call/cls_struct_va1.c: New.
550         * testsuite/libffi.call/cls_uchar_va.c: Likewise.
551         * testsuite/libffi.call/cls_uint_va.c: Likewise.
552         * testsuite/libffi.call/cls_ulong_va.c: Likewise.
553         * testsuite/libffi.call/cls_ushort_va.c: Likewise.
554         * testsuite/libffi.call/nested_struct11.c: Likewise.
555         * testsuite/libffi.call/uninitialized.c: Likewise.
556         * testsuite/libffi.call/va_1.c: Likewise.
557         * testsuite/libffi.call/va_struct1.c: Likewise.
558         * testsuite/libffi.call/va_struct2.c: Likewise.
559         * testsuite/libffi.call/va_struct3.c: Likewise.
560
561 2012-10-12  Walter Lee  <walt@tilera.com>
562
563         * Makefile.am: Add TILE-Gx/TILEPro support.
564         * configure.ac: Likewise.
565         * Makefile.in: Regenerate.
566         * configure: Likewise.
567         * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
568         * src/tile: New directory.
569         * src/tile/ffi.c: New file.
570         * src/tile/ffitarget.h: Ditto.
571         * src/tile/tile.S: Ditto.
572
573 2012-10-12  Matthias Klose  <doko@ubuntu.com>
574
575         * generate-osx-source-and-headers.py: Normalize whitespace.
576
577 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
578
579         * configure: Regenerated.
580
581 2012-08-26  Andrew Pinski  <apinski@cavium.com>
582
583         PR libffi/53014
584         * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
585         soft-float.
586
587 2012-08-08  Uros Bizjak  <ubizjak@gmail.com>
588
589         * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
590         just return FFI_BAD_ABI when things are wrong.
591
592 2012-07-18  H.J. Lu  <hongjiu.lu@intel.com>
593
594         PR libffi/53982
595         PR libffi/53973
596         * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
597         (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
598
599 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
600
601         * configure: Regenerated.
602
603 2012-05-05  Nicolas Lelong
604
605         * libffi.xcodeproj/project.pbxproj: Fixes.
606         * README: Update for iOS builds.
607
608 2012-04-23  Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
609
610         * configure.ac: Add Blackfin/sysv support
611         * Makefile.am: Add Blackfin/sysv support
612         * src/bfin/ffi.c:  Add Blackfin/sysv support
613         * src/bfin/ffitarget.h: Add Blackfin/sysv support
614
615 2012-04-11  Anthony Green  <green@moxielogic.com>
616
617         * Makefile.am (EXTRA_DIST): Add new script.
618         * Makefile.in: Rebuilt.
619
620 2012-04-11  Zachary Waldowski  <zwaldowski@gmail.com>
621
622         * generate-ios-source-and-headers.py,
623         libffi.xcodeproj/project.pbxproj: Support a Mac static library via
624         Xcode. Set iOS compatibility to 4.0.  Move iOS trampoline
625         generation into an Xcode "run script" phase.  Include both as
626         Xcode build scripts. Don't always regenerate config files.
627
628 2012-04-10  Anthony Green  <green@moxielogic.com>
629
630         * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
631
632 2012-04-06  Anthony Green  <green@moxielogic.com>
633
634         * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
635         * Makefile.in: Rebuilt.
636
637 2012-04-06  Mike Lewis  <mikelikespie@gmail.com>
638
639         * generate-ios-source-and-headers.py: New file.
640         * libffi.xcodeproj/project.pbxproj: New file.
641         * README: Update instructions on building iOS binary.
642         * build-ios.sh: Delete.
643
644 2012-04-06  Anthony Green  <green@moxielogic.com>
645
646         * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
647         compilers, then use it.
648
649 2012-04-06  H.J. Lu  <hongjiu.lu@intel.com>
650
651         * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
652
653 2012-04-06  Anthony Green  <green@moxielogic.com>
654
655         * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
656         * testsuite/Makefile.in: Rebuilt.
657
658 2012-04-05  Zachary Waldowski  <zwaldowski@gmail.com>
659
660         * include/ffi.h.in: Add missing trampoline table fields.
661         * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
662         in CNAME.
663         * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
664
665 2012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
666
667         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
668         Silence casting pointer to integer of different size warning.
669         Delete goto to previously deleted label.
670         (ffi_call): Silence possibly undefined warning.
671         (ffi_closure_helper_SYSV): Declare variable type.
672
673 2012-04-02  Peter Rosin  <peda@lysator.liu.se>
674
675         * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
676         value in the Intel version as is already done for the AT&T version.
677         (ffi_closure_SYSV): Likewise.
678         (ffi_closure_raw_SYSV): Likewise.
679         (ffi_closure_STDCALL): Likewise.
680
681 2012-03-29  Peter Rosin  <peda@lysator.liu.se>
682
683         * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
684         generation, fix the ENDP label and remove the surplus third arg
685         from the 'lea' insn.
686
687 2012-03-29  Peter Rosin  <peda@lysator.liu.se>
688
689         * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
690         visible outside the PROC, so that ffi_closure_raw_THISCALL can see
691         it.  Also instruct the assembler to add a frame to the function.
692
693 2012-03-23  Peter Rosin  <peda@lysator.liu.se>
694
695         * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
696         * Makefile.in: Rebuilt.
697         * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
698         to all data exports, when compiling libffi clients using MSVC.
699
700 2012-03-29  Peter Rosin  <peda@lysator.liu.se>
701
702         * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
703         make it the default for MSVC.
704         (FFI_TYPE_MS_STRUCT): New structure return convention.
705         * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
706         return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
707         instead of an ordinary FFI_TYPE_STRUCT.
708         (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
709         (ffi_call): Likewise.
710         (ffi_prep_incoming_args_SYSV): Likewise.
711         (ffi_raw_call): Likewise.
712         (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
713         * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
714         return a pointer to the result structure in eax and don't pop
715         that pointer from the stack, the caller takes care of it.
716         (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
717         (ffi_closure_raw_SYSV): Likewise.
718
719 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
720
721         * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
722         assembly version with Intel syntax.
723         * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
724
725 2012-03-23  Peter Rosin  <peda@lysator.liu.se>
726
727         * testsuite/libffi.call/ffitest.h: Provide abstration of
728         __attribute__((fastcall)) in the form of a __FASTCALL__
729         define.  Define it to __fastcall for MSVC.
730         * testsuite/libffi.call/fastthis1_win32.c: Use the above.
731         * testsuite/libffi.call/fastthis2_win32.c: Likewise.
732         * testsuite/libffi.call/fastthis3_win32.c: Likewise.
733         * testsuite/libffi.call/strlen2_win32.c: Likewise.
734         * testsuite/libffi.call/struct1_win32.c: Likewise.
735         * testsuite/libffi.call/struct2_win32.c: Likewise.
736
737 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
738
739         * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
740         frame on function entry, MASM adds one automatically.
741
742 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
743
744         * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
745         bits in the MSVC headers.
746
747 2012-03-22  Peter Rosin  <peda@lysator.liu.se>
748
749         * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
750         with no declarations after statements.
751         * testsuite/libffi.call/cls_16byte.c: Likewise.
752         * testsuite/libffi.call/cls_18byte.c: Likewise.
753         * testsuite/libffi.call/cls_19byte.c: Likewise.
754         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
755         * testsuite/libffi.call/cls_20byte.c: Likewise.
756         * testsuite/libffi.call/cls_20byte1.c: Likewise.
757         * testsuite/libffi.call/cls_24byte.c: Likewise.
758         * testsuite/libffi.call/cls_2byte.c: Likewise.
759         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
760         * testsuite/libffi.call/cls_3byte1.c: Likewise.
761         * testsuite/libffi.call/cls_3byte2.c: Likewise.
762         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
763         * testsuite/libffi.call/cls_4byte.c: Likewise.
764         * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
765         * testsuite/libffi.call/cls_5byte.c: Likewise.
766         * testsuite/libffi.call/cls_64byte.c: Likewise.
767         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
768         * testsuite/libffi.call/cls_6byte.c: Likewise.
769         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
770         * testsuite/libffi.call/cls_7byte.c: Likewise.
771         * testsuite/libffi.call/cls_8byte.c: Likewise.
772         * testsuite/libffi.call/cls_9byte1.c: Likewise.
773         * testsuite/libffi.call/cls_9byte2.c: Likewise.
774         * testsuite/libffi.call/cls_align_double.c: Likewise.
775         * testsuite/libffi.call/cls_align_float.c: Likewise.
776         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
777         * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
778         * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
779         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
780         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
781         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
782         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
783         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
784         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
785         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
786         * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
787         * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
788         * testsuite/libffi.call/err_bad_typedef.c: Likewise.
789         * testsuite/libffi.call/huge_struct.c: Likewise.
790         * testsuite/libffi.call/nested_struct.c: Likewise.
791         * testsuite/libffi.call/nested_struct1.c: Likewise.
792         * testsuite/libffi.call/nested_struct10.c: Likewise.
793         * testsuite/libffi.call/nested_struct2.c: Likewise.
794         * testsuite/libffi.call/nested_struct3.c: Likewise.
795         * testsuite/libffi.call/nested_struct4.c: Likewise.
796         * testsuite/libffi.call/nested_struct5.c: Likewise.
797         * testsuite/libffi.call/nested_struct6.c: Likewise.
798         * testsuite/libffi.call/nested_struct7.c: Likewise.
799         * testsuite/libffi.call/nested_struct8.c: Likewise.
800         * testsuite/libffi.call/nested_struct9.c: Likewise.
801         * testsuite/libffi.call/stret_large.c: Likewise.
802         * testsuite/libffi.call/stret_large2.c: Likewise.
803         * testsuite/libffi.call/stret_medium.c: Likewise.
804         * testsuite/libffi.call/stret_medium2.c: Likewise.
805         * testsuite/libffi.call/struct1.c: Likewise.
806         * testsuite/libffi.call/struct1_win32.c: Likewise.
807         * testsuite/libffi.call/struct2.c: Likewise.
808         * testsuite/libffi.call/struct2_win32.c: Likewise.
809         * testsuite/libffi.call/struct3.c: Likewise.
810         * testsuite/libffi.call/struct4.c: Likewise.
811         * testsuite/libffi.call/struct5.c: Likewise.
812         * testsuite/libffi.call/struct6.c: Likewise.
813         * testsuite/libffi.call/struct7.c: Likewise.
814         * testsuite/libffi.call/struct8.c: Likewise.
815         * testsuite/libffi.call/struct9.c: Likewise.
816         * testsuite/libffi.call/testclosure.c: Likewise.
817
818 2012-03-21  Peter Rosin  <peda@lysator.liu.se>
819
820         * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
821         printing doubles (%lf is for long doubles).
822         (main): Likewise.
823
824 2012-03-21  Peter Rosin  <peda@lysator.liu.se>
825
826         * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
827         (set_ld_library_path_env_vars): Add the library search dir to PATH
828         (and save PATH for later).
829         (restore_ld_library_path_env_vars): Restore PATH.
830
831 2012-03-21  Peter Rosin  <peda@lysator.liu.se>
832
833         * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
834         (set_ld_library_path_env_vars): Add the library search dir to PATH
835         (and save PATH for later).
836         (restore_ld_library_path_env_vars): Restore PATH.
837
838 2012-03-20  Peter Rosin  <peda@lysator.liu.se>
839
840         * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
841         * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
842         visible outside the PROC, so that ffi_closure_THISCALL can see it.
843
844 2012-03-20  Peter Rosin  <peda@lysator.liu.se>
845
846         * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
847         * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
848         visible outside the PROC, so that ffi_closure_THISCALL can see it.
849
850 2012-03-19  Alan Hourihane  <alanh@fairlite.co.uk>
851
852         * src/m68k/ffi.c: Add MINT support.
853         * src/m68k/sysv.S: Ditto.
854
855 2012-03-06  Chung-Lin Tang  <cltang@codesourcery.com>
856
857         * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
858         ffi_call_VFP().
859         (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
860         ffi_closure_VFP.
861         * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
862
863 2012-03-19  chennam  <csit@axway.com>
864
865         * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
866         support.
867
868 2012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
869
870         * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
871         just return FFI_BAD_ABI when things are wrong.
872         * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
873
874 2012-03-09  David Edelsohn  <dje.gcc@gmail.com>
875
876         * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
877         change to return value of ffi_closure_helper_DARWIN and load type
878         from return type.
879
880 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
881
882         * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
883         long.
884         (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
885         (ffi_closure_unix64_inner): Cast return pointer to unsigned long
886         first.
887
888         * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
889         (ffi_arg): Set to unsigned long long for x32.
890         (ffi_sarg): Set to long long for x32.
891
892 2012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
893
894         * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
895
896 2012-03-03  Andoni Morales Alastruey  <ylatuya@gmail.com>
897
898         * configure.ac: Add -no-undefined for both 32- and 64-bit x86
899         windows-like hosts.
900         * configure: Rebuilt.
901
902 2012-02-27  Mikael Pettersson  <mikpe@it.uu.se>
903
904         PR libffi/52223
905         * Makefile.am (FLAGS_TO_PASS): Define.
906         * Makefile.in: Regenerate.
907
908 2012-02-23  Anthony Green  <green@moxielogic.com>
909
910         * src/*/ffitarget.h: Ensure that users never include ffitarget.h
911         directly.
912
913 2012-02-23  Kai Tietz  <ktietz@redhat.com>
914
915         PR libffi/52221
916         * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
917         prototype.
918         (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
919         thiscall-convention.
920         (ffi_raw_call): Use ffi_prep_args_raw.
921         * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
922         implementation for stub.
923
924 2012-02-10  Kai Tietz  <ktietz@redhat.com>
925
926         * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
927         windows target.
928         * configure: Regenerated.
929
930 2012-02-08  Kai Tietz  <ktietz@redhat.com>
931
932         * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
933         also FFI_THISCALL.
934         * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
935         (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
936         (ffi_prep_closure_loc): Add FFI_THISCALL support.
937         * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
938         * src/x86/win32.S (ffi_closure_THISCALL): New closure code
939         for thiscall-calling convention.
940         * testsuite/libffi.call/closure_thiscall.c: New test.
941
942 2012-01-28  Kai Tietz  <ktietz@redhat.com>
943
944         * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
945         argument to prototype for specify calling-convention.
946         (ffi_call): Add support for stdcall/thiscall convention.
947         (ffi_prep_args): Likewise.
948         (ffi_raw_call): Likewise.
949         * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
950         FFI_FASTCALL.
951         * src/x86/win32.S (_ffi_call_win32): Add support for
952         fastcall/thiscall calling-convention calls.
953         * testsuite/libffi.call/fastthis1_win32.c: New test.
954         * testsuite/libffi.call/fastthis2_win32.c: New test.
955         * testsuite/libffi.call/fastthis3_win32.c: New test.
956         * testsuite/libffi.call/strlen2_win32.c: New test.
957         * testsuite/libffi.call/many2_win32.c: New test.
958         * testsuite/libffi.call/struct1_win32.c: New test.
959         * testsuite/libffi.call/struct2_win32.c: New test.
960
961 2012-01-23  Uros Bizjak  <ubizjak@gmail.com>
962
963         * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
964
965 2012-01-23  Anthony Green  <green@moxielogic.com>
966             Chris Young  <cdyoung@ntlworld.com>
967
968         * configure.ac: Add Amiga support.
969         * configure: Rebuilt.
970
971 2012-01-23  Dmitry Nadezhin  <dmitry.nadezhin@gmail.com>
972
973         * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
974
975 2012-01-23  Andreas Schwab  <schwab@linux-m68k.org>
976
977         * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
978         mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.
979
980 2012-01-19  Jakub Jelinek  <jakub@redhat.com>
981
982         PR rtl-optimization/48496
983         * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
984
985 2012-01-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
986
987         * configure.ac (i?86-*-*): Set TARGET to X86_64.
988         * configure: Regenerate.
989
990 2011-12-07  Andrew Pinski  <apinski@cavium.com>
991
992         PR libffi/50051
993         * src/mips/n32.S: Add ".set mips4".
994
995 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
996
997         * configure: Regenerate.
998
999 2011-11-12  David Gilbert <david.gilbert@linaro.org>
1000
1001         * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
1002         man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
1003         man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
1004         src/cris/ffi.c, src/prep_cif.c,
1005         testsuite/libffi.call/cls_double_va.c,
1006         testsuite/libffi.call/cls_longdouble_va.c,
1007         testsuite/libffi.call/float_va.c: Many changes to support variadic
1008         function calls.
1009
1010 2011-11-12  Kyle Moffett <Kyle.D.Moffett@boeing.com>
1011
1012         * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
1013         src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
1014         softfloat powerpc variants.
1015
1016 2011-11-12  Petr Salinger <Petr.Salinger@seznam.cz>
1017
1018         * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
1019         * configure: Rebuilt.
1020
1021 2011-11-12  Timothy Wall  <twall@users.sf.net>
1022
1023         * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
1024         alignment of 4 for wince on ARM.
1025
1026 2011-11-12  Kyle Moffett <Kyle.D.Moffett@boeing.com>
1027             Anthony Green <green@moxielogic.com>
1028
1029         * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
1030         instructions (not available on some cores, like the PPC440).
1031
1032 2011-11-12  Kimura Wataru  <kimuraw@i.nifty.jp>
1033
1034         * m4/ax_enable_builddir: Change from string comparison to numeric
1035         comparison for wc output.
1036         * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
1037         X 10.7.
1038         * configure: Rebuilt.
1039
1040 2011-11-12  Anthony Green  <green@moxielogic.com>
1041
1042         * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1043         files with debug info.
1044         * Makefile.in: Rebuilt.
1045
1046 2011-11-12  Jasper Lievisse Adriaanse <jasper@openbsd.org>
1047
1048         * README: Update list of supported OpenBSD systems.
1049
1050 2011-11-12  Anthony Green  <green@moxielogic.com>
1051
1052         * libtool-version: Update.
1053         * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1054         FFI_DEBUG.
1055         (libffi_la_SOURCES): Remove src/debug.c
1056         (EXTRA_DIST): Add src/debug.c
1057         * Makefile.in: Rebuilt.
1058         * README: Update for 3.0.11.
1059
1060 2011-11-10  Richard Henderson  <rth@redhat.com>
1061
1062         * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1063         * configure, aclocal.m4: Rebuild.
1064
1065 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
1066
1067         PR libffi/49594
1068         * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1069         helper reference track the architecture pointer size.
1070
1071 2011-08-25  Andrew Haley  <aph@redhat.com>
1072
1073         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1074         instructions.
1075         * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
1076
1077 2011-07-11  Andrew Haley  <aph@redhat.com>
1078
1079         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1080
1081 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1082
1083         * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1084         * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1085
1086 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1087
1088         PR libffi/46660
1089         * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1090         mips-sgi-irix6*.
1091         * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1092
1093 2011-06-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1094
1095         * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1096         PRId8 instead of %hhu, %hhd.
1097         * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1098         PRIu8): Define.
1099         [__sgi__] (PRId8, PRIu8): Define.
1100
1101 2011-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1102
1103         * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1104         Define.
1105         Use them to handle ELF vs. ECOFF differences.
1106         [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1107
1108 2011-03-30  Timothy Wall  <twall@users.sf.net>
1109
1110         * src/powerpc/darwin.S: Fix unknown FDE encoding.
1111         * src/powerpc/darwin_closure.S: ditto.
1112
1113 2011-02-25  Anthony Green  <green@moxielogic.com>
1114
1115         * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1116         32-bit ABIs.
1117
1118 2011-02-15  Anthony Green  <green@moxielogic.com>
1119
1120         * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1121         * configure: Rebuilt.
1122
1123 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1124
1125         * configure: Regenerate.
1126
1127 2011-02-13  Anthony Green  <green@moxielogic.com>
1128
1129         * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1130         * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1131         * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1132
1133         * src/prep_cif.c (initialize_aggregate): Convert assertion into
1134         FFI_BAD_TYPEDEF return.  Initialize arg size and alignment to 0.
1135
1136         * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1137         just return FFI_BAD_ABI when things are wrong.
1138         * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1139         * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1140         * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1141         * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1142         * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1143
1144 2011-02-11  Anthony Green  <green@moxielogic.com>
1145
1146         * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1147         just return FFI_BAD_ABI when things are wrong.
1148
1149 2012-02-11  Eric Botcazou  <ebotcazou@adacore.com>
1150
1151         * src/sparc/v9.S (STACKFRAME): Bump to 176.
1152
1153 2011-02-09  Stuart Shelton  <srcshelton@gmail.com>
1154
1155         http://bugs.gentoo.org/show_bug.cgi?id=286911
1156         * src/mips/ffitarget.h: Clean up error messages.
1157         * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1158         ffi_raw*.
1159         * include/ffi.h.in: Add pragma for SGI compiler.
1160
1161 2011-02-09  Anthony Green  <green@moxielogic.com>
1162
1163         * configure.ac: Add powerpc64-*-darwin* support.
1164
1165 2011-02-09  Anthony Green <green@moxielogic.com>
1166
1167         * README: Mention Interix.
1168
1169 2011-02-09  Jonathan Callen  <abcd@gentoo.org>
1170
1171         * configure.ac: Add Interix to win32/cygwin/mingw case.
1172         * configure: Ditto.
1173         * src/closures.c: Treat Interix like Cygwin, instead of as a
1174         generic win32.
1175
1176 2011-02-09  Anthony Green <green@moxielogic.com>
1177
1178         * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1179         * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1180         * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1181         (ffi_prep_closure_loc): Check for bad ABI.
1182         * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1183         (initialize_aggregate): Check for bad types.
1184
1185 2011-02-09  Landon Fuller <landonf@plausible.coop>
1186
1187         * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1188         src/arm/trampoline.S.
1189         (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1190         * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1191         * src/arm/ffi.c (ffi_trampoline_table)
1192         (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1193         (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1194         (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1195         (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1196         Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1197         (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1198         separately.
1199         * src/arm/sysv.S: Handle Apple iOS host.
1200         * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
1201         * build-ios.sh: New file.
1202         * fficonfig.h.in, configure, Makefile.in: Rebuilt.
1203         * README: Mention ARM iOS.
1204
1205 2011-02-08  Oren Held  <orenhe@il.ibm.com>
1206
1207         * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1208         redefinition of mallinfo on HP-UX.
1209
1210 2011-02-08  Ginn Chen  <ginn.chen@oracle.com>
1211
1212         * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
1213         aggregate return ABI.  Flush cache.
1214         (ffi_prep_closure_loc): Flush cache.
1215
1216 2011-02-11  Anthony Green  <green@moxielogic.com>
1217
1218         From Tom Honermann <tom.honermann@oracle.com>:
1219         * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1220         AIX.  Declare .ffi_prep_args.  Insert nops after branch
1221         instructions so that the AIX linker can insert TOC reload
1222         instructions.
1223         * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1224
1225 2011-02-08  Ed  <ed@kdtc.net>
1226
1227         * src/powerpc/asm.h: Fix grammar nit in comment.
1228
1229 2011-02-08  Uli Link  <ul.mcamafia@linkitup.de>
1230
1231         * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1232
1233 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1234
1235         PR libffi/46661
1236         * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1237         uintptr_t first.
1238         * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1239
1240 2011-02-08  Rafael Avila de Espindola  <respindola@mozilla.com>
1241
1242         * configure.ac: Fix x86 test for pc related relocs.
1243         * configure: Rebuilt.
1244
1245 2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
1246
1247         * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1248         Handle case when CPU variant does not have long double support.
1249         * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1250         and cores with soft floating point.
1251
1252 2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
1253
1254         * configure.ac: Add mips*-*-rtems* support.
1255         * configure: Regenerate.
1256         * src/mips/ffitarget.h: Ensure needed constants are available
1257         for targets which do not have sgidefs.h.
1258
1259 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
1260
1261         PR target/40125
1262         * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1263         * configure: Regenerate.
1264
1265 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
1266
1267         PR libffi/29152
1268         PR libffi/42378
1269         * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1270         update comments.
1271         * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1272         (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1273         * src/powerpc/darwin.S: Provide Darwin64 implementation,
1274         update comments.
1275         * src/powerpc/ffi_darwin.c: Likewise.
1276
1277 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1278
1279         * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1280         backslashes.
1281         (libffi_cv_as_string_pseudo_op): Likewise.
1282         * configure: Regenerate.
1283
1284 2010-12-03  Chung-Lin Tang  <cltang@codesourcery.com>
1285
1286         * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1287         (ffi_closure_VFP): Same.
1288         (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1289         directive.
1290
1291 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1292
1293         * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1294         (PRIuPTR): Define.
1295
1296 2010-11-29  Richard Henderson  <rth@redhat.com>
1297             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1298
1299         * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1300         (.eh_frame): Use FDE_ENCODING.
1301         (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1302
1303 2010-11-22  Jacek Caban <jacek@codeweavers.com>
1304
1305         * configure.ac: Check for symbol underscores on mingw-w64.
1306         * configure: Rebuilt.
1307         * src/x86/win64.S: Correctly access extern symbols in respect to
1308         underscores.
1309
1310 2010-11-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1311
1312         * testsuite/lib/libffi-dg.exp: Rename ...
1313         * testsuite/lib/libffi.exp: ... to this.
1314         * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1315         * libffi/testsuite/libffi.special/special.exp: Likewise.
1316
1317 2010-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
1318
1319         * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1320         code, new parameter, and return value. Update comments.
1321         (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1322         call to layout_vfp_args().
1323         (ffi_call_SYSV): Update declaration.
1324         (ffi_call_VFP): New declaration.
1325         (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1326         when ABI is FFI_VFP.
1327         (ffi_closure_VFP): New declaration.
1328         (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1329         ffi_prep_incoming_args_SYSV().
1330         (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1331         case handling.
1332         (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1333         construction under VFP hard-float.
1334         (rec_vfp_type_p): New function.
1335         (vfp_type_p): Same.
1336         (place_vfp_arg): Same.
1337         (layout_vfp_args): Same.
1338         * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1339         based on __ARM_PCS_VFP.
1340         (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1341         fields.
1342         (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1343         (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1344         * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1345         direct call. Move function pointer load upwards.
1346         (ffi_call_VFP): New function.
1347         (ffi_closure_VFP): Same.
1348
1349         * testsuite/lib/libffi-dg.exp (check-flags): New function.
1350         (dg-skip-if): New function.
1351         * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1352         and compiler options include -mfloat-abi=hard.
1353         * testsuite/libffi.call/cls_longdouble_va.c: Same.
1354
1355 2010-10-01  Jakub Jelinek  <jakub@redhat.com>
1356
1357         PR libffi/45677
1358         * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1359         a multiple of 8.
1360         * testsuite/libffi.call/many2.c: New test.
1361
1362 2010-08-20  Mark Wielaard  <mjw@redhat.com>
1363
1364         * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1365         returns NULL.
1366
1367 2010-08-09  Andreas Tobler  <andreast@fgznet.ch>
1368
1369         * configure.ac: Add target powerpc64-*-freebsd*.
1370         * configure: Regenerate.
1371         * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1372         -mlong-double-128 only to linux targets.
1373         * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1374         * testsuite/libffi.call/cls_longdouble.c: Likewise.
1375         * testsuite/libffi.call/huge_struct.c: Likewise.
1376
1377 2010-08-05  Dan Witte  <dwitte@mozilla.com>
1378
1379         * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1380         debug CRT when --enable-debug is given.
1381         * configure.ac: Define it.
1382         * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1383
1384 2010-08-04  Dan Witte  <dwitte@mozilla.com>
1385
1386         * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1387         platforms.
1388         * src/x86/ffi.c: Remove redundant ifdef checks.
1389         * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1390         for X86_ANY so return value space doesn't get added twice.
1391
1392 2010-08-03  Neil Rashbrooke <neil@parkwaycc.co.uk>
1393
1394         * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1395
1396 2010-07-22  Dan Witte  <dwitte@mozilla.com>
1397
1398         * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1399         * src/prep_cif.c: Fix ABI assertion.
1400         * src/cris/ffi.c: Ditto.
1401
1402 2010-07-10  Evan Phoenix  <evan@fallingsnow.net>
1403
1404         * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1405
1406 2010-07-07  Dan Horák <dan@danny.cz>
1407
1408         * include/ffi.h.in: Protect #define with #ifndef.
1409         * src/powerpc/ffitarget.h: Ditto.
1410         * src/s390/ffitarget.h: Ditto.
1411         * src/sparc/ffitarget.h: Ditto.
1412
1413 2010-07-07   Neil Roberts <neil@linux.intel.com>
1414
1415         * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1416         16-bytes.
1417
1418 2010-07-02  Jakub Jelinek  <jakub@redhat.com>
1419
1420         * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1421         * Makefile.in: Regenerated.
1422
1423 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1424
1425         * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1426         output, too.
1427         (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1428         (libffi_cv_as_string_pseudo_op): Check for .string.
1429         * configure: Regenerate.
1430         * fficonfig.h.in: Regenerate.
1431         * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1432
1433 2010-05-11  Dan Witte  <dwitte@mozilla.com>
1434
1435         * doc/libffi.tex: Document previous change.
1436
1437 2010-05-11  Makoto Kato <m_kato@ga2.so-net.ne.jp>
1438
1439         * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1440
1441 2010-05-05  Michael Kohler <michaelkohler@live.com>
1442
1443         * src/dlmalloc.c (dlfree): Fix spelling.
1444         * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1445         * configure.ac: Ditto.
1446         * configure: Rebuilt.
1447
1448 2010-04-13  Dan Witte  <dwitte@mozilla.com>
1449
1450         * msvcc.sh: Build with -W3 instead of -Wall.
1451         * src/powerpc/ffi_darwin.c: Remove build warnings.
1452         * src/x86/ffi.c: Ditto.
1453         * src/x86/ffitarget.h: Ditto.
1454
1455 2010-04-12  Dan Witte  <dwitte@mozilla.com>
1456             Walter Meinl <wuno@lsvw.de>
1457
1458         * configure.ac: Add OS/2 support.
1459         * configure: Rebuilt.
1460         * src/closures.c: Ditto.
1461         * src/dlmalloc.c: Ditto.
1462         * src/x86/win32.S: Ditto.
1463
1464 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
1465
1466         * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
1467
1468 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1469
1470         * Makefile.in: Regenerate.
1471         * aclocal.m4: Regenerate.
1472         * include/Makefile.in: Regenerate.
1473         * man/Makefile.in: Regenerate.
1474         * testsuite/Makefile.in: Regenerate.
1475
1476 2010-03-30  Dan Witte  <dwitte@mozilla.com>
1477
1478         * msvcc.sh: Disable build warnings.
1479         * README (tested): Clarify windows build procedure.
1480
1481 2010-03-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1482
1483         * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1484         * configure: Regenerate.
1485         * fficonfig.h.in: Regenerate.
1486         * libffi/src/x86/unix64.S (.eh_frame)
1487         [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1488
1489 2010-03-14  Matthias Klose  <doko@ubuntu.com>
1490
1491         * src/x86/ffi64.c: Fix typo in comment.
1492         * src/x86/ffi.c: Use /* ... */ comment style.
1493
1494 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1495
1496         * doc/libffi.texi (The Closure API): Fix typo.
1497         * doc/libffi.info: Remove.
1498
1499 2010-02-15  Matthias Klose  <doko@ubuntu.com>
1500
1501         * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1502         __ARM_ARCH_7EM__.
1503
1504 2010-01-15  Anthony Green  <green@redhat.com>
1505
1506         * README: Add notes on building with Microsoft Visual C++.
1507
1508 2010-01-15  Daniel Witte  <dwitte@mozilla.com>
1509
1510         * msvcc.sh: New file.
1511
1512         * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1513         * src/x86/ffi.c: Tweak function declaration and remove excess
1514         parens.
1515         * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1516         ffi_closure.
1517
1518         * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1519         function ffi_call_win32 on X86_WIN32.
1520         * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1521         (ffi_call_STDCALL): Remove.
1522
1523         * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1524         to ffi_prep_cif_machdep for x86.
1525         * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1526
1527 2010-01-15  Oliver Kiddle  <okiddle@yahoo.co.uk>
1528
1529         * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
1530         Sun Studio compiler compatibility.
1531
1532 2010-01-12  Conrad Irwin <conrad.irwin@gmail.com>
1533
1534         * doc/libffi.texi: Add closure example.
1535
1536 2010-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1537
1538         PR libffi/40701
1539         * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1540         PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1541         * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1542         alpha*-dec-osf*.
1543         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1544         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1545         * testsuite/libffi.call/return_ll1.c: Likewise.
1546         * testsuite/libffi.call/stret_medium2.c: Likewise.
1547         * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1548         MAP_FAILED to char *.
1549
1550 2010-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1551
1552         * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1553
1554 2009-12-31  Anthony Green  <green@redhat.com>
1555
1556         * README: Update for libffi 3.0.9.
1557
1558 2009-12-27  Matthias Klose  <doko@ubuntu.com>
1559
1560         * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1561         appropriate.
1562         * configure: Rebuilt.
1563
1564 2009-12-26  Anthony Green  <green@redhat.com>
1565
1566         * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1567         avr32*-*-*.
1568         * testsuite/libffi.call/cls_double_va.c: Ditto.
1569
1570 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1571
1572         * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1573         and inttypes.h.
1574         * testsuite/libffi.special/unwindtest.cc: Ditto.
1575
1576 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1577
1578         * configure.ac: Add amd64-*-openbsd*.
1579         * configure: Rebuilt.
1580         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1581         openbsd programs with -lpthread.
1582
1583 2009-12-26  Anthony Green  <green@redhat.com>
1584
1585         * testsuite/libffi.call/cls_double_va.c,
1586         testsuite/libffi.call/cls_longdouble.c,
1587         testsuite/libffi.call/cls_longdouble_va.c,
1588         testsuite/libffi.call/cls_pointer.c,
1589         testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1590         mips*-*-* and arm*-*-*.
1591         * testsuite/libffi.call/cls_align_longdouble_split.c,
1592         testsuite/libffi.call/cls_align_longdouble_split2.c,
1593         testsuite/libffi.call/stret_medium2.c,
1594         testsuite/libffi.call/stret_medium.c,
1595         testsuite/libffi.call/stret_large.c,
1596         testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1597
1598 2009-12-31  Kay Tietz  <ktietz70@googlemail.com>
1599
1600         * testsuite/libffi.call/ffitest.h,
1601         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1602         definitions.
1603
1604 2009-12-31  Carlo Bramini  <carlo.bramix@libero.it>
1605
1606         * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1607         * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1608         * configure: Rebuilt.
1609         * Makefile.in: Rebuilt.
1610
1611 2009-12-31  Anthony Green  <green@redhat.com>
1612             Blake Chaffin.
1613
1614         * testsuite/libffi.call/huge_struct.c: New test case from Blake
1615         Chaffin @ Apple.
1616
1617 2009-12-28  David Edelsohn  <edelsohn@gnu.org>
1618
1619         * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1620         local variables.
1621         (aix_adjust_aggregate_sizes): New function.
1622         (ffi_prep_cif_machdep): Call it.
1623
1624 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1625
1626         * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1627         * configure: Regenerate.
1628         * fficonfig.h.in: Likewise.
1629         * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1630         Solaris/x86.
1631
1632 2009-12-26  Andreas Schwab  <schwab@linux-m68k.org>
1633
1634         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1635         when a float arguments is passed in memory.
1636         (ffi_closure_helper_SYSV): Mark general registers as used up when
1637         a 64bit or soft-float long double argument is passed in memory.
1638
1639 2009-12-25  Matthias Klose  <doko@ubuntu.com>
1640
1641         * man/ffi_call.3: Fix #include in examples.
1642         * doc/libffi.texi: Add dircategory.
1643
1644 2009-12-25  Frank Everdij <f.p.x.everdij@tudelft.nl>
1645
1646         * include/ffi.h.in: Placed '__GNUC__' ifdef around
1647         '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1648         IRIX MIPSPro c99.
1649         * include/ffi_common.h: Added '__sgi' define to non
1650         '__attribute__((__mode__()))' integer typedefs.
1651         * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
1652         ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1653         (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1654         FFI_LONGDOUBLE support and alignment(N32 only).
1655         * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1656         fixed non '__attribute__((__mode__()))' integer typedefs.
1657         * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1658         since they are Linux/GNU Assembler specific.
1659
1660 2009-12-25  Bradley Smith  <brad@brad-smith.co.uk>
1661
1662         * configure.ac, Makefile.am, src/avr32/ffi.c,
1663         src/avr32/ffitarget.h,
1664         src/avr32/sysv.S: Add AVR32 port.
1665         * configure, Makefile.in: Rebuilt.
1666
1667 2009-12-21  Andreas Tobler  <a.tobler@schweiz.org>
1668
1669         * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1670         * configure: Regenerate.
1671
1672 2009-12-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1673
1674         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1675
1676 2009-12-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1677
1678         * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1679         type on HP-UX.
1680
1681 2012-02-13  Kai Tietz  <ktietz@redhat.com>
1682
1683         PR libffi/52221
1684         * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1685         support for X86_WIN32.
1686         (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1687
1688 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1689
1690         * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1691         double' arguments.
1692
1693 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
1694
1695         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1696
1697 2009-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1698
1699         PR libffi/40700
1700         * src/closures.c [X86_64 && __sun__ && __svr4__]
1701         (FFI_MMAP_EXEC_WRIT): Define.
1702
1703 2009-12-08  David Daney  <ddaney@caviumnetworks.com>
1704
1705         * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1706         * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1707         * testsuite/libffi.call/stret_large.c: Same.
1708         * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1709         * testsuite/libffi.call/stret_large2.c: Same.
1710         * testsuite/libffi.call/stret_medium2.c: Same.
1711
1712 2009-12-07  David Edelsohn  <edelsohn@gnu.org>
1713
1714         * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1715         typo.
1716
1717 2009-12-05  David Edelsohn  <edelsohn@gnu.org>
1718
1719         * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1720         code.
1721         * src/powerpc/aix_closure.S: Same.
1722
1723 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1724
1725         * Makefile.in: Regenerate.
1726         * configure: Regenerate.
1727         * include/Makefile.in: Regenerate.
1728         * man/Makefile.in: Regenerate.
1729         * testsuite/Makefile.in: Regenerate.
1730
1731 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
1732
1733         * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
1734         linux64_closure.S.
1735
1736 2009-12-04  Uros Bizjak  <ubizjak@gmail.com>
1737
1738         PR libffi/41908
1739         * src/x86/ffi64.c (classify_argument): Update from
1740         gcc/config/i386/i386.c.
1741         (ffi_closure_unix64_inner): Do not use the address of two consecutive
1742         SSE registers directly.
1743         * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1744         for x86_64 linux targets.
1745
1746 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
1747
1748         * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1749         pfr for long double split between fpr13 and stack.
1750
1751 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
1752
1753         * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1754         fparg_count twice for long double.
1755
1756 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
1757
1758         PR libffi/42243
1759         * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1760
1761 2009-12-03  Uros Bizjak  <ubizjak@gmail.com>
1762
1763         * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1764         Remove xfails for x86 linux targets.
1765
1766 2009-12-02  David Edelsohn  <edelsohn@gnu.org>
1767
1768         * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1769         case.
1770
1771 2009-12-01  David Edelsohn  <edelsohn@gnu.org>
1772
1773         * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1774         register usage.  Call ffi_prep_args directly.  Add long double
1775         return value support.
1776         * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1777         applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
1778         Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1779         (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1780         mode.
1781         (ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
1782         into case.
1783         * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1784         Allocate result area between params and FPRs.
1785
1786 2009-11-30  David Edelsohn  <edelsohn@gnu.org>
1787
1788         PR target/35484
1789         * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1790         AIX64.
1791         * src/powerpc/aix.S: Implement AIX64 version.
1792         * src/powerpc/aix_closure.S: Implement AIX64 version.
1793         (ffi_closure_ASM): Use extsb, lha and displament addresses.
1794         * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1795         support.
1796         (ffi_prep_cif_machdep): Same.
1797         (ffi_call): Same.
1798         (ffi_closure_helper_DARWIN): Same.
1799
1800 2009-11-02  Andreas Tobler  <a.tobler@schweiz.org>
1801
1802         PR libffi/41908
1803         * testsuite/libffi.call/testclosure.c: New test.
1804
1805 2009-09-28  Kai Tietz  <kai.tietz@onevision.com>
1806
1807         * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1808         assembly version use of ___chkstk.
1809
1810 2009-09-23  Matthias Klose  <doko@ubuntu.com>
1811
1812         PR libffi/40242, PR libffi/41443
1813         * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1814         __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1815         __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1816         Change the conditionals to __SOFTFP__ || __ARM_EABI__
1817         for -mfloat-abi=softfp to work.
1818
1819 2009-09-17  Loren J. Rittle  <ljrittle@acm.org>
1820
1821         PR testsuite/32843 (strikes again)
1822         * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1823         enable proper extension on char and short.
1824
1825 2009-09-15  David Daney  <ddaney@caviumnetworks.com>
1826
1827         * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1828         handling for FFI_TYPE_POINTER.
1829         * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1830         FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1831         FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1832         FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1833         (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1834         (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1835         * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1836         structure and pointer returns.
1837         (ffi_closure_N32): Add handling for pointer returns.
1838         * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1839         calc_n32_return_struct_flags): Handle soft-float.
1840         (ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
1841         (ffi_call_N32): Declare proper argument types.
1842         (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1843         soft-float.
1844
1845 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1846
1847         * configure.ac (AC_PREREQ): Bump to 2.64.
1848
1849 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1850
1851         * Makefile.am (install-html, install-pdf): Remove.
1852         * Makefile.in: Regenerate.
1853
1854         * Makefile.in: Regenerate.
1855         * aclocal.m4: Regenerate.
1856         * configure: Regenerate.
1857         * fficonfig.h.in: Regenerate.
1858         * include/Makefile.in: Regenerate.
1859         * man/Makefile.in: Regenerate.
1860         * testsuite/Makefile.in: Regenerate.
1861
1862 2011-08-22  Jasper Lievisse Adriaanse <jasper@openbsd.org>
1863
1864         * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1865         * configure: Rebuilt.
1866
1867 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1868
1869         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1870
1871 2009-07-24  Dave Korn  <dave.korn.cygwin@gmail.com>
1872
1873         PR libffi/40807
1874         * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1875         return types for X86_WIN32.
1876         * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1877         (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1878         _ffi_closure_STDCALL): Likewise.
1879
1880         * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1881         (dlmmap, dlmunmap): Also use these functions on Cygwin.
1882
1883 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1884
1885         PR testsuite/40699
1886         PR testsuite/40707
1887         PR testsuite/40709
1888         * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1889         2009-06-30 commits.
1890
1891 2009-07-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
1892
1893         * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1894         to "" before adding paths.  (This reinstates an assignment that
1895         was removed by my 2009-06-30 commit, but changes the initial
1896         value from "." to "".)
1897
1898 2009-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1899
1900         PR testsuite/40601
1901         * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1902         gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
1903         empty.
1904
1905 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1906
1907         * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1908         to ld_library_path.  Use add_path.  Add just find_libgcc_s
1909         to ld_library_path, not every libgcc multilib directory.
1910
1911 2009-06-16  Wim Lewis  <wiml@hhhh.org>
1912
1913         * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1914         supposed to be callee-saved.
1915         * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1916         return buffer for odd-size structs.
1917
1918 2009-06-16  Andreas Tobler  <a.tobler@schweiz.org>
1919
1920         PR libffi/40444
1921         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1922         allow_stack_execute for Darwin.
1923
1924 2009-06-16  Andrew Haley  <aph@redhat.com>
1925
1926         * configure.ac (TARGETDIR): Add missing blank lines.
1927         * configure: Regenerate.
1928
1929 2009-06-16  Andrew Haley  <aph@redhat.com>
1930
1931         * testsuite/libffi.call/cls_align_sint64.c,
1932         testsuite/libffi.call/cls_align_uint64.c,
1933         testsuite/libffi.call/cls_longdouble_va.c,
1934         testsuite/libffi.call/cls_ulonglong.c,
1935         testsuite/libffi.call/return_ll1.c,
1936         testsuite/libffi.call/stret_medium2.c: Fix printf format
1937         specifiers.
1938         * testsuite/libffi.call/ffitest.h,
1939         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1940
1941 2009-06-15  Andrew Haley  <aph@redhat.com>
1942
1943         * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1944         * testsuite/libffi.call/err_bad_abi.c: Likewise.
1945
1946 2009-06-12  Andrew Haley  <aph@redhat.com>
1947
1948         * Makefile.am: Remove info_TEXINFOS.
1949
1950 2009-06-12  Andrew Haley  <aph@redhat.com>
1951
1952         * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1953         testsuite/libffi.call/cls_align_uint64.c,
1954         testsuite/libffi.call/cls_ulonglong.c,
1955         testsuite/libffi.call/return_ll1.c,
1956         testsuite/libffi.call/stret_medium2.c: Fix printf format
1957         specifiers.
1958         testsuite/libffi.special/unwindtest.cc: include stdint.h.
1959
1960 2009-06-11  Timothy Wall  <twall@users.sf.net>
1961
1962         * Makefile.am,
1963         configure.ac,
1964         include/ffi.h.in,
1965         include/ffi_common.h,
1966         src/closures.c,
1967         src/dlmalloc.c,
1968         src/x86/ffi.c,
1969         src/x86/ffitarget.h,
1970         src/x86/win64.S (new),
1971         README: Added win64 support (mingw or MSVC)
1972         * Makefile.in,
1973         include/Makefile.in,
1974         man/Makefile.in,
1975         testsuite/Makefile.in,
1976         configure,
1977         aclocal.m4: Regenerated
1978         * ltcf-c.sh: properly escape cygwin/w32 path
1979         * man/ffi_call.3: Clarify size requirements for return value.
1980         * src/x86/ffi64.c: Fix filename in comment.
1981         * src/x86/win32.S: Remove unused extern.
1982
1983         * testsuite/libffi.call/closure_fn0.c,
1984         testsuite/libffi.call/closure_fn1.c,
1985         testsuite/libffi.call/closure_fn2.c,
1986         testsuite/libffi.call/closure_fn3.c,
1987         testsuite/libffi.call/closure_fn4.c,
1988         testsuite/libffi.call/closure_fn5.c,
1989         testsuite/libffi.call/closure_fn6.c,
1990         testsuite/libffi.call/closure_stdcall.c,
1991         testsuite/libffi.call/cls_12byte.c,
1992         testsuite/libffi.call/cls_16byte.c,
1993         testsuite/libffi.call/cls_18byte.c,
1994         testsuite/libffi.call/cls_19byte.c,
1995         testsuite/libffi.call/cls_1_1byte.c,
1996         testsuite/libffi.call/cls_20byte.c,
1997         testsuite/libffi.call/cls_20byte1.c,
1998         testsuite/libffi.call/cls_24byte.c,
1999         testsuite/libffi.call/cls_2byte.c,
2000         testsuite/libffi.call/cls_3_1byte.c,
2001         testsuite/libffi.call/cls_3byte1.c,
2002         testsuite/libffi.call/cls_3byte2.c,
2003         testsuite/libffi.call/cls_4_1byte.c,
2004         testsuite/libffi.call/cls_4byte.c,
2005         testsuite/libffi.call/cls_5_1_byte.c,
2006         testsuite/libffi.call/cls_5byte.c,
2007         testsuite/libffi.call/cls_64byte.c,
2008         testsuite/libffi.call/cls_6_1_byte.c,
2009         testsuite/libffi.call/cls_6byte.c,
2010         testsuite/libffi.call/cls_7_1_byte.c,
2011         testsuite/libffi.call/cls_7byte.c,
2012         testsuite/libffi.call/cls_8byte.c,
2013         testsuite/libffi.call/cls_9byte1.c,
2014         testsuite/libffi.call/cls_9byte2.c,
2015         testsuite/libffi.call/cls_align_double.c,
2016         testsuite/libffi.call/cls_align_float.c,
2017         testsuite/libffi.call/cls_align_longdouble.c,
2018         testsuite/libffi.call/cls_align_longdouble_split.c,
2019         testsuite/libffi.call/cls_align_longdouble_split2.c,
2020         testsuite/libffi.call/cls_align_pointer.c,
2021         testsuite/libffi.call/cls_align_sint16.c,
2022         testsuite/libffi.call/cls_align_sint32.c,
2023         testsuite/libffi.call/cls_align_sint64.c,
2024         testsuite/libffi.call/cls_align_uint16.c,
2025         testsuite/libffi.call/cls_align_uint32.c,
2026         testsuite/libffi.call/cls_align_uint64.c,
2027         testsuite/libffi.call/cls_dbls_struct.c,
2028         testsuite/libffi.call/cls_double.c,
2029         testsuite/libffi.call/cls_double_va.c,
2030         testsuite/libffi.call/cls_float.c,
2031         testsuite/libffi.call/cls_longdouble.c,
2032         testsuite/libffi.call/cls_longdouble_va.c,
2033         testsuite/libffi.call/cls_multi_schar.c,
2034         testsuite/libffi.call/cls_multi_sshort.c,
2035         testsuite/libffi.call/cls_multi_sshortchar.c,
2036         testsuite/libffi.call/cls_multi_uchar.c,
2037         testsuite/libffi.call/cls_multi_ushort.c,
2038         testsuite/libffi.call/cls_multi_ushortchar.c,
2039         testsuite/libffi.call/cls_pointer.c,
2040         testsuite/libffi.call/cls_pointer_stack.c,
2041         testsuite/libffi.call/cls_schar.c,
2042         testsuite/libffi.call/cls_sint.c,
2043         testsuite/libffi.call/cls_sshort.c,
2044         testsuite/libffi.call/cls_uchar.c,
2045         testsuite/libffi.call/cls_uint.c,
2046         testsuite/libffi.call/cls_ulonglong.c,
2047         testsuite/libffi.call/cls_ushort.c,
2048         testsuite/libffi.call/err_bad_abi.c,
2049         testsuite/libffi.call/err_bad_typedef.c,
2050         testsuite/libffi.call/float2.c,
2051         testsuite/libffi.call/huge_struct.c,
2052         testsuite/libffi.call/nested_struct.c,
2053         testsuite/libffi.call/nested_struct1.c,
2054         testsuite/libffi.call/nested_struct10.c,
2055         testsuite/libffi.call/nested_struct2.c,
2056         testsuite/libffi.call/nested_struct3.c,
2057         testsuite/libffi.call/nested_struct4.c,
2058         testsuite/libffi.call/nested_struct5.c,
2059         testsuite/libffi.call/nested_struct6.c,
2060         testsuite/libffi.call/nested_struct7.c,
2061         testsuite/libffi.call/nested_struct8.c,
2062         testsuite/libffi.call/nested_struct9.c,
2063         testsuite/libffi.call/problem1.c,
2064         testsuite/libffi.call/return_ldl.c,
2065         testsuite/libffi.call/return_ll1.c,
2066         testsuite/libffi.call/stret_large.c,
2067         testsuite/libffi.call/stret_large2.c,
2068         testsuite/libffi.call/stret_medium.c,
2069         testsuite/libffi.call/stret_medium2.c,
2070         testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2071         of checking for MMAP.  Use intptr_t instead of long casts.
2072
2073 2009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2074
2075         * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2076         * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2077         * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2078
2079 2009-06-09  Andrew Haley  <aph@redhat.com>
2080
2081         * src/x86/freebsd.S: Add missing file.
2082
2083 2009-06-08  Andrew Haley  <aph@redhat.com>
2084
2085         Import from libffi 3.0.8:
2086
2087         * doc/libffi.texi: New file.
2088         * doc/libffi.info: Likewise.
2089         * doc/stamp-vti: Likewise.
2090         * man/Makefile.am: New file.
2091         * man/ffi_call.3: New file.
2092
2093         * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2094         src/dlmalloc.c.
2095         (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2096
2097         * configure.ac: Bump version to 3.0.8.
2098         parisc*-*-linux*: Add.
2099         i386-*-freebsd* | i386-*-openbsd*: Add.
2100         powerpc-*-beos*: Add.
2101         AM_CONDITIONAL X86_FREEBSD: Add.
2102         AC_CONFIG_FILES: Add man/Makefile.
2103
2104         * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2105
2106 2009-06-08  Andrew Haley  <aph@redhat.com>
2107
2108         * README: Import from libffi 3.0.8.
2109
2110 2009-06-08  Andrew Haley  <aph@redhat.com>
2111
2112         * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2113         * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2114         * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2115         * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2116
2117         * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2118         * testsuite/libffi.call/stret_medium.c: Likewise.
2119         * testsuite/libffi.call/stret_large2.c: Likewise.
2120         * testsuite/libffi.call/stret_large.c:  Likewise.
2121
2122 2008-12-26  Timothy Wall  <twall@users.sf.net>
2123
2124         * testsuite/libffi.call/cls_longdouble.c,
2125         testsuite/libffi.call/cls_longdouble_va.c,
2126         testsuite/libffi.call/cls_align_longdouble.c,
2127         testsuite/libffi.call/cls_align_longdouble_split.c,
2128         testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2129         failures on x86_64 cygwin/mingw.
2130
2131 2008-12-22  Timothy Wall  <twall@users.sf.net>
2132
2133         * testsuite/libffi.call/closure_fn0.c,
2134         testsuite/libffi.call/closure_fn1.c,
2135         testsuite/libffi.call/closure_fn2.c,
2136         testsuite/libffi.call/closure_fn3.c,
2137         testsuite/libffi.call/closure_fn4.c,
2138         testsuite/libffi.call/closure_fn5.c,
2139         testsuite/libffi.call/closure_fn6.c,
2140         testsuite/libffi.call/closure_loc_fn0.c,
2141         testsuite/libffi.call/closure_stdcall.c,
2142         testsuite/libffi.call/cls_align_pointer.c,
2143         testsuite/libffi.call/cls_pointer.c,
2144         testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2145         pointer to integer (intptr_t).
2146         * testsuite/libffi.call/cls_longdouble.c: disable for win64.
2147
2148 2008-07-24  Anthony Green  <green@redhat.com>
2149
2150         * testsuite/libffi.call/cls_dbls_struct.c,
2151         testsuite/libffi.call/cls_double_va.c,
2152         testsuite/libffi.call/cls_longdouble.c,
2153         testsuite/libffi.call/cls_longdouble_va.c,
2154         testsuite/libffi.call/cls_pointer.c,
2155         testsuite/libffi.call/cls_pointer_stack.c,
2156         testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2157         compiler warnings.
2158
2159 2008-03-04  Anthony Green  <green@redhat.com>
2160             Blake Chaffin
2161             hos@tamanegi.org
2162
2163         * testsuite/libffi.call/cls_align_longdouble_split2.c
2164           testsuite/libffi.call/cls_align_longdouble_split.c
2165           testsuite/libffi.call/cls_dbls_struct.c
2166           testsuite/libffi.call/cls_double_va.c
2167           testsuite/libffi.call/cls_longdouble.c
2168           testsuite/libffi.call/cls_longdouble_va.c
2169           testsuite/libffi.call/cls_pointer.c
2170           testsuite/libffi.call/cls_pointer_stack.c
2171           testsuite/libffi.call/err_bad_abi.c
2172           testsuite/libffi.call/err_bad_typedef.c
2173           testsuite/libffi.call/stret_large2.c
2174           testsuite/libffi.call/stret_large.c
2175           testsuite/libffi.call/stret_medium2.c
2176           testsuite/libffi.call/stret_medium.c: New tests from Apple.
2177
2178 2009-06-05  Andrew Haley  <aph@redhat.com>
2179
2180         * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2181         libffi.
2182
2183 2009-06-04  Andrew Haley  <aph@redhat.com>
2184
2185         * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2186         stdcall changes.
2187
2188 2008-02-26  Anthony Green  <green@redhat.com>
2189             Thomas Heller  <theller@ctypes.org>
2190
2191         * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2192         comment.
2193
2194 2008-02-03  Timothy Wall  <twall@users.sf.net>
2195
2196         * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2197           offset based on code pointer, not data pointer.
2198
2199 2008-01-31  Timothy Wall <twall@users.sf.net>
2200
2201         * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2202         closures.
2203         * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2204         closures.
2205         * src/x86/win32.S: Add assembly for stdcall closure.
2206         * src/x86/ffi.c: Initialize stdcall closure trampoline.
2207
2208 2009-06-04  Andrew Haley  <aph@redhat.com>
2209
2210         * include/ffi.h.in: Change void (*)() to void (*)(void).
2211         * src/x86/ffi.c: Likewise.
2212
2213 2009-06-04  Andrew Haley  <aph@redhat.com>
2214
2215         * src/powerpc/ppc_closure.S: Insert licence header.
2216         * src/powerpc/linux64_closure.S: Likewise.
2217         * src/m68k/sysv.S: Likewise.
2218
2219         * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2220         * src/powerpc/ffi.c: Likewise.
2221         * src/powerpc/ffi_darwin.c: Likewise.
2222         * src/m32r/ffi.c: Likewise.
2223         * src/sh64/ffi.c: Likewise.
2224         * src/x86/ffi64.c: Likewise.
2225         * src/alpha/ffi.c: Likewise.
2226         * src/alpha/osf.S: Likewise.
2227         * src/frv/ffi.c: Likewise.
2228         * src/s390/ffi.c: Likewise.
2229         * src/pa/ffi.c: Likewise.
2230         * src/pa/hpux32.S: Likewise.
2231         * src/ia64/unix.S: Likewise.
2232         * src/ia64/ffi.c: Likewise.
2233         * src/sparc/ffi.c: Likewise.
2234         * src/mips/ffi.c: Likewise.
2235         * src/sh/ffi.c: Likewise.
2236
2237 2008-02-15  David Daney  <ddaney@avtrex.com>
2238
2239         * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2240         Define (conditionally), and use it to include cachectl.h.
2241         (ffi_prep_closure_loc): Fix cache flushing.
2242         * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
2243
2244 2009-06-04  Andrew Haley  <aph@redhat.com>
2245
2246         include/ffi.h.in,
2247         src/arm/ffitarget.h,
2248         src/arm/ffi.c,
2249         src/arm/sysv.S,
2250         src/powerpc/ffitarget.h,
2251         src/closures.c,
2252         src/sh64/ffitarget.h,
2253         src/sh64/ffi.c,
2254         src/sh64/sysv.S,
2255         src/types.c,
2256         src/x86/ffi64.c,
2257         src/x86/ffitarget.h,
2258         src/x86/win32.S,
2259         src/x86/darwin.S,
2260         src/x86/ffi.c,
2261         src/x86/sysv.S,
2262         src/x86/unix64.S,
2263         src/alpha/ffitarget.h,
2264         src/alpha/ffi.c,
2265         src/alpha/osf.S,
2266         src/m68k/ffitarget.h,
2267         src/frv/ffitarget.h,
2268         src/frv/ffi.c,
2269         src/s390/ffitarget.h,
2270         src/s390/sysv.S,
2271         src/cris/ffitarget.h,
2272         src/pa/linux.S,
2273         src/pa/ffitarget.h,
2274         src/pa/ffi.c,
2275         src/raw_api.c,
2276         src/ia64/ffitarget.h,
2277         src/ia64/unix.S,
2278         src/ia64/ffi.c,
2279         src/ia64/ia64_flags.h,
2280         src/java_raw_api.c,
2281         src/debug.c,
2282         src/sparc/v9.S,
2283         src/sparc/ffitarget.h,
2284         src/sparc/ffi.c,
2285         src/sparc/v8.S,
2286         src/mips/ffitarget.h,
2287         src/mips/n32.S,
2288         src/mips/o32.S,
2289         src/mips/ffi.c,
2290         src/prep_cif.c,
2291         src/sh/ffitarget.h,
2292         src/sh/ffi.c,
2293         src/sh/sysv.S: Update license text.
2294
2295 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2296
2297         * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
2298         (.eh_frame):  Add FDE for it.
2299
2300 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2301
2302         * configure.ac:  Also check if assembler supports pc-relative
2303         relocs on X86_WIN32 targets.
2304         * configure:  Regenerate.
2305         * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
2306         (_ffi_call_SYSV):  Add missing function type symbol .def and
2307         add EH markup labels.
2308         (_ffi_call_STDCALL):  Likewise.
2309         (_ffi_closure_SYSV):  Likewise.
2310         (_ffi_closure_raw_SYSV):  Likewise.
2311         (.eh_frame):  Add hand-crafted EH data.
2312
2313 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2314
2315         * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2316         version 3 of the GNU General Public License and to point readers
2317         at the COPYING3 file and the FSF's license web page.
2318         * testsuite/libffi.call/call.exp: Likewise.
2319         * testsuite/libffi.special/special.exp: Likewise.
2320
2321 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2322
2323         * configure: Regenerate.
2324
2325 2008-12-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2326
2327         PR libffi/26048
2328         * configure.ac (HAVE_AS_X86_PCREL): New test.
2329         * configure: Regenerate.
2330         * fficonfig.h.in: Regenerate.
2331         * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2332         RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2333         RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2334         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2335         * src/x86/unix64.S (.Lstore_table): Move to .text section.
2336         (.Lload_table): Likewise.
2337         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2338
2339 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2340
2341         * configure: Regenerate.
2342
2343 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2344
2345         * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2346         signed/unsigned int8/16 return values.
2347         * src/sparc/v8.S (ffi_call_v8): Likewise.
2348         (ffi_closure_v8): Likewise.
2349
2350 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2351             Steve Ellcey  <sje@cup.hp.com>
2352
2353         * configure: Regenerate for new libtool.
2354         * Makefile.in: Ditto.
2355         * include/Makefile.in: Ditto.
2356         * aclocal.m4: Ditto.
2357
2358 2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
2359
2360         * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2361         FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2362         Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2363         Adjust copyright notice.
2364         * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2365         register or two register to use for FFI_SYSV structs.
2366         (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2367         (ffi_closure_helper_SYSV): Fix the return type for
2368         FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2369         Adjust copyright notice.
2370
2371 2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2372
2373         * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2374         int.
2375
2376 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2377
2378         * configure: Regenerate.
2379         * include/Makefile.in: Regenerate.
2380         * testsuite/Makefile.in: Regenerate.
2381
2382 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
2383
2384         * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2385         powerpc-*-beos*): Remove.
2386         * configure: Regenerate.
2387
2388 2008-05-09  Julian Brown  <julian@codesourcery.com>
2389
2390         * Makefile.am (LTLDFLAGS): New.
2391         (libffi_la_LDFLAGS): Use above.
2392         * Makefile.in: Regenerate.
2393
2394 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2395
2396         PR bootstrap/35457
2397         * aclocal.m4: Regenerate.
2398         * configure: Regenerate.
2399
2400 2008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2401
2402         * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2403         * src/sh64/sysv.S: Likewise.
2404
2405 2008-03-26  Daniel Jacobowitz  <dan@debian.org>
2406
2407         * src/arm/sysv.S: Fix ARM comment marker.
2408
2409 2008-03-26  Jakub Jelinek  <jakub@redhat.com>
2410
2411         * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2412         * src/s390/sysv.S: Likewise.
2413         * src/powerpc/ppc_closure.S: Likewise.
2414         * src/powerpc/sysv.S: Likewise.
2415         * src/x86/unix64.S: Likewise.
2416         * src/x86/sysv.S: Likewise.
2417         * src/sparc/v8.S: Likewise.
2418         * src/sparc/v9.S: Likewise.
2419         * src/m68k/sysv.S: Likewise.
2420         * src/arm/sysv.S: Likewise.
2421
2422 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2423
2424         * aclocal.m4: Regenerate.
2425         * configure: Likewise.
2426         * Makefile.in: Likewise.
2427         * include/Makefile.in: Likewise.
2428         * testsuite/Makefile.in: Likewise.
2429
2430 2008-02-12  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
2431             Andreas Tobler  <a.tobler@schweiz.org>
2432
2433         * configure.ac: Add amd64-*-freebsd* target.
2434         * configure: Regenerate.
2435
2436 2008-01-30  H.J. Lu  <hongjiu.lu@intel.com>
2437
2438         PR libffi/34612
2439         * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2440         returning struct.
2441
2442         * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2443         tests.
2444
2445 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2446
2447         * configure: Regenerate.
2448
2449 2008-01-06  Andreas Tobler  <a.tobler@schweiz.org>
2450
2451         * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2452
2453 2008-01-05  Andreas Tobler  <a.tobler@schweiz.org>
2454
2455         PR testsuite/32843
2456         * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2457         signed/unsigned int8/16 for X86_DARWIN.
2458         Updated copyright info.
2459         Handle one and two byte structs with special cif->flags.
2460         * src/x86/ffitarget.h: Add special types for one and two byte structs.
2461         Updated copyright info.
2462         * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2463         sysv.S
2464         Remove code to pop args from the stack after call.
2465         Special-case signed/unsigned for int8/16, one and two byte structs.
2466         (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2467         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2468         FFI_TYPE_SINT32.
2469         Updated copyright info.
2470
2471 2007-12-08  David Daney  <ddaney@avtrex.com>
2472
2473         * src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with
2474         SUBU, add with ADDU and use smaller code sequences.
2475
2476 2007-12-07  David Daney  <ddaney@avtrex.com>
2477
2478         * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2479         type.
2480
2481 2007-12-06  David Daney  <ddaney@avtrex.com>
2482
2483         * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2484         defined.
2485         (ffi_java_raw): New typedef.
2486         (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2487         ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2488         ffi_java_raw.
2489         (ffi_java_raw_closure) : Same.
2490         (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2491         parameter types.
2492         * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
2493         FFI_SIZEOF_JAVA_RAW.
2494         (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2495         Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2496         sizeof(ffi_java_raw) for alignment calculations.
2497         (ffi_java_ptrarray_to_raw): Same.
2498         (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
2499         if FFI_SIZEOF_JAVA_RAW == 4.
2500         (ffi_java_raw_to_rvalue): Same.
2501         (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2502         (ffi_java_translate_args): Same.
2503         (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2504         parameter types.
2505         * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2506
2507 2007-12-06  David Daney  <ddaney@avtrex.com>
2508
2509         * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
2510         pointer values.
2511
2512 2007-12-01  Andreas Tobler  <a.tobler@schweiz.org>
2513
2514         PR libffi/31937
2515         * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2516         Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2517         * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2518         set the NUM_FPR_ARG_REGISTERS according to.
2519         Add support for potential soft-float support under hard-float
2520         architecture.
2521         (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2522         FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2523         to the FFI_LINUX_SOFT_FLOAT ABI.
2524         (ffi_prep_cif_machdep): Likewise.
2525         (ffi_closure_helper_SYSV): Likewise.
2526         * src/powerpc/ppc_closure.S: Make sure not to store float/double
2527         on archs where __NO_FPRS__ is true.
2528         Add FFI_TYPE_UINT128 support.
2529         * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2530         Adjust copyright notice.
2531
2532 2007-11-25  Andreas Tobler  <a.tobler@schweiz.org>
2533
2534         * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2535         * include/ffi_common.h: ... here.
2536         Update copyright.
2537
2538 2007-11-17  Andreas Tobler  <a.tobler@schweiz.org>
2539
2540         * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2541         * src/powerpc/linux64.S: Likewise.
2542         * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2543         * testsuite/libffi.call/return_ldl.c: New test.
2544
2545 2007-09-04    <aph@redhat.com>
2546
2547         * src/arm/sysv.S (UNWIND): New.
2548         (Whole file): Conditionally compile unwinder directives.
2549         * src/arm/sysv.S: Add unwinder directives.
2550
2551         * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2552         Only treat r0 as a struct address if we're actually returning a
2553         struct by address.
2554         Only copy the bytes that are actually within a struct.
2555         (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2556         is returned in r0, not passed by address.
2557         (ffi_call): Allocate a word-sized temporary for the case where
2558         a composite is returned in r0.
2559         (ffi_prep_incoming_args_SYSV): Align as necessary.
2560
2561 2007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>
2562
2563         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
2564         directly using the sys_cacheflush syscall.
2565
2566 2007-07-27  Andrew Haley  <aph@redhat.com>
2567
2568         * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2569
2570 2007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>
2571
2572         * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2573         * configure.ac: Likewise.
2574         * Makefile.in: Regenerate.
2575         * include/Makefile.in: Likewise.
2576         * testsuite/Makefile.in: Likewise.
2577         * configure: Likewise.
2578
2579 2007-08-24  David Daney  <ddaney@avtrex.com>
2580
2581         * testsuite/libffi.call/return_sl.c: New test.
2582
2583 2007-08-10  David Daney  <ddaney@avtrex.com>
2584
2585         * testsuite/libffi.call/cls_multi_ushort.c,
2586         testsuite/libffi.call/cls_align_uint16.c,
2587         testsuite/libffi.call/nested_struct1.c,
2588         testsuite/libffi.call/nested_struct3.c,
2589         testsuite/libffi.call/cls_7_1_byte.c,
2590         testsuite/libffi.call/nested_struct5.c,
2591         testsuite/libffi.call/cls_double.c,
2592         testsuite/libffi.call/nested_struct7.c,
2593         testsuite/libffi.call/cls_sint.c,
2594         testsuite/libffi.call/nested_struct9.c,
2595         testsuite/libffi.call/cls_20byte1.c,
2596         testsuite/libffi.call/cls_multi_sshortchar.c,
2597         testsuite/libffi.call/cls_align_sint64.c,
2598         testsuite/libffi.call/cls_3byte2.c,
2599         testsuite/libffi.call/cls_multi_schar.c,
2600         testsuite/libffi.call/cls_multi_uchar.c,
2601         testsuite/libffi.call/cls_19byte.c,
2602         testsuite/libffi.call/cls_9byte1.c,
2603         testsuite/libffi.call/cls_align_float.c,
2604         testsuite/libffi.call/closure_fn1.c,
2605         testsuite/libffi.call/problem1.c,
2606         testsuite/libffi.call/closure_fn3.c,
2607         testsuite/libffi.call/cls_sshort.c,
2608         testsuite/libffi.call/closure_fn5.c,
2609         testsuite/libffi.call/cls_align_double.c,
2610         testsuite/libffi.call/nested_struct.c,
2611         testsuite/libffi.call/cls_2byte.c,
2612         testsuite/libffi.call/nested_struct10.c,
2613         testsuite/libffi.call/cls_4byte.c,
2614         testsuite/libffi.call/cls_6byte.c,
2615         testsuite/libffi.call/cls_8byte.c,
2616         testsuite/libffi.call/cls_multi_sshort.c,
2617         testsuite/libffi.call/cls_align_sint16.c,
2618         testsuite/libffi.call/cls_align_uint32.c,
2619         testsuite/libffi.call/cls_20byte.c,
2620         testsuite/libffi.call/cls_float.c,
2621         testsuite/libffi.call/nested_struct2.c,
2622         testsuite/libffi.call/cls_5_1_byte.c,
2623         testsuite/libffi.call/nested_struct4.c,
2624         testsuite/libffi.call/cls_24byte.c,
2625         testsuite/libffi.call/nested_struct6.c,
2626         testsuite/libffi.call/cls_64byte.c,
2627         testsuite/libffi.call/nested_struct8.c,
2628         testsuite/libffi.call/cls_uint.c,
2629         testsuite/libffi.call/cls_multi_ushortchar.c,
2630         testsuite/libffi.call/cls_schar.c,
2631         testsuite/libffi.call/cls_uchar.c,
2632         testsuite/libffi.call/cls_align_uint64.c,
2633         testsuite/libffi.call/cls_ulonglong.c,
2634         testsuite/libffi.call/cls_align_longdouble.c,
2635         testsuite/libffi.call/cls_1_1byte.c,
2636         testsuite/libffi.call/cls_12byte.c,
2637         testsuite/libffi.call/cls_3_1byte.c,
2638         testsuite/libffi.call/cls_3byte1.c,
2639         testsuite/libffi.call/cls_4_1byte.c,
2640         testsuite/libffi.call/cls_6_1_byte.c,
2641         testsuite/libffi.call/cls_16byte.c,
2642         testsuite/libffi.call/cls_18byte.c,
2643         testsuite/libffi.call/closure_fn0.c,
2644         testsuite/libffi.call/cls_9byte2.c,
2645         testsuite/libffi.call/closure_fn2.c,
2646         testsuite/libffi.call/closure_fn4.c,
2647         testsuite/libffi.call/cls_ushort.c,
2648         testsuite/libffi.call/closure_fn6.c,
2649         testsuite/libffi.call/cls_5byte.c,
2650         testsuite/libffi.call/cls_align_pointer.c,
2651         testsuite/libffi.call/cls_7byte.c,
2652         testsuite/libffi.call/cls_align_sint32.c,
2653         testsuite/libffi.special/unwindtest_ffi_call.cc,
2654         testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2655
2656 2007-08-10  David Daney  <ddaney@avtrex.com>
2657
2658         PR libffi/28313
2659         * configure.ac: Don't treat mips64 as a special case.
2660         * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2661         * configure: Regenerate
2662         * Makefile.in: Ditto.
2663         * fficonfig.h.in: Ditto.
2664         * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2665         (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2666         (FFI_DEFAULT_ABI): Set for n64 case.
2667         (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2668         * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2669         (ffi_closure_N32): New function.
2670         (.eh_frame): New section
2671         * src/mips/o32.S: Clean up comments.
2672         (ffi_closure_O32): Pass ffi_closure parameter in $12.
2673         * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2674         _MIPS_SIM == _ABIN32 throughout.
2675         (FFI_MIPS_STOP_HERE): New, use in place of
2676         ffi_stop_here.
2677         (ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
2678         to support n32/n64 ABIs.
2679         (calc_n32_struct_flags): Rewrite.
2680         (calc_n32_return_struct_flags): Remove unused variable.  Reverse
2681         position of flag bits.
2682         (ffi_prep_cif_machdep): Rewrite n32 portion.
2683         (ffi_call): Enable for n64.  Add special handling for small structure
2684         return values.
2685         (ffi_prep_closure_loc): Add n32 and n64 support.
2686         (ffi_closure_mips_inner_O32): Add cast to silence warning.
2687         (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2688
2689 2007-08-08  David Daney  <ddaney@avtrex.com>
2690
2691         * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2692         * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2693         specifiers.
2694         * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2695         * testsuite/libffi.call/cls_sint.c (main): Ditto.
2696         * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2697         * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2698         * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2699         * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2700         * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2701         * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2702         * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2703         * testsuite/libffi.call/return_fl3.c (main): Ditto.
2704         * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2705         * testsuite/libffi.call/nested_struct.c (main): Ditto.
2706         * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2707         * testsuite/libffi.call/return_ll1.c (main): Ditto.
2708         * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2709         * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2710         * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2711         * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2712         * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2713         * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2714         * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2715         * testsuite/libffi.call/cls_uint.c (main): Ditto.
2716         * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2717         * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2718         * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2719         * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2720         * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2721         * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2722         * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2723         * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2724         * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2725
2726 2007-08-07  Andrew Haley  <aph@redhat.com>
2727
2728         * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2729         checkin.
2730
2731 2007-08-06  Andrew Haley  <aph@redhat.com>
2732
2733         PR testsuite/32843
2734         * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2735         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2736         FFI_TYPE_SINT32.
2737
2738 2007-08-02  David Daney  <ddaney@avtrex.com>
2739
2740         * testsuite/libffi.call/return_ul.c (main): Define return type as
2741         ffi_arg.  Use proper printf conversion specifier.
2742
2743 2007-07-30  Andrew Haley  <aph@redhat.com>
2744
2745         PR testsuite/32843
2746         * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2747         signed/unsigned int8/16.
2748         * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2749         Use a jump table.
2750         Remove code to pop args from the stack after call.
2751         Special-case signed/unsigned int8/16.
2752         * testsuite/libffi.call/return_sc.c (main): Revert.
2753
2754 2007-07-26  Richard Guenther  <rguenther@suse.de>
2755
2756         PR testsuite/32843
2757         * testsuite/libffi.call/return_sc.c (main): Verify call
2758         result as signed char, not ffi_arg.
2759
2760 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2761
2762         * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2763         * configure: Regenerate.
2764
2765 2007-07-11  David Daney  <ddaney@avtrex.com>
2766
2767         * src/mips/ffi.c: Don't include sys/cachectl.h.
2768         (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2769         cacheflush().
2770
2771 2007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
2772
2773         * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2774         from (ffi_prep_closure): ... this.
2775         (FFI_INIT_TRAMPOLINE): Adjust.
2776
2777 2005-12-31  Phil Blundell  <pb@reciva.com>
2778
2779         * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2780         ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
2781         * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2782         * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2783         (FFI_CLOSURES): Enable closure support.
2784
2785 2007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
2786
2787         * testsuite/libffi.call/cls_multi_ushort.c,
2788         testsuite/libffi.call/cls_align_uint16.c,
2789         testsuite/libffi.call/nested_struct1.c,
2790         testsuite/libffi.call/nested_struct3.c,
2791         testsuite/libffi.call/cls_7_1_byte.c,
2792         testsuite/libffi.call/cls_double.c,
2793         testsuite/libffi.call/nested_struct5.c,
2794         testsuite/libffi.call/nested_struct7.c,
2795         testsuite/libffi.call/cls_sint.c,
2796         testsuite/libffi.call/nested_struct9.c,
2797         testsuite/libffi.call/cls_20byte1.c,
2798         testsuite/libffi.call/cls_multi_sshortchar.c,
2799         testsuite/libffi.call/cls_align_sint64.c,
2800         testsuite/libffi.call/cls_3byte2.c,
2801         testsuite/libffi.call/cls_multi_schar.c,
2802         testsuite/libffi.call/cls_multi_uchar.c,
2803         testsuite/libffi.call/cls_19byte.c,
2804         testsuite/libffi.call/cls_9byte1.c,
2805         testsuite/libffi.call/cls_align_float.c,
2806         testsuite/libffi.call/closure_fn1.c,
2807         testsuite/libffi.call/problem1.c,
2808         testsuite/libffi.call/closure_fn3.c,
2809         testsuite/libffi.call/cls_sshort.c,
2810         testsuite/libffi.call/closure_fn5.c,
2811         testsuite/libffi.call/cls_align_double.c,
2812         testsuite/libffi.call/cls_2byte.c,
2813         testsuite/libffi.call/nested_struct.c,
2814         testsuite/libffi.call/nested_struct10.c,
2815         testsuite/libffi.call/cls_4byte.c,
2816         testsuite/libffi.call/cls_6byte.c,
2817         testsuite/libffi.call/cls_8byte.c,
2818         testsuite/libffi.call/cls_multi_sshort.c,
2819         testsuite/libffi.call/cls_align_uint32.c,
2820         testsuite/libffi.call/cls_align_sint16.c,
2821         testsuite/libffi.call/cls_float.c,
2822         testsuite/libffi.call/cls_20byte.c,
2823         testsuite/libffi.call/cls_5_1_byte.c,
2824         testsuite/libffi.call/nested_struct2.c,
2825         testsuite/libffi.call/cls_24byte.c,
2826         testsuite/libffi.call/nested_struct4.c,
2827         testsuite/libffi.call/nested_struct6.c,
2828         testsuite/libffi.call/cls_64byte.c,
2829         testsuite/libffi.call/nested_struct8.c,
2830         testsuite/libffi.call/cls_uint.c,
2831         testsuite/libffi.call/cls_multi_ushortchar.c,
2832         testsuite/libffi.call/cls_schar.c,
2833         testsuite/libffi.call/cls_uchar.c,
2834         testsuite/libffi.call/cls_align_uint64.c,
2835         testsuite/libffi.call/cls_ulonglong.c,
2836         testsuite/libffi.call/cls_align_longdouble.c,
2837         testsuite/libffi.call/cls_1_1byte.c,
2838         testsuite/libffi.call/cls_12byte.c,
2839         testsuite/libffi.call/cls_3_1byte.c,
2840         testsuite/libffi.call/cls_3byte1.c,
2841         testsuite/libffi.call/cls_4_1byte.c,
2842         testsuite/libffi.call/cls_6_1_byte.c,
2843         testsuite/libffi.call/cls_16byte.c,
2844         testsuite/libffi.call/cls_18byte.c,
2845         testsuite/libffi.call/closure_fn0.c,
2846         testsuite/libffi.call/cls_9byte2.c,
2847         testsuite/libffi.call/closure_fn2.c,
2848         testsuite/libffi.call/closure_fn4.c,
2849         testsuite/libffi.call/cls_ushort.c,
2850         testsuite/libffi.call/closure_fn6.c,
2851         testsuite/libffi.call/cls_5byte.c,
2852         testsuite/libffi.call/cls_align_pointer.c,
2853         testsuite/libffi.call/cls_7byte.c,
2854         testsuite/libffi.call/cls_align_sint32.c,
2855         testsuite/libffi.special/unwindtest_ffi_call.cc,
2856         testsuite/libffi.special/unwindtest.cc: Enable for ARM.
2857
2858 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2859
2860         * aclocal.m4: Regenerated.
2861
2862 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2863
2864         * configure: Regenerate.
2865
2866 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2867
2868         * Makefile.in: Regenerate.
2869         * configure: Regenerate.
2870         * aclocal.m4: Regenerate.
2871         * include/Makefile.in: Regenerate.
2872         * testsuite/Makefile.in: Regenerate.
2873
2874 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
2875
2876         * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2877         ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2878         * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2879         * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2880         (FFI_CLOSURES): Enable closure support.
2881
2882 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
2883
2884         * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2885         * configure: Regenerate.
2886         * fficonfig.h.in: Regenerate.
2887         * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2888         CFI_OFFSET,CFI_DEF_CFA): New macros.
2889         (ffi_call_SYSV): Add callframe annotation.
2890
2891 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
2892
2893         * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2894         numerous test suite failures.
2895         * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2896
2897 2007-04-11  Paolo Bonzini  <bonzini@gnu.org>
2898
2899         * Makefile.am (EXTRA_DIST): Bring up to date.
2900         * Makefile.in: Regenerate.
2901         * src/frv/eabi.S: Remove RCS keyword.
2902
2903 2007-04-06  Richard Henderson  <rth@redhat.com>
2904
2905         * configure.ac: Tidy target case.
2906         (HAVE_LONG_DOUBLE): Allow the target to override.
2907         * configure: Regenerate.
2908         * include/ffi.h.in: Don't define ffi_type_foo if
2909         LIBFFI_HIDE_BASIC_TYPES is defined.
2910         (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2911         to ffi_type_double.
2912         * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2913         (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2914         (ffi_type_longdouble): Special case for Alpha.  Don't define
2915         if long double == double.
2916
2917         * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2918         (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2919         (ffi_call, ffi_closure_osf_inner): Likewise.
2920         (ffi_closure_osf_inner): Likewise.  Mark hidden.
2921         (ffi_call_osf, ffi_closure_osf): Mark hidden.
2922         * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2923         * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2924         (load_table): Handle 128-bit long double.
2925
2926         * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2927
2928 2007-04-06  Tom Tromey  <tromey@redhat.com>
2929
2930         PR libffi/31491:
2931         * README: Fixed bug in example.
2932
2933 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
2934
2935         * src/closures.c: Include sys/statfs.h.
2936         (_GNU_SOURCE): Define on Linux.
2937         (FFI_MMAP_EXEC_SELINUX): Define.
2938         (selinux_enabled): New variable.
2939         (selinux_enabled_check): New function.
2940         (is_selinux_enabled): Define.
2941         (dlmmap): Use it.
2942
2943 2007-03-24  Uros Bizjak  <ubizjak@gmail.com>
2944
2945         * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2946         Use 'volatile float sum' to create sum of floats to avoid false
2947         negative due to excess precision on ix86 targets.
2948         (main): Ditto.
2949
2950 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
2951
2952         * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2953         patch.
2954         (ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
2955
2956 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
2957
2958         * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2959         (ffi_prep_closure_loc): New.
2960         (ffi_prep_raw_closure_loc): New.
2961         (ffi_prep_java_raw_closure_loc): New.
2962         * src/closures.c: New file.
2963         * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2964         Replace sflags with exec_offset.
2965         [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2966         sub_segment_exec_offset): New macros.
2967         (get_segment_flags, set_segment_flags, check_segment_merge): New
2968         macros.
2969         (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2970         (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2971         destroy_mspace): Use new macros.
2972         (sys_alloc): Silence warning.
2973         * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2974         * Makefile.in: Rebuilt.
2975         * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2976         terms of ffi_prep_closure_loc.
2977         * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2978         from...
2979         (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
2980         renamed version.
2981         * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2982         adjusted from...
2983         (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
2984         the renamed version.
2985         * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2986         (ffi_prep_closure): ... this.
2987         * src/pa/ffi.c: Likewise.
2988         * src/cris/ffi.c: Likewise.  Adjust.
2989         * src/frv/ffi.c: Likewise.
2990         * src/ia64/ffi.c: Likewise.
2991         * src/mips/ffi.c: Likewise.
2992         * src/powerpc/ffi_darwin.c: Likewise.
2993         * src/s390/ffi.c: Likewise.
2994         * src/sh/ffi.c: Likewise.
2995         * src/sh64/ffi.c: Likewise.
2996         * src/sparc/ffi.c: Likewise.
2997         * src/x86/ffi64.c: Likewise.
2998         * src/x86/ffi.c: Likewise.
2999         (FFI_INIT_TRAMPOLINE): Adjust.
3000         (ffi_prep_raw_closure_loc): Renamed and adjusted from...
3001         (ffi_prep_raw_closure): ... this.
3002         * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
3003         (ffi_prep_closure): ... this.
3004         (flush_icache): Adjust.
3005
3006 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
3007
3008         * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
3009         Lea's malloc.
3010
3011 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3012
3013         * Makefile.am: Add dummy install-pdf target.
3014         * Makefile.in: Regenerate
3015
3016 2007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3017
3018         * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
3019         ffi_closure_helper_SYSV): Add long double handling.
3020
3021 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
3022
3023         * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
3024         immediately after bctrl instruction.
3025
3026 2007-01-18  Alexandre Oliva  <aoliva@redhat.com>
3027
3028         * Makefile.am (all-recursive, install-recursive,
3029         mostlyclean-recursive, clean-recursive, distclean-recursive,
3030         maintainer-clean-recursive): Add missing targets.
3031         * Makefile.in: Rebuilt.
3032
3033 2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
3034
3035         * configure.ac: Add TARGET for x86_64-*-darwin*.
3036         * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
3037         for X86_DARWIN.
3038         * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
3039         * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
3040         * configure: Regenerate.
3041         * Makefile.in: Regenerate.
3042         * include/Makefile.in: Regenerate.
3043         * testsuite/Makefile.in: Regenerate.
3044         * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
3045         ffi_call only.
3046
3047 2006-12-13  Andreas Tobler <a.tobler@schweiz.org>
3048
3049         * aclocal.m4: Regenerate with aclocal -I .. as written in the
3050         Makefile.am.
3051
3052 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
3053
3054         * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3055         (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3056         Darwin.
3057         * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3058         * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3059
3060 2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
3061             Sandro Tolaini  <tolaini@libero.it>
3062
3063         * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
3064         conditional.
3065         * configure: Regenerated.
3066         * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3067         (EXTRA_DIST): Add src/x86/darwin.S.
3068         * Makefile.in: Regenerated.
3069         * include/Makefile.in: Regenerated.
3070         * testsuite/Makefile.in: Regenerated.
3071
3072         * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3073         X86_WIN32, and additionally align stack to 16 bytes.
3074         * src/x86/darwin.S: New, based on sysv.S.
3075         * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3076
3077 2006-09-12  David Daney  <ddaney@avtrex.com>
3078
3079         PR libffi/23935
3080         * include/Makefile.am: Install both ffi.h and ffitarget.h in
3081         $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3082         * aclocal.m4: Regenerated for automake 1.9.6.
3083         * Makefile.in: Regenerated.
3084         * include/Makefile.in: Regenerated.
3085         * testsuite/Makefile.in: Regenerated.
3086
3087 2006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
3088
3089         * include/ffi_common.h (struct): Revert accidental commit.
3090
3091 2006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
3092
3093         * include/ffi_common.h: Remove lint directives.
3094         * include/ffi.h.in: Likewise.
3095
3096 2006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
3097
3098         * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3099         for 32-bit architectures.
3100         * testsuite/libffi.call/return_ul.c: New test case.
3101
3102 2006-07-19  David Daney  <ddaney@avtrex.com>
3103
3104         * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3105         xfail remains for mips64.
3106
3107 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
3108
3109         * Makefile.am: Add install-html target. Add install-html to .PHONY
3110         * Makefile.in: Regenerate.
3111         * aclocal.m4: Regenerate.
3112         * include/Makefile.in: Regenerate.
3113         * testsuite/Makefile.in: Regenerate.
3114
3115 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3116
3117         * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3118         stack slot.
3119
3120 2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
3121
3122         * README: Remove notice about 'Crazy Comments'.
3123         * src/debug.c: Remove lint directives. Cleanup white spaces.
3124         * src/java_raw_api.c: Likewise.
3125         * src/prep_cif.c: Likewise.
3126         * src/raw_api.c: Likewise.
3127         * src/ffitest.c: Delete. No longer needed, all test cases migrated
3128         to the testsuite.
3129         * src/arm/ffi.c: Remove lint directives.
3130         * src/m32r/ffi.c: Likewise.
3131         * src/pa/ffi.c: Likewise.
3132         * src/powerpc/ffi.c: Likewise.
3133         * src/powerpc/ffi_darwin.c: Likewise.
3134         * src/sh/ffi.c: Likewise.
3135         * src/sh64/ffi.c: Likewise.
3136         * src/x86/ffi.c: Likewise.
3137         * testsuite/libffi.call/float2.c: Likewise.
3138         * testsuite/libffi.call/promotion.c: Likewise.
3139         * testsuite/libffi.call/struct1.c: Likewise.
3140
3141 2006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
3142
3143         * src/pa/hpux32.S: Correct unwind offset calculation for
3144         ffi_closure_pa32.
3145         * src/pa/linux.S: Likewise.
3146
3147 2006-04-12  James E Wilson  <wilson@specifix.com>
3148
3149         PR libgcj/26483
3150         * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3151         (hfa_type_load): Call stf_spill.
3152         (hfa_type_store): Call ldf_fill.
3153         (ffi_call): Adjust calls to above routines.  Add local temps for
3154         macro result.
3155
3156 2006-04-10  Matthias Klose  <doko@debian.org>
3157
3158         * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3159         directory names containing underscores.
3160
3161 2006-04-07  James E Wilson  <wilson@specifix.com>
3162
3163         * testsuite/libffi.call/float4.c: New testcase.
3164
3165 2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3166             Andreas Tobler  <a.tobler@schweiz.ch>
3167
3168         * Makefile.am: Add PA_HPUX port.
3169         * Makefile.in: Regenerate.
3170         * include/Makefile.in: Likewise.
3171         * testsuite/Makefile.in: Likewise.
3172         * configure.ac: Add PA_HPUX rules.
3173         * configure: Regenerate.
3174         * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3175         Add PA_HPUX and PA64_HPUX.
3176         Rename FFI_LINUX ABI to FFI_PA32 ABI.
3177         (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3178         (FFI_TYPE_SMALL_STRUCT2): Define.
3179         (FFI_TYPE_SMALL_STRUCT4): Likewise.
3180         (FFI_TYPE_SMALL_STRUCT8): Likewise.
3181         (FFI_TYPE_SMALL_STRUCT3): Redefine.
3182         (FFI_TYPE_SMALL_STRUCT5): Likewise.
3183         (FFI_TYPE_SMALL_STRUCT6): Likewise.
3184         (FFI_TYPE_SMALL_STRUCT7): Likewise.
3185         * src/pa/ffi.c (ROUND_DOWN): Delete.
3186         (fldw, fstw, fldd, fstd): Use '__asm__'.
3187         (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3188         FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3189         (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3190         Simplify incrementing of stack slot variable. Change type of local
3191         'n' to unsigned int.
3192         (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3193         double on PA_HPUX.
3194         (ffi_prep_cif_machdep): Likewise.
3195         (ffi_call): Likewise.
3196         (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3197         return type to ffi_status. Simplify incrementing of stack slot
3198         variable. Only copy floating point argument registers when PA_LINUX
3199         is true. Reformat debug statement.
3200         Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3201         FFI_TYPE_SMALL_STRUCT8.
3202         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3203         declaration.
3204         (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3205         Add nops to cache flush.  Add trampoline for PA_HPUX.
3206         * src/pa/hpux32.S: New file.
3207         * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3208         ffi_prep_args_LINUX to ffi_prep_args_pa32.
3209         Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3210         unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3211         argument type checks so that common argument types appear first.
3212         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3213         ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3214
3215 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
3216
3217         * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
3218         for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
3219         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3220         FFI_TYPE_LONGDOUBLE.
3221         (ffi_prep_args64): Assert using IBM extended double.
3222         (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3223         Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3224         (ffi_call): Handle FFI_LINUX.
3225         (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3226         gpr3 return pointer as for struct return.  Handle FFI_LINUX
3227         FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
3228         unnecessarily.
3229         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3230         for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
3231         Don't use r6 as pointer to results, instead use sp offset.  Don't
3232         make a special call to load lr with case table address, instead
3233         use offset from previous call.
3234         * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3235         * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3236         return.
3237
3238 2006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3239
3240         * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3241         passed with FP registers correctly.
3242         (ffi_closure_helper_SYSV): Likewise.
3243         * src/sh64/sysv.S: Likewise.
3244
3245 2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
3246
3247         * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3248         args and userdata unused.
3249         (closure_test_fn1): Mark cif and userdata unused.
3250         (main): Remove unused res.
3251
3252 2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
3253
3254         * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3255         -O2, -O3, -Os and the warning flags -W -Wall.
3256         * testsuite/libffi.special/special.exp: Likewise.
3257         * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3258         unused parameter unused for gcc or else do nothing.
3259         * testsuite/libffi.special/ffitestcxx.h: Likewise.
3260         * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3261         and userdata unused.
3262         * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3263         * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3264         * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3265         * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3266         * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3267         * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3268         * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3269         * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3270         * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3271         * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3272         * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3273         * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3274         * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3275         * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3276         * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3277         * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3278         * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3279         * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3280         * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3281         * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3282         * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3283         * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3284         * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3285         * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3286         Likewise.
3287         * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3288         Likewise.
3289         * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3290         Likewise.
3291         * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3292         void* to avoid compiler warning.
3293         (main): Likewise.
3294         (cls_struct_align_gn): Mark cif and userdata unused.
3295         * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3296         Likewise.
3297         * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3298         Likewise.
3299         * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3300         Likewise.
3301         * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3302         Likewise.
3303         * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3304         Likewise.
3305         * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3306         * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3307         * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3308         data unused.
3309         (main): Cast res_call to silence gcc.
3310         * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3311         data unused.
3312         (main): Cast res_call to silence gcc.
3313         * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3314         and data unused.
3315         (main): Cast res_call to silence gcc.
3316         * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3317         data unused.
3318         (main): Cast res_call to silence gcc.
3319         * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3320         data unused.
3321         (main): Cast res_call to silence gcc.
3322         * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3323         and data unused.
3324         (main): Cast res_call to silence gcc.
3325         * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3326         userdata unused.
3327         (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3328         * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3329         userdata unused.
3330         (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3331         * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3332         userdata unused.
3333         (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3334         * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
3335         userdata unused.
3336         (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3337         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3338         userdata unused.
3339         (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3340         * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3341         and userdata unused.
3342         * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3343         userdata unused.
3344         (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3345         * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3346         * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3347         Cleanup white spaces.
3348         * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3349         * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3350         cif and userdata unused.
3351         * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3352         Likewise.
3353         * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3354         * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3355         formatters to silence gcc.
3356         (B_gn): Mark cif and userdata unused.
3357         * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3358         unused.
3359         * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3360         (B_gn): Mark cif and userdata unused.
3361         * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3362         unused.
3363         * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3364         (B_gn): Mark cif and userdata unused.
3365         * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3366         unused.
3367         * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3368         * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3369         * testsuite/libffi.call/problem1.c (stub): Likewise.
3370         * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3371         gcc.
3372         * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3373         in the last commit for this test case in the test case itself.
3374         * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3375         unused.
3376         * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3377         * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3378         * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3379         * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3380         * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3381         * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3382
3383 2006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3384
3385         * src/sh/sysv.S: Fix register numbers in the FDE for
3386         ffi_closure_SYSV.
3387
3388 2006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
3389
3390         * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3391         declaration to avoid a false negative on ix86. See PR323.
3392
3393 2006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3394
3395         * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3396         and cast integer to void * if needed.  Update the pointer to
3397         the FP register saved area correctly.
3398
3399 2006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
3400
3401         * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3402         is fixed.
3403         * testsuite/libffi.call/nested_struct4.c: Likewise.
3404
3405 2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
3406
3407         * testsuite/libffi.call/return_dbl.c: New test case.
3408         * testsuite/libffi.call/return_dbl1.c: Likewise.
3409         * testsuite/libffi.call/return_dbl2.c: Likewise.
3410         * testsuite/libffi.call/return_fl.c: Likewise.
3411         * testsuite/libffi.call/return_fl1.c: Likewise.
3412         * testsuite/libffi.call/return_fl2.c: Likewise.
3413         * testsuite/libffi.call/return_fl3.c: Likewise.
3414         * testsuite/libffi.call/closure_fn6.c: Likewise.
3415
3416         * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3417         definition.
3418         * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3419         here to be used by other test cases too.
3420
3421         * testsuite/libffi.call/nested_struct10.c: New test case.
3422         * testsuite/libffi.call/nested_struct9.c: Likewise.
3423         * testsuite/libffi.call/nested_struct8.c: Likewise.
3424         * testsuite/libffi.call/nested_struct7.c: Likewise.
3425         * testsuite/libffi.call/nested_struct6.c: Likewise.
3426         * testsuite/libffi.call/nested_struct5.c: Likewise.
3427         * testsuite/libffi.call/nested_struct4.c: Likewise.
3428
3429 2006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
3430
3431         * configure.ac: Enable libffi for sparc64-*-freebsd*.
3432         * configure: Rebuilt.
3433
3434 2006-01-18  Jakub Jelinek  <jakub@redhat.com>
3435
3436         * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3437         instead do the shifting inline.
3438         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3439         shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
3440         and 8 byte structs, for the remaining struct sizes don't call
3441         __lshrdi3, instead do the shifting inline.
3442
3443 2005-12-07  Thiemo Seufer  <ths@networkno.de>
3444
3445         * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3446         missing parentheses.
3447         * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3448         and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3449         (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3450         A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3451         V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3452         FA_0_0_OFF2.
3453         * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3454         endianness bugs.
3455         (ffi_prep_closure): Improve trampoline instruction scheduling.
3456         (ffi_closure_mips_inner_O32): Fix endianness bugs.
3457
3458 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
3459
3460         * src/powerpc/ffi.c: Formatting.
3461         (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3462         (ffi_prep_args64): Likewise.
3463
3464 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
3465
3466         * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3467         darwin, use -shared-libgcc not -lgcc_s, and explain why.
3468
3469 2005-09-26  Tom Tromey  <tromey@redhat.com>
3470
3471         * testsuite/libffi.call/float1.c (value_type): New typedef.
3472         (CANARY): New define.
3473         (main): Check for result buffer overflow.
3474         * src/powerpc/linux64.S: Handle linux64 long double returns.
3475         * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3476         (ffi_prep_cif_machdep): Handle linux64 long double returns.
3477
3478 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
3479
3480         PR target/23404
3481         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3482         homed fp args.
3483         (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3484
3485 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
3486
3487         * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3488         (AH_BOTTOM): Add FFI_HIDDEN definition.
3489         * configure: Rebuilt.
3490         * fficonfig.h.in: Rebuilt.
3491         * src/powerpc/ffi.c (hidden): Remove.
3492         (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3493         ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3494         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3495         .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3496         * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3497         add FFI_HIDDEN to its prototype.
3498         (ffi_closure_SYSV_inner): New.
3499         * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3500         * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3501
3502 2005-08-10  Alfred M. Szmidt  <ams@gnu.org>
3503
3504         PR libffi/21819:
3505         * configure: Rebuilt.
3506         * configure.ac: Handle i*86-*-gnu*.
3507
3508 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
3509
3510         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3511         DW_CFA_offset_extended_sf rather than
3512         DW_CFA_GNU_negative_offset_extended.
3513         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3514
3515 2005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
3516
3517         * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3518         on sh3.
3519         (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3520         * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3521         partially on register.
3522         (ffi_closure_helper_SYSV): Likewise.
3523         (ffi_prep_cif_machdep): Don't set too many cif->flags.
3524
3525 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3526
3527         * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3528         Remove empty line.
3529         * src/sh64/ffi.c (simple_type): Remove.
3530         (return_type): Handle small structures correctly.
3531         (ffi_prep_args): Likewise.
3532         (ffi_call): Likewise.
3533         (ffi_closure_helper_SYSV): Likewise.
3534         * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3535         Emit position independent code if PIC and remove wrong datalabel
3536         prefixes from EH data.
3537
3538 2005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
3539
3540         * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3541         * Makefile.in: Regenerate.
3542         * include/Makefile.in: Likewise.
3543         * testsuite/Makefile.in: Likewise.
3544         * configure.ac: Add POWERPC_FREEBSD rules.
3545         * configure: Regenerate.
3546         * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3547         (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3548         * src/powerpc/ffi.c: Add flags to handle small structure returns
3549         in ffi_call_SYSV.
3550         (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3551         Aka FFI_SYSV.
3552         (ffi_closure_helper_SYSV): Likewise.
3553         * src/powerpc/ppc_closure.S: Add return types for small structures.
3554         * src/powerpc/sysv.S: Add bits to handle small structures for
3555         final SYSV 4 ABI.
3556
3557 2005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
3558
3559         * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3560         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3561         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3562
3563 2005-07-05  Randolph Chung  <tausq@debian.org>
3564
3565         * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3566         as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
3567         structures.  Kill compilation warnings.
3568         (ffi_closure_inner_LINUX): Print return values as hex in debug
3569         message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3570         Properly handle 5-7 byte structure returns.
3571         * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3572         (FFI_TYPE_SMALL_STRUCT2): Remove.
3573         (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3574         (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3575         * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3576         (checksmst1, checksmst2): Remove.
3577         (checksmst3): Optimize handling of 3-byte struct returns.
3578         (checksmst567): Properly handle 5-7 byte struct returns.
3579
3580 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3581
3582         PR libgcj/21943
3583         * src/mips/n32.S: Enforce PIC code.
3584         * src/mips/o32.S: Likewise.
3585
3586 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3587
3588         * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3589         * configure: Regenerate.
3590
3591 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
3592
3593         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3594         to call ffi_closure_helper_SYSV.  Append @local instead.
3595         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3596
3597 2005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
3598
3599         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3600         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3601         * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3602         * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3603         include/Makefile.in, testsuite/Makefile.in: Regenerate.
3604
3605 2005-05-09  Mike Stump  <mrs@apple.com>
3606
3607         * configure: Regenerate.
3608
3609 2005-05-08  Richard Henderson  <rth@redhat.com>
3610
3611         PR libffi/21285
3612         * src/alpha/osf.S: Update unwind into to match code.
3613
3614 2005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
3615             Richard Henderson  <rth@redhat.com>
3616
3617         * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3618         bit 11 of flags.
3619         (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
3620         (ffi_prep_closure): Set carry bit if sse-used flag set.
3621         * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3622         Only load sse registers if ssecount non-zero.
3623         (ffi_closure_unix64): Only save sse registers if carry set on entry.
3624
3625 2005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
3626
3627         * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3628         powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3629         * configure: Regenerate.
3630
3631 2005-04-20  Hans-Peter Nilsson  <hp@axis.com>
3632
3633         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3634         have Tcl8.3-compatible intermediate variable.
3635
3636 2005-04-18  Simon Posnjak <simon.posnjak@siol.net>
3637             Hans-Peter Nilsson  <hp@axis.com>
3638
3639         * Makefile.am: Add CRIS support.
3640         * configure.ac: Likewise.
3641         * Makefile.in, configure, testsuite/Makefile.in,
3642         include/Makefile.in: Regenerate.
3643         * src/cris: New directory.
3644         * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3645         * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3646
3647         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3648         \r?\n in output tests.
3649
3650 2005-04-12  Mike Stump  <mrs@apple.com>
3651
3652         * configure: Regenerate.
3653
3654 2005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
3655
3656         * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
3657
3658 2005-03-30  Steve Ellcey  <sje@cup.hp.com>
3659
3660         * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3661         (ffi_sarg) Ditto.
3662         * src/ia64/unix.S (ffi_closure_unix): Extend gp
3663         to 64 bits in ILP32 mode.
3664         Load 64 bits even for short data.
3665
3666 2005-03-23  Mike Stump  <mrs@apple.com>
3667
3668         * src/powerpc/darwin.S: Update for -m64 multilib.
3669         * src/powerpc/darwin_closure.S: Likewise.
3670
3671 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
3672
3673         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3674         Do not set tool_include_dir.
3675         * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3676         Regenerate.
3677         * include/Makefile.am: Set gcc_version and toollibffidir.
3678         * include/Makefile.in: Regenerate.
3679
3680 2005-02-22  Andrew Haley  <aph@redhat.com>
3681
3682         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3683         odd-numbered register pairs for 64-bit integer types.
3684
3685 2005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
3686
3687         PR libffi/20104
3688         * testsuite/libffi.call/return_ll1.c: New test case.
3689
3690 2005-02-11  Janis Johnson  <janis187@us.ibm.com>
3691
3692         * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3693         * testsuite/libffi.call/float.c: Ditto.
3694         * testsuite/libffi.call/float2.c: Ditto.
3695         * testsuite/libffi.call/float3.c: Ditto.
3696
3697 2005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
3698
3699         * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3700
3701 2005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3702
3703         * testsuite/libffi.special/special.exp (cxx_options): Add
3704         -shared-libgcc.
3705
3706 2004-12-31  Richard Henderson  <rth@redhat.com>
3707
3708         * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3709         (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
3710         offset parameters with a type parameter; deduce size and structure
3711         alignment.  Update all users.
3712
3713 2004-12-31  Richard Henderson  <rth@redhat.com>
3714
3715         * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3716         (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3717         * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3718         into ffi_prep_closure.
3719         * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3720         from scratch.
3721
3722 2004-12-27  Richard Henderson  <rth@redhat.com>
3723
3724         * src/x86/unix64.S: Fix typo in unwind info.
3725
3726 2004-12-25  Richard Henderson  <rth@redhat.com>
3727
3728         * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3729         (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3730         (merge_classes): Check for it.
3731         (SSE_CLASS_P): New.
3732         (classify_argument): Pass byte_offset by value; perform all updates
3733         inside struct case.
3734         (examine_argument): Add classes argument; handle
3735         X86_64_COMPLEX_X87_CLASS.
3736         (ffi_prep_args): Merge into ...
3737         (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
3738         (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3739         (ffi_fill_return_value): Remove.
3740         (ffi_prep_closure): Remove dead assert.
3741         (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3742         Rewrite to use struct register_args instead of va_list.  Create
3743         flags for handling structure returns.
3744         * src/x86/unix64.S: Remove dead strings.
3745         (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
3746         stack frame with ffi_call.  Handle structure returns properly.
3747         (float2sse, floatfloat2sse, double2sse): Remove.
3748         (sse2float, sse2double, sse2floatfloat): Remove.
3749         (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
3750         to handle structure returns properly.
3751
3752 2004-12-08  David Edelsohn  <edelsohn@gnu.org>
3753
3754         * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3755         PICFLAG.
3756         * Makefile.in: Regenerated.
3757
3758 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
3759
3760         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3761         * configure, aclocal.m4, Makefile.in: Regenerate.
3762         * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3763
3764 2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
3765
3766         * configure: Regenerate for libtool change.
3767
3768 2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
3769
3770         * configure: Regenerate for libtool reversion.
3771
3772 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
3773
3774         * configure: Regenerate for libtool change.
3775
3776 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3777
3778         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3779
3780 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
3781
3782         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3783         of jal.  Use an absolute encoding for the frame information.
3784
3785 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
3786
3787         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
3788         * acinclude.m4: Delete logic for sincludes.
3789         * aclocal.m4, Makefile.in, configure: Regenerate.
3790         * include/Makefile: Likewise.
3791         * testsuite/Makefile: Likewise.
3792
3793 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3794
3795         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3796         on a 8-byte boundary.
3797         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3798
3799 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
3800
3801         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3802         long long values.  Round stack allocation to a multiple of 8 bytes
3803         for ATPCS compatibility.
3804         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3805         names.  Handle returning long long types.  Add Thumb and interworking
3806         support.  Improve soft-float code.
3807
3808 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
3809
3810         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3811         (libffi_exit): New function.
3812         (libffi_init): Build the testglue wrapper if needed.
3813
3814 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
3815
3816         PR other/18138
3817         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3818
3819 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3820
3821         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3822
3823 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3824
3825         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3826         * testsuite/libffi.call/float3.c: New test case.
3827
3828 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3829
3830         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3831         the function returning a structure pointed with R2.
3832         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3833         the structure return value if T bit set.  Emit position
3834         independent code and EH data if PIC.
3835
3836 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3837
3838         * Makefile.am: Add m32r support.
3839         * configure.ac: Likewise.
3840         * Makefile.in: Regenerate.
3841         * confiugre: Regenerate.
3842         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3843         (uint64, sint64, double, longdouble)
3844         * src/m32r: New directory.
3845         * src/m32r/ffi.c: New file.
3846         * src/m32r/sysv.S: Likewise.
3847         * src/m32r/ffitarget.h: Likewise.
3848
3849 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3850
3851         * testsuite/libffi.call/negint.c: New test case.
3852
3853 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
3854
3855         PR libgcj/17465
3856         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3857         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3858         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3859         DYLD_LIBRARY_PATH.
3860
3861 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
3862
3863         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3864         * testsuite/libffi.call/promotion.c: Likewise.
3865         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3866         whitespaces.
3867         * testsuite/libffi.call/return_sc.c: Likewise.
3868         * testsuite/libffi.call/return_uc.c: Likewise.
3869
3870 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
3871
3872         * src/powerpc/darwin.S: Fix comments and identation.
3873         * src/powerpc/darwin_closure.S: Likewise.
3874
3875 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
3876
3877         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3878         (ffi_prep_args): Handle longdouble arguments.
3879         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3880         longdouble.
3881         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3882         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3883         values.
3884         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3885         * src/types.c: Defined longdouble size and alignment for darwin.
3886
3887 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
3888
3889         * src/powerpc/aix.S: Remove whitespaces.
3890         * src/powerpc/aix_closure.S: Likewise.
3891         * src/powerpc/asm.h: Likewise.
3892         * src/powerpc/ffi.c: Likewise.
3893         * src/powerpc/ffitarget.h: Likewise.
3894         * src/powerpc/linux64.S: Likewise.
3895         * src/powerpc/linux64_closure.S: Likewise.
3896         * src/powerpc/ppc_closure.S: Likewise.
3897         * src/powerpc/sysv.S: Likewise.
3898
3899 2004-08-30  Anthony Green  <green@redhat.com>
3900
3901         * Makefile.am: Add frv support.
3902         * Makefile.in, testsuite/Makefile.in: Rebuilt.
3903         * configure.ac: Read configure.host.
3904         * configure.in: Read configure.host.
3905         * configure.host: New file.  frv-elf needs libgloss.
3906         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3907         alignment.  This is needed to frv and shouldn't harm the others.
3908         * include/ffi_common.h (ALIGN_DOWN): New macro.
3909         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3910
3911 2004-08-24  David Daney  <daney@avtrex.com>
3912
3913         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3914         * testsuite/libffi.call/closure_fn1.c: Likewise.
3915         * testsuite/libffi.call/closure_fn2.c  Likewise.
3916         * testsuite/libffi.call/closure_fn3.c: Likewise.
3917         * testsuite/libffi.call/closure_fn4.c: Likewise.
3918         * testsuite/libffi.call/closure_fn5.c: Likewise.
3919         * testsuite/libffi.call/cls_18byte.c: Likewise.
3920         * testsuite/libffi.call/cls_19byte.c: Likewise.
3921         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3922         * testsuite/libffi.call/cls_20byte.c: Likewise.
3923         * testsuite/libffi.call/cls_20byte1.c: Likewise.
3924         * testsuite/libffi.call/cls_24byte.c: Likewise.
3925         * testsuite/libffi.call/cls_2byte.c: Likewise.
3926         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3927         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3928         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3929         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3930         * testsuite/libffi.call/cls_4byte.c: Likewise.
3931         * testsuite/libffi.call/cls_64byte.c: Likewise.
3932         * testsuite/libffi.call/cls_6byte.c: Likewise.
3933         * testsuite/libffi.call/cls_7byte.c: Likewise.
3934         * testsuite/libffi.call/cls_8byte.c: Likewise.
3935         * testsuite/libffi.call/cls_9byte1.c: Likewise.
3936         * testsuite/libffi.call/cls_9byte2.c: Likewise.
3937         * testsuite/libffi.call/cls_align_double.c: Likewise.
3938         * testsuite/libffi.call/cls_align_float.c: Likewise.
3939         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3940         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3941         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3942         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3943         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3944         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3945         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3946         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3947         * testsuite/libffi.call/cls_double.c: Likewise.
3948         * testsuite/libffi.call/cls_float.c: Likewise.
3949         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3950         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3951         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3952         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3953         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3954         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3955         * testsuite/libffi.call/cls_schar.c: Likewise.
3956         * testsuite/libffi.call/cls_sint.c: Likewise.
3957         * testsuite/libffi.call/cls_sshort.c: Likewise.
3958         * testsuite/libffi.call/cls_uchar.c: Likewise.
3959         * testsuite/libffi.call/cls_uint.c: Likewise.
3960         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3961         * testsuite/libffi.call/cls_ushort.c: Likewise.
3962         * testsuite/libffi.call/nested_struct.c: Likewise.
3963         * testsuite/libffi.call/nested_struct1.c: Likewise.
3964         * testsuite/libffi.call/nested_struct2.c: Likewise.
3965         * testsuite/libffi.call/nested_struct3.c: Likewise.
3966         * testsuite/libffi.call/problem1.c: Likewise.
3967         * testsuite/libffi.special/unwindtest.cc: Likewise.
3968         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3969         to zero.
3970         * testsuite/libffi.call/cls_16byte.c: Likewise.
3971         * testsuite/libffi.call/cls_5byte.c: Likewise.
3972
3973 2004-08-23  David Daney <daney@avtrex.com>
3974
3975         PR libgcj/13141
3976         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3977         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3978         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3979         parameters and return types.
3980         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3981         (ffi_prep_closure): Ditto.
3982         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3983         alignment calculations.
3984         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3985         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3986
3987 2004-08-14  Casey Marshall <csm@gnu.org>
3988
3989         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3990         contain `FFI_TYPE_UINT64' as return type for any 64-bit
3991         integer (O32 ABI only).
3992         (ffi_prep_closure): new function.
3993         (ffi_closure_mips_inner_O32): new function.
3994         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3995         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3996         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3997         64 bit integers correctly.
3998         (ffi_closure_O32): new function.
3999         Added DWARF-2 unwind info for both functions.
4000
4001 2004-08-10  Andrew Haley  <aph@redhat.com>
4002
4003         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
4004
4005 2004-08-01  Robert Millan  <robertmh@gnu.org>
4006
4007         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
4008         * configure: Regenerate.
4009
4010 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
4011
4012         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4013         and mmap() explicitly instead of relying on preset autoconf cache
4014         variables.
4015         * aclocal.m4: Regenerate.
4016         * configure: Regenerate.
4017
4018 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
4019
4020         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
4021         (ffi_check_float_struct): Remove unused prototype.
4022
4023 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
4024
4025         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
4026         character on Darwin, use '\n\t' instead.
4027
4028 2004-06-26  Matthias Klose  <doko@debian.org>
4029
4030         * libtool-version: Fix typo in revision/age.
4031
4032 2004-06-17  Matthias Klose  <doko@debian.org>
4033
4034         * libtool-version: New.
4035         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
4036         * Makefile.in: Regenerate.
4037
4038 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
4039
4040         * Makefile.am: Remove useless multilib rules.
4041         * Makefile.in: Regenerate.
4042         * aclocal.m4: Regenerate with automake 1.8.5.
4043         * configure.ac: Remove useless multilib configury.
4044         * configure: Regenerate.
4045
4046 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
4047
4048         * .cvsignore: New file.
4049
4050 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
4051
4052         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4053         fp_done.
4054         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4055         changed from 8.
4056
4057 2004-06-06  Sean McNeil  <sean@mcneil.com>
4058
4059         * configure.ac: Add x86_64-*-freebsd* support.
4060         * configure: Regenerate.
4061
4062 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
4063
4064         Bug 15093
4065         * configure.ac: Test for existence of mmap and sys/mman.h before
4066         checking blacklist.  Fix suggested by Jim Wilson.
4067         * configure: Regenerate.
4068
4069 2004-04-26  Matt Austern  <austern@apple.com>
4070
4071         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4072         FDE location.
4073         * src/powerpc/darwin_closure.S: Likewise.
4074
4075 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
4076
4077         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4078         error. Reported by Thomas Heller <theller@python.net>.
4079         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4080         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4081
4082 2004-03-20  Matthias Klose  <doko@debian.org>
4083
4084         * src/pa/linux.S: Fix typo.
4085
4086 2004-03-19  Matthias Klose  <doko@debian.org>
4087
4088         * Makefile.am: Update.
4089         * Makefile.in: Regenerate.
4090         * src/pa/ffi.h.in: Remove.
4091         * src/pa/ffitarget.h: New file.
4092
4093 2004-02-10  Randolph Chung  <tausq@debian.org>
4094
4095         * Makefile.am: Add PA support.
4096         * Makefile.in: Regenerate.
4097         * include/Makefile.in: Regenerate.
4098         * configure.ac: Add PA target.
4099         * configure: Regenerate.
4100         * src/pa/ffi.c: New file.
4101         * src/pa/ffi.h.in: Add PA support.
4102         * src/pa/linux.S: New file.
4103         * prep_cif.c: Add PA support.
4104
4105 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
4106
4107         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4108         double.
4109         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4110         with ecif->cif->flags.
4111         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4112         with cif->flags.
4113         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4114         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4115         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4116         sc_retstruct2b): Add for 1 or 2-bytes struct case.
4117
4118 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4119
4120         * configure.in: Rename file to ...
4121         * configure.ac: ... this.
4122         * fficonfig.h.in: Regenerate.
4123         * Makefile.in: Regenerate.
4124         * include/Makefile.in: Regenerate.
4125         * testsuite/Makefile.in: Regenerate.
4126
4127 2004-03-12  Matt Austern  <austern@apple.com>
4128
4129         * src/powerpc/darwin.S: Fix EH information so it corresponds to
4130         changes in EH format resulting from addition of linkonce support.
4131         * src/powerpc/darwin_closure.S: Likewise.
4132
4133 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
4134             Paolo Bonzini  <bonzini@gnu.org>
4135
4136         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4137         Remove VPATH. Remove rules for object files. Remove multilib support.
4138         (AM_CCASFLAGS): Add.
4139         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4140         (AC_PREREQ): Bump version to 2.59.
4141         (AC_INIT): Fill with version info and bug address.
4142         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4143         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4144         De-precious CC so that the right flags are passed down to multilibs.
4145         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4146         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4147         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4148         * configure: Rebuilt.
4149         * aclocal.m4: Likewise.
4150         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4151         * fficonfig.h.in: Likewise.
4152
4153 2004-03-11  Andreas Schwab  <schwab@suse.de>
4154
4155         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4156         arguments from fp registers only for the first 8 parameter slots.
4157         Don't convert a float parameter when passed in memory.
4158
4159 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
4160
4161         * configure: Regenerate for config/accross.m4 correction.
4162
4163 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
4164
4165         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4166         ecif->cif->bytes to bytes.
4167         (ffi_prep_cif_machdep): Add braces around nested if statement.
4168
4169 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
4170
4171         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4172
4173         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4174         (ffi_closure_helper_LINUX64): Fix typo.
4175         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4176         for powerpc64-*-*.
4177         * testsuite/libffi.call/float.c: Likewise.
4178         * testsuite/libffi.call/float2.c: Likewise.
4179
4180 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
4181
4182         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4183         long double function return and long double arg handling.
4184         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
4185         Use "end_pfr" instead of "nf".  Correct long double handling.
4186         Localise "temp".
4187         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4188         return value.
4189         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4190         space for long double return value.  Adjust stack frame and offsets.
4191         Load f2 long double return.
4192
4193 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
4194
4195         * src/types.c: Use 16 byte long double for POWERPC64.
4196
4197 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4198
4199         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4200         when the structure return address is passed in %o0.
4201         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4202         (ffi_v9_layout_struct): Align the field following a nested structure
4203         on a word boundary.  Use memmove instead of memcpy.
4204         (ffi_call): Update call to ffi_V9_return_struct.
4205         (ffi_prep_closure): Define 'ctx' only for V8.
4206         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4207         and ffi_closure_sparc_inner_v9.
4208         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4209         Always skip the structure return address.  For structures and long
4210         doubles, copy the argument directly.
4211         (ffi_closure_sparc_inner_v9): Skip the structure return address only
4212         if required.  Shift the maximum floating-point slot accordingly.  For
4213         big structures, copy the argument directly; otherwise, left-justify the
4214         argument and call ffi_v9_layout_struct to lay out the structure on
4215         the stack.
4216         * src/sparc/v8.S: Undef STACKFRAME before defining it.
4217         (ffi_closure_v8): Pass the structure return address.  Update call to
4218         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
4219         Skip the 'unimp' insn when returning long doubles and structures.
4220         * src/sparc/v9.S: Undef STACKFRAME before defining it.
4221         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
4222         FFI_TYPE_INT handling.  Load structures both in integers and
4223         floating-point registers on return.
4224         * README: Update status of the SPARC port.
4225
4226 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
4227
4228         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4229         as of type ffi_arg.
4230         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4231
4232 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
4233
4234         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4235         value as of type ffi_arg, not unsigned int.
4236
4237 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
4238
4239         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4240         of the LHS.
4241
4242 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
4243
4244         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4245         Solaris.
4246
4247 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4248
4249         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4250         to void *.
4251
4252 2003-12-10  Richard Henderson  <rth@redhat.com>
4253
4254         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4255         size_t instead of int.
4256
4257 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
4258
4259         * testsuite/libffi.call/many_win32.c: Include <float.h>.
4260         * testsuite/libffi.call/many_win32.c (main): Replace variable
4261         int i with unsigned long ul.
4262
4263         * testsuite/libffi.call/cls_align_uint64.c: New test case.
4264         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4265         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4266         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4267         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4268         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4269         * testsuite/libffi.call/cls_align_float.c: Likewise.
4270         * testsuite/libffi.call/cls_align_double.c: Likewise.
4271         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4272         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4273
4274 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
4275
4276         PR other/13221
4277         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4278         Align arguments to 32 bits.
4279
4280 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
4281
4282         PR other/13221
4283         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4284         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4285         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4286         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4287         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4288         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4289
4290         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4291
4292 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4293
4294         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4295         * testsuite/libffi.special/ffitestcxx.h: Likewise.
4296
4297 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
4298
4299         * Makefile.in: Rebuilt.
4300         * configure: Likewise.
4301         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4302         the right type.
4303
4304 2003-11-21  Andreas Jaeger  <aj@suse.de>
4305             Andreas Tobler  <a.tobler@schweiz.ch>
4306
4307         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4308         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4309         * Makefile.in: Rebuilt.
4310         * aclocal.m4: Likewise.
4311         * configure: Likewise.
4312         * fficonfig.h.in: Likewise.
4313         * testsuite/lib/libffi-dg.exp: Add include dir.
4314         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4315         * testsuite/libffi.special/ffitestcxx.h: Likewise.
4316         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4317         for ffi_closure if available.
4318         * testsuite/libffi.call/closure_fn1.c: Likewise.
4319         * testsuite/libffi.call/closure_fn2.c: Likewise.
4320         * testsuite/libffi.call/closure_fn3.c: Likewise.
4321         * testsuite/libffi.call/closure_fn4.c: Likewise.
4322         * testsuite/libffi.call/closure_fn5.c: Likewise.
4323         * testsuite/libffi.call/cls_12byte.c: Likewise.
4324         * testsuite/libffi.call/cls_16byte.c: Likewise.
4325         * testsuite/libffi.call/cls_18byte.c: Likewise.
4326         * testsuite/libffi.call/cls_19byte.c: Likewise.
4327         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4328         * testsuite/libffi.call/cls_20byte.c: Likewise.
4329         * testsuite/libffi.call/cls_20byte1.c: Likewise.
4330         * testsuite/libffi.call/cls_24byte.c: Likewise.
4331         * testsuite/libffi.call/cls_2byte.c: Likewise.
4332         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4333         * testsuite/libffi.call/cls_3byte1.c: Likewise.
4334         * testsuite/libffi.call/cls_3byte2.c: Likewise.
4335         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4336         * testsuite/libffi.call/cls_4byte.c: Likewise.
4337         * testsuite/libffi.call/cls_5byte.c: Likewise.
4338         * testsuite/libffi.call/cls_64byte.c: Likewise.
4339         * testsuite/libffi.call/cls_6byte.c: Likewise.
4340         * testsuite/libffi.call/cls_7byte.c: Likewise.
4341         * testsuite/libffi.call/cls_8byte.c: Likewise.
4342         * testsuite/libffi.call/cls_9byte1.c: Likewise.
4343         * testsuite/libffi.call/cls_9byte2.c: Likewise.
4344         * testsuite/libffi.call/cls_double.c: Likewise.
4345         * testsuite/libffi.call/cls_float.c: Likewise.
4346         * testsuite/libffi.call/cls_schar.c: Likewise.
4347         * testsuite/libffi.call/cls_sint.c: Likewise.
4348         * testsuite/libffi.call/cls_sshort.c: Likewise.
4349         * testsuite/libffi.call/cls_uchar.c: Likewise.
4350         * testsuite/libffi.call/cls_uint.c: Likewise.
4351         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4352         * testsuite/libffi.call/cls_ushort.c: Likewise.
4353         * testsuite/libffi.call/nested_struct.c: Likewise.
4354         * testsuite/libffi.call/nested_struct1.c: Likewise.
4355         * testsuite/libffi.call/nested_struct2.c: Likewise.
4356         * testsuite/libffi.call/nested_struct3.c: Likewise.
4357         * testsuite/libffi.call/problem1.c: Likewise.
4358         * testsuite/libffi.special/unwindtest.cc: Likewise.
4359
4360 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
4361
4362         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4363
4364 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
4365
4366         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4367         Add -lgcc_s to additional flags.
4368
4369 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
4370
4371         * configure.in, include/Makefile.am: PR libgcj/11147, install
4372         the ffitarget.h header file in a gcc versioned and target
4373         dependent place.
4374         * configure: Regenerated.
4375         * Makefile.in, include/Makefile.in: Likewise.
4376         * testsuite/Makefile.in: Likewise.
4377
4378 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
4379
4380         * testsuite/libffi.call/closure_fn0.c: Print result and check
4381         with dg-output to make debugging easier.
4382         * testsuite/libffi.call/closure_fn1.c: Likewise.
4383         * testsuite/libffi.call/closure_fn2.c: Likewise.
4384         * testsuite/libffi.call/closure_fn3.c: Likewise.
4385         * testsuite/libffi.call/closure_fn4.c: Likewise.
4386         * testsuite/libffi.call/closure_fn5.c: Likewise.
4387         * testsuite/libffi.call/cls_12byte.c: Likewise.
4388         * testsuite/libffi.call/cls_16byte.c: Likewise.
4389         * testsuite/libffi.call/cls_18byte.c: Likewise.
4390         * testsuite/libffi.call/cls_19byte.c: Likewise.
4391         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4392         * testsuite/libffi.call/cls_20byte.c: Likewise.
4393         * testsuite/libffi.call/cls_20byte1.c: Likewise.
4394         * testsuite/libffi.call/cls_24byte.c: Likewise.
4395         * testsuite/libffi.call/cls_2byte.c: Likewise.
4396         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4397         * testsuite/libffi.call/cls_3byte1.c: Likewise.
4398         * testsuite/libffi.call/cls_3byte2.c: Likewise.
4399         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4400         * testsuite/libffi.call/cls_4byte.c: Likewise.
4401         * testsuite/libffi.call/cls_5byte.c: Likewise.
4402         * testsuite/libffi.call/cls_64byte.c: Likewise.
4403         * testsuite/libffi.call/cls_6byte.c: Likewise.
4404         * testsuite/libffi.call/cls_7byte.c: Likewise.
4405         * testsuite/libffi.call/cls_8byte.c: Likewise.
4406         * testsuite/libffi.call/cls_9byte1.c: Likewise.
4407         * testsuite/libffi.call/cls_9byte2.c: Likewise.
4408         * testsuite/libffi.call/cls_double.c: Likewise.
4409         * testsuite/libffi.call/cls_float.c: Likewise.
4410         * testsuite/libffi.call/cls_schar.c: Likewise.
4411         * testsuite/libffi.call/cls_sint.c: Likewise.
4412         * testsuite/libffi.call/cls_sshort.c: Likewise.
4413         * testsuite/libffi.call/cls_uchar.c: Likewise.
4414         * testsuite/libffi.call/cls_uint.c: Likewise.
4415         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4416         * testsuite/libffi.call/cls_ushort.c: Likewise.
4417         * testsuite/libffi.call/problem1.c: Likewise.
4418
4419         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4420         static.
4421
4422 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
4423
4424         * testsuite/libffi.call/cls_9byte2.c: New test case.
4425         * testsuite/libffi.call/cls_9byte1.c: Likewise.
4426         * testsuite/libffi.call/cls_64byte.c: Likewise.
4427         * testsuite/libffi.call/cls_20byte1.c: Likewise.
4428         * testsuite/libffi.call/cls_19byte.c: Likewise.
4429         * testsuite/libffi.call/cls_18byte.c: Likewise.
4430         * testsuite/libffi.call/closure_fn4.c: Likewise.
4431         * testsuite/libffi.call/closure_fn5.c: Likewise.
4432         * testsuite/libffi.call/cls_schar.c: Likewise.
4433         * testsuite/libffi.call/cls_sint.c: Likewise.
4434         * testsuite/libffi.call/cls_sshort.c: Likewise.
4435         * testsuite/libffi.call/nested_struct2.c: Likewise.
4436         * testsuite/libffi.call/nested_struct3.c: Likewise.
4437
4438 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
4439
4440         * testsuite/libffi.call/cls_double.c: Do a check on the result.
4441         * testsuite/libffi.call/cls_uchar.c: Likewise.
4442         * testsuite/libffi.call/cls_uint.c: Likewise.
4443         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4444         * testsuite/libffi.call/cls_ushort.c: Likewise.
4445         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4446
4447 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
4448
4449         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4450         the initialization.
4451
4452 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
4453
4454         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4455         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4456
4457 2003-10-22  David Daney  <ddaney@avtrex.com>
4458
4459         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4460         __attribute__((__mode__(__SI__))) and friends.
4461
4462 2003-10-22  Andreas Schwab  <schwab@suse.de>
4463
4464         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4465
4466 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
4467
4468         * configure.in: AC_LINK_FILES(ffitarget.h).
4469         * configure: Regenerate.
4470         * Makefile.in: Likewise.
4471         * include/Makefile.in: Likewise.
4472         * testsuite/Makefile.in: Likewise.
4473         * fficonfig.h.in: Likewise.
4474
4475 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
4476             Richard Henderson  <rth@redhat.com>
4477
4478         Avoid that ffi.h includes fficonfig.h.
4479
4480         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4481         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4482         (TARGET_SRC_MIPS_SGI): Removed.
4483         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4484         (MIPS_SGI): Removed.
4485         (CLEANFILES): Removed.
4486         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4487         targets.
4488         * acconfig.h: Removed.
4489         * configure.in: Compute sizeofs only for double and long double.
4490         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
4491         into AC_DEFINE instead of using acconfig.h.  Create
4492         include/ffitarget.h instead of include/fficonfig.h.  Rename
4493         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4494         AC_DEFINE EH_FRAME_FLAGS.
4495         * include/Makefile.am (DISTCLEANFILES): New automake macro.
4496         (hack_DATA): Add ffitarget.h.
4497         * include/ffi.h.in: Remove all system specific definitions.
4498         Declare raw API even if it is not installed, why bother?
4499         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
4500         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
4501         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
4502         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4503         * include/ffi_common.h (bool): Do not define.
4504         (ffi_assert): Accept failed assertion.
4505         (ffi_type_test): Return void and accept file/line.
4506         (FFI_ASSERT): Pass stringized failed assertion.
4507         (FFI_ASSERT_AT): New macro.
4508         (FFI_ASSERT_VALID_TYPE): New macro.
4509         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4510         UINT64, SINT64): Define here with gcc's __attribute__ macro
4511         instead of in ffi.h
4512         (FLOAT32, ALIGN): Define here instead of in ffi.h
4513         * include/ffi-mips.h: Removed.  Its content moved to
4514         src/mips/ffitarget.h after separating assembly and C sections.
4515         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4516         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4517         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4518         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4519         SIZEOF_ARG -> FFI_SIZEOF_ARG.
4520         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4521         * src/debug.c (ffi_assert): Accept stringized failed assertion.
4522         (ffi_type_test): Rewritten.
4523         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4524         FFI_ASSERT_VALID_TYPE.
4525         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4526         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4527         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4528         src/s390/ffitarget.h, src/sh/ffitarget.h,
4529         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4530         src/x86/ffitarget.h: New files.
4531         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4532         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4533         src/powerpc/aix.S, src/powerpc/darwin.S,
4534         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4535         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4536         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4537         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4538         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4539         include fficonfig.h
4540
4541 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4542
4543         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4544         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4545
4546 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
4547
4548         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4549         Used when FFI_DEBUG = 1.
4550
4551 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
4552
4553         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4554         and align.
4555
4556 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4557
4558         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4559         FFI_MIPS_O32 for O32 ABI.
4560
4561 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
4562
4563         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4564         SPARC64. Cleanup whitespaces.
4565
4566 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
4567
4568         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4569         strongarm, xscale. Cleanup whitespaces.
4570         * testsuite/libffi.call/closure_fn1.c: Likewise.
4571         * testsuite/libffi.call/closure_fn2.c: Likewise.
4572         * testsuite/libffi.call/closure_fn3.c: Likewise.
4573         * testsuite/libffi.call/cls_12byte.c: Likewise.
4574         * testsuite/libffi.call/cls_16byte.c: Likewise.
4575         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4576         * testsuite/libffi.call/cls_20byte.c: Likewise.
4577         * testsuite/libffi.call/cls_24byte.c: Likewise.
4578         * testsuite/libffi.call/cls_2byte.c: Likewise.
4579         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4580         * testsuite/libffi.call/cls_3byte1.c: Likewise.
4581         * testsuite/libffi.call/cls_3byte2.c: Likewise.
4582         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4583         * testsuite/libffi.call/cls_4byte.c: Likewise.
4584         * testsuite/libffi.call/cls_5byte.c: Likewise.
4585         * testsuite/libffi.call/cls_6byte.c: Likewise.
4586         * testsuite/libffi.call/cls_7byte.c: Likewise.
4587         * testsuite/libffi.call/cls_8byte.c: Likewise.
4588         * testsuite/libffi.call/cls_double.c: Likewise.
4589         * testsuite/libffi.call/cls_float.c: Likewise.
4590         * testsuite/libffi.call/cls_uchar.c: Likewise.
4591         * testsuite/libffi.call/cls_uint.c: Likewise.
4592         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4593         * testsuite/libffi.call/cls_ushort.c: Likewise.
4594         * testsuite/libffi.call/nested_struct.c: Likewise.
4595         * testsuite/libffi.call/nested_struct1.c: Likewise.
4596         * testsuite/libffi.call/problem1.c: Likewise.
4597         * testsuite/libffi.special/unwindtest.cc: Likewise.
4598         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4599
4600 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
4601
4602         * src/powerpc/aix.S: Cleanup whitespaces.
4603         * src/powerpc/aix_closure.S: Likewise.
4604
4605 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
4606
4607         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4608         * src/powerpc/darwin_closure.S: Likewise.
4609         * src/powerpc/ffi_darwin.c: Likewise.
4610
4611 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
4612             David Edelsohn  <edelsohn@gnu.org>
4613
4614         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4615         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4616         parameter stack.
4617         * src/powerpc/darwin_closure.S: Likewise.
4618         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4619         according to the Darwin/AIX ABI.
4620         (ffi_prep_cif_machdep): Likewise.
4621         (ffi_closure_helper_DARWIN): Likewise.
4622         Remove the outgoing parameter stack logic. Simplify the evaluation
4623         of the different CASE types.
4624         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4625         statement in the trampoline code.
4626
4627 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4628
4629         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4630         for the register size.
4631         (ffi_closure_helper_SYSV): Handle the structure return value
4632         address correctly.
4633         (ffi_closure_helper_SYSV): Return the appropriate type when
4634         the registers are used for the structure return value.
4635         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4636         the 64-bit return value.  Update copyright years.
4637
4638 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4639
4640         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4641         srcdir for ffi_mips.h.
4642
4643 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
4644
4645         * src/prep_cif.c (initialize_aggregate): Include tail padding in
4646         structure size.
4647         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4648         placement of float result.
4649         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4650         cast of "resp" for big-endian 64 bit machines.
4651
4652 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
4653
4654         * src/types.c (double, longdouble): Merge identical SH and ARM
4655         typedefs, and add POWERPC64.
4656         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4657         struct split over gpr and rest.
4658         (ffi_prep_cif_machdep): Correct intarg_count for structures.
4659         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4660
4661 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
4662
4663         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4664         passing correctly.
4665
4666 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
4667
4668         * configure: Regenerate.
4669
4670 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
4671
4672         * Makefile.am: Remove build rules for ffitest.
4673         * Makefile.in: Rebuilt.
4674
4675 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
4676
4677         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4678         about implicit declaration of abort().
4679
4680 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
4681
4682         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4683         * Makefile.in: Rebuilt.
4684         * configure.in: Add dejagnu test framework.
4685         * configure: Rebuilt.
4686
4687         * testsuite/Makefile.am: New file.
4688         * testsuite/Makefile.in: Built
4689         * testsuite/lib/libffi-dg.exp: New file.
4690         * testsuite/config/default.exp: Likewise.
4691         * testsuite/libffi.call/call.exp: Likewise.
4692         * testsuite/libffi.call/ffitest.h: Likewise.
4693         * testsuite/libffi.call/closure_fn0.c: Likewise.
4694         * testsuite/libffi.call/closure_fn1.c: Likewise.
4695         * testsuite/libffi.call/closure_fn2.c: Likewise.
4696         * testsuite/libffi.call/closure_fn3.c: Likewise.
4697         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4698         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4699         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4700         * testsuite/libffi.call/cls_2byte.c: Likewise.
4701         * testsuite/libffi.call/cls_3byte1.c: Likewise.
4702         * testsuite/libffi.call/cls_3byte2.c: Likewise.
4703         * testsuite/libffi.call/cls_4byte.c: Likewise.
4704         * testsuite/libffi.call/cls_5byte.c: Likewise.
4705         * testsuite/libffi.call/cls_6byte.c: Likewise.
4706         * testsuite/libffi.call/cls_7byte.c: Likewise.
4707         * testsuite/libffi.call/cls_8byte.c: Likewise.
4708         * testsuite/libffi.call/cls_12byte.c: Likewise.
4709         * testsuite/libffi.call/cls_16byte.c: Likewise.
4710         * testsuite/libffi.call/cls_20byte.c: Likewise.
4711         * testsuite/libffi.call/cls_24byte.c: Likewise.
4712         * testsuite/libffi.call/cls_double.c: Likewise.
4713         * testsuite/libffi.call/cls_float.c: Likewise.
4714         * testsuite/libffi.call/cls_uchar.c: Likewise.
4715         * testsuite/libffi.call/cls_uint.c: Likewise.
4716         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4717         * testsuite/libffi.call/cls_ushort.c: Likewise.
4718         * testsuite/libffi.call/float.c: Likewise.
4719         * testsuite/libffi.call/float1.c: Likewise.
4720         * testsuite/libffi.call/float2.c: Likewise.
4721         * testsuite/libffi.call/many.c: Likewise.
4722         * testsuite/libffi.call/many_win32.c: Likewise.
4723         * testsuite/libffi.call/nested_struct.c: Likewise.
4724         * testsuite/libffi.call/nested_struct1.c: Likewise.
4725         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4726         * testsuite/libffi.call/problem1.c: Likewise.
4727         * testsuite/libffi.call/promotion.c: Likewise.
4728         * testsuite/libffi.call/return_ll.c: Likewise.
4729         * testsuite/libffi.call/return_sc.c: Likewise.
4730         * testsuite/libffi.call/return_uc.c: Likewise.
4731         * testsuite/libffi.call/strlen.c: Likewise.
4732         * testsuite/libffi.call/strlen_win32.c: Likewise.
4733         * testsuite/libffi.call/struct1.c: Likewise.
4734         * testsuite/libffi.call/struct2.c: Likewise.
4735         * testsuite/libffi.call/struct3.c: Likewise.
4736         * testsuite/libffi.call/struct4.c: Likewise.
4737         * testsuite/libffi.call/struct5.c: Likewise.
4738         * testsuite/libffi.call/struct6.c: Likewise.
4739         * testsuite/libffi.call/struct7.c: Likewise.
4740         * testsuite/libffi.call/struct8.c: Likewise.
4741         * testsuite/libffi.call/struct9.c: Likewise.
4742         * testsuite/libffi.special/special.exp: New file.
4743         * testsuite/libffi.special/ffitestcxx.h: Likewise.
4744         * testsuite/libffi.special/unwindtest.cc: Likewise.
4745
4746
4747 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
4748
4749         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
4750         copyright years.
4751
4752 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
4753
4754         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4755         structure passing.
4756         (ffi_closure_helper_LINUX64): Likewise.
4757         * src/powerpc/linux64.S: Remove code writing to parm save area.
4758         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4759         address in lr from ffi_closure_helper_LINUX64 call to calculate
4760         table address.  Optimize function tail.
4761
4762 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
4763
4764         * src/sparc/ffi.c: Handle all floating point registers.
4765         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4766
4767 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4768
4769         * README: Note that libffi is not part of GCC.  Update the project
4770         URL and status.
4771
4772 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4773
4774         * src/powerpc/ppc_closure.S: Include ffi.h.
4775
4776 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4777
4778         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4779         Use C style comments.
4780
4781 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
4782
4783         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
4784         * Makefile.in: Regenerate.
4785         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4786         * configure: Regenerate.
4787         * include/ffi.h.in: Add SHmedia support.
4788         * src/sh64/ffi.c: New file.
4789         * src/sh64/sysv.S: New file.
4790
4791 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
4792
4793         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4794         should be read-only.
4795         * configure: Rebuilt.
4796         * fficonfig.h.in: Rebuilt.
4797         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4798         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4799         * src/powerpc/linux64.S: Likewise.
4800         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
4801         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
4802         if -fpic/-fPIC/-mrelocatable.
4803         * src/powerpc/powerpc_closure.S: Likewise.
4804         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4805         #write in .eh_frame flags.
4806         * src/sparc/v9.S: Likewise.
4807         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4808         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
4809         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
4810
4811 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
4812
4813         Fixes PR bootstrap/10656
4814         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4815         support for .register pseudo-op.
4816         * src/sparc/v8.S: Use it.
4817         * fficonfig.h.in: Rebuilt.
4818         * configure: Rebuilt.
4819
4820 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
4821
4822         * include/ffi.h.in (POWERPC64): Define if 64-bit.
4823         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4824         Make it the default on POWERPC64.
4825         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4826         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4827         * configure: Rebuilt.
4828         * src/powerpc/ffi.c (hidden): Define.
4829         (ffi_prep_args_SYSV): Renamed from
4830         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
4831         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4832         ASM_NEEDS_REGISTERS64): New.
4833         (ffi_prep_args64): New function.
4834         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4835         (ffi_call): Likewise.
4836         (ffi_prep_closure): Likewise.
4837         (flush_icache): Surround by #ifndef POWERPC64.
4838         (ffi_dblfl): New union type.
4839         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4840         (ffi_closure_helper_LINUX64): New function.
4841         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4842         __powerpc64__.
4843         * src/powerpc/sysv.S: Likewise.
4844         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4845         * src/powerpc/linux64.S: New file.
4846         * src/powerpc/linux64_closure.S: New file.
4847         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4848         src/powerpc/linux64_closure.S.
4849         (TARGET_SRC_POWERPC): Likewise.
4850
4851         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4852         closure_test_fn3): Fix result printing on big-endian 64-bit
4853         machines.
4854         (main): Print tst2_arg instead of uninitialized tst2_result.
4855
4856         * src/ffitest.c (main): Hide what closure pointer really points to
4857         from the compiler.
4858
4859 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
4860
4861         * configure.in (arm-*-netbsdelf*): Add configuration.
4862         (configure): Regenerated.
4863
4864 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
4865
4866         * include/Makefile.in: Regenerate.
4867
4868 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4869
4870         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4871         bit mode.
4872         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4873         Receive closure pointer through parameter, read args using
4874         __builtin_dwarf_cfa.
4875         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4876
4877 2003-03-12  Andreas Schwab  <schwab@suse.de>
4878
4879         * configure.in: Avoid trailing /. in toolexeclibdir.
4880         * configure: Rebuilt.
4881
4882 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
4883
4884         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4885
4886 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
4887
4888         * libffi/src/powerpc/darwin_closure.S:
4889         Fix alignement bug, allocate 8 bytes for the result.
4890         * libffi/src/powerpc/aix_closure.S:
4891         Likewise.
4892         * libffi/src/powerpc/ffi_darwin.c:
4893         Update stackframe description for aix/darwin_closure.S.
4894
4895 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
4896
4897         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4898         attribute.
4899
4900 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
4901             Andreas Schwab  <schwab@suse.de>
4902
4903         * configure.in: Adjust command to source config-ml.in to account
4904         for changes to the libffi_basedir definition.
4905         (libffi_basedir): Remove ${srcdir} from value and include trailing
4906         slash if nonempty.
4907
4908         * configure: Regenerate.
4909
4910 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4911
4912         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4913
4914 2003-01-28  Andrew Haley  <aph@redhat.com>
4915
4916         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4917         * src/x86/ffi64.c (ffi_prep_closure): New.
4918         (ffi_closure_UNIX64_inner): New.
4919         * src/x86/unix64.S (ffi_closure_UNIX64): New.
4920
4921 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
4922
4923         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4924         Remove USE_LIBDIR conditional.
4925         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4926         * Makefile.in, configure: Rebuilt.
4927
4928 2003-01027  David Edelsohn  <edelsohn@gnu.org>
4929
4930         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4931         * Makefile.in: Regenerate.
4932
4933 2003-01-22  Andrew Haley  <aph@redhat.com>
4934
4935         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4936         unwind info.
4937
4938 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
4939
4940         * src/powerpc/darwin.S: Add unwind info.
4941         * src/powerpc/darwin_closure.S: Likewise.
4942
4943 2003-01-14  Andrew Haley  <aph@redhat.com>
4944
4945         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4946         (ffi_prep_cif_machdep): Likewise.
4947         * src/x86/unix64.S: Add unwind info.
4948
4949 2003-01-14  Andreas Jaeger  <aj@suse.de>
4950
4951         * src/ffitest.c (main): Only use ffi_closures if those are
4952         supported.
4953
4954 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4955
4956         * libffi/src/ffitest.c
4957          add closure testcases
4958
4959 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4960
4961         * libffi/src/powerpc/ffi.c
4962          fix alignment bug for float (4 byte aligned iso 8 byte)
4963
4964 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
4965
4966         * src/powerpc/ffi_darwin.c: Remove RCS version string.
4967         * src/powerpc/darwin.S: Remove RCS version string.
4968
4969 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
4970
4971         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4972         * src/ffitest.c (main): Use static storage for closure.
4973         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4974         * src/sparc/v8.S (ffi_closure_v8): New.
4975         * src/sparc/v9.S (ffi_closure_v9): New.
4976
4977 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
4978
4979         * include/ffi.h.in: Added FFI_STDCALL ffi_type
4980           enumeration for X86_WIN32.
4981         * src/x86/win32.S: Added ffi_call_STDCALL function
4982           definition.
4983         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4984           switch cases for recognising FFI_STDCALL and
4985           calling ffi_call_STDCALL if target is X86_WIN32.
4986         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4987           stdcall versions of the "my_strlen" and "many"
4988           test functions (for X86_WIN32).
4989           Added test cases to test stdcall invocation using
4990           these functions.
4991
4992 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4993
4994         * src/sh/sysv.S: Add DWARF2 unwind info.
4995
4996 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
4997
4998         * src/s390/sysv.S (.eh_frame section): Make section read-only.
4999
5000 2002-11-26  Jim Wilson  <wilson@redhat.com>
5001
5002         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
5003
5004 2002-11-23  H.J. Lu <hjl@gnu.org>
5005
5006         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
5007         Include ../config/accross.m4.
5008         * aclocal.m4; Rebuild.
5009         * configure: Likewise.
5010
5011 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
5012
5013         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
5014
5015 2002-11-11  DJ Delorie  <dj@redhat.com>
5016
5017         * configure.in: Look for common files in the right place.
5018
5019 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
5020
5021         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
5022         raw data as _Jv_word values, not ffi_raw.
5023         (ffi_java_ptrarray_to_raw): Likewise.
5024         (ffi_java_rvalue_to_raw): New function.
5025         (ffi_java_raw_call): Call it.
5026         (ffi_java_raw_to_rvalue): New function.
5027         (ffi_java_translate_args): Call it.
5028         * src/ffitest.c (closure_test_fn): Interpret return value
5029         as ffi_arg, not int.
5030         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
5031         FFI_TYPE_POINTER case.
5032         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
5033         values extended to word size.
5034
5035 2002-10-02  Andreas Jaeger  <aj@suse.de>
5036
5037         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
5038
5039 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
5040
5041         * include/ffi.h.in: Fix i386 win32 compilation.
5042
5043 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
5044
5045         * configure.in: Add s390x-*-linux-* target.
5046         * configure: Regenerate.
5047         * include/ffi.h.in: Define S390X for s390x targets.
5048         (FFI_CLOSURES): Define for s390/s390x.
5049         (FFI_TRAMPOLINE_SIZE): Likewise.
5050         (FFI_NATIVE_RAW_API): Likewise.
5051         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5052         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5053         * src/s390/ffi.c: Major rework of existing code.  Add support for
5054         s390x targets.  Add closure support.
5055         * src/s390/sysv.S: Likewise.
5056
5057 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
5058
5059         * src/arm/sysv.S: Fix typo.
5060
5061 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
5062
5063         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5064         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5065         (ffi_call_SYSV): Handle soft-float.
5066
5067 2002-09-27  Bo Thorsen  <bo@suse.de>
5068
5069         * include/ffi.h.in: Fix multilib x86-64 support.
5070
5071 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5072
5073         * Makefile.am (all-multi): Fix multilib parallel build.
5074
5075 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5076
5077         * configure.in (sh[34]*-*-linux*): Add brackets.
5078         * configure: Regenerate.
5079
5080 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5081
5082         * Makefile.am: Add SH support.
5083         * Makefile.in: Regenerate.
5084         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5085         * configure: Regenerate.
5086         * include/ffi.h.in: Add SH support.
5087         * src/sh/ffi.c: New file.
5088         * src/sh/sysv.S: New file.
5089         * src/types.c: Add SH support.
5090
5091 2002-07-16  Bo Thorsen  <bo@suse.de>
5092
5093         * src/x86/ffi64.c: New file that adds x86-64 support.
5094         * src/x86/unix64.S: New file that handles argument setup for
5095         x86-64.
5096         * src/x86/sysv.S: Don't use this on x86-64.
5097         * src/x86/ffi.c: Don't use this on x86-64.
5098         Remove unused vars.
5099         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5100         for x86-64.
5101         * src/ffitest.c (struct6): New test that tests a special case in
5102         the x86-64 ABI.
5103         (struct7): Likewise.
5104         (struct8): Likewise.
5105         (struct9): Likewise.
5106         (closure_test_fn): Silence warning about this when it's not used.
5107         (main): Add the new tests.
5108         (main): Fix a couple of wrong casts and silence some compiler warnings.
5109         * include/ffi.h.in: Add x86-64 ABI definition.
5110         * fficonfig.h.in: Regenerate.
5111         * Makefile.am: Add x86-64 support.
5112         * configure.in: Likewise.
5113         * Makefile.in: Regenerate.
5114         * configure: Likewise.
5115
5116 2002-06-24  Bo Thorsen  <bo@suse.de>
5117
5118         * src/types.c: Merge settings for similar architectures.
5119         Add x86-64 sizes and alignments.
5120
5121 2002-06-23  Bo Thorsen  <bo@suse.de>
5122
5123         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5124         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5125         * src/mips/ffi.c (ffi_prep_args): Likewise.
5126         * src/m68k/ffi.c (ffi_prep_args): Likewise.
5127
5128 2002-07-18  H.J. Lu  (hjl@gnu.org)
5129
5130         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5131         (libffi_la_SOURCES): Support MIPS_LINUX.
5132         (libffi_convenience_la_SOURCES): Likewise.
5133         * Makefile.in: Regenerated.
5134
5135         * configure.in (mips64*-*): Skip.
5136         (mips*-*-linux*): New.
5137         * configure: Regenerated.
5138
5139         * src/mips/ffi.c: Include <sgidefs.h>.
5140
5141 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
5142
5143         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
5144
5145 2002-05-27  Roger Sayle  <roger@eyesopen.com>
5146
5147         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5148
5149 2002-05-27  Bo Thorsen  <bo@suse.de>
5150
5151         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5152         fix formatting.
5153
5154 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
5155
5156         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5157         beginning of function (for older apple cc).
5158
5159 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
5160
5161         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5162         script entry, and set LD to it when configuring multilibs.
5163         * configure: Rebuilt.
5164
5165 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
5166
5167         * configure.in (sparc64-*-netbsd*): Add target.
5168         (sparc-*-netbsdelf*): Likewise.
5169         * configure: Regenerate.
5170
5171 2002-04-28  David S. Miller  <davem@redhat.com>
5172
5173         * configure.in, configure: Fix SPARC test in previous change.
5174
5175 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
5176
5177         * Makefile.am: Add Linux for S/390 support.
5178         * Makefile.in: Regenerate.
5179         * configure.in: Add Linux for S/390 support.
5180         * configure: Regenerate.
5181         * include/ffi.h.in: Add Linux for S/390 support.
5182         * src/s390/ffi.c: New file from libffi CVS tree.
5183         * src/s390/sysv.S: New file from libffi CVS tree.
5184
5185 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5186
5187         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5188         %r_disp32().
5189         * src/sparc/v8.S: Use it.
5190         * src/sparc/v9.S: Likewise.
5191         * fficonfig.h.in: Rebuilt.
5192         * configure: Rebuilt.
5193
5194 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
5195
5196         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5197         correctly.
5198         * src/ia64/unix.S: Add unwind information. Fix comments.
5199         Save sp in a way that's compatible with unwind info.
5200         (ffi_call_unix): Correctly restore sp in all cases.
5201         * src/ia64/ffi.c: Add, fix comments.
5202
5203 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
5204
5205         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5206
5207 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
5208
5209         * configure.in (alpha*-*-netbsd*): Add target.
5210         * configure: Regenerate.
5211
5212 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
5213
5214         * src/sparc/v8.S: Add unwind info.
5215         * src/sparc/v9.S: Likewise.
5216
5217 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
5218
5219         * configure.in: Enable i*86-*-netbsdelf*.
5220         * configure: Rebuilt.
5221
5222 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
5223
5224         PR other/2620
5225         * src/mips/n32.s: Delete
5226         * src/mips/o32.s: Delete
5227
5228 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
5229
5230         * configure.in: Enable alpha*-*-freebsd*.
5231         * configure: Rebuilt.
5232
5233 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5234
5235         * Makefile.am: libfficonvenience -> libffi_convenience.
5236         * Makefile.in: Rebuilt.
5237
5238         * Makefile.am: Define ffitest_OBJECTS.
5239         * Makefile.in: Rebuilt.
5240
5241 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
5242             David Edelsohn  <edelsohn@gnu.org>
5243
5244         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5245         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5246         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5247         * Makefile.in: Regenerate.
5248         * include/ffi.h.in: Add AIX and Darwin closure definitions.
5249         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5250         (flush_icache, flush_range): New functions.
5251         (ffi_closure_helper_DARWIN): New function.
5252         * src/powerpc/aix_closure.S: New file.
5253         * src/powerpc/darwin_closure.S: New file.
5254
5255 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
5256
5257         * include/ffi.h.in: Add typedef for ffi_arg.
5258         * src/ffitest.c (main): Declare rint with ffi_arg.
5259
5260 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
5261
5262         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5263         number of GPRs for floating-point arguments.
5264
5265 2002-01-31  Anthony Green  <green@redhat.com>
5266
5267         * configure: Rebuilt.
5268         * configure.in: Replace CHECK_SIZEOF and endian tests with
5269         cross-compiler friendly macros.
5270         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5271         macros.
5272
5273 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
5274
5275         * src/powerpc/darwin.S (_ffi_call_AIX): New.
5276         * src/powerpc/aix.S (ffi_call_DARWIN): New.
5277
5278 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
5279
5280         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5281         (TARGET_SRC_POWERPC_AIX): New.
5282         (POWERPC_AIX): New stanza.
5283         * Makefile.in: Regenerate.
5284         * configure.in: Add AIX case.
5285         * configure: Regenerate.
5286         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5287         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5288         size.  Fix "long double" support.
5289         (ffi_call): Add FFI_AIX case.
5290         * src/powerpc/aix.S: New.
5291
5292 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
5293
5294         Implement Darwin PowerPC ABI.
5295         * configure.in: Handle powerpc-*-darwin*.
5296         * Makefile.am: Set source files for POWERPC_DARWIN.
5297         * configure: Rebuilt.
5298         * Makefile.in: Rebuilt.
5299         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5300         POWERPC_DARWIN.
5301         * src/powerpc/darwin.S: New file.
5302         * src/powerpc/ffi_darwin.c: New file.
5303
5304 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
5305
5306         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5307
5308 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5309
5310         * src/x86/sysv.S: Avoid gas-only .balign directive.
5311         Use C style comments.
5312
5313 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5314
5315         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5316         Fixes PR bootstrap/3563.
5317
5318 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5319
5320         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5321
5322 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5323
5324         * configure.in: Recognize sparc*-sun-* host.
5325         * configure: Regenerate.
5326
5327 2001-06-06  Andrew Haley  <aph@redhat.com>
5328
5329         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5330
5331 2001-06-03  Andrew Haley  <aph@redhat.com>
5332
5333         * src/alpha/osf.S: Add unwind info.
5334         * src/powerpc/sysv.S: Add unwind info.
5335         * src/powerpc/ppc_closure.S: Likewise.
5336
5337 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
5338
5339         * configure.in: Fix AC_ARG_ENABLE usage.
5340         * configure: Rebuilt.
5341
5342 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5343
5344         * configure.in: Remove warning about beta code.
5345         * configure: Rebuilt.
5346
5347 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
5348
5349         * src/ia64/unix.S: Restore stack pointer when returning from
5350         ffi_closure_UNIX.
5351         * src/ia64/ffi.c: Fix typo in comment.
5352
5353 2001-04-18  Jim Wilson  <wilson@redhat.com>
5354
5355         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5356         to eliminate RAW DV.
5357
5358 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
5359
5360         * Makefile.am: Make a libtool convenience library.
5361         * Makefile.in: Rebuilt.
5362
5363 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
5364
5365         * configure.in: Use different syntax for subdirectory creation.
5366         * configure: Rebuilt.
5367
5368 2001-03-27  Jon Beniston  <jon@beniston.com>
5369
5370         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5371         * configure: Rebuilt.
5372         * Makefile.am: Added X86_WIN32 target support.
5373         * Makefile.in: Rebuilt.
5374
5375         * include/ffi.h.in: Added X86_WIN32 target support.
5376
5377         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5378         * src/types.c: Added X86_WIN32 target support.
5379
5380         * src/x86/win32.S: New file. Based on sysv.S, but with EH
5381         stuff removed and made to work with CygWin's gas.
5382
5383 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
5384
5385         * configure.in: Make target subdirectory in build dir.
5386         * Makefile.am: Override suffix based rules to specify correct output
5387         subdirectory.
5388         * Makefile.in: Rebuilt.
5389         * configure: Rebuilt.
5390
5391 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
5392
5393         * src/powerpc/ppc_closure.S: New file.
5394         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5395         involving long long and register pairs.
5396         (ffi_prep_closure): New function.
5397         (flush_icache): Likewise.
5398         (ffi_closure_helper_SYSV): Likewise.
5399         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5400         (FFI_TRAMPOLINE_SIZE): Likewise.
5401         (FFI_NATIVE_RAW_API): Likewise.
5402         * Makefile.in: Rebuilt.
5403         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5404         (TARGET_SRC_POWERPC): Likewise.
5405
5406 2001-03-19  Tom Tromey  <tromey@redhat.com>
5407
5408         * Makefile.in: Rebuilt.
5409         * Makefile.am (ffitest_LDFLAGS): New macro.
5410
5411 2001-03-02  Nick Clifton  <nickc@redhat.com>
5412
5413         * include/ffi.h.in: Remove RCS ident string.
5414         * include/ffi_mips.h: Remove RCS ident string.
5415         * src/debug.c: Remove RCS ident string.
5416         * src/ffitest.c: Remove RCS ident string.
5417         * src/prep_cif.c: Remove RCS ident string.
5418         * src/types.c: Remove RCS ident string.
5419         * src/alpha/ffi.c: Remove RCS ident string.
5420         * src/alpha/osf.S: Remove RCS ident string.
5421         * src/arm/ffi.c: Remove RCS ident string.
5422         * src/arm/sysv.S: Remove RCS ident string.
5423         * src/mips/ffi.c: Remove RCS ident string.
5424         * src/mips/n32.S: Remove RCS ident string.
5425         * src/mips/o32.S: Remove RCS ident string.
5426         * src/sparc/ffi.c: Remove RCS ident string.
5427         * src/sparc/v8.S: Remove RCS ident string.
5428         * src/sparc/v9.S: Remove RCS ident string.
5429         * src/x86/ffi.c: Remove RCS ident string.
5430         * src/x86/sysv.S: Remove RCS ident string.
5431
5432 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
5433
5434         * include/ffi.h.in: Change sourceware.cygnus.com references to
5435         gcc.gnu.org.
5436
5437 2000-12-09  Richard Henderson  <rth@redhat.com>
5438
5439         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5440         (ffi_closure_osf_inner): Index rather than increment avalue
5441         and arg_types.  Give ffi_closure_osf the raw return value type.
5442         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5443         promotion.
5444
5445 2000-12-07  Richard Henderson  <rth@redhat.com>
5446
5447         * src/raw_api.c (ffi_translate_args): Fix typo.
5448         (ffi_prep_closure): Likewise.
5449
5450         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5451         FFI_TRAMPOLINE_SIZE.
5452         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5453         cif->bytes for new ffi_call_osf implementation.
5454         (ffi_prep_args): Absorb into ...
5455         (ffi_call): ... here.  Do all stack allocation here and
5456         avoid a callback function.
5457         (ffi_prep_closure, ffi_closure_osf_inner): New.
5458         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5459         (ffi_closure_osf): New.
5460
5461 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
5462
5463         * config.guess, config.sub, install-sh: Removed.
5464         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5465         * Makefile.in: Rebuilt.
5466
5467         * acinclude.m4: Include libtool macros from the top level.
5468         * aclocal.m4, configure: Rebuilt.
5469
5470 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
5471
5472         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5473         * configure: Rebuilt.
5474
5475 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
5476
5477         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5478         memory correctly.  Use conditional instructions, not branches where
5479         possible.
5480
5481 2000-05-04  Tom Tromey  <tromey@cygnus.com>
5482
5483         * configure: Rebuilt.
5484         * configure.in: Match `arm*-*-linux-*'.
5485         From Chris Dornan <cdornan@arm.com>.
5486
5487 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
5488
5489         * Makefile.am (SUBDIRS): Define.
5490         (AM_MAKEFLAGS): Likewise.
5491         (Multilib support.): Add section.
5492         * Makefile.in: Rebuilt.
5493         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5494         New variables. Set for gcc using -print-multi-lib. Export them
5495         to libtool.
5496         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5497         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5498         for -shared links.
5499         (extra_compiler_flags_value, extra_compiler_flags): Check these
5500         for extra compiler options which need to be passed down in
5501         compiler_flags.
5502
5503 2000-04-16  Anthony Green  <green@redhat.com>
5504
5505         * configure: Rebuilt.
5506         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5507
5508 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
5509
5510         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5511         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5512         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5513         Replace all void * sizeofs with sizeof(int).
5514         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5515         different than DOUBLE.
5516         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5517         (ffi_prep_args_v9): New function.
5518         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5519         (ffi_V9_return_struct): New function.
5520         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5521         32bit code (not yet cross-arch calls).
5522         * src/sparc/v8.S: Add struct return delay nop.
5523         Handle long long.
5524         * src/sparc/v9.S: New file.
5525         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5526         is used on sparc64 only for structures larger than 32 bytes.
5527         Pass by reference for structures is done for structure arguments
5528         larger than 16 bytes.
5529         * src/ffitest.c (main): Use 64bit rint on sparc64.
5530         Run long long tests on sparc.
5531         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5532         sparc64.
5533         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5534         on sparc64.
5535         * configure.in (sparc-*-linux*): New supported target.
5536         (sparc64-*-linux*): Likewise.
5537         * configure: Rebuilt.
5538         * Makefile.am: Add v9.S to SPARC files.
5539         * Makefile.in: Likewise.
5540         (LINK): Surround $(CCLD) into double quotes, so that multilib
5541         compiles work correctly.
5542
5543 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5544
5545         * configure: Rebuilt.
5546         * configure.in: (i*86-*-solaris*): New libffi target. Patch
5547         proposed by Bryce McKinlay.
5548
5549 2000-03-20  Tom Tromey  <tromey@cygnus.com>
5550
5551         * Makefile.in: Hand edit for java_raw_api.lo.
5552
5553 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
5554
5555         * config.guess, config.sub: Update from the gcc tree.
5556         Fix for PR libgcj/168.
5557
5558 2000-03-03  Tom Tromey  <tromey@cygnus.com>
5559
5560         * Makefile.in: Fixed ia64 by hand.
5561
5562         * configure: Rebuilt.
5563         * configure.in (--enable-multilib): New option.
5564         (libffi_basedir): New subst.
5565         (AC_OUTPUT): Added multilib code.
5566
5567 2000-03-02  Tom Tromey  <tromey@cygnus.com>
5568
5569         * Makefile.in: Rebuilt.
5570         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5571         directory name.
5572
5573 2000-02-25  Hans Boehm <boehm@acm.org>
5574
5575         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5576         files.
5577         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5578         list.
5579         (ffi_prep_raw_closure): Use ffi_translate_args, not
5580         ffi_closure_translate.
5581         * src/java_raw_api.c: New file.
5582         * src/ffitest.c (closure_test_fn): New function.
5583         (main): Define `rint' as long long on IA64.  Added new test when
5584         FFI_CLOSURES is defined.
5585         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5586         (ffi_abi): Recognize IA64.
5587         (ffi_raw): Added `flt' field.
5588         Added "Java raw API" code.
5589         * configure.in: Recognize ia64.
5590         * Makefile.am (TARGET_SRC_IA64): New macro.
5591         (libffi_la_common_SOURCES): Added java_raw_api.c.
5592         (libffi_la_SOURCES): Define in IA64 case.
5593
5594 2000-01-04  Tom Tromey  <tromey@cygnus.com>
5595
5596         * Makefile.in: Rebuilt with newer automake.
5597
5598 1999-12-31  Tom Tromey  <tromey@cygnus.com>
5599
5600         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5601
5602 1999-09-01  Tom Tromey  <tromey@cygnus.com>
5603
5604         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5605         undefs.
5606         * fficonfig.h.in: Rebuilt.
5607         * configure: Rebuilt.
5608         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5609         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5610         * acconfig.h: Don't #undef PACKAGE or VERSION.
5611
5612 1999-08-09  Anthony Green  <green@cygnus.com>
5613
5614         * include/ffi.h.in: Try to work around messy header problem
5615         with PACKAGE and VERSION.
5616
5617         * configure: Rebuilt.
5618         * configure.in: Change version to 2.00-beta.
5619
5620         * fficonfig.h.in: Rebuilt.
5621         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5622
5623         * src/x86/ffi.c (ffi_raw_call): Rename.
5624
5625 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
5626
5627         * src/x86/ffi.c (ffi_closure_SYSV): New function.
5628         (ffi_prep_incoming_args_SYSV): Ditto.
5629         (ffi_prep_closure): Ditto.
5630         (ffi_closure_raw_SYSV): Ditto.
5631         (ffi_prep_raw_closure): More ditto.
5632         (ffi_call_raw): Final ditto.
5633
5634         * include/ffi.h.in: Add definitions for closure and raw API.
5635
5636         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5637         FFI_TYPE_UINT64.
5638
5639         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5640
5641         * src/raw_api.c: New file.
5642
5643         * include/ffi.h.in (ffi_raw): New type.
5644         (UINT_ARG, SINT_ARG): New defines.
5645         (ffi_closure, ffi_raw_closure): New types.
5646         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5647
5648         * configure.in: Add check for endianness and sizeof void*.
5649
5650         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5651         instead of directly.
5652
5653         * configure: Rebuilt.
5654
5655 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
5656
5657         * configure.in: Add x86 and powerpc BeOS configurations.
5658         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5659
5660 1999-05-09  Anthony Green  <green@cygnus.com>
5661
5662         * configure.in: Add warning about this being beta code.
5663         Remove src/Makefile.am from the picture.
5664         * configure: Rebuilt.
5665
5666         * Makefile.am: Move logic from src/Makefile.am.  Add changes
5667         to support libffi as a target library.
5668         * Makefile.in: Rebuilt.
5669
5670         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5671         Upgraded to new autoconf, automake, libtool.
5672
5673         * README: Tweaks.
5674
5675         * LICENSE: Update copyright date.
5676
5677         * src/Makefile.am, src/Makefile.in: Removed.
5678
5679 1998-11-29  Anthony Green  <green@cygnus.com>
5680
5681         * include/ChangeLog: Removed.
5682         * src/ChangeLog: Removed.
5683         * src/mips/ChangeLog: Removed.
5684         * src/sparc/ChangeLog: Remboved.
5685         * src/x86/ChangeLog: Removed.
5686
5687         * ChangeLog.v1: Created.