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