Fix a bug in cfg fixup
[official-gcc.git] / libffi / ChangeLog
blob1bbcf9e47f4a42f383a49ee8d2942d987752fe59
1 2011-07-11  Andrew Haley  <aph@redhat.com>
3         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
5 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7         * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
8         * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
10 2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12         PR libffi/46660
13         * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
14         mips-sgi-irix6*.
15         * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
17 2011-06-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19         * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
20         PRId8 instead of %hhu, %hhd.
21         * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
22         PRIu8): Define.
23         [__sgi__] (PRId8, PRIu8): Define.
25 2011-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27         * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
28         Define.
29         Use them to handle ELF vs. ECOFF differences.
30         [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
32 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34         * configure: Regenerate.
36 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38         PR libffi/46661
39         * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
40         uintptr_t first.
41         * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
43 2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
45         * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
46         Handle case when CPU variant does not have long double support.
47         * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
48         and cores with soft floating point.
50 2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
52         * configure.ac: Add mips*-*-rtems* support.
53         * configure: Regenerate.
54         * src/mips/ffitarget.h: Ensure needed constants are available
55         for targets which do not have sgidefs.h.
57 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
59         PR target/40125
60         * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
61         * configure: Regenerate.
63 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
65         PR libffi/29152
66         PR libffi/42378
67         * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
68         update comments.
69         * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
70         (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
71         * src/powerpc/darwin.S: Provide Darwin64 implementation,
72         update comments.
73         * src/powerpc/ffi_darwin.c: Likewise.
75 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
77         * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
78         backslashes.
79         (libffi_cv_as_string_pseudo_op): Likewise.
80         * configure: Regenerate.
82 2010-12-03  Chung-Lin Tang  <cltang@codesourcery.com>
84         * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
85         (ffi_closure_VFP): Same.
86         (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
87         directive.
89 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
91         * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
92         (PRIuPTR): Define.
94 2010-11-29  Richard Henderson  <rth@redhat.com>
95             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
97         * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
98         (.eh_frame): Use FDE_ENCODING.
99         (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
101 2010-11-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
103         * testsuite/lib/libffi-dg.exp: Rename ...
104         * testsuite/lib/libffi.exp: ... to this.
105         * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
106         * libffi/testsuite/libffi.special/special.exp: Likewise.
108 2010-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
110         * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
111         code, new parameter, and return value. Update comments.
112         (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
113         call to layout_vfp_args().
114         (ffi_call_SYSV): Update declaration.
115         (ffi_call_VFP): New declaration.
116         (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
117         when ABI is FFI_VFP.
118         (ffi_closure_VFP): New declaration.
119         (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
120         ffi_prep_incoming_args_SYSV().
121         (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
122         case handling.
123         (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
124         construction under VFP hard-float.
125         (rec_vfp_type_p): New function.
126         (vfp_type_p): Same.
127         (place_vfp_arg): Same.
128         (layout_vfp_args): Same.
129         * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
130         based on __ARM_PCS_VFP.
131         (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
132         fields.
133         (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
134         (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
135         * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
136         direct call. Move function pointer load upwards.
137         (ffi_call_VFP): New function.
138         (ffi_closure_VFP): Same.
140         * testsuite/lib/libffi-dg.exp (check-flags): New function.
141         (dg-skip-if): New function.
142         * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
143         and compiler options include -mfloat-abi=hard.
144         * testsuite/libffi.call/cls_longdouble_va.c: Same.
146 2010-10-01  Jakub Jelinek  <jakub@redhat.com>
148         PR libffi/45677
149         * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
150         a multiple of 8.
151         * testsuite/libffi.call/many2.c: New test.
153 2010-08-20  Mark Wielaard  <mjw@redhat.com>
155         * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
156         returns NULL.
158 2010-08-09  Andreas Tobler  <andreast@fgznet.ch>
160         * configure.ac: Add target powerpc64-*-freebsd*.
161         * configure: Regenerate.
162         * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
163         -mlong-double-128 only to linux targets.
164         * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
165         * testsuite/libffi.call/cls_longdouble.c: Likewise.
166         * testsuite/libffi.call/huge_struct.c: Likewise.
168 2010-07-10  Evan Phoenix  <evan@fallingsnow.net>
170         * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
172 2010-07-07  Dan HorĂ¡k <dan@danny.cz>
174         * include/ffi.h.in: Protect #define with #ifndef.
175         * src/powerpc/ffitarget.h: Ditto.
176         * src/s390/ffitarget.h: Ditto.
177         * src/sparc/ffitarget.h: Ditto.
179 2010-07-07   Neil Roberts <neil@linux.intel.com>
181         * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
182         16-bytes.
184 2010-07-02  Jakub Jelinek  <jakub@redhat.com>
186         * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
187         * Makefile.in: Regenerated.
189 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
191         * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
192         output, too.
193         (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
194         (libffi_cv_as_string_pseudo_op): Check for .string.
195         * configure: Regenerate.
196         * fficonfig.h.in: Regenerate.
197         * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
199 2010-05-05  Michael Kohler <michaelkohler@live.com>
201         * src/dlmalloc.c (dlfree): Fix spelling.
202         * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
203         * configure.ac: Ditto.
204         * configure: Rebuilt.
206 2010-04-13  Dan Witte  <dwitte@mozilla.com>
208         * msvcc.sh: Build with -W3 instead of -Wall.
209         * src/powerpc/ffi_darwin.c: Remove build warnings.
210         * src/x86/ffi.c: Ditto.
211         * src/x86/ffitarget.h: Ditto.
213 2010-04-12  Dan Witte  <dwitte@mozilla.com>
214             Walter Meinl <wuno@lsvw.de>
216         * configure.ac: Add OS/2 support.
217         * configure: Rebuilt.
218         * src/closures.c: Ditto.
219         * src/dlmalloc.c: Ditto.
220         * src/x86/win32.S: Ditto.
222 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
224         * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
226 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
228         * Makefile.in: Regenerate.
229         * aclocal.m4: Regenerate.
230         * include/Makefile.in: Regenerate.
231         * man/Makefile.in: Regenerate.
232         * testsuite/Makefile.in: Regenerate.
234 2010-03-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
236         * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
237         * configure: Regenerate.
238         * fficonfig.h.in: Regenerate.
239         * libffi/src/x86/unix64.S (.eh_frame)
240         [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
242 2010-03-14  Matthias Klose  <doko@ubuntu.com>
244         * src/x86/ffi64.c: Fix typo in comment.
245         * src/x86/ffi.c: Use /* ... */ comment style.
247 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
249         * doc/libffi.texi (The Closure API): Fix typo.
250         * doc/libffi.info: Remove.
252 2010-02-15  Matthias Klose  <doko@ubuntu.com>
254         * src/arm/sysv.S (__ARM_ARCH__): Define for processor
255         __ARM_ARCH_7EM__.
257 2010-01-15  Anthony Green  <green@redhat.com>
259         * README: Add notes on building with Microsoft Visual C++.
261 2010-01-15  Daniel Witte  <dwitte@mozilla.com>
263         * msvcc.sh: New file.
265         * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
266         * src/x86/ffi.c: Tweak function declaration and remove excess
267         parens.
268         * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
269         ffi_closure.
271         * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
272         function ffi_call_win32 on X86_WIN32.
273         * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
274         (ffi_call_STDCALL): Remove.
276         * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
277         to ffi_prep_cif_machdep for x86.
278         * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
280 2010-01-15  Oliver Kiddle  <okiddle@yahoo.co.uk>
282         * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
283         Sun Studio compiler compatibility.
285 2010-01-12  Conrad Irwin <conrad.irwin@gmail.com>
287         * doc/libffi.texi: Add closure example.
289 2010-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
291         PR libffi/40701
292         * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
293         PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
294         * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
295         alpha*-dec-osf*.
296         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
297         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
298         * testsuite/libffi.call/return_ll1.c: Likewise.
299         * testsuite/libffi.call/stret_medium2.c: Likewise.
300         * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
301         MAP_FAILED to char *.
303 2010-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
305         * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
307 2009-12-31  Anthony Green  <green@redhat.com>
309         * README: Update for libffi 3.0.9.
311 2009-12-27  Matthias Klose  <doko@ubuntu.com>
313         * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
314         appropriate.
315         * configure: Rebuilt.
317 2009-12-26  Anthony Green  <green@redhat.com>
319         * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
320         avr32*-*-*.
321         * testsuite/libffi.call/cls_double_va.c: Ditto.
323 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
325         * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
326         and inttypes.h.
327         * testsuite/libffi.special/unwindtest.cc: Ditto.
329 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
331         * configure.ac: Add amd64-*-openbsd*.
332         * configure: Rebuilt.
333         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
334         openbsd programs with -lpthread.
336 2009-12-26  Anthony Green  <green@redhat.com>
338         * testsuite/libffi.call/cls_double_va.c,
339         testsuite/libffi.call/cls_longdouble.c,
340         testsuite/libffi.call/cls_longdouble_va.c,
341         testsuite/libffi.call/cls_pointer.c,
342         testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
343         mips*-*-* and arm*-*-*.
344         * testsuite/libffi.call/cls_align_longdouble_split.c,
345         testsuite/libffi.call/cls_align_longdouble_split2.c,
346         testsuite/libffi.call/stret_medium2.c,
347         testsuite/libffi.call/stret_medium.c,
348         testsuite/libffi.call/stret_large.c,
349         testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
351 2009-12-31  Kay Tietz  <ktietz70@googlemail.com>
353         * testsuite/libffi.call/ffitest.h,
354         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
355         definitions.
357 2009-12-31  Carlo Bramini  <carlo.bramix@libero.it>
359         * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
360         * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
361         * configure: Rebuilt.
362         * Makefile.in: Rebuilt.
364 2009-12-31  Anthony Green  <green@redhat.com>
365             Blake Chaffin.
367         * testsuite/libffi.call/huge_struct.c: New test case from Blake
368         Chaffin @ Apple.
370 2009-12-28  David Edelsohn  <edelsohn@gnu.org>
372         * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
373         local variables.
374         (aix_adjust_aggregate_sizes): New function.
375         (ffi_prep_cif_machdep): Call it.
377 2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
379         * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
380         * configure: Regenerate.
381         * fficonfig.h.in: Likewise.
382         * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
383         Solaris/x86.
385 2009-12-26  Andreas Schwab  <schwab@linux-m68k.org>
387         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
388         when a float arguments is passed in memory.
389         (ffi_closure_helper_SYSV): Mark general registers as used up when
390         a 64bit or soft-float long double argument is passed in memory.
392 2009-12-25  Matthias Klose  <doko@ubuntu.com>
394         * man/ffi_call.3: Fix #include in examples.
395         * doc/libffi.texi: Add dircategory.
397 2009-12-25  Frank Everdij <f.p.x.everdij@tudelft.nl>
399         * include/ffi.h.in: Placed '__GNUC__' ifdef around
400         '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
401         IRIX MIPSPro c99.
402         * include/ffi_common.h: Added '__sgi' define to non
403         '__attribute__((__mode__()))' integer typedefs.
404         * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
405         ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
406         (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
407         FFI_LONGDOUBLE support and alignment(N32 only).
408         * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
409         fixed non '__attribute__((__mode__()))' integer typedefs.
410         * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
411         since they are Linux/GNU Assembler specific.
413 2009-12-25  Bradley Smith  <brad@brad-smith.co.uk>
415         * configure.ac, Makefile.am, src/avr32/ffi.c,
416         src/avr32/ffitarget.h,
417         src/avr32/sysv.S: Add AVR32 port.
418         * configure, Makefile.in: Rebuilt.
420 2009-12-21  Andreas Tobler  <a.tobler@schweiz.org>
422         * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
423         * configure: Regenerate.
425 2009-12-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
427         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
429 2009-12-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
431         * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
432         type on HP-UX.
434 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
436         * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
437         double' arguments.
439 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
441         * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
443 2009-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
445         PR libffi/40700
446         * src/closures.c [X86_64 && __sun__ && __svr4__]
447         (FFI_MMAP_EXEC_WRIT): Define.
449 2009-12-08  David Daney  <ddaney@caviumnetworks.com>
451         * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
452         * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
453         * testsuite/libffi.call/stret_large.c: Same.
454         * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
455         * testsuite/libffi.call/stret_large2.c: Same.
456         * testsuite/libffi.call/stret_medium2.c: Same.
458 2009-12-07  David Edelsohn  <edelsohn@gnu.org>
460         * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
461         typo.
463 2009-12-05  David Edelsohn  <edelsohn@gnu.org>
465         * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
466         code.
467         * src/powerpc/aix_closure.S: Same.
469 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
471         * Makefile.in: Regenerate.
472         * configure: Regenerate.
473         * include/Makefile.in: Regenerate.
474         * man/Makefile.in: Regenerate.
475         * testsuite/Makefile.in: Regenerate.
477 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
479         * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
480         linux64_closure.S.
482 2009-12-04  Uros Bizjak  <ubizjak@gmail.com>
484         PR libffi/41908
485         * src/x86/ffi64.c (classify_argument): Update from
486         gcc/config/i386/i386.c.
487         (ffi_closure_unix64_inner): Do not use the address of two consecutive
488         SSE registers directly.
489         * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
490         for x86_64 linux targets.
492 2009-12-04  David Edelsohn  <edelsohn@gnu.org>
494         * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
495         pfr for long double split between fpr13 and stack.
497 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
499         * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
500         fparg_count twice for long double.
502 2009-12-03  David Edelsohn  <edelsohn@gnu.org>
504         PR libffi/42243
505         * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
507 2009-12-03  Uros Bizjak  <ubizjak@gmail.com>
509         * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
510         Remove xfails for x86 linux targets.
512 2009-12-02  David Edelsohn  <edelsohn@gnu.org>
514         * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
515         case.
517 2009-12-01  David Edelsohn  <edelsohn@gnu.org>
519         * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
520         register usage.  Call ffi_prep_args directly.  Add long double
521         return value support.
522         * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
523         applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
524         Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
525         (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
526         mode.
527         (ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
528         into case.
529         * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
530         Allocate result area between params and FPRs.
532 2009-11-30  David Edelsohn  <edelsohn@gnu.org>
534         PR target/35484
535         * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
536         AIX64.
537         * src/powerpc/aix.S: Implement AIX64 version.
538         * src/powerpc/aix_closure.S: Implement AIX64 version.
539         (ffi_closure_ASM): Use extsb, lha and displament addresses.
540         * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
541         support.
542         (ffi_prep_cif_machdep): Same.
543         (ffi_call): Same.
544         (ffi_closure_helper_DARWIN): Same.
546 2009-11-02  Andreas Tobler  <a.tobler@schweiz.org>
548         PR libffi/41908
549         * testsuite/libffi.call/testclosure.c: New test.
551 2009-09-28  Kai Tietz  <kai.tietz@onevision.com>
553         * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
554         assembly version use of ___chkstk.
556 2009-09-23  Matthias Klose  <doko@ubuntu.com>
558         PR libffi/40242, PR libffi/41443
559         * src/arm/sysv.S (__ARM_ARCH__): Define for processors
560         __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
561         __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
562         Change the conditionals to __SOFTFP__ || __ARM_EABI__
563         for -mfloat-abi=softfp to work.
565 2009-09-17  Loren J. Rittle  <ljrittle@acm.org>
567         PR testsuite/32843 (strikes again)
568         * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
569         enable proper extension on char and short.
571 2009-09-15  David Daney  <ddaney@caviumnetworks.com>
573         * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
574         handling for FFI_TYPE_POINTER.
575         * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
576         FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
577         FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
578         FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
579         (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
580         (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
581         * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
582         structure and pointer returns.
583         (ffi_closure_N32): Add handling for pointer returns.
584         * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
585         calc_n32_return_struct_flags): Handle soft-float.
586         (ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
587         (ffi_call_N32): Declare proper argument types.
588         (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
589         soft-float.
591 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
593         * configure.ac (AC_PREREQ): Bump to 2.64.
595 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
597         * Makefile.am (install-html, install-pdf): Remove.
598         * Makefile.in: Regenerate.
600         * Makefile.in: Regenerate.
601         * aclocal.m4: Regenerate.
602         * configure: Regenerate.
603         * fficonfig.h.in: Regenerate.
604         * include/Makefile.in: Regenerate.
605         * man/Makefile.in: Regenerate.
606         * testsuite/Makefile.in: Regenerate.
608 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
610         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
612 2009-07-24  Dave Korn  <dave.korn.cygwin@gmail.com>
614         PR libffi/40807
615         * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
616         return types for X86_WIN32.
617         * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
618         (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
619         _ffi_closure_STDCALL): Likewise.
621         * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
622         (dlmmap, dlmunmap): Also use these functions on Cygwin.
624 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
626         PR testsuite/40699
627         PR testsuite/40707
628         PR testsuite/40709
629         * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
630         2009-06-30 commits.
632 2009-07-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
634         * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
635         to "" before adding paths.  (This reinstates an assignment that
636         was removed by my 2009-06-30 commit, but changes the initial
637         value from "." to "".)
639 2009-07-01  H.J. Lu  <hongjiu.lu@intel.com>
641         PR testsuite/40601
642         * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
643         gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
644         empty.
646 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
648         * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
649         to ld_library_path.  Use add_path.  Add just find_libgcc_s
650         to ld_library_path, not every libgcc multilib directory.
652 2009-06-16  Wim Lewis  <wiml@hhhh.org>
654         * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
655         supposed to be callee-saved.
656         * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
657         return buffer for odd-size structs.
659 2009-06-16  Andreas Tobler  <a.tobler@schweiz.org>
661         PR libffi/40444
662         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
663         allow_stack_execute for Darwin.
665 2009-06-16  Andrew Haley  <aph@redhat.com>
667         * configure.ac (TARGETDIR): Add missing blank lines.
668         * configure: Regenerate.
670 2009-06-16  Andrew Haley  <aph@redhat.com>
672         * testsuite/libffi.call/cls_align_sint64.c,
673         testsuite/libffi.call/cls_align_uint64.c,
674         testsuite/libffi.call/cls_longdouble_va.c,
675         testsuite/libffi.call/cls_ulonglong.c,
676         testsuite/libffi.call/return_ll1.c,
677         testsuite/libffi.call/stret_medium2.c: Fix printf format
678         specifiers.
679         * testsuite/libffi.call/ffitest.h,
680         testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
682 2009-06-15  Andrew Haley  <aph@redhat.com>
684         * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
685         * testsuite/libffi.call/err_bad_abi.c: Likewise.
687 2009-06-12  Andrew Haley  <aph@redhat.com>
689         * Makefile.am: Remove info_TEXINFOS.
691 2009-06-12  Andrew Haley  <aph@redhat.com>
693         * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
694         testsuite/libffi.call/cls_align_uint64.c,
695         testsuite/libffi.call/cls_ulonglong.c,
696         testsuite/libffi.call/return_ll1.c,
697         testsuite/libffi.call/stret_medium2.c: Fix printf format
698         specifiers.
699         testsuite/libffi.special/unwindtest.cc: include stdint.h.
701 2009-06-11  Timothy Wall  <twall@users.sf.net>
703         * Makefile.am,
704         configure.ac,
705         include/ffi.h.in,
706         include/ffi_common.h,
707         src/closures.c,
708         src/dlmalloc.c,
709         src/x86/ffi.c,
710         src/x86/ffitarget.h,
711         src/x86/win64.S (new),
712         README: Added win64 support (mingw or MSVC)
713         * Makefile.in,
714         include/Makefile.in,
715         man/Makefile.in,
716         testsuite/Makefile.in,
717         configure,
718         aclocal.m4: Regenerated
719         * ltcf-c.sh: properly escape cygwin/w32 path
720         * man/ffi_call.3: Clarify size requirements for return value.
721         * src/x86/ffi64.c: Fix filename in comment.
722         * src/x86/win32.S: Remove unused extern.
724         * testsuite/libffi.call/closure_fn0.c,
725         testsuite/libffi.call/closure_fn1.c,
726         testsuite/libffi.call/closure_fn2.c,
727         testsuite/libffi.call/closure_fn3.c,
728         testsuite/libffi.call/closure_fn4.c,
729         testsuite/libffi.call/closure_fn5.c,
730         testsuite/libffi.call/closure_fn6.c,
731         testsuite/libffi.call/closure_stdcall.c,
732         testsuite/libffi.call/cls_12byte.c,
733         testsuite/libffi.call/cls_16byte.c,
734         testsuite/libffi.call/cls_18byte.c,
735         testsuite/libffi.call/cls_19byte.c,
736         testsuite/libffi.call/cls_1_1byte.c,
737         testsuite/libffi.call/cls_20byte.c,
738         testsuite/libffi.call/cls_20byte1.c,
739         testsuite/libffi.call/cls_24byte.c,
740         testsuite/libffi.call/cls_2byte.c,
741         testsuite/libffi.call/cls_3_1byte.c,
742         testsuite/libffi.call/cls_3byte1.c,
743         testsuite/libffi.call/cls_3byte2.c,
744         testsuite/libffi.call/cls_4_1byte.c,
745         testsuite/libffi.call/cls_4byte.c,
746         testsuite/libffi.call/cls_5_1_byte.c,
747         testsuite/libffi.call/cls_5byte.c,
748         testsuite/libffi.call/cls_64byte.c,
749         testsuite/libffi.call/cls_6_1_byte.c,
750         testsuite/libffi.call/cls_6byte.c,
751         testsuite/libffi.call/cls_7_1_byte.c,
752         testsuite/libffi.call/cls_7byte.c,
753         testsuite/libffi.call/cls_8byte.c,
754         testsuite/libffi.call/cls_9byte1.c,
755         testsuite/libffi.call/cls_9byte2.c,
756         testsuite/libffi.call/cls_align_double.c,
757         testsuite/libffi.call/cls_align_float.c,
758         testsuite/libffi.call/cls_align_longdouble.c,
759         testsuite/libffi.call/cls_align_longdouble_split.c,
760         testsuite/libffi.call/cls_align_longdouble_split2.c,
761         testsuite/libffi.call/cls_align_pointer.c,
762         testsuite/libffi.call/cls_align_sint16.c,
763         testsuite/libffi.call/cls_align_sint32.c,
764         testsuite/libffi.call/cls_align_sint64.c,
765         testsuite/libffi.call/cls_align_uint16.c,
766         testsuite/libffi.call/cls_align_uint32.c,
767         testsuite/libffi.call/cls_align_uint64.c,
768         testsuite/libffi.call/cls_dbls_struct.c,
769         testsuite/libffi.call/cls_double.c,
770         testsuite/libffi.call/cls_double_va.c,
771         testsuite/libffi.call/cls_float.c,
772         testsuite/libffi.call/cls_longdouble.c,
773         testsuite/libffi.call/cls_longdouble_va.c,
774         testsuite/libffi.call/cls_multi_schar.c,
775         testsuite/libffi.call/cls_multi_sshort.c,
776         testsuite/libffi.call/cls_multi_sshortchar.c,
777         testsuite/libffi.call/cls_multi_uchar.c,
778         testsuite/libffi.call/cls_multi_ushort.c,
779         testsuite/libffi.call/cls_multi_ushortchar.c,
780         testsuite/libffi.call/cls_pointer.c,
781         testsuite/libffi.call/cls_pointer_stack.c,
782         testsuite/libffi.call/cls_schar.c,
783         testsuite/libffi.call/cls_sint.c,
784         testsuite/libffi.call/cls_sshort.c,
785         testsuite/libffi.call/cls_uchar.c,
786         testsuite/libffi.call/cls_uint.c,
787         testsuite/libffi.call/cls_ulonglong.c,
788         testsuite/libffi.call/cls_ushort.c,
789         testsuite/libffi.call/err_bad_abi.c,
790         testsuite/libffi.call/err_bad_typedef.c,
791         testsuite/libffi.call/float2.c,
792         testsuite/libffi.call/huge_struct.c,
793         testsuite/libffi.call/nested_struct.c,
794         testsuite/libffi.call/nested_struct1.c,
795         testsuite/libffi.call/nested_struct10.c,
796         testsuite/libffi.call/nested_struct2.c,
797         testsuite/libffi.call/nested_struct3.c,
798         testsuite/libffi.call/nested_struct4.c,
799         testsuite/libffi.call/nested_struct5.c,
800         testsuite/libffi.call/nested_struct6.c,
801         testsuite/libffi.call/nested_struct7.c,
802         testsuite/libffi.call/nested_struct8.c,
803         testsuite/libffi.call/nested_struct9.c,
804         testsuite/libffi.call/problem1.c,
805         testsuite/libffi.call/return_ldl.c,
806         testsuite/libffi.call/return_ll1.c,
807         testsuite/libffi.call/stret_large.c,
808         testsuite/libffi.call/stret_large2.c,
809         testsuite/libffi.call/stret_medium.c,
810         testsuite/libffi.call/stret_medium2.c,
811         testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
812         of checking for MMAP.  Use intptr_t instead of long casts.
814 2009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
816         * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
817         * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
818         * testsuite/libffi.call/err_bad_typedef.c: Likewise.
820 2009-06-09  Andrew Haley  <aph@redhat.com>
822         * src/x86/freebsd.S: Add missing file.
824 2009-06-08  Andrew Haley  <aph@redhat.com>
826         Import from libffi 3.0.8:
828         * doc/libffi.texi: New file.
829         * doc/libffi.info: Likewise.
830         * doc/stamp-vti: Likewise.
831         * man/Makefile.am: New file.
832         * man/ffi_call.3: New file.
834         * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
835         src/dlmalloc.c.
836         (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
838         * configure.ac: Bump version to 3.0.8.
839         parisc*-*-linux*: Add.
840         i386-*-freebsd* | i386-*-openbsd*: Add.
841         powerpc-*-beos*: Add.
842         AM_CONDITIONAL X86_FREEBSD: Add.
843         AC_CONFIG_FILES: Add man/Makefile.
845         * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
847 2009-06-08  Andrew Haley  <aph@redhat.com>
849         * README: Import from libffi 3.0.8.
851 2009-06-08  Andrew Haley  <aph@redhat.com>
853         * testsuite/libffi.call/err_bad_abi.c: Add xfails.
854         * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
855         * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
856         * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
858         * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
859         * testsuite/libffi.call/stret_medium.c: Likewise.
860         * testsuite/libffi.call/stret_large2.c: Likewise.
861         * testsuite/libffi.call/stret_large.c:  Likewise.
863 2008-12-26  Timothy Wall  <twall@users.sf.net>
865         * testsuite/libffi.call/cls_longdouble.c,
866         testsuite/libffi.call/cls_longdouble_va.c,
867         testsuite/libffi.call/cls_align_longdouble.c,
868         testsuite/libffi.call/cls_align_longdouble_split.c,
869         testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
870         failures on x86_64 cygwin/mingw.
872 2008-12-22  Timothy Wall  <twall@users.sf.net>
874         * testsuite/libffi.call/closure_fn0.c,
875         testsuite/libffi.call/closure_fn1.c,
876         testsuite/libffi.call/closure_fn2.c,
877         testsuite/libffi.call/closure_fn3.c,
878         testsuite/libffi.call/closure_fn4.c,
879         testsuite/libffi.call/closure_fn5.c,
880         testsuite/libffi.call/closure_fn6.c,
881         testsuite/libffi.call/closure_loc_fn0.c,
882         testsuite/libffi.call/closure_stdcall.c,
883         testsuite/libffi.call/cls_align_pointer.c,
884         testsuite/libffi.call/cls_pointer.c,
885         testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
886         pointer to integer (intptr_t).
887         * testsuite/libffi.call/cls_longdouble.c: disable for win64.
889 2008-07-24  Anthony Green  <green@redhat.com>
891         * testsuite/libffi.call/cls_dbls_struct.c,
892         testsuite/libffi.call/cls_double_va.c,
893         testsuite/libffi.call/cls_longdouble.c,
894         testsuite/libffi.call/cls_longdouble_va.c,
895         testsuite/libffi.call/cls_pointer.c,
896         testsuite/libffi.call/cls_pointer_stack.c,
897         testsuite/libffi.call/err_bad_abi.c: Clean up failures from
898         compiler warnings.
900 2008-03-04  Anthony Green  <green@redhat.com>
901             Blake Chaffin
902             hos@tamanegi.org
904         * testsuite/libffi.call/cls_align_longdouble_split2.c
905           testsuite/libffi.call/cls_align_longdouble_split.c
906           testsuite/libffi.call/cls_dbls_struct.c
907           testsuite/libffi.call/cls_double_va.c
908           testsuite/libffi.call/cls_longdouble.c
909           testsuite/libffi.call/cls_longdouble_va.c
910           testsuite/libffi.call/cls_pointer.c
911           testsuite/libffi.call/cls_pointer_stack.c
912           testsuite/libffi.call/err_bad_abi.c
913           testsuite/libffi.call/err_bad_typedef.c
914           testsuite/libffi.call/stret_large2.c
915           testsuite/libffi.call/stret_large.c
916           testsuite/libffi.call/stret_medium2.c
917           testsuite/libffi.call/stret_medium.c: New tests from Apple.
919 2009-06-05  Andrew Haley  <aph@redhat.com>
921         * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
922         libffi.
924 2009-06-04  Andrew Haley  <aph@redhat.com>
926         * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
927         stdcall changes.
929 2008-02-26  Anthony Green  <green@redhat.com>
930             Thomas Heller  <theller@ctypes.org>
932         * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
933         comment.
935 2008-02-03  Timothy Wall  <twall@users.sf.net>
937         * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
938           offset based on code pointer, not data pointer.
940 2008-01-31  Timothy Wall <twall@users.sf.net>
942         * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
943         closures.
944         * src/x86/ffitarget.h: Increase size of trampoline for stdcall
945         closures.
946         * src/x86/win32.S: Add assembly for stdcall closure.
947         * src/x86/ffi.c: Initialize stdcall closure trampoline.
949 2009-06-04  Andrew Haley  <aph@redhat.com>
951         * include/ffi.h.in: Change void (*)() to void (*)(void).
952         * src/x86/ffi.c: Likewise.
954 2009-06-04  Andrew Haley  <aph@redhat.com>
956         * src/powerpc/ppc_closure.S: Insert licence header.
957         * src/powerpc/linux64_closure.S: Likewise.
958         * src/m68k/sysv.S: Likewise.
960         * src/sh64/ffi.c: Change void (*)() to void (*)(void).
961         * src/powerpc/ffi.c: Likewise.
962         * src/powerpc/ffi_darwin.c: Likewise.
963         * src/m32r/ffi.c: Likewise.
964         * src/sh64/ffi.c: Likewise.
965         * src/x86/ffi64.c: Likewise.
966         * src/alpha/ffi.c: Likewise.
967         * src/alpha/osf.S: Likewise.
968         * src/frv/ffi.c: Likewise.
969         * src/s390/ffi.c: Likewise.
970         * src/pa/ffi.c: Likewise.
971         * src/pa/hpux32.S: Likewise.
972         * src/ia64/unix.S: Likewise.
973         * src/ia64/ffi.c: Likewise.
974         * src/sparc/ffi.c: Likewise.
975         * src/mips/ffi.c: Likewise.
976         * src/sh/ffi.c: Likewise.
978 2008-02-15  David Daney  <ddaney@avtrex.com>
980         * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
981         Define (conditionally), and use it to include cachectl.h.
982         (ffi_prep_closure_loc): Fix cache flushing.
983         * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
985 2009-06-04  Andrew Haley  <aph@redhat.com>
987         include/ffi.h.in,
988         src/arm/ffitarget.h,
989         src/arm/ffi.c,
990         src/arm/sysv.S,
991         src/powerpc/ffitarget.h,
992         src/closures.c,
993         src/sh64/ffitarget.h,
994         src/sh64/ffi.c,
995         src/sh64/sysv.S,
996         src/types.c,
997         src/x86/ffi64.c,
998         src/x86/ffitarget.h,
999         src/x86/win32.S,
1000         src/x86/darwin.S,
1001         src/x86/ffi.c,
1002         src/x86/sysv.S,
1003         src/x86/unix64.S,
1004         src/alpha/ffitarget.h,
1005         src/alpha/ffi.c,
1006         src/alpha/osf.S,
1007         src/m68k/ffitarget.h,
1008         src/frv/ffitarget.h,
1009         src/frv/ffi.c,
1010         src/s390/ffitarget.h,
1011         src/s390/sysv.S,
1012         src/cris/ffitarget.h,
1013         src/pa/linux.S,
1014         src/pa/ffitarget.h,
1015         src/pa/ffi.c,
1016         src/raw_api.c,
1017         src/ia64/ffitarget.h,
1018         src/ia64/unix.S,
1019         src/ia64/ffi.c,
1020         src/ia64/ia64_flags.h,
1021         src/java_raw_api.c,
1022         src/debug.c,
1023         src/sparc/v9.S,
1024         src/sparc/ffitarget.h,
1025         src/sparc/ffi.c,
1026         src/sparc/v8.S,
1027         src/mips/ffitarget.h,
1028         src/mips/n32.S,
1029         src/mips/o32.S,
1030         src/mips/ffi.c,
1031         src/prep_cif.c,
1032         src/sh/ffitarget.h,
1033         src/sh/ffi.c,
1034         src/sh/sysv.S: Update license text.
1036 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
1038         * src/x86/win32.S (_ffi_closure_STDCALL):  New function.
1039         (.eh_frame):  Add FDE for it.
1041 2009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
1043         * configure.ac:  Also check if assembler supports pc-relative
1044         relocs on X86_WIN32 targets.
1045         * configure:  Regenerate.
1046         * src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
1047         (_ffi_call_SYSV):  Add missing function type symbol .def and
1048         add EH markup labels.
1049         (_ffi_call_STDCALL):  Likewise.
1050         (_ffi_closure_SYSV):  Likewise.
1051         (_ffi_closure_raw_SYSV):  Likewise.
1052         (.eh_frame):  Add hand-crafted EH data.
1054 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1056         * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1057         version 3 of the GNU General Public License and to point readers
1058         at the COPYING3 file and the FSF's license web page.
1059         * testsuite/libffi.call/call.exp: Likewise.
1060         * testsuite/libffi.special/special.exp: Likewise.
1062 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1064         * configure: Regenerate.
1066 2008-12-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1068         PR libffi/26048
1069         * configure.ac (HAVE_AS_X86_PCREL): New test.
1070         * configure: Regenerate.
1071         * fficonfig.h.in: Regenerate.
1072         * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1073         RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1074         RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1075         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1076         * src/x86/unix64.S (.Lstore_table): Move to .text section.
1077         (.Lload_table): Likewise.
1078         (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1080 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1082         * configure: Regenerate.
1084 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1086         * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1087         signed/unsigned int8/16 return values.
1088         * src/sparc/v8.S (ffi_call_v8): Likewise.
1089         (ffi_closure_v8): Likewise.
1091 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1092             Steve Ellcey  <sje@cup.hp.com>
1094         * configure: Regenerate for new libtool.
1095         * Makefile.in: Ditto.
1096         * include/Makefile.in: Ditto.
1097         * aclocal.m4: Ditto.
1099 2008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
1101         * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1102         FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1103         Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1104         Adjust copyright notice.
1105         * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1106         register or two register to use for FFI_SYSV structs.
1107         (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1108         (ffi_closure_helper_SYSV): Fix the return type for
1109         FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1110         Adjust copyright notice.
1112 2008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1114         * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1115         int.
1117 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1119         * configure: Regenerate.
1120         * include/Makefile.in: Regenerate.
1121         * testsuite/Makefile.in: Regenerate.
1123 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
1125         * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1126         powerpc-*-beos*): Remove.
1127         * configure: Regenerate.
1129 2008-05-09  Julian Brown  <julian@codesourcery.com>
1131         * Makefile.am (LTLDFLAGS): New.
1132         (libffi_la_LDFLAGS): Use above.
1133         * Makefile.in: Regenerate.
1135 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1137         PR bootstrap/35457
1138         * aclocal.m4: Regenerate.
1139         * configure: Regenerate.
1141 2008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>
1143         * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1144         * src/sh64/sysv.S: Likewise.
1146 2008-03-26  Daniel Jacobowitz  <dan@debian.org>
1148         * src/arm/sysv.S: Fix ARM comment marker.
1150 2008-03-26  Jakub Jelinek  <jakub@redhat.com>
1152         * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1153         * src/s390/sysv.S: Likewise.
1154         * src/powerpc/ppc_closure.S: Likewise.
1155         * src/powerpc/sysv.S: Likewise.
1156         * src/x86/unix64.S: Likewise.
1157         * src/x86/sysv.S: Likewise.
1158         * src/sparc/v8.S: Likewise.
1159         * src/sparc/v9.S: Likewise.
1160         * src/m68k/sysv.S: Likewise.
1161         * src/arm/sysv.S: Likewise.
1163 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1165         * aclocal.m4: Regenerate.
1166         * configure: Likewise.
1167         * Makefile.in: Likewise.
1168         * include/Makefile.in: Likewise.
1169         * testsuite/Makefile.in: Likewise.
1171 2008-02-12  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
1172             Andreas Tobler  <a.tobler@schweiz.org>
1174         * configure.ac: Add amd64-*-freebsd* target.
1175         * configure: Regenerate.
1177 2008-01-30  H.J. Lu  <hongjiu.lu@intel.com>
1179         PR libffi/34612
1180         * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1181         returning struct.
1183         * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1184         tests.
1186 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
1188         * configure: Regenerate.
1190 2008-01-06  Andreas Tobler  <a.tobler@schweiz.org>
1192         * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1194 2008-01-05  Andreas Tobler  <a.tobler@schweiz.org>
1196         PR testsuite/32843
1197         * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1198         signed/unsigned int8/16 for X86_DARWIN.
1199         Updated copyright info.
1200         Handle one and two byte structs with special cif->flags.
1201         * src/x86/ffitarget.h: Add special types for one and two byte structs.
1202         Updated copyright info.
1203         * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1204         sysv.S
1205         Remove code to pop args from the stack after call.
1206         Special-case signed/unsigned for int8/16, one and two byte structs.
1207         (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1208         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1209         FFI_TYPE_SINT32.
1210         Updated copyright info.
1212 2007-12-08  David Daney  <ddaney@avtrex.com>
1214         * src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with
1215         SUBU, add with ADDU and use smaller code sequences.
1217 2007-12-07  David Daney  <ddaney@avtrex.com>
1219         * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1220         type.
1222 2007-12-06  David Daney  <ddaney@avtrex.com>
1224         * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1225         defined.
1226         (ffi_java_raw): New typedef.
1227         (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1228         ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1229         ffi_java_raw.
1230         (ffi_java_raw_closure) : Same.
1231         (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1232         parameter types.
1233         * src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
1234         FFI_SIZEOF_JAVA_RAW.
1235         (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1236         Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1237         sizeof(ffi_java_raw) for alignment calculations.
1238         (ffi_java_ptrarray_to_raw): Same.
1239         (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
1240         if FFI_SIZEOF_JAVA_RAW == 4.
1241         (ffi_java_raw_to_rvalue): Same.
1242         (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1243         (ffi_java_translate_args): Same.
1244         (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1245         parameter types.
1246         * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1248 2007-12-06  David Daney  <ddaney@avtrex.com>
1250         * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
1251         pointer values.
1253 2007-12-01  Andreas Tobler  <a.tobler@schweiz.org>
1255         PR libffi/31937
1256         * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1257         Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1258         * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1259         set the NUM_FPR_ARG_REGISTERS according to.
1260         Add support for potential soft-float support under hard-float
1261         architecture.
1262         (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1263         FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1264         to the FFI_LINUX_SOFT_FLOAT ABI.
1265         (ffi_prep_cif_machdep): Likewise.
1266         (ffi_closure_helper_SYSV): Likewise.
1267         * src/powerpc/ppc_closure.S: Make sure not to store float/double
1268         on archs where __NO_FPRS__ is true.
1269         Add FFI_TYPE_UINT128 support.
1270         * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1271         Adjust copyright notice.
1273 2007-11-25  Andreas Tobler  <a.tobler@schweiz.org>
1275         * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1276         * include/ffi_common.h: ... here.
1277         Update copyright.
1279 2007-11-17  Andreas Tobler  <a.tobler@schweiz.org>
1281         * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1282         * src/powerpc/linux64.S: Likewise.
1283         * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1284         * testsuite/libffi.call/return_ldl.c: New test.
1286 2007-09-04    <aph@redhat.com>
1288         * src/arm/sysv.S (UNWIND): New.
1289         (Whole file): Conditionally compile unwinder directives.
1290         * src/arm/sysv.S: Add unwinder directives.
1292         * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1293         Only treat r0 as a struct address if we're actually returning a
1294         struct by address.
1295         Only copy the bytes that are actually within a struct.
1296         (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1297         is returned in r0, not passed by address.
1298         (ffi_call): Allocate a word-sized temporary for the case where
1299         a composite is returned in r0.
1300         (ffi_prep_incoming_args_SYSV): Align as necessary.
1302 2007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>
1304         * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
1305         directly using the sys_cacheflush syscall.
1307 2007-07-27  Andrew Haley  <aph@redhat.com>
1309         * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1311 2007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>
1313         * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1314         * configure.ac: Likewise.
1315         * Makefile.in: Regenerate.
1316         * include/Makefile.in: Likewise.
1317         * testsuite/Makefile.in: Likewise.
1318         * configure: Likewise.
1320 2007-08-24  David Daney  <ddaney@avtrex.com>
1322         * testsuite/libffi.call/return_sl.c: New test.
1324 2007-08-10  David Daney  <ddaney@avtrex.com>
1326         * testsuite/libffi.call/cls_multi_ushort.c,
1327         testsuite/libffi.call/cls_align_uint16.c,
1328         testsuite/libffi.call/nested_struct1.c,
1329         testsuite/libffi.call/nested_struct3.c,
1330         testsuite/libffi.call/cls_7_1_byte.c,
1331         testsuite/libffi.call/nested_struct5.c,
1332         testsuite/libffi.call/cls_double.c,
1333         testsuite/libffi.call/nested_struct7.c,
1334         testsuite/libffi.call/cls_sint.c,
1335         testsuite/libffi.call/nested_struct9.c,
1336         testsuite/libffi.call/cls_20byte1.c,
1337         testsuite/libffi.call/cls_multi_sshortchar.c,
1338         testsuite/libffi.call/cls_align_sint64.c,
1339         testsuite/libffi.call/cls_3byte2.c,
1340         testsuite/libffi.call/cls_multi_schar.c,
1341         testsuite/libffi.call/cls_multi_uchar.c,
1342         testsuite/libffi.call/cls_19byte.c,
1343         testsuite/libffi.call/cls_9byte1.c,
1344         testsuite/libffi.call/cls_align_float.c,
1345         testsuite/libffi.call/closure_fn1.c,
1346         testsuite/libffi.call/problem1.c,
1347         testsuite/libffi.call/closure_fn3.c,
1348         testsuite/libffi.call/cls_sshort.c,
1349         testsuite/libffi.call/closure_fn5.c,
1350         testsuite/libffi.call/cls_align_double.c,
1351         testsuite/libffi.call/nested_struct.c,
1352         testsuite/libffi.call/cls_2byte.c,
1353         testsuite/libffi.call/nested_struct10.c,
1354         testsuite/libffi.call/cls_4byte.c,
1355         testsuite/libffi.call/cls_6byte.c,
1356         testsuite/libffi.call/cls_8byte.c,
1357         testsuite/libffi.call/cls_multi_sshort.c,
1358         testsuite/libffi.call/cls_align_sint16.c,
1359         testsuite/libffi.call/cls_align_uint32.c,
1360         testsuite/libffi.call/cls_20byte.c,
1361         testsuite/libffi.call/cls_float.c,
1362         testsuite/libffi.call/nested_struct2.c,
1363         testsuite/libffi.call/cls_5_1_byte.c,
1364         testsuite/libffi.call/nested_struct4.c,
1365         testsuite/libffi.call/cls_24byte.c,
1366         testsuite/libffi.call/nested_struct6.c,
1367         testsuite/libffi.call/cls_64byte.c,
1368         testsuite/libffi.call/nested_struct8.c,
1369         testsuite/libffi.call/cls_uint.c,
1370         testsuite/libffi.call/cls_multi_ushortchar.c,
1371         testsuite/libffi.call/cls_schar.c,
1372         testsuite/libffi.call/cls_uchar.c,
1373         testsuite/libffi.call/cls_align_uint64.c,
1374         testsuite/libffi.call/cls_ulonglong.c,
1375         testsuite/libffi.call/cls_align_longdouble.c,
1376         testsuite/libffi.call/cls_1_1byte.c,
1377         testsuite/libffi.call/cls_12byte.c,
1378         testsuite/libffi.call/cls_3_1byte.c,
1379         testsuite/libffi.call/cls_3byte1.c,
1380         testsuite/libffi.call/cls_4_1byte.c,
1381         testsuite/libffi.call/cls_6_1_byte.c,
1382         testsuite/libffi.call/cls_16byte.c,
1383         testsuite/libffi.call/cls_18byte.c,
1384         testsuite/libffi.call/closure_fn0.c,
1385         testsuite/libffi.call/cls_9byte2.c,
1386         testsuite/libffi.call/closure_fn2.c,
1387         testsuite/libffi.call/closure_fn4.c,
1388         testsuite/libffi.call/cls_ushort.c,
1389         testsuite/libffi.call/closure_fn6.c,
1390         testsuite/libffi.call/cls_5byte.c,
1391         testsuite/libffi.call/cls_align_pointer.c,
1392         testsuite/libffi.call/cls_7byte.c,
1393         testsuite/libffi.call/cls_align_sint32.c,
1394         testsuite/libffi.special/unwindtest_ffi_call.cc,
1395         testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1397 2007-08-10  David Daney  <ddaney@avtrex.com>
1399         PR libffi/28313
1400         * configure.ac: Don't treat mips64 as a special case.
1401         * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1402         * configure: Regenerate
1403         * Makefile.in: Ditto.
1404         * fficonfig.h.in: Ditto.
1405         * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1406         (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1407         (FFI_DEFAULT_ABI): Set for n64 case.
1408         (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1409         * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1410         (ffi_closure_N32): New function.
1411         (.eh_frame): New section
1412         * src/mips/o32.S: Clean up comments.
1413         (ffi_closure_O32): Pass ffi_closure parameter in $12.
1414         * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1415         _MIPS_SIM == _ABIN32 throughout.
1416         (FFI_MIPS_STOP_HERE): New, use in place of
1417         ffi_stop_here.
1418         (ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
1419         to support n32/n64 ABIs.
1420         (calc_n32_struct_flags): Rewrite.
1421         (calc_n32_return_struct_flags): Remove unused variable.  Reverse
1422         position of flag bits.
1423         (ffi_prep_cif_machdep): Rewrite n32 portion.
1424         (ffi_call): Enable for n64.  Add special handling for small structure
1425         return values.
1426         (ffi_prep_closure_loc): Add n32 and n64 support.
1427         (ffi_closure_mips_inner_O32): Add cast to silence warning.
1428         (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1430 2007-08-08  David Daney  <ddaney@avtrex.com>
1432         * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1433         * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1434         specifiers.
1435         * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1436         * testsuite/libffi.call/cls_sint.c (main): Ditto.
1437         * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1438         * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1439         * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1440         * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1441         * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1442         * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1443         * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1444         * testsuite/libffi.call/return_fl3.c (main): Ditto.
1445         * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1446         * testsuite/libffi.call/nested_struct.c (main): Ditto.
1447         * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1448         * testsuite/libffi.call/return_ll1.c (main): Ditto.
1449         * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1450         * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1451         * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1452         * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1453         * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1454         * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1455         * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1456         * testsuite/libffi.call/cls_uint.c (main): Ditto.
1457         * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1458         * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1459         * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1460         * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1461         * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1462         * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1463         * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1464         * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1465         * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1467 2007-08-07  Andrew Haley  <aph@redhat.com>
1469         * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1470         checkin.
1472 2007-08-06  Andrew Haley  <aph@redhat.com>
1474         PR testsuite/32843
1475         * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1476         FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1477         FFI_TYPE_SINT32.
1479 2007-08-02  David Daney  <ddaney@avtrex.com>
1481         * testsuite/libffi.call/return_ul.c (main): Define return type as
1482         ffi_arg.  Use proper printf conversion specifier.
1484 2007-07-30  Andrew Haley  <aph@redhat.com>
1486         PR testsuite/32843
1487         * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1488         signed/unsigned int8/16.
1489         * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1490         Use a jump table.
1491         Remove code to pop args from the stack after call.
1492         Special-case signed/unsigned int8/16.
1493         * testsuite/libffi.call/return_sc.c (main): Revert.
1495 2007-07-26  Richard Guenther  <rguenther@suse.de>
1497         PR testsuite/32843
1498         * testsuite/libffi.call/return_sc.c (main): Verify call
1499         result as signed char, not ffi_arg.
1501 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1503         * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1504         * configure: Regenerate.
1506 2007-07-11  David Daney  <ddaney@avtrex.com>
1508         * src/mips/ffi.c: Don't include sys/cachectl.h.
1509         (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1510         cacheflush().
1512 2007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
1514         * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1515         from (ffi_prep_closure): ... this.
1516         (FFI_INIT_TRAMPOLINE): Adjust.
1518 2005-12-31  Phil Blundell  <pb@reciva.com>
1520         * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1521         ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
1522         * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1523         * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1524         (FFI_CLOSURES): Enable closure support.
1526 2007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
1528         * testsuite/libffi.call/cls_multi_ushort.c,
1529         testsuite/libffi.call/cls_align_uint16.c,
1530         testsuite/libffi.call/nested_struct1.c,
1531         testsuite/libffi.call/nested_struct3.c,
1532         testsuite/libffi.call/cls_7_1_byte.c,
1533         testsuite/libffi.call/cls_double.c,
1534         testsuite/libffi.call/nested_struct5.c,
1535         testsuite/libffi.call/nested_struct7.c,
1536         testsuite/libffi.call/cls_sint.c,
1537         testsuite/libffi.call/nested_struct9.c,
1538         testsuite/libffi.call/cls_20byte1.c,
1539         testsuite/libffi.call/cls_multi_sshortchar.c,
1540         testsuite/libffi.call/cls_align_sint64.c,
1541         testsuite/libffi.call/cls_3byte2.c,
1542         testsuite/libffi.call/cls_multi_schar.c,
1543         testsuite/libffi.call/cls_multi_uchar.c,
1544         testsuite/libffi.call/cls_19byte.c,
1545         testsuite/libffi.call/cls_9byte1.c,
1546         testsuite/libffi.call/cls_align_float.c,
1547         testsuite/libffi.call/closure_fn1.c,
1548         testsuite/libffi.call/problem1.c,
1549         testsuite/libffi.call/closure_fn3.c,
1550         testsuite/libffi.call/cls_sshort.c,
1551         testsuite/libffi.call/closure_fn5.c,
1552         testsuite/libffi.call/cls_align_double.c,
1553         testsuite/libffi.call/cls_2byte.c,
1554         testsuite/libffi.call/nested_struct.c,
1555         testsuite/libffi.call/nested_struct10.c,
1556         testsuite/libffi.call/cls_4byte.c,
1557         testsuite/libffi.call/cls_6byte.c,
1558         testsuite/libffi.call/cls_8byte.c,
1559         testsuite/libffi.call/cls_multi_sshort.c,
1560         testsuite/libffi.call/cls_align_uint32.c,
1561         testsuite/libffi.call/cls_align_sint16.c,
1562         testsuite/libffi.call/cls_float.c,
1563         testsuite/libffi.call/cls_20byte.c,
1564         testsuite/libffi.call/cls_5_1_byte.c,
1565         testsuite/libffi.call/nested_struct2.c,
1566         testsuite/libffi.call/cls_24byte.c,
1567         testsuite/libffi.call/nested_struct4.c,
1568         testsuite/libffi.call/nested_struct6.c,
1569         testsuite/libffi.call/cls_64byte.c,
1570         testsuite/libffi.call/nested_struct8.c,
1571         testsuite/libffi.call/cls_uint.c,
1572         testsuite/libffi.call/cls_multi_ushortchar.c,
1573         testsuite/libffi.call/cls_schar.c,
1574         testsuite/libffi.call/cls_uchar.c,
1575         testsuite/libffi.call/cls_align_uint64.c,
1576         testsuite/libffi.call/cls_ulonglong.c,
1577         testsuite/libffi.call/cls_align_longdouble.c,
1578         testsuite/libffi.call/cls_1_1byte.c,
1579         testsuite/libffi.call/cls_12byte.c,
1580         testsuite/libffi.call/cls_3_1byte.c,
1581         testsuite/libffi.call/cls_3byte1.c,
1582         testsuite/libffi.call/cls_4_1byte.c,
1583         testsuite/libffi.call/cls_6_1_byte.c,
1584         testsuite/libffi.call/cls_16byte.c,
1585         testsuite/libffi.call/cls_18byte.c,
1586         testsuite/libffi.call/closure_fn0.c,
1587         testsuite/libffi.call/cls_9byte2.c,
1588         testsuite/libffi.call/closure_fn2.c,
1589         testsuite/libffi.call/closure_fn4.c,
1590         testsuite/libffi.call/cls_ushort.c,
1591         testsuite/libffi.call/closure_fn6.c,
1592         testsuite/libffi.call/cls_5byte.c,
1593         testsuite/libffi.call/cls_align_pointer.c,
1594         testsuite/libffi.call/cls_7byte.c,
1595         testsuite/libffi.call/cls_align_sint32.c,
1596         testsuite/libffi.special/unwindtest_ffi_call.cc,
1597         testsuite/libffi.special/unwindtest.cc: Enable for ARM.
1599 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1601         * aclocal.m4: Regenerated.
1603 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
1605         * configure: Regenerate.
1607 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
1609         * Makefile.in: Regenerate.
1610         * configure: Regenerate.
1611         * aclocal.m4: Regenerate.
1612         * include/Makefile.in: Regenerate.
1613         * testsuite/Makefile.in: Regenerate.
1615 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
1617         * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1618         ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1619         * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1620         * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1621         (FFI_CLOSURES): Enable closure support.
1623 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
1625         * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1626         * configure: Regenerate.
1627         * fficonfig.h.in: Regenerate.
1628         * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1629         CFI_OFFSET,CFI_DEF_CFA): New macros.
1630         (ffi_call_SYSV): Add callframe annotation.
1632 2007-05-10  Roman Zippel <zippel@linux-m68k.org>
1634         * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1635         numerous test suite failures.
1636         * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1638 2007-04-11  Paolo Bonzini  <bonzini@gnu.org>
1640         * Makefile.am (EXTRA_DIST): Bring up to date.
1641         * Makefile.in: Regenerate.
1642         * src/frv/eabi.S: Remove RCS keyword.
1644 2007-04-06  Richard Henderson  <rth@redhat.com>
1646         * configure.ac: Tidy target case.
1647         (HAVE_LONG_DOUBLE): Allow the target to override.
1648         * configure: Regenerate.
1649         * include/ffi.h.in: Don't define ffi_type_foo if
1650         LIBFFI_HIDE_BASIC_TYPES is defined.
1651         (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1652         to ffi_type_double.
1653         * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1654         (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1655         (ffi_type_longdouble): Special case for Alpha.  Don't define
1656         if long double == double.
1658         * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1659         (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1660         (ffi_call, ffi_closure_osf_inner): Likewise.
1661         (ffi_closure_osf_inner): Likewise.  Mark hidden.
1662         (ffi_call_osf, ffi_closure_osf): Mark hidden.
1663         * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1664         * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1665         (load_table): Handle 128-bit long double.
1667         * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1669 2007-04-06  Tom Tromey  <tromey@redhat.com>
1671         PR libffi/31491:
1672         * README: Fixed bug in example.
1674 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
1676         * src/closures.c: Include sys/statfs.h.
1677         (_GNU_SOURCE): Define on Linux.
1678         (FFI_MMAP_EXEC_SELINUX): Define.
1679         (selinux_enabled): New variable.
1680         (selinux_enabled_check): New function.
1681         (is_selinux_enabled): Define.
1682         (dlmmap): Use it.
1684 2007-03-24  Uros Bizjak  <ubizjak@gmail.com>
1686         * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1687         Use 'volatile float sum' to create sum of floats to avoid false
1688         negative due to excess precision on ix86 targets.
1689         (main): Ditto.
1691 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
1693         * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1694         patch.
1695         (ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
1697 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
1699         * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1700         (ffi_prep_closure_loc): New.
1701         (ffi_prep_raw_closure_loc): New.
1702         (ffi_prep_java_raw_closure_loc): New.
1703         * src/closures.c: New file.
1704         * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1705         Replace sflags with exec_offset.
1706         [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1707         sub_segment_exec_offset): New macros.
1708         (get_segment_flags, set_segment_flags, check_segment_merge): New
1709         macros.
1710         (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1711         (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1712         destroy_mspace): Use new macros.
1713         (sys_alloc): Silence warning.
1714         * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1715         * Makefile.in: Rebuilt.
1716         * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1717         terms of ffi_prep_closure_loc.
1718         * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1719         from...
1720         (ffi_prep_raw_closure): ... this.  Re-implement in terms of the
1721         renamed version.
1722         * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1723         adjusted from...
1724         (ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
1725         the renamed version.
1726         * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1727         (ffi_prep_closure): ... this.
1728         * src/pa/ffi.c: Likewise.
1729         * src/cris/ffi.c: Likewise.  Adjust.
1730         * src/frv/ffi.c: Likewise.
1731         * src/ia64/ffi.c: Likewise.
1732         * src/mips/ffi.c: Likewise.
1733         * src/powerpc/ffi_darwin.c: Likewise.
1734         * src/s390/ffi.c: Likewise.
1735         * src/sh/ffi.c: Likewise.
1736         * src/sh64/ffi.c: Likewise.
1737         * src/sparc/ffi.c: Likewise.
1738         * src/x86/ffi64.c: Likewise.
1739         * src/x86/ffi.c: Likewise.
1740         (FFI_INIT_TRAMPOLINE): Adjust.
1741         (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1742         (ffi_prep_raw_closure): ... this.
1743         * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1744         (ffi_prep_closure): ... this.
1745         (flush_icache): Adjust.
1747 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
1749         * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1750         Lea's malloc.
1752 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1754         * Makefile.am: Add dummy install-pdf target.
1755         * Makefile.in: Regenerate
1757 2007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
1759         * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1760         ffi_closure_helper_SYSV): Add long double handling.
1762 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1764         * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1765         immediately after bctrl instruction.
1767 2007-01-18  Alexandre Oliva  <aoliva@redhat.com>
1769         * Makefile.am (all-recursive, install-recursive,
1770         mostlyclean-recursive, clean-recursive, distclean-recursive,
1771         maintainer-clean-recursive): Add missing targets.
1772         * Makefile.in: Rebuilt.
1774 2006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
1776         * configure.ac: Add TARGET for x86_64-*-darwin*.
1777         * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1778         for X86_DARWIN.
1779         * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1780         * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1781         * configure: Regenerate.
1782         * Makefile.in: Regenerate.
1783         * include/Makefile.in: Regenerate.
1784         * testsuite/Makefile.in: Regenerate.
1785         * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1786         ffi_call only.
1788 2006-12-13  Andreas Tobler <a.tobler@schweiz.org>
1790         * aclocal.m4: Regenerate with aclocal -I .. as written in the
1791         Makefile.am.
1793 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
1795         * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1796         (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1797         Darwin.
1798         * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1799         * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1801 2006-10-10  Paolo Bonzini  <bonzini@gnu.org>
1802             Sandro Tolaini  <tolaini@libero.it>
1804         * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
1805         conditional.
1806         * configure: Regenerated.
1807         * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1808         (EXTRA_DIST): Add src/x86/darwin.S.
1809         * Makefile.in: Regenerated.
1810         * include/Makefile.in: Regenerated.
1811         * testsuite/Makefile.in: Regenerated.
1813         * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1814         X86_WIN32, and additionally align stack to 16 bytes.
1815         * src/x86/darwin.S: New, based on sysv.S.
1816         * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1818 2006-09-12  David Daney  <ddaney@avtrex.com>
1820         PR libffi/23935
1821         * include/Makefile.am: Install both ffi.h and ffitarget.h in
1822         $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1823         * aclocal.m4: Regenerated for automake 1.9.6.
1824         * Makefile.in: Regenerated.
1825         * include/Makefile.in: Regenerated.
1826         * testsuite/Makefile.in: Regenerated.
1828 2006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
1830         * include/ffi_common.h (struct): Revert accidental commit.
1832 2006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
1834         * include/ffi_common.h: Remove lint directives.
1835         * include/ffi.h.in: Likewise.
1837 2006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
1839         * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1840         for 32-bit architectures.
1841         * testsuite/libffi.call/return_ul.c: New test case.
1843 2006-07-19  David Daney  <ddaney@avtrex.com>
1845         * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1846         xfail remains for mips64.
1848 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
1850         * Makefile.am: Add install-html target. Add install-html to .PHONY
1851         * Makefile.in: Regenerate.
1852         * aclocal.m4: Regenerate.
1853         * include/Makefile.in: Regenerate.
1854         * testsuite/Makefile.in: Regenerate.
1856 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1858         * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1859         stack slot.
1861 2006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
1863         * README: Remove notice about 'Crazy Comments'.
1864         * src/debug.c: Remove lint directives. Cleanup white spaces.
1865         * src/java_raw_api.c: Likewise.
1866         * src/prep_cif.c: Likewise.
1867         * src/raw_api.c: Likewise.
1868         * src/ffitest.c: Delete. No longer needed, all test cases migrated
1869         to the testsuite.
1870         * src/arm/ffi.c: Remove lint directives.
1871         * src/m32r/ffi.c: Likewise.
1872         * src/pa/ffi.c: Likewise.
1873         * src/powerpc/ffi.c: Likewise.
1874         * src/powerpc/ffi_darwin.c: Likewise.
1875         * src/sh/ffi.c: Likewise.
1876         * src/sh64/ffi.c: Likewise.
1877         * src/x86/ffi.c: Likewise.
1878         * testsuite/libffi.call/float2.c: Likewise.
1879         * testsuite/libffi.call/promotion.c: Likewise.
1880         * testsuite/libffi.call/struct1.c: Likewise.
1882 2006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
1884         * src/pa/hpux32.S: Correct unwind offset calculation for
1885         ffi_closure_pa32.
1886         * src/pa/linux.S: Likewise.
1888 2006-04-12  James E Wilson  <wilson@specifix.com>
1890         PR libgcj/26483
1891         * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
1892         (hfa_type_load): Call stf_spill.
1893         (hfa_type_store): Call ldf_fill.
1894         (ffi_call): Adjust calls to above routines.  Add local temps for
1895         macro result.
1897 2006-04-10  Matthias Klose  <doko@debian.org>
1899         * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
1900         directory names containing underscores.
1902 2006-04-07  James E Wilson  <wilson@specifix.com>
1904         * testsuite/libffi.call/float4.c: New testcase.
1906 2006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1907             Andreas Tobler  <a.tobler@schweiz.ch>
1909         * Makefile.am: Add PA_HPUX port.
1910         * Makefile.in: Regenerate.
1911         * include/Makefile.in: Likewise.
1912         * testsuite/Makefile.in: Likewise.
1913         * configure.ac: Add PA_HPUX rules.
1914         * configure: Regenerate.
1915         * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
1916         Add PA_HPUX and PA64_HPUX.
1917         Rename FFI_LINUX ABI to FFI_PA32 ABI.
1918         (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
1919         (FFI_TYPE_SMALL_STRUCT2): Define.
1920         (FFI_TYPE_SMALL_STRUCT4): Likewise.
1921         (FFI_TYPE_SMALL_STRUCT8): Likewise.
1922         (FFI_TYPE_SMALL_STRUCT3): Redefine.
1923         (FFI_TYPE_SMALL_STRUCT5): Likewise.
1924         (FFI_TYPE_SMALL_STRUCT6): Likewise.
1925         (FFI_TYPE_SMALL_STRUCT7): Likewise.
1926         * src/pa/ffi.c (ROUND_DOWN): Delete.
1927         (fldw, fstw, fldd, fstd): Use '__asm__'.
1928         (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
1929         FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
1930         (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
1931         Simplify incrementing of stack slot variable. Change type of local
1932         'n' to unsigned int.
1933         (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
1934         double on PA_HPUX.
1935         (ffi_prep_cif_machdep): Likewise.
1936         (ffi_call): Likewise.
1937         (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
1938         return type to ffi_status. Simplify incrementing of stack slot
1939         variable. Only copy floating point argument registers when PA_LINUX
1940         is true. Reformat debug statement.
1941         Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
1942         FFI_TYPE_SMALL_STRUCT8.
1943         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
1944         declaration.
1945         (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
1946         Add nops to cache flush.  Add trampoline for PA_HPUX.
1947         * src/pa/hpux32.S: New file.
1948         * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
1949         ffi_prep_args_LINUX to ffi_prep_args_pa32.
1950         Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
1951         unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
1952         argument type checks so that common argument types appear first.
1953         (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
1954         ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
1956 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
1958         * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
1959         for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
1960         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
1961         FFI_TYPE_LONGDOUBLE.
1962         (ffi_prep_args64): Assert using IBM extended double.
1963         (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
1964         Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
1965         (ffi_call): Handle FFI_LINUX.
1966         (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
1967         gpr3 return pointer as for struct return.  Handle FFI_LINUX
1968         FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
1969         unnecessarily.
1970         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
1971         for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
1972         Don't use r6 as pointer to results, instead use sp offset.  Don't
1973         make a special call to load lr with case table address, instead
1974         use offset from previous call.
1975         * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
1976         * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
1977         return.
1979 2006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1981         * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
1982         passed with FP registers correctly.
1983         (ffi_closure_helper_SYSV): Likewise.
1984         * src/sh64/sysv.S: Likewise.
1986 2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
1988         * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
1989         args and userdata unused.
1990         (closure_test_fn1): Mark cif and userdata unused.
1991         (main): Remove unused res.
1993 2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
1995         * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
1996         -O2, -O3, -Os and the warning flags -W -Wall.
1997         * testsuite/libffi.special/special.exp: Likewise.
1998         * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
1999         unused parameter unused for gcc or else do nothing.
2000         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2001         * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2002         and userdata unused.
2003         * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2004         * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2005         * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2006         * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2007         * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2008         * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2009         * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2010         * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2011         * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2012         * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2013         * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2014         * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2015         * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2016         * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2017         * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2018         * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2019         * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2020         * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2021         * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2022         * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2023         * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2024         * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2025         * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2026         * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2027         Likewise.
2028         * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2029         Likewise.
2030         * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2031         Likewise.
2032         * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2033         void* to avoid compiler warning.
2034         (main): Likewise.
2035         (cls_struct_align_gn): Mark cif and userdata unused.
2036         * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2037         Likewise.
2038         * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2039         Likewise.
2040         * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2041         Likewise.
2042         * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2043         Likewise.
2044         * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2045         Likewise.
2046         * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2047         * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2048         * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2049         data unused.
2050         (main): Cast res_call to silence gcc.
2051         * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2052         data unused.
2053         (main): Cast res_call to silence gcc.
2054         * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2055         and data unused.
2056         (main): Cast res_call to silence gcc.
2057         * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2058         data unused.
2059         (main): Cast res_call to silence gcc.
2060         * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2061         data unused.
2062         (main): Cast res_call to silence gcc.
2063         * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2064         and data unused.
2065         (main): Cast res_call to silence gcc.
2066         * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2067         userdata unused.
2068         (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2069         * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2070         userdata unused.
2071         (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2072         * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2073         userdata unused.
2074         (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2075         * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
2076         userdata unused.
2077         (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2078         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2079         userdata unused.
2080         (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2081         * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2082         and userdata unused.
2083         * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2084         userdata unused.
2085         (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2086         * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2087         * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2088         Cleanup white spaces.
2089         * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2090         * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2091         cif and userdata unused.
2092         * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2093         Likewise.
2094         * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2095         * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2096         formatters to silence gcc.
2097         (B_gn): Mark cif and userdata unused.
2098         * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2099         unused.
2100         * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2101         (B_gn): Mark cif and userdata unused.
2102         * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2103         unused.
2104         * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2105         (B_gn): Mark cif and userdata unused.
2106         * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2107         unused.
2108         * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2109         * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2110         * testsuite/libffi.call/problem1.c (stub): Likewise.
2111         * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2112         gcc.
2113         * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2114         in the last commit for this test case in the test case itself.
2115         * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2116         unused.
2117         * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2118         * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2119         * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2120         * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2121         * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2122         * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2124 2006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2126         * src/sh/sysv.S: Fix register numbers in the FDE for
2127         ffi_closure_SYSV.
2129 2006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
2131         * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2132         declaration to avoid a false negative on ix86. See PR323.
2134 2006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2136         * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2137         and cast integer to void * if needed.  Update the pointer to
2138         the FP register saved area correctly.
2140 2006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
2142         * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2143         is fixed.
2144         * testsuite/libffi.call/nested_struct4.c: Likewise.
2146 2006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
2148         * testsuite/libffi.call/return_dbl.c: New test case.
2149         * testsuite/libffi.call/return_dbl1.c: Likewise.
2150         * testsuite/libffi.call/return_dbl2.c: Likewise.
2151         * testsuite/libffi.call/return_fl.c: Likewise.
2152         * testsuite/libffi.call/return_fl1.c: Likewise.
2153         * testsuite/libffi.call/return_fl2.c: Likewise.
2154         * testsuite/libffi.call/return_fl3.c: Likewise.
2155         * testsuite/libffi.call/closure_fn6.c: Likewise.
2157         * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2158         definition.
2159         * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2160         here to be used by other test cases too.
2162         * testsuite/libffi.call/nested_struct10.c: New test case.
2163         * testsuite/libffi.call/nested_struct9.c: Likewise.
2164         * testsuite/libffi.call/nested_struct8.c: Likewise.
2165         * testsuite/libffi.call/nested_struct7.c: Likewise.
2166         * testsuite/libffi.call/nested_struct6.c: Likewise.
2167         * testsuite/libffi.call/nested_struct5.c: Likewise.
2168         * testsuite/libffi.call/nested_struct4.c: Likewise.
2170 2006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
2172         * configure.ac: Enable libffi for sparc64-*-freebsd*.
2173         * configure: Rebuilt.
2175 2006-01-18  Jakub Jelinek  <jakub@redhat.com>
2177         * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2178         instead do the shifting inline.
2179         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2180         shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
2181         and 8 byte structs, for the remaining struct sizes don't call
2182         __lshrdi3, instead do the shifting inline.
2184 2005-12-07  Thiemo Seufer  <ths@networkno.de>
2186         * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2187         missing parentheses.
2188         * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2189         and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2190         (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2191         A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2192         V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2193         FA_0_0_OFF2.
2194         * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2195         endianness bugs.
2196         (ffi_prep_closure): Improve trampoline instruction scheduling.
2197         (ffi_closure_mips_inner_O32): Fix endianness bugs.
2199 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2201         * src/powerpc/ffi.c: Formatting.
2202         (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2203         (ffi_prep_args64): Likewise.
2205 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
2207         * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2208         darwin, use -shared-libgcc not -lgcc_s, and explain why.
2210 2005-09-26  Tom Tromey  <tromey@redhat.com>
2212         * testsuite/libffi.call/float1.c (value_type): New typedef.
2213         (CANARY): New define.
2214         (main): Check for result buffer overflow.
2215         * src/powerpc/linux64.S: Handle linux64 long double returns.
2216         * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2217         (ffi_prep_cif_machdep): Handle linux64 long double returns.
2219 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
2221         PR target/23404
2222         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2223         homed fp args.
2224         (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2226 2005-08-11  Jakub Jelinek  <jakub@redhat.com>
2228         * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2229         (AH_BOTTOM): Add FFI_HIDDEN definition.
2230         * configure: Rebuilt.
2231         * fficonfig.h.in: Rebuilt.
2232         * src/powerpc/ffi.c (hidden): Remove.
2233         (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2234         ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2235         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2236         .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2237         * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2238         add FFI_HIDDEN to its prototype.
2239         (ffi_closure_SYSV_inner): New.
2240         * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2241         * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2243 2005-08-10  Alfred M. Szmidt  <ams@gnu.org>
2245         PR libffi/21819:
2246         * configure: Rebuilt.
2247         * configure.ac: Handle i*86-*-gnu*.
2249 2005-08-09  Jakub Jelinek  <jakub@redhat.com>
2251         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2252         DW_CFA_offset_extended_sf rather than
2253         DW_CFA_GNU_negative_offset_extended.
2254         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2256 2005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
2258         * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2259         on sh3.
2260         (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2261         * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2262         partially on register.
2263         (ffi_closure_helper_SYSV): Likewise.
2264         (ffi_prep_cif_machdep): Don't set too many cif->flags.
2266 2005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2268         * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2269         Remove empty line.
2270         * src/sh64/ffi.c (simple_type): Remove.
2271         (return_type): Handle small structures correctly.
2272         (ffi_prep_args): Likewise.
2273         (ffi_call): Likewise.
2274         (ffi_closure_helper_SYSV): Likewise.
2275         * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2276         Emit position independent code if PIC and remove wrong datalabel
2277         prefixes from EH data.
2279 2005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
2281         * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2282         * Makefile.in: Regenerate.
2283         * include/Makefile.in: Likewise.
2284         * testsuite/Makefile.in: Likewise.
2285         * configure.ac: Add POWERPC_FREEBSD rules.
2286         * configure: Regenerate.
2287         * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2288         (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2289         * src/powerpc/ffi.c: Add flags to handle small structure returns
2290         in ffi_call_SYSV.
2291         (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2292         Aka FFI_SYSV.
2293         (ffi_closure_helper_SYSV): Likewise.
2294         * src/powerpc/ppc_closure.S: Add return types for small structures.
2295         * src/powerpc/sysv.S: Add bits to handle small structures for
2296         final SYSV 4 ABI.
2298 2005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
2300         * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2301         * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2302         * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2304 2005-07-05  Randolph Chung  <tausq@debian.org>
2306         * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2307         as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
2308         structures.  Kill compilation warnings.
2309         (ffi_closure_inner_LINUX): Print return values as hex in debug
2310         message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2311         Properly handle 5-7 byte structure returns.
2312         * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2313         (FFI_TYPE_SMALL_STRUCT2): Remove.
2314         (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2315         (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2316         * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2317         (checksmst1, checksmst2): Remove.
2318         (checksmst3): Optimize handling of 3-byte struct returns.
2319         (checksmst567): Properly handle 5-7 byte struct returns.
2321 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2323         PR libgcj/21943
2324         * src/mips/n32.S: Enforce PIC code.
2325         * src/mips/o32.S: Likewise.
2327 2005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2329         * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2330         * configure: Regenerate.
2332 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
2334         * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2335         to call ffi_closure_helper_SYSV.  Append @local instead.
2336         * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2338 2005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
2340         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2341         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2342         * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2343         * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2344         include/Makefile.in, testsuite/Makefile.in: Regenerate.
2346 2005-05-09  Mike Stump  <mrs@apple.com>
2348         * configure: Regenerate.
2350 2005-05-08  Richard Henderson  <rth@redhat.com>
2352         PR libffi/21285
2353         * src/alpha/osf.S: Update unwind into to match code.
2355 2005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
2356             Richard Henderson  <rth@redhat.com>
2358         * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2359         bit 11 of flags.
2360         (ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
2361         (ffi_prep_closure): Set carry bit if sse-used flag set.
2362         * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2363         Only load sse registers if ssecount non-zero.
2364         (ffi_closure_unix64): Only save sse registers if carry set on entry.
2366 2005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
2368         * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2369         powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2370         * configure: Regenerate.
2372 2005-04-20  Hans-Peter Nilsson  <hp@axis.com>
2374         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2375         have Tcl8.3-compatible intermediate variable.
2377 2005-04-18  Simon Posnjak <simon.posnjak@siol.net>
2378             Hans-Peter Nilsson  <hp@axis.com>
2380         * Makefile.am: Add CRIS support.
2381         * configure.ac: Likewise.
2382         * Makefile.in, configure, testsuite/Makefile.in,
2383         include/Makefile.in: Regenerate.
2384         * src/cris: New directory.
2385         * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2386         * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2388         * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2389         \r?\n in output tests.
2391 2005-04-12  Mike Stump  <mrs@apple.com>
2393         * configure: Regenerate.
2395 2005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
2397         * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
2399 2005-03-30  Steve Ellcey  <sje@cup.hp.com>
2401         * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2402         (ffi_sarg) Ditto.
2403         * src/ia64/unix.S (ffi_closure_unix): Extend gp
2404         to 64 bits in ILP32 mode.
2405         Load 64 bits even for short data.
2407 2005-03-23  Mike Stump  <mrs@apple.com>
2409         * src/powerpc/darwin.S: Update for -m64 multilib.
2410         * src/powerpc/darwin_closure.S: Likewise.
2412 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
2414         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2415         Do not set tool_include_dir.
2416         * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2417         Regenerate.
2418         * include/Makefile.am: Set gcc_version and toollibffidir.
2419         * include/Makefile.in: Regenerate.
2421 2005-02-22  Andrew Haley  <aph@redhat.com>
2423         * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2424         odd-numbered register pairs for 64-bit integer types.
2426 2005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
2428         PR libffi/20104
2429         * testsuite/libffi.call/return_ll1.c: New test case.
2431 2005-02-11  Janis Johnson  <janis187@us.ibm.com>
2433         * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2434         * testsuite/libffi.call/float.c: Ditto.
2435         * testsuite/libffi.call/float2.c: Ditto.
2436         * testsuite/libffi.call/float3.c: Ditto.
2438 2005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
2440         * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2442 2005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2444         * testsuite/libffi.special/special.exp (cxx_options): Add
2445         -shared-libgcc.
2447 2004-12-31  Richard Henderson  <rth@redhat.com>
2449         * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2450         (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
2451         offset parameters with a type parameter; deduce size and structure
2452         alignment.  Update all users.
2454 2004-12-31  Richard Henderson  <rth@redhat.com>
2456         * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2457         (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2458         * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2459         into ffi_prep_closure.
2460         * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2461         from scratch.
2463 2004-12-27  Richard Henderson  <rth@redhat.com>
2465         * src/x86/unix64.S: Fix typo in unwind info.
2467 2004-12-25  Richard Henderson  <rth@redhat.com>
2469         * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2470         (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2471         (merge_classes): Check for it.
2472         (SSE_CLASS_P): New.
2473         (classify_argument): Pass byte_offset by value; perform all updates
2474         inside struct case.
2475         (examine_argument): Add classes argument; handle
2476         X86_64_COMPLEX_X87_CLASS.
2477         (ffi_prep_args): Merge into ...
2478         (ffi_call): ... here.  Share stack frame with ffi_call_unix64.
2479         (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2480         (ffi_fill_return_value): Remove.
2481         (ffi_prep_closure): Remove dead assert.
2482         (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2483         Rewrite to use struct register_args instead of va_list.  Create
2484         flags for handling structure returns.
2485         * src/x86/unix64.S: Remove dead strings.
2486         (ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
2487         stack frame with ffi_call.  Handle structure returns properly.
2488         (float2sse, floatfloat2sse, double2sse): Remove.
2489         (sse2float, sse2double, sse2floatfloat): Remove.
2490         (ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
2491         to handle structure returns properly.
2493 2004-12-08  David Edelsohn  <edelsohn@gnu.org>
2495         * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2496         PICFLAG.
2497         * Makefile.in: Regenerated.
2499 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2501         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2502         * configure, aclocal.m4, Makefile.in: Regenerate.
2503         * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2505 2004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
2507         * configure: Regenerate for libtool change.
2509 2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
2511         * configure: Regenerate for libtool reversion.
2513 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2515         * configure: Regenerate for libtool change.
2517 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2519         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2521 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
2523         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2524         of jal.  Use an absolute encoding for the frame information.
2526 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
2528         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
2529         * acinclude.m4: Delete logic for sincludes.
2530         * aclocal.m4, Makefile.in, configure: Regenerate.
2531         * include/Makefile: Likewise.
2532         * testsuite/Makefile: Likewise.
2534 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2536         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2537         on a 8-byte boundary.
2538         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2540 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
2542         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2543         long long values.  Round stack allocation to a multiple of 8 bytes
2544         for ATPCS compatibility.
2545         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2546         names.  Handle returning long long types.  Add Thumb and interworking
2547         support.  Improve soft-float code.
2549 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
2551         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2552         (libffi_exit): New function.
2553         (libffi_init): Build the testglue wrapper if needed.
2555 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2557         PR other/18138
2558         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2560 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2562         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2564 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2566         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2567         * testsuite/libffi.call/float3.c: New test case.
2569 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2571         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2572         the function returning a structure pointed with R2.
2573         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2574         the structure return value if T bit set.  Emit position
2575         independent code and EH data if PIC.
2577 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2579         * Makefile.am: Add m32r support.
2580         * configure.ac: Likewise.
2581         * Makefile.in: Regenerate.
2582         * confiugre: Regenerate.
2583         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2584         (uint64, sint64, double, longdouble)
2585         * src/m32r: New directory.
2586         * src/m32r/ffi.c: New file.
2587         * src/m32r/sysv.S: Likewise.
2588         * src/m32r/ffitarget.h: Likewise.
2590 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2592         * testsuite/libffi.call/negint.c: New test case.
2594 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
2596         PR libgcj/17465
2597         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2598         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2599         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2600         DYLD_LIBRARY_PATH.
2602 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
2604         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2605         * testsuite/libffi.call/promotion.c: Likewise.
2606         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2607         whitespaces.
2608         * testsuite/libffi.call/return_sc.c: Likewise.
2609         * testsuite/libffi.call/return_uc.c: Likewise.
2611 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
2613         * src/powerpc/darwin.S: Fix comments and identation.
2614         * src/powerpc/darwin_closure.S: Likewise.
2616 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
2618         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2619         (ffi_prep_args): Handle longdouble arguments.
2620         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2621         longdouble.
2622         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2623         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2624         values.
2625         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2626         * src/types.c: Defined longdouble size and alignment for darwin.
2628 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
2630         * src/powerpc/aix.S: Remove whitespaces.
2631         * src/powerpc/aix_closure.S: Likewise.
2632         * src/powerpc/asm.h: Likewise.
2633         * src/powerpc/ffi.c: Likewise.
2634         * src/powerpc/ffitarget.h: Likewise.
2635         * src/powerpc/linux64.S: Likewise.
2636         * src/powerpc/linux64_closure.S: Likewise.
2637         * src/powerpc/ppc_closure.S: Likewise.
2638         * src/powerpc/sysv.S: Likewise.
2640 2004-08-30  Anthony Green  <green@redhat.com>
2642         * Makefile.am: Add frv support.
2643         * Makefile.in, testsuite/Makefile.in: Rebuilt.
2644         * configure.ac: Read configure.host.
2645         * configure.in: Read configure.host.
2646         * configure.host: New file.  frv-elf needs libgloss.
2647         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2648         alignment.  This is needed to frv and shouldn't harm the others.
2649         * include/ffi_common.h (ALIGN_DOWN): New macro.
2650         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2652 2004-08-24  David Daney  <daney@avtrex.com>
2654         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2655         * testsuite/libffi.call/closure_fn1.c: Likewise.
2656         * testsuite/libffi.call/closure_fn2.c  Likewise.
2657         * testsuite/libffi.call/closure_fn3.c: Likewise.
2658         * testsuite/libffi.call/closure_fn4.c: Likewise.
2659         * testsuite/libffi.call/closure_fn5.c: Likewise.
2660         * testsuite/libffi.call/cls_18byte.c: Likewise.
2661         * testsuite/libffi.call/cls_19byte.c: Likewise.
2662         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2663         * testsuite/libffi.call/cls_20byte.c: Likewise.
2664         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2665         * testsuite/libffi.call/cls_24byte.c: Likewise.
2666         * testsuite/libffi.call/cls_2byte.c: Likewise.
2667         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2668         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2669         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2670         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2671         * testsuite/libffi.call/cls_4byte.c: Likewise.
2672         * testsuite/libffi.call/cls_64byte.c: Likewise.
2673         * testsuite/libffi.call/cls_6byte.c: Likewise.
2674         * testsuite/libffi.call/cls_7byte.c: Likewise.
2675         * testsuite/libffi.call/cls_8byte.c: Likewise.
2676         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2677         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2678         * testsuite/libffi.call/cls_align_double.c: Likewise.
2679         * testsuite/libffi.call/cls_align_float.c: Likewise.
2680         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2681         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2682         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2683         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2684         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2685         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2686         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2687         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2688         * testsuite/libffi.call/cls_double.c: Likewise.
2689         * testsuite/libffi.call/cls_float.c: Likewise.
2690         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2691         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2692         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2693         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2694         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2695         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2696         * testsuite/libffi.call/cls_schar.c: Likewise.
2697         * testsuite/libffi.call/cls_sint.c: Likewise.
2698         * testsuite/libffi.call/cls_sshort.c: Likewise.
2699         * testsuite/libffi.call/cls_uchar.c: Likewise.
2700         * testsuite/libffi.call/cls_uint.c: Likewise.
2701         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2702         * testsuite/libffi.call/cls_ushort.c: Likewise.
2703         * testsuite/libffi.call/nested_struct.c: Likewise.
2704         * testsuite/libffi.call/nested_struct1.c: Likewise.
2705         * testsuite/libffi.call/nested_struct2.c: Likewise.
2706         * testsuite/libffi.call/nested_struct3.c: Likewise.
2707         * testsuite/libffi.call/problem1.c: Likewise.
2708         * testsuite/libffi.special/unwindtest.cc: Likewise.
2709         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2710         to zero.
2711         * testsuite/libffi.call/cls_16byte.c: Likewise.
2712         * testsuite/libffi.call/cls_5byte.c: Likewise.
2714 2004-08-23  David Daney <daney@avtrex.com>
2716         PR libgcj/13141
2717         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2718         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2719         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2720         parameters and return types.
2721         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2722         (ffi_prep_closure): Ditto.
2723         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2724         alignment calculations.
2725         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2726         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2728 2004-08-14  Casey Marshall <csm@gnu.org>
2730         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2731         contain `FFI_TYPE_UINT64' as return type for any 64-bit
2732         integer (O32 ABI only).
2733         (ffi_prep_closure): new function.
2734         (ffi_closure_mips_inner_O32): new function.
2735         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2736         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2737         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2738         64 bit integers correctly.
2739         (ffi_closure_O32): new function.
2740         Added DWARF-2 unwind info for both functions.
2742 2004-08-10  Andrew Haley  <aph@redhat.com>
2744         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2746 2004-08-01  Robert Millan  <robertmh@gnu.org>
2748         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2749         * configure: Regenerate.
2751 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
2753         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2754         and mmap() explicitly instead of relying on preset autoconf cache
2755         variables.
2756         * aclocal.m4: Regenerate.
2757         * configure: Regenerate.
2759 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2761         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2762         (ffi_check_float_struct): Remove unused prototype.
2764 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
2766         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2767         character on Darwin, use '\n\t' instead.
2769 2004-06-26  Matthias Klose  <doko@debian.org>
2771         * libtool-version: Fix typo in revision/age.
2773 2004-06-17  Matthias Klose  <doko@debian.org>
2775         * libtool-version: New.
2776         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2777         * Makefile.in: Regenerate.
2779 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2781         * Makefile.am: Remove useless multilib rules.
2782         * Makefile.in: Regenerate.
2783         * aclocal.m4: Regenerate with automake 1.8.5.
2784         * configure.ac: Remove useless multilib configury.
2785         * configure: Regenerate.
2787 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2789         * .cvsignore: New file.
2791 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2793         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2794         fp_done.
2795         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2796         changed from 8.
2798 2004-06-06  Sean McNeil  <sean@mcneil.com>
2800         * configure.ac: Add x86_64-*-freebsd* support.
2801         * configure: Regenerate.
2803 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
2805         Bug 15093
2806         * configure.ac: Test for existence of mmap and sys/mman.h before
2807         checking blacklist.  Fix suggested by Jim Wilson.
2808         * configure: Regenerate.
2810 2004-04-26  Matt Austern  <austern@apple.com>
2812         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2813         FDE location.
2814         * src/powerpc/darwin_closure.S: Likewise.
2816 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
2818         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2819         error. Reported by Thomas Heller <theller@python.net>.
2820         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2821         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2823 2004-03-20  Matthias Klose  <doko@debian.org>
2825         * src/pa/linux.S: Fix typo.
2827 2004-03-19  Matthias Klose  <doko@debian.org>
2829         * Makefile.am: Update.
2830         * Makefile.in: Regenerate.
2831         * src/pa/ffi.h.in: Remove.
2832         * src/pa/ffitarget.h: New file.
2834 2004-02-10  Randolph Chung  <tausq@debian.org>
2836         * Makefile.am: Add PA support.
2837         * Makefile.in: Regenerate.
2838         * include/Makefile.in: Regenerate.
2839         * configure.ac: Add PA target.
2840         * configure: Regenerate.
2841         * src/pa/ffi.c: New file.
2842         * src/pa/ffi.h.in: Add PA support.
2843         * src/pa/linux.S: New file.
2844         * prep_cif.c: Add PA support.
2846 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
2848         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2849         double.
2850         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2851         with ecif->cif->flags.
2852         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2853         with cif->flags.
2854         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2855         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2856         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2857         sc_retstruct2b): Add for 1 or 2-bytes struct case.
2859 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2861         * configure.in: Rename file to ...
2862         * configure.ac: ... this.
2863         * fficonfig.h.in: Regenerate.
2864         * Makefile.in: Regenerate.
2865         * include/Makefile.in: Regenerate.
2866         * testsuite/Makefile.in: Regenerate.
2868 2004-03-12  Matt Austern  <austern@apple.com>
2870         * src/powerpc/darwin.S: Fix EH information so it corresponds to
2871         changes in EH format resulting from addition of linkonce support.
2872         * src/powerpc/darwin_closure.S: Likewise.
2874 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
2875             Paolo Bonzini  <bonzini@gnu.org>
2877         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2878         Remove VPATH. Remove rules for object files. Remove multilib support.
2879         (AM_CCASFLAGS): Add.
2880         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2881         (AC_PREREQ): Bump version to 2.59.
2882         (AC_INIT): Fill with version info and bug address.
2883         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2884         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2885         De-precious CC so that the right flags are passed down to multilibs.
2886         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2887         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2888         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2889         * configure: Rebuilt.
2890         * aclocal.m4: Likewise.
2891         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2892         * fficonfig.h.in: Likewise.
2894 2004-03-11  Andreas Schwab  <schwab@suse.de>
2896         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
2897         arguments from fp registers only for the first 8 parameter slots.
2898         Don't convert a float parameter when passed in memory.
2900 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
2902         * configure: Regenerate for config/accross.m4 correction.
2904 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
2906         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
2907         ecif->cif->bytes to bytes.
2908         (ffi_prep_cif_machdep): Add braces around nested if statement.
2910 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
2912         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
2914         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
2915         (ffi_closure_helper_LINUX64): Fix typo.
2916         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
2917         for powerpc64-*-*.
2918         * testsuite/libffi.call/float.c: Likewise.
2919         * testsuite/libffi.call/float2.c: Likewise.
2921 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
2923         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
2924         long double function return and long double arg handling.
2925         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
2926         Use "end_pfr" instead of "nf".  Correct long double handling.
2927         Localise "temp".
2928         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
2929         return value.
2930         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
2931         space for long double return value.  Adjust stack frame and offsets.
2932         Load f2 long double return.
2934 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
2936         * src/types.c: Use 16 byte long double for POWERPC64.
2938 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2940         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
2941         when the structure return address is passed in %o0.
2942         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
2943         (ffi_v9_layout_struct): Align the field following a nested structure
2944         on a word boundary.  Use memmove instead of memcpy.
2945         (ffi_call): Update call to ffi_V9_return_struct.
2946         (ffi_prep_closure): Define 'ctx' only for V8.
2947         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
2948         and ffi_closure_sparc_inner_v9.
2949         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
2950         Always skip the structure return address.  For structures and long
2951         doubles, copy the argument directly.
2952         (ffi_closure_sparc_inner_v9): Skip the structure return address only
2953         if required.  Shift the maximum floating-point slot accordingly.  For
2954         big structures, copy the argument directly; otherwise, left-justify the
2955         argument and call ffi_v9_layout_struct to lay out the structure on
2956         the stack.
2957         * src/sparc/v8.S: Undef STACKFRAME before defining it.
2958         (ffi_closure_v8): Pass the structure return address.  Update call to
2959         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
2960         Skip the 'unimp' insn when returning long doubles and structures.
2961         * src/sparc/v9.S: Undef STACKFRAME before defining it.
2962         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
2963         FFI_TYPE_INT handling.  Load structures both in integers and
2964         floating-point registers on return.
2965         * README: Update status of the SPARC port.
2967 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
2969         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
2970         as of type ffi_arg.
2971         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
2973 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
2975         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
2976         value as of type ffi_arg, not unsigned int.
2978 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
2980         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
2981         of the LHS.
2983 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
2985         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
2986         Solaris.
2988 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2990         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
2991         to void *.
2993 2003-12-10  Richard Henderson  <rth@redhat.com>
2995         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
2996         size_t instead of int.
2998 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
3000         * testsuite/libffi.call/many_win32.c: Include <float.h>.
3001         * testsuite/libffi.call/many_win32.c (main): Replace variable
3002         int i with unsigned long ul.
3004         * testsuite/libffi.call/cls_align_uint64.c: New test case.
3005         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3006         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3007         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3008         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3009         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3010         * testsuite/libffi.call/cls_align_float.c: Likewise.
3011         * testsuite/libffi.call/cls_align_double.c: Likewise.
3012         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3013         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3015 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
3017         PR other/13221
3018         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3019         Align arguments to 32 bits.
3021 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
3023         PR other/13221
3024         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3025         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3026         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3027         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3028         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3029         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3031         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3033 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3035         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3036         * testsuite/libffi.special/ffitestcxx.h: Likewise.
3038 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
3040         * Makefile.in: Rebuilt.
3041         * configure: Likewise.
3042         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3043         the right type.
3045 2003-11-21  Andreas Jaeger  <aj@suse.de>
3046             Andreas Tobler  <a.tobler@schweiz.ch>
3048         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3049         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3050         * Makefile.in: Rebuilt.
3051         * aclocal.m4: Likewise.
3052         * configure: Likewise.
3053         * fficonfig.h.in: Likewise.
3054         * testsuite/lib/libffi-dg.exp: Add include dir.
3055         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3056         * testsuite/libffi.special/ffitestcxx.h: Likewise.
3057         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3058         for ffi_closure if available.
3059         * testsuite/libffi.call/closure_fn1.c: Likewise.
3060         * testsuite/libffi.call/closure_fn2.c: Likewise.
3061         * testsuite/libffi.call/closure_fn3.c: Likewise.
3062         * testsuite/libffi.call/closure_fn4.c: Likewise.
3063         * testsuite/libffi.call/closure_fn5.c: Likewise.
3064         * testsuite/libffi.call/cls_12byte.c: Likewise.
3065         * testsuite/libffi.call/cls_16byte.c: Likewise.
3066         * testsuite/libffi.call/cls_18byte.c: Likewise.
3067         * testsuite/libffi.call/cls_19byte.c: Likewise.
3068         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3069         * testsuite/libffi.call/cls_20byte.c: Likewise.
3070         * testsuite/libffi.call/cls_20byte1.c: Likewise.
3071         * testsuite/libffi.call/cls_24byte.c: Likewise.
3072         * testsuite/libffi.call/cls_2byte.c: Likewise.
3073         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3074         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3075         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3076         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3077         * testsuite/libffi.call/cls_4byte.c: Likewise.
3078         * testsuite/libffi.call/cls_5byte.c: Likewise.
3079         * testsuite/libffi.call/cls_64byte.c: Likewise.
3080         * testsuite/libffi.call/cls_6byte.c: Likewise.
3081         * testsuite/libffi.call/cls_7byte.c: Likewise.
3082         * testsuite/libffi.call/cls_8byte.c: Likewise.
3083         * testsuite/libffi.call/cls_9byte1.c: Likewise.
3084         * testsuite/libffi.call/cls_9byte2.c: Likewise.
3085         * testsuite/libffi.call/cls_double.c: Likewise.
3086         * testsuite/libffi.call/cls_float.c: Likewise.
3087         * testsuite/libffi.call/cls_schar.c: Likewise.
3088         * testsuite/libffi.call/cls_sint.c: Likewise.
3089         * testsuite/libffi.call/cls_sshort.c: Likewise.
3090         * testsuite/libffi.call/cls_uchar.c: Likewise.
3091         * testsuite/libffi.call/cls_uint.c: Likewise.
3092         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3093         * testsuite/libffi.call/cls_ushort.c: Likewise.
3094         * testsuite/libffi.call/nested_struct.c: Likewise.
3095         * testsuite/libffi.call/nested_struct1.c: Likewise.
3096         * testsuite/libffi.call/nested_struct2.c: Likewise.
3097         * testsuite/libffi.call/nested_struct3.c: Likewise.
3098         * testsuite/libffi.call/problem1.c: Likewise.
3099         * testsuite/libffi.special/unwindtest.cc: Likewise.
3101 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
3103         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3105 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
3107         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3108         Add -lgcc_s to additional flags.
3110 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
3112         * configure.in, include/Makefile.am: PR libgcj/11147, install
3113         the ffitarget.h header file in a gcc versioned and target
3114         dependent place.
3115         * configure: Regenerated.
3116         * Makefile.in, include/Makefile.in: Likewise.
3117         * testsuite/Makefile.in: Likewise.
3119 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
3121         * testsuite/libffi.call/closure_fn0.c: Print result and check
3122         with dg-output to make debugging easier.
3123         * testsuite/libffi.call/closure_fn1.c: Likewise.
3124         * testsuite/libffi.call/closure_fn2.c: Likewise.
3125         * testsuite/libffi.call/closure_fn3.c: Likewise.
3126         * testsuite/libffi.call/closure_fn4.c: Likewise.
3127         * testsuite/libffi.call/closure_fn5.c: Likewise.
3128         * testsuite/libffi.call/cls_12byte.c: Likewise.
3129         * testsuite/libffi.call/cls_16byte.c: Likewise.
3130         * testsuite/libffi.call/cls_18byte.c: Likewise.
3131         * testsuite/libffi.call/cls_19byte.c: Likewise.
3132         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3133         * testsuite/libffi.call/cls_20byte.c: Likewise.
3134         * testsuite/libffi.call/cls_20byte1.c: Likewise.
3135         * testsuite/libffi.call/cls_24byte.c: Likewise.
3136         * testsuite/libffi.call/cls_2byte.c: Likewise.
3137         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3138         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3139         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3140         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3141         * testsuite/libffi.call/cls_4byte.c: Likewise.
3142         * testsuite/libffi.call/cls_5byte.c: Likewise.
3143         * testsuite/libffi.call/cls_64byte.c: Likewise.
3144         * testsuite/libffi.call/cls_6byte.c: Likewise.
3145         * testsuite/libffi.call/cls_7byte.c: Likewise.
3146         * testsuite/libffi.call/cls_8byte.c: Likewise.
3147         * testsuite/libffi.call/cls_9byte1.c: Likewise.
3148         * testsuite/libffi.call/cls_9byte2.c: Likewise.
3149         * testsuite/libffi.call/cls_double.c: Likewise.
3150         * testsuite/libffi.call/cls_float.c: Likewise.
3151         * testsuite/libffi.call/cls_schar.c: Likewise.
3152         * testsuite/libffi.call/cls_sint.c: Likewise.
3153         * testsuite/libffi.call/cls_sshort.c: Likewise.
3154         * testsuite/libffi.call/cls_uchar.c: Likewise.
3155         * testsuite/libffi.call/cls_uint.c: Likewise.
3156         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3157         * testsuite/libffi.call/cls_ushort.c: Likewise.
3158         * testsuite/libffi.call/problem1.c: Likewise.
3160         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3161         static.
3163 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
3165         * testsuite/libffi.call/cls_9byte2.c: New test case.
3166         * testsuite/libffi.call/cls_9byte1.c: Likewise.
3167         * testsuite/libffi.call/cls_64byte.c: Likewise.
3168         * testsuite/libffi.call/cls_20byte1.c: Likewise.
3169         * testsuite/libffi.call/cls_19byte.c: Likewise.
3170         * testsuite/libffi.call/cls_18byte.c: Likewise.
3171         * testsuite/libffi.call/closure_fn4.c: Likewise.
3172         * testsuite/libffi.call/closure_fn5.c: Likewise.
3173         * testsuite/libffi.call/cls_schar.c: Likewise.
3174         * testsuite/libffi.call/cls_sint.c: Likewise.
3175         * testsuite/libffi.call/cls_sshort.c: Likewise.
3176         * testsuite/libffi.call/nested_struct2.c: Likewise.
3177         * testsuite/libffi.call/nested_struct3.c: Likewise.
3179 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
3181         * testsuite/libffi.call/cls_double.c: Do a check on the result.
3182         * testsuite/libffi.call/cls_uchar.c: Likewise.
3183         * testsuite/libffi.call/cls_uint.c: Likewise.
3184         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3185         * testsuite/libffi.call/cls_ushort.c: Likewise.
3186         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3188 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
3190         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3191         the initialization.
3193 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
3195         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3196         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3198 2003-10-22  David Daney  <ddaney@avtrex.com>
3200         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3201         __attribute__((__mode__(__SI__))) and friends.
3203 2003-10-22  Andreas Schwab  <schwab@suse.de>
3205         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3207 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
3209         * configure.in: AC_LINK_FILES(ffitarget.h).
3210         * configure: Regenerate.
3211         * Makefile.in: Likewise.
3212         * include/Makefile.in: Likewise.
3213         * testsuite/Makefile.in: Likewise.
3214         * fficonfig.h.in: Likewise.
3216 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
3217             Richard Henderson  <rth@redhat.com>
3219         Avoid that ffi.h includes fficonfig.h.
3221         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3222         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3223         (TARGET_SRC_MIPS_SGI): Removed.
3224         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3225         (MIPS_SGI): Removed.
3226         (CLEANFILES): Removed.
3227         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3228         targets.
3229         * acconfig.h: Removed.
3230         * configure.in: Compute sizeofs only for double and long double.
3231         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
3232         into AC_DEFINE instead of using acconfig.h.  Create
3233         include/ffitarget.h instead of include/fficonfig.h.  Rename
3234         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3235         AC_DEFINE EH_FRAME_FLAGS.
3236         * include/Makefile.am (DISTCLEANFILES): New automake macro.
3237         (hack_DATA): Add ffitarget.h.
3238         * include/ffi.h.in: Remove all system specific definitions.
3239         Declare raw API even if it is not installed, why bother?
3240         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
3241         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
3242         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
3243         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3244         * include/ffi_common.h (bool): Do not define.
3245         (ffi_assert): Accept failed assertion.
3246         (ffi_type_test): Return void and accept file/line.
3247         (FFI_ASSERT): Pass stringized failed assertion.
3248         (FFI_ASSERT_AT): New macro.
3249         (FFI_ASSERT_VALID_TYPE): New macro.
3250         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3251         UINT64, SINT64): Define here with gcc's __attribute__ macro
3252         instead of in ffi.h
3253         (FLOAT32, ALIGN): Define here instead of in ffi.h
3254         * include/ffi-mips.h: Removed.  Its content moved to
3255         src/mips/ffitarget.h after separating assembly and C sections.
3256         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3257         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3258         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3259         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3260         SIZEOF_ARG -> FFI_SIZEOF_ARG.
3261         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3262         * src/debug.c (ffi_assert): Accept stringized failed assertion.
3263         (ffi_type_test): Rewritten.
3264         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3265         FFI_ASSERT_VALID_TYPE.
3266         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3267         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3268         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3269         src/s390/ffitarget.h, src/sh/ffitarget.h,
3270         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3271         src/x86/ffitarget.h: New files.
3272         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3273         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3274         src/powerpc/aix.S, src/powerpc/darwin.S,
3275         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3276         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3277         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3278         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3279         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3280         include fficonfig.h
3282 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3284         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3285         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3287 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
3289         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3290         Used when FFI_DEBUG = 1.
3292 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
3294         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3295         and align.
3297 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3299         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3300         FFI_MIPS_O32 for O32 ABI.
3302 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
3304         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3305         SPARC64. Cleanup whitespaces.
3307 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
3309         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3310         strongarm, xscale. Cleanup whitespaces.
3311         * testsuite/libffi.call/closure_fn1.c: Likewise.
3312         * testsuite/libffi.call/closure_fn2.c: Likewise.
3313         * testsuite/libffi.call/closure_fn3.c: Likewise.
3314         * testsuite/libffi.call/cls_12byte.c: Likewise.
3315         * testsuite/libffi.call/cls_16byte.c: Likewise.
3316         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3317         * testsuite/libffi.call/cls_20byte.c: Likewise.
3318         * testsuite/libffi.call/cls_24byte.c: Likewise.
3319         * testsuite/libffi.call/cls_2byte.c: Likewise.
3320         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3321         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3322         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3323         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3324         * testsuite/libffi.call/cls_4byte.c: Likewise.
3325         * testsuite/libffi.call/cls_5byte.c: Likewise.
3326         * testsuite/libffi.call/cls_6byte.c: Likewise.
3327         * testsuite/libffi.call/cls_7byte.c: Likewise.
3328         * testsuite/libffi.call/cls_8byte.c: Likewise.
3329         * testsuite/libffi.call/cls_double.c: Likewise.
3330         * testsuite/libffi.call/cls_float.c: Likewise.
3331         * testsuite/libffi.call/cls_uchar.c: Likewise.
3332         * testsuite/libffi.call/cls_uint.c: Likewise.
3333         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3334         * testsuite/libffi.call/cls_ushort.c: Likewise.
3335         * testsuite/libffi.call/nested_struct.c: Likewise.
3336         * testsuite/libffi.call/nested_struct1.c: Likewise.
3337         * testsuite/libffi.call/problem1.c: Likewise.
3338         * testsuite/libffi.special/unwindtest.cc: Likewise.
3339         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3341 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
3343         * src/powerpc/aix.S: Cleanup whitespaces.
3344         * src/powerpc/aix_closure.S: Likewise.
3346 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
3348         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3349         * src/powerpc/darwin_closure.S: Likewise.
3350         * src/powerpc/ffi_darwin.c: Likewise.
3352 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
3353             David Edelsohn  <edelsohn@gnu.org>
3355         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3356         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3357         parameter stack.
3358         * src/powerpc/darwin_closure.S: Likewise.
3359         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3360         according to the Darwin/AIX ABI.
3361         (ffi_prep_cif_machdep): Likewise.
3362         (ffi_closure_helper_DARWIN): Likewise.
3363         Remove the outgoing parameter stack logic. Simplify the evaluation
3364         of the different CASE types.
3365         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3366         statement in the trampoline code.
3368 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3370         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3371         for the register size.
3372         (ffi_closure_helper_SYSV): Handle the structure return value
3373         address correctly.
3374         (ffi_closure_helper_SYSV): Return the appropriate type when
3375         the registers are used for the structure return value.
3376         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3377         the 64-bit return value.  Update copyright years.
3379 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3381         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3382         srcdir for ffi_mips.h.
3384 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
3386         * src/prep_cif.c (initialize_aggregate): Include tail padding in
3387         structure size.
3388         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3389         placement of float result.
3390         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3391         cast of "resp" for big-endian 64 bit machines.
3393 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
3395         * src/types.c (double, longdouble): Merge identical SH and ARM
3396         typedefs, and add POWERPC64.
3397         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3398         struct split over gpr and rest.
3399         (ffi_prep_cif_machdep): Correct intarg_count for structures.
3400         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3402 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
3404         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3405         passing correctly.
3407 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
3409         * configure: Regenerate.
3411 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
3413         * Makefile.am: Remove build rules for ffitest.
3414         * Makefile.in: Rebuilt.
3416 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
3418         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3419         about implicit declaration of abort().
3421 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
3423         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3424         * Makefile.in: Rebuilt.
3425         * configure.in: Add dejagnu test framework.
3426         * configure: Rebuilt.
3428         * testsuite/Makefile.am: New file.
3429         * testsuite/Makefile.in: Built
3430         * testsuite/lib/libffi-dg.exp: New file.
3431         * testsuite/config/default.exp: Likewise.
3432         * testsuite/libffi.call/call.exp: Likewise.
3433         * testsuite/libffi.call/ffitest.h: Likewise.
3434         * testsuite/libffi.call/closure_fn0.c: Likewise.
3435         * testsuite/libffi.call/closure_fn1.c: Likewise.
3436         * testsuite/libffi.call/closure_fn2.c: Likewise.
3437         * testsuite/libffi.call/closure_fn3.c: Likewise.
3438         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3439         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3440         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3441         * testsuite/libffi.call/cls_2byte.c: Likewise.
3442         * testsuite/libffi.call/cls_3byte1.c: Likewise.
3443         * testsuite/libffi.call/cls_3byte2.c: Likewise.
3444         * testsuite/libffi.call/cls_4byte.c: Likewise.
3445         * testsuite/libffi.call/cls_5byte.c: Likewise.
3446         * testsuite/libffi.call/cls_6byte.c: Likewise.
3447         * testsuite/libffi.call/cls_7byte.c: Likewise.
3448         * testsuite/libffi.call/cls_8byte.c: Likewise.
3449         * testsuite/libffi.call/cls_12byte.c: Likewise.
3450         * testsuite/libffi.call/cls_16byte.c: Likewise.
3451         * testsuite/libffi.call/cls_20byte.c: Likewise.
3452         * testsuite/libffi.call/cls_24byte.c: Likewise.
3453         * testsuite/libffi.call/cls_double.c: Likewise.
3454         * testsuite/libffi.call/cls_float.c: Likewise.
3455         * testsuite/libffi.call/cls_uchar.c: Likewise.
3456         * testsuite/libffi.call/cls_uint.c: Likewise.
3457         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3458         * testsuite/libffi.call/cls_ushort.c: Likewise.
3459         * testsuite/libffi.call/float.c: Likewise.
3460         * testsuite/libffi.call/float1.c: Likewise.
3461         * testsuite/libffi.call/float2.c: Likewise.
3462         * testsuite/libffi.call/many.c: Likewise.
3463         * testsuite/libffi.call/many_win32.c: Likewise.
3464         * testsuite/libffi.call/nested_struct.c: Likewise.
3465         * testsuite/libffi.call/nested_struct1.c: Likewise.
3466         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3467         * testsuite/libffi.call/problem1.c: Likewise.
3468         * testsuite/libffi.call/promotion.c: Likewise.
3469         * testsuite/libffi.call/return_ll.c: Likewise.
3470         * testsuite/libffi.call/return_sc.c: Likewise.
3471         * testsuite/libffi.call/return_uc.c: Likewise.
3472         * testsuite/libffi.call/strlen.c: Likewise.
3473         * testsuite/libffi.call/strlen_win32.c: Likewise.
3474         * testsuite/libffi.call/struct1.c: Likewise.
3475         * testsuite/libffi.call/struct2.c: Likewise.
3476         * testsuite/libffi.call/struct3.c: Likewise.
3477         * testsuite/libffi.call/struct4.c: Likewise.
3478         * testsuite/libffi.call/struct5.c: Likewise.
3479         * testsuite/libffi.call/struct6.c: Likewise.
3480         * testsuite/libffi.call/struct7.c: Likewise.
3481         * testsuite/libffi.call/struct8.c: Likewise.
3482         * testsuite/libffi.call/struct9.c: Likewise.
3483         * testsuite/libffi.special/special.exp: New file.
3484         * testsuite/libffi.special/ffitestcxx.h: Likewise.
3485         * testsuite/libffi.special/unwindtest.cc: Likewise.
3488 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3490         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
3491         copyright years.
3493 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
3495         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3496         structure passing.
3497         (ffi_closure_helper_LINUX64): Likewise.
3498         * src/powerpc/linux64.S: Remove code writing to parm save area.
3499         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3500         address in lr from ffi_closure_helper_LINUX64 call to calculate
3501         table address.  Optimize function tail.
3503 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
3505         * src/sparc/ffi.c: Handle all floating point registers.
3506         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3508 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3510         * README: Note that libffi is not part of GCC.  Update the project
3511         URL and status.
3513 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3515         * src/powerpc/ppc_closure.S: Include ffi.h.
3517 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3519         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3520         Use C style comments.
3522 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
3524         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
3525         * Makefile.in: Regenerate.
3526         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3527         * configure: Regenerate.
3528         * include/ffi.h.in: Add SHmedia support.
3529         * src/sh64/ffi.c: New file.
3530         * src/sh64/sysv.S: New file.
3532 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
3534         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3535         should be read-only.
3536         * configure: Rebuilt.
3537         * fficonfig.h.in: Rebuilt.
3538         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3539         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3540         * src/powerpc/linux64.S: Likewise.
3541         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
3542         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
3543         if -fpic/-fPIC/-mrelocatable.
3544         * src/powerpc/powerpc_closure.S: Likewise.
3545         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3546         #write in .eh_frame flags.
3547         * src/sparc/v9.S: Likewise.
3548         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3549         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
3550         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
3552 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
3554         Fixes PR bootstrap/10656
3555         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3556         support for .register pseudo-op.
3557         * src/sparc/v8.S: Use it.
3558         * fficonfig.h.in: Rebuilt.
3559         * configure: Rebuilt.
3561 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
3563         * include/ffi.h.in (POWERPC64): Define if 64-bit.
3564         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3565         Make it the default on POWERPC64.
3566         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3567         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3568         * configure: Rebuilt.
3569         * src/powerpc/ffi.c (hidden): Define.
3570         (ffi_prep_args_SYSV): Renamed from
3571         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
3572         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3573         ASM_NEEDS_REGISTERS64): New.
3574         (ffi_prep_args64): New function.
3575         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3576         (ffi_call): Likewise.
3577         (ffi_prep_closure): Likewise.
3578         (flush_icache): Surround by #ifndef POWERPC64.
3579         (ffi_dblfl): New union type.
3580         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3581         (ffi_closure_helper_LINUX64): New function.
3582         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3583         __powerpc64__.
3584         * src/powerpc/sysv.S: Likewise.
3585         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3586         * src/powerpc/linux64.S: New file.
3587         * src/powerpc/linux64_closure.S: New file.
3588         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3589         src/powerpc/linux64_closure.S.
3590         (TARGET_SRC_POWERPC): Likewise.
3592         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3593         closure_test_fn3): Fix result printing on big-endian 64-bit
3594         machines.
3595         (main): Print tst2_arg instead of uninitialized tst2_result.
3597         * src/ffitest.c (main): Hide what closure pointer really points to
3598         from the compiler.
3600 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
3602         * configure.in (arm-*-netbsdelf*): Add configuration.
3603         (configure): Regenerated.
3605 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
3607         * include/Makefile.in: Regenerate.
3609 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3611         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3612         bit mode.
3613         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3614         Receive closure pointer through parameter, read args using
3615         __builtin_dwarf_cfa.
3616         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3618 2003-03-12  Andreas Schwab  <schwab@suse.de>
3620         * configure.in: Avoid trailing /. in toolexeclibdir.
3621         * configure: Rebuilt.
3623 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
3625         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3627 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
3629         * libffi/src/powerpc/darwin_closure.S:
3630         Fix alignement bug, allocate 8 bytes for the result.
3631         * libffi/src/powerpc/aix_closure.S:
3632         Likewise.
3633         * libffi/src/powerpc/ffi_darwin.c:
3634         Update stackframe description for aix/darwin_closure.S.
3636 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
3638         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3639         attribute.
3641 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
3642             Andreas Schwab  <schwab@suse.de>
3644         * configure.in: Adjust command to source config-ml.in to account
3645         for changes to the libffi_basedir definition.
3646         (libffi_basedir): Remove ${srcdir} from value and include trailing
3647         slash if nonempty.
3649         * configure: Regenerate.
3651 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3653         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3655 2003-01-28  Andrew Haley  <aph@redhat.com>
3657         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3658         * src/x86/ffi64.c (ffi_prep_closure): New.
3659         (ffi_closure_UNIX64_inner): New.
3660         * src/x86/unix64.S (ffi_closure_UNIX64): New.
3662 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
3664         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3665         Remove USE_LIBDIR conditional.
3666         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3667         * Makefile.in, configure: Rebuilt.
3669 2003-01027  David Edelsohn  <edelsohn@gnu.org>
3671         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3672         * Makefile.in: Regenerate.
3674 2003-01-22  Andrew Haley  <aph@redhat.com>
3676         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3677         unwind info.
3679 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
3681         * src/powerpc/darwin.S: Add unwind info.
3682         * src/powerpc/darwin_closure.S: Likewise.
3684 2003-01-14  Andrew Haley  <aph@redhat.com>
3686         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3687         (ffi_prep_cif_machdep): Likewise.
3688         * src/x86/unix64.S: Add unwind info.
3690 2003-01-14  Andreas Jaeger  <aj@suse.de>
3692         * src/ffitest.c (main): Only use ffi_closures if those are
3693         supported.
3695 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3697         * libffi/src/ffitest.c
3698          add closure testcases
3700 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3702         * libffi/src/powerpc/ffi.c
3703          fix alignment bug for float (4 byte aligned iso 8 byte)
3705 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
3707         * src/powerpc/ffi_darwin.c: Remove RCS version string.
3708         * src/powerpc/darwin.S: Remove RCS version string.
3710 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
3712         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3713         * src/ffitest.c (main): Use static storage for closure.
3714         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3715         * src/sparc/v8.S (ffi_closure_v8): New.
3716         * src/sparc/v9.S (ffi_closure_v9): New.
3718 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
3720         * include/ffi.h.in: Added FFI_STDCALL ffi_type
3721           enumeration for X86_WIN32.
3722         * src/x86/win32.S: Added ffi_call_STDCALL function
3723           definition.
3724         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3725           switch cases for recognising FFI_STDCALL and
3726           calling ffi_call_STDCALL if target is X86_WIN32.
3727         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3728           stdcall versions of the "my_strlen" and "many"
3729           test functions (for X86_WIN32).
3730           Added test cases to test stdcall invocation using
3731           these functions.
3733 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3735         * src/sh/sysv.S: Add DWARF2 unwind info.
3737 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
3739         * src/s390/sysv.S (.eh_frame section): Make section read-only.
3741 2002-11-26  Jim Wilson  <wilson@redhat.com>
3743         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3745 2002-11-23  H.J. Lu <hjl@gnu.org>
3747         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3748         Include ../config/accross.m4.
3749         * aclocal.m4; Rebuild.
3750         * configure: Likewise.
3752 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
3754         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3756 2002-11-11  DJ Delorie  <dj@redhat.com>
3758         * configure.in: Look for common files in the right place.
3760 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
3762         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3763         raw data as _Jv_word values, not ffi_raw.
3764         (ffi_java_ptrarray_to_raw): Likewise.
3765         (ffi_java_rvalue_to_raw): New function.
3766         (ffi_java_raw_call): Call it.
3767         (ffi_java_raw_to_rvalue): New function.
3768         (ffi_java_translate_args): Call it.
3769         * src/ffitest.c (closure_test_fn): Interpret return value
3770         as ffi_arg, not int.
3771         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3772         FFI_TYPE_POINTER case.
3773         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
3774         values extended to word size.
3776 2002-10-02  Andreas Jaeger  <aj@suse.de>
3778         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3780 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
3782         * include/ffi.h.in: Fix i386 win32 compilation.
3784 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3786         * configure.in: Add s390x-*-linux-* target.
3787         * configure: Regenerate.
3788         * include/ffi.h.in: Define S390X for s390x targets.
3789         (FFI_CLOSURES): Define for s390/s390x.
3790         (FFI_TRAMPOLINE_SIZE): Likewise.
3791         (FFI_NATIVE_RAW_API): Likewise.
3792         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3793         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3794         * src/s390/ffi.c: Major rework of existing code.  Add support for
3795         s390x targets.  Add closure support.
3796         * src/s390/sysv.S: Likewise.
3798 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
3800         * src/arm/sysv.S: Fix typo.
3802 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
3804         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3805         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3806         (ffi_call_SYSV): Handle soft-float.
3808 2002-09-27  Bo Thorsen  <bo@suse.de>
3810         * include/ffi.h.in: Fix multilib x86-64 support.
3812 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3814         * Makefile.am (all-multi): Fix multilib parallel build.
3816 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3818         * configure.in (sh[34]*-*-linux*): Add brackets.
3819         * configure: Regenerate.
3821 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3823         * Makefile.am: Add SH support.
3824         * Makefile.in: Regenerate.
3825         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3826         * configure: Regenerate.
3827         * include/ffi.h.in: Add SH support.
3828         * src/sh/ffi.c: New file.
3829         * src/sh/sysv.S: New file.
3830         * src/types.c: Add SH support.
3832 2002-07-16  Bo Thorsen  <bo@suse.de>
3834         * src/x86/ffi64.c: New file that adds x86-64 support.
3835         * src/x86/unix64.S: New file that handles argument setup for
3836         x86-64.
3837         * src/x86/sysv.S: Don't use this on x86-64.
3838         * src/x86/ffi.c: Don't use this on x86-64.
3839         Remove unused vars.
3840         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3841         for x86-64.
3842         * src/ffitest.c (struct6): New test that tests a special case in
3843         the x86-64 ABI.
3844         (struct7): Likewise.
3845         (struct8): Likewise.
3846         (struct9): Likewise.
3847         (closure_test_fn): Silence warning about this when it's not used.
3848         (main): Add the new tests.
3849         (main): Fix a couple of wrong casts and silence some compiler warnings.
3850         * include/ffi.h.in: Add x86-64 ABI definition.
3851         * fficonfig.h.in: Regenerate.
3852         * Makefile.am: Add x86-64 support.
3853         * configure.in: Likewise.
3854         * Makefile.in: Regenerate.
3855         * configure: Likewise.
3857 2002-06-24  Bo Thorsen  <bo@suse.de>
3859         * src/types.c: Merge settings for similar architectures.
3860         Add x86-64 sizes and alignments.
3862 2002-06-23  Bo Thorsen  <bo@suse.de>
3864         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3865         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3866         * src/mips/ffi.c (ffi_prep_args): Likewise.
3867         * src/m68k/ffi.c (ffi_prep_args): Likewise.
3869 2002-07-18  H.J. Lu  (hjl@gnu.org)
3871         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3872         (libffi_la_SOURCES): Support MIPS_LINUX.
3873         (libffi_convenience_la_SOURCES): Likewise.
3874         * Makefile.in: Regenerated.
3876         * configure.in (mips64*-*): Skip.
3877         (mips*-*-linux*): New.
3878         * configure: Regenerated.
3880         * src/mips/ffi.c: Include <sgidefs.h>.
3882 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
3884         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
3886 2002-05-27  Roger Sayle  <roger@eyesopen.com>
3888         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3890 2002-05-27  Bo Thorsen  <bo@suse.de>
3892         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3893         fix formatting.
3895 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
3897         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
3898         beginning of function (for older apple cc).
3900 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
3902         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
3903         script entry, and set LD to it when configuring multilibs.
3904         * configure: Rebuilt.
3906 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3908         * configure.in (sparc64-*-netbsd*): Add target.
3909         (sparc-*-netbsdelf*): Likewise.
3910         * configure: Regenerate.
3912 2002-04-28  David S. Miller  <davem@redhat.com>
3914         * configure.in, configure: Fix SPARC test in previous change.
3916 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
3918         * Makefile.am: Add Linux for S/390 support.
3919         * Makefile.in: Regenerate.
3920         * configure.in: Add Linux for S/390 support.
3921         * configure: Regenerate.
3922         * include/ffi.h.in: Add Linux for S/390 support.
3923         * src/s390/ffi.c: New file from libffi CVS tree.
3924         * src/s390/sysv.S: New file from libffi CVS tree.
3926 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3928         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
3929         %r_disp32().
3930         * src/sparc/v8.S: Use it.
3931         * src/sparc/v9.S: Likewise.
3932         * fficonfig.h.in: Rebuilt.
3933         * configure: Rebuilt.
3935 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
3937         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
3938         correctly.
3939         * src/ia64/unix.S: Add unwind information. Fix comments.
3940         Save sp in a way that's compatible with unwind info.
3941         (ffi_call_unix): Correctly restore sp in all cases.
3942         * src/ia64/ffi.c: Add, fix comments.
3944 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
3946         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
3948 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
3950         * configure.in (alpha*-*-netbsd*): Add target.
3951         * configure: Regenerate.
3953 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
3955         * src/sparc/v8.S: Add unwind info.
3956         * src/sparc/v9.S: Likewise.
3958 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
3960         * configure.in: Enable i*86-*-netbsdelf*.
3961         * configure: Rebuilt.
3963 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
3965         PR other/2620
3966         * src/mips/n32.s: Delete
3967         * src/mips/o32.s: Delete
3969 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
3971         * configure.in: Enable alpha*-*-freebsd*.
3972         * configure: Rebuilt.
3974 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3976         * Makefile.am: libfficonvenience -> libffi_convenience.
3977         * Makefile.in: Rebuilt.
3979         * Makefile.am: Define ffitest_OBJECTS.
3980         * Makefile.in: Rebuilt.
3982 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
3983             David Edelsohn  <edelsohn@gnu.org>
3985         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
3986         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
3987         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
3988         * Makefile.in: Regenerate.
3989         * include/ffi.h.in: Add AIX and Darwin closure definitions.
3990         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
3991         (flush_icache, flush_range): New functions.
3992         (ffi_closure_helper_DARWIN): New function.
3993         * src/powerpc/aix_closure.S: New file.
3994         * src/powerpc/darwin_closure.S: New file.
3996 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
3998         * include/ffi.h.in: Add typedef for ffi_arg.
3999         * src/ffitest.c (main): Declare rint with ffi_arg.
4001 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
4003         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4004         number of GPRs for floating-point arguments.
4006 2002-01-31  Anthony Green  <green@redhat.com>
4008         * configure: Rebuilt.
4009         * configure.in: Replace CHECK_SIZEOF and endian tests with
4010         cross-compiler friendly macros.
4011         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4012         macros.
4014 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
4016         * src/powerpc/darwin.S (_ffi_call_AIX): New.
4017         * src/powerpc/aix.S (ffi_call_DARWIN): New.
4019 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
4021         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4022         (TARGET_SRC_POWERPC_AIX): New.
4023         (POWERPC_AIX): New stanza.
4024         * Makefile.in: Regenerate.
4025         * configure.in: Add AIX case.
4026         * configure: Regenerate.
4027         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4028         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4029         size.  Fix "long double" support.
4030         (ffi_call): Add FFI_AIX case.
4031         * src/powerpc/aix.S: New.
4033 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
4035         Implement Darwin PowerPC ABI.
4036         * configure.in: Handle powerpc-*-darwin*.
4037         * Makefile.am: Set source files for POWERPC_DARWIN.
4038         * configure: Rebuilt.
4039         * Makefile.in: Rebuilt.
4040         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4041         POWERPC_DARWIN.
4042         * src/powerpc/darwin.S: New file.
4043         * src/powerpc/ffi_darwin.c: New file.
4045 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4047         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4049 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4051         * src/x86/sysv.S: Avoid gas-only .balign directive.
4052         Use C style comments.
4054 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4056         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4057         Fixes PR bootstrap/3563.
4059 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4061         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4063 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4065         * configure.in: Recognize sparc*-sun-* host.
4066         * configure: Regenerate.
4068 2001-06-06  Andrew Haley  <aph@redhat.com>
4070         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4072 2001-06-03  Andrew Haley  <aph@redhat.com>
4074         * src/alpha/osf.S: Add unwind info.
4075         * src/powerpc/sysv.S: Add unwind info.
4076         * src/powerpc/ppc_closure.S: Likewise.
4078 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
4080         * configure.in: Fix AC_ARG_ENABLE usage.
4081         * configure: Rebuilt.
4083 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
4085         * configure.in: Remove warning about beta code.
4086         * configure: Rebuilt.
4088 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
4090         * src/ia64/unix.S: Restore stack pointer when returning from
4091         ffi_closure_UNIX.
4092         * src/ia64/ffi.c: Fix typo in comment.
4094 2001-04-18  Jim Wilson  <wilson@redhat.com>
4096         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4097         to eliminate RAW DV.
4099 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
4101         * Makefile.am: Make a libtool convenience library.
4102         * Makefile.in: Rebuilt.
4104 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
4106         * configure.in: Use different syntax for subdirectory creation.
4107         * configure: Rebuilt.
4109 2001-03-27  Jon Beniston  <jon@beniston.com>
4111         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4112         * configure: Rebuilt.
4113         * Makefile.am: Added X86_WIN32 target support.
4114         * Makefile.in: Rebuilt.
4116         * include/ffi.h.in: Added X86_WIN32 target support.
4118         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4119         * src/types.c: Added X86_WIN32 target support.
4121         * src/x86/win32.S: New file. Based on sysv.S, but with EH
4122         stuff removed and made to work with CygWin's gas.
4124 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
4126         * configure.in: Make target subdirectory in build dir.
4127         * Makefile.am: Override suffix based rules to specify correct output
4128         subdirectory.
4129         * Makefile.in: Rebuilt.
4130         * configure: Rebuilt.
4132 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
4134         * src/powerpc/ppc_closure.S: New file.
4135         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4136         involving long long and register pairs.
4137         (ffi_prep_closure): New function.
4138         (flush_icache): Likewise.
4139         (ffi_closure_helper_SYSV): Likewise.
4140         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4141         (FFI_TRAMPOLINE_SIZE): Likewise.
4142         (FFI_NATIVE_RAW_API): Likewise.
4143         * Makefile.in: Rebuilt.
4144         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4145         (TARGET_SRC_POWERPC): Likewise.
4147 2001-03-19  Tom Tromey  <tromey@redhat.com>
4149         * Makefile.in: Rebuilt.
4150         * Makefile.am (ffitest_LDFLAGS): New macro.
4152 2001-03-02  Nick Clifton  <nickc@redhat.com>
4154         * include/ffi.h.in: Remove RCS ident string.
4155         * include/ffi_mips.h: Remove RCS ident string.
4156         * src/debug.c: Remove RCS ident string.
4157         * src/ffitest.c: Remove RCS ident string.
4158         * src/prep_cif.c: Remove RCS ident string.
4159         * src/types.c: Remove RCS ident string.
4160         * src/alpha/ffi.c: Remove RCS ident string.
4161         * src/alpha/osf.S: Remove RCS ident string.
4162         * src/arm/ffi.c: Remove RCS ident string.
4163         * src/arm/sysv.S: Remove RCS ident string.
4164         * src/mips/ffi.c: Remove RCS ident string.
4165         * src/mips/n32.S: Remove RCS ident string.
4166         * src/mips/o32.S: Remove RCS ident string.
4167         * src/sparc/ffi.c: Remove RCS ident string.
4168         * src/sparc/v8.S: Remove RCS ident string.
4169         * src/sparc/v9.S: Remove RCS ident string.
4170         * src/x86/ffi.c: Remove RCS ident string.
4171         * src/x86/sysv.S: Remove RCS ident string.
4173 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4175         * include/ffi.h.in: Change sourceware.cygnus.com references to
4176         gcc.gnu.org.
4178 2000-12-09  Richard Henderson  <rth@redhat.com>
4180         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4181         (ffi_closure_osf_inner): Index rather than increment avalue
4182         and arg_types.  Give ffi_closure_osf the raw return value type.
4183         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4184         promotion.
4186 2000-12-07  Richard Henderson  <rth@redhat.com>
4188         * src/raw_api.c (ffi_translate_args): Fix typo.
4189         (ffi_prep_closure): Likewise.
4191         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4192         FFI_TRAMPOLINE_SIZE.
4193         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4194         cif->bytes for new ffi_call_osf implementation.
4195         (ffi_prep_args): Absorb into ...
4196         (ffi_call): ... here.  Do all stack allocation here and
4197         avoid a callback function.
4198         (ffi_prep_closure, ffi_closure_osf_inner): New.
4199         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4200         (ffi_closure_osf): New.
4202 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
4204         * config.guess, config.sub, install-sh: Removed.
4205         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4206         * Makefile.in: Rebuilt.
4208         * acinclude.m4: Include libtool macros from the top level.
4209         * aclocal.m4, configure: Rebuilt.
4211 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
4213         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4214         * configure: Rebuilt.
4216 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
4218         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4219         memory correctly.  Use conditional instructions, not branches where
4220         possible.
4222 2000-05-04  Tom Tromey  <tromey@cygnus.com>
4224         * configure: Rebuilt.
4225         * configure.in: Match `arm*-*-linux-*'.
4226         From Chris Dornan <cdornan@arm.com>.
4228 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
4230         * Makefile.am (SUBDIRS): Define.
4231         (AM_MAKEFLAGS): Likewise.
4232         (Multilib support.): Add section.
4233         * Makefile.in: Rebuilt.
4234         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4235         New variables. Set for gcc using -print-multi-lib. Export them
4236         to libtool.
4237         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4238         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4239         for -shared links.
4240         (extra_compiler_flags_value, extra_compiler_flags): Check these
4241         for extra compiler options which need to be passed down in
4242         compiler_flags.
4244 2000-04-16  Anthony Green  <green@redhat.com>
4246         * configure: Rebuilt.
4247         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4249 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
4251         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4252         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4253         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4254         Replace all void * sizeofs with sizeof(int).
4255         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4256         different than DOUBLE.
4257         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4258         (ffi_prep_args_v9): New function.
4259         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4260         (ffi_V9_return_struct): New function.
4261         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4262         32bit code (not yet cross-arch calls).
4263         * src/sparc/v8.S: Add struct return delay nop.
4264         Handle long long.
4265         * src/sparc/v9.S: New file.
4266         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4267         is used on sparc64 only for structures larger than 32 bytes.
4268         Pass by reference for structures is done for structure arguments
4269         larger than 16 bytes.
4270         * src/ffitest.c (main): Use 64bit rint on sparc64.
4271         Run long long tests on sparc.
4272         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4273         sparc64.
4274         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4275         on sparc64.
4276         * configure.in (sparc-*-linux*): New supported target.
4277         (sparc64-*-linux*): Likewise.
4278         * configure: Rebuilt.
4279         * Makefile.am: Add v9.S to SPARC files.
4280         * Makefile.in: Likewise.
4281         (LINK): Surround $(CCLD) into double quotes, so that multilib
4282         compiles work correctly.
4284 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
4286         * configure: Rebuilt.
4287         * configure.in: (i*86-*-solaris*): New libffi target. Patch
4288         proposed by Bryce McKinlay.
4290 2000-03-20  Tom Tromey  <tromey@cygnus.com>
4292         * Makefile.in: Hand edit for java_raw_api.lo.
4294 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
4296         * config.guess, config.sub: Update from the gcc tree.
4297         Fix for PR libgcj/168.
4299 2000-03-03  Tom Tromey  <tromey@cygnus.com>
4301         * Makefile.in: Fixed ia64 by hand.
4303         * configure: Rebuilt.
4304         * configure.in (--enable-multilib): New option.
4305         (libffi_basedir): New subst.
4306         (AC_OUTPUT): Added multilib code.
4308 2000-03-02  Tom Tromey  <tromey@cygnus.com>
4310         * Makefile.in: Rebuilt.
4311         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4312         directory name.
4314 2000-02-25  Hans Boehm <boehm@acm.org>
4316         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4317         files.
4318         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4319         list.
4320         (ffi_prep_raw_closure): Use ffi_translate_args, not
4321         ffi_closure_translate.
4322         * src/java_raw_api.c: New file.
4323         * src/ffitest.c (closure_test_fn): New function.
4324         (main): Define `rint' as long long on IA64.  Added new test when
4325         FFI_CLOSURES is defined.
4326         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4327         (ffi_abi): Recognize IA64.
4328         (ffi_raw): Added `flt' field.
4329         Added "Java raw API" code.
4330         * configure.in: Recognize ia64.
4331         * Makefile.am (TARGET_SRC_IA64): New macro.
4332         (libffi_la_common_SOURCES): Added java_raw_api.c.
4333         (libffi_la_SOURCES): Define in IA64 case.
4335 2000-01-04  Tom Tromey  <tromey@cygnus.com>
4337         * Makefile.in: Rebuilt with newer automake.
4339 1999-12-31  Tom Tromey  <tromey@cygnus.com>
4341         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4343 1999-09-01  Tom Tromey  <tromey@cygnus.com>
4345         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4346         undefs.
4347         * fficonfig.h.in: Rebuilt.
4348         * configure: Rebuilt.
4349         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4350         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4351         * acconfig.h: Don't #undef PACKAGE or VERSION.
4353 1999-08-09  Anthony Green  <green@cygnus.com>
4355         * include/ffi.h.in: Try to work around messy header problem
4356         with PACKAGE and VERSION.
4358         * configure: Rebuilt.
4359         * configure.in: Change version to 2.00-beta.
4361         * fficonfig.h.in: Rebuilt.
4362         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4364         * src/x86/ffi.c (ffi_raw_call): Rename.
4366 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
4368         * src/x86/ffi.c (ffi_closure_SYSV): New function.
4369         (ffi_prep_incoming_args_SYSV): Ditto.
4370         (ffi_prep_closure): Ditto.
4371         (ffi_closure_raw_SYSV): Ditto.
4372         (ffi_prep_raw_closure): More ditto.
4373         (ffi_call_raw): Final ditto.
4375         * include/ffi.h.in: Add definitions for closure and raw API.
4377         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4378         FFI_TYPE_UINT64.
4380         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4382         * src/raw_api.c: New file.
4384         * include/ffi.h.in (ffi_raw): New type.
4385         (UINT_ARG, SINT_ARG): New defines.
4386         (ffi_closure, ffi_raw_closure): New types.
4387         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4389         * configure.in: Add check for endianness and sizeof void*.
4391         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4392         instead of directly.
4394         * configure: Rebuilt.
4396 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
4398         * configure.in: Add x86 and powerpc BeOS configurations.
4399         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4401 1999-05-09  Anthony Green  <green@cygnus.com>
4403         * configure.in: Add warning about this being beta code.
4404         Remove src/Makefile.am from the picture.
4405         * configure: Rebuilt.
4407         * Makefile.am: Move logic from src/Makefile.am.  Add changes
4408         to support libffi as a target library.
4409         * Makefile.in: Rebuilt.
4411         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4412         Upgraded to new autoconf, automake, libtool.
4414         * README: Tweaks.
4416         * LICENSE: Update copyright date.
4418         * src/Makefile.am, src/Makefile.in: Removed.
4420 1998-11-29  Anthony Green  <green@cygnus.com>
4422         * include/ChangeLog: Removed.
4423         * src/ChangeLog: Removed.
4424         * src/mips/ChangeLog: Removed.
4425         * src/sparc/ChangeLog: Remboved.
4426         * src/x86/ChangeLog: Removed.
4428         * ChangeLog.v1: Created.