OSDN Git Service

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