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