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