OSDN Git Service

2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libffi / ChangeLog
1 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
2
3         * configure: Regenerate for libtool change.
4
5 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6
7         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
8
9 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
10
11         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
12         of jal.  Use an absolute encoding for the frame information.
13
14 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
15
16         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
17         * acinclude.m4: Delete logic for sincludes.
18         * aclocal.m4, Makefile.in, configure: Regenerate.
19         * include/Makefile: Likewise.
20         * testsuite/Makefile: Likewise.
21
22 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
23
24         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
25         on a 8-byte boundary.
26         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
27
28 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
29
30         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
31         long long values.  Round stack allocation to a multiple of 8 bytes
32         for ATPCS compatibility.
33         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
34         names.  Handle returning long long types.  Add Thumb and interworking
35         support.  Improve soft-float code.
36
37 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
38
39         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
40         (libffi_exit): New function.
41         (libffi_init): Build the testglue wrapper if needed.
42
43 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
44
45         PR other/18138
46         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
47
48 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
49
50         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
51
52 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
53
54         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
55         * testsuite/libffi.call/float3.c: New test case.
56
57 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
58
59         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
60         the function returning a structure pointed with R2.
61         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
62         the structure return value if T bit set.  Emit position
63         independent code and EH data if PIC.
64
65 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
66
67         * Makefile.am: Add m32r support.
68         * configure.ac: Likewise.
69         * Makefile.in: Regenerate.
70         * confiugre: Regenerate.
71         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
72         (uint64, sint64, double, longdouble)
73         * src/m32r: New directory.
74         * src/m32r/ffi.c: New file.
75         * src/m32r/sysv.S: Likewise.
76         * src/m32r/ffitarget.h: Likewise.
77
78 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
79
80         * testsuite/libffi.call/negint.c: New test case.
81
82 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
83
84         PR libgcj/17465
85         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
86         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
87         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
88         DYLD_LIBRARY_PATH.
89
90 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
91
92         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
93         * testsuite/libffi.call/promotion.c: Likewise.
94         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
95         whitespaces.
96         * testsuite/libffi.call/return_sc.c: Likewise.
97         * testsuite/libffi.call/return_uc.c: Likewise.
98
99 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
100
101         * src/powerpc/darwin.S: Fix comments and identation.
102         * src/powerpc/darwin_closure.S: Likewise.
103
104 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
105
106         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
107         (ffi_prep_args): Handle longdouble arguments.
108         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
109         longdouble.
110         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
111         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
112         values.
113         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
114         * src/types.c: Defined longdouble size and alignment for darwin.
115
116 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
117
118         * src/powerpc/aix.S: Remove whitespaces.
119         * src/powerpc/aix_closure.S: Likewise.
120         * src/powerpc/asm.h: Likewise.
121         * src/powerpc/ffi.c: Likewise.
122         * src/powerpc/ffitarget.h: Likewise.
123         * src/powerpc/linux64.S: Likewise.
124         * src/powerpc/linux64_closure.S: Likewise.
125         * src/powerpc/ppc_closure.S: Likewise.
126         * src/powerpc/sysv.S: Likewise.
127
128 2004-08-30  Anthony Green  <green@redhat.com>
129
130         * Makefile.am: Add frv support.
131         * Makefile.in, testsuite/Makefile.in: Rebuilt.
132         * configure.ac: Read configure.host.
133         * configure.in: Read configure.host.
134         * configure.host: New file.  frv-elf needs libgloss.
135         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
136         alignment.  This is needed to frv and shouldn't harm the others.
137         * include/ffi_common.h (ALIGN_DOWN): New macro.
138         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
139
140 2004-08-24  David Daney  <daney@avtrex.com>
141
142         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
143         * testsuite/libffi.call/closure_fn1.c: Likewise.
144         * testsuite/libffi.call/closure_fn2.c  Likewise.
145         * testsuite/libffi.call/closure_fn3.c: Likewise.
146         * testsuite/libffi.call/closure_fn4.c: Likewise.
147         * testsuite/libffi.call/closure_fn5.c: Likewise.
148         * testsuite/libffi.call/cls_18byte.c: Likewise.
149         * testsuite/libffi.call/cls_19byte.c: Likewise.
150         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
151         * testsuite/libffi.call/cls_20byte.c: Likewise.
152         * testsuite/libffi.call/cls_20byte1.c: Likewise.
153         * testsuite/libffi.call/cls_24byte.c: Likewise.
154         * testsuite/libffi.call/cls_2byte.c: Likewise.
155         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
156         * testsuite/libffi.call/cls_3byte1.c: Likewise.
157         * testsuite/libffi.call/cls_3byte2.c: Likewise.
158         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
159         * testsuite/libffi.call/cls_4byte.c: Likewise.
160         * testsuite/libffi.call/cls_64byte.c: Likewise.
161         * testsuite/libffi.call/cls_6byte.c: Likewise.
162         * testsuite/libffi.call/cls_7byte.c: Likewise.
163         * testsuite/libffi.call/cls_8byte.c: Likewise.
164         * testsuite/libffi.call/cls_9byte1.c: Likewise.
165         * testsuite/libffi.call/cls_9byte2.c: Likewise.
166         * testsuite/libffi.call/cls_align_double.c: Likewise.
167         * testsuite/libffi.call/cls_align_float.c: Likewise.
168         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
169         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
170         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
171         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
172         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
173         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
174         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
175         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
176         * testsuite/libffi.call/cls_double.c: Likewise.
177         * testsuite/libffi.call/cls_float.c: Likewise.
178         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
179         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
180         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
181         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
182         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
183         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
184         * testsuite/libffi.call/cls_schar.c: Likewise.
185         * testsuite/libffi.call/cls_sint.c: Likewise.
186         * testsuite/libffi.call/cls_sshort.c: Likewise.
187         * testsuite/libffi.call/cls_uchar.c: Likewise.
188         * testsuite/libffi.call/cls_uint.c: Likewise.
189         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
190         * testsuite/libffi.call/cls_ushort.c: Likewise.
191         * testsuite/libffi.call/nested_struct.c: Likewise.
192         * testsuite/libffi.call/nested_struct1.c: Likewise.
193         * testsuite/libffi.call/nested_struct2.c: Likewise.
194         * testsuite/libffi.call/nested_struct3.c: Likewise.
195         * testsuite/libffi.call/problem1.c: Likewise.
196         * testsuite/libffi.special/unwindtest.cc: Likewise.
197         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
198         to zero.
199         * testsuite/libffi.call/cls_16byte.c: Likewise.
200         * testsuite/libffi.call/cls_5byte.c: Likewise.
201
202 2004-08-23  David Daney <daney@avtrex.com>
203
204         PR libgcj/13141
205         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
206         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
207         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
208         parameters and return types.
209         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
210         (ffi_prep_closure): Ditto.
211         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
212         alignment calculations.
213         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
214         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
215
216 2004-08-14  Casey Marshall <csm@gnu.org>
217
218         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
219         contain `FFI_TYPE_UINT64' as return type for any 64-bit
220         integer (O32 ABI only).
221         (ffi_prep_closure): new function.
222         (ffi_closure_mips_inner_O32): new function.
223         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and 
224         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
225         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
226         64 bit integers correctly.
227         (ffi_closure_O32): new function.
228         Added DWARF-2 unwind info for both functions.
229
230 2004-08-10  Andrew Haley  <aph@redhat.com>
231
232         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
233
234 2004-08-01  Robert Millan  <robertmh@gnu.org>
235
236         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
237         * configure: Regenerate.
238
239 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
240
241         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
242         and mmap() explicitly instead of relying on preset autoconf cache
243         variables.
244         * aclocal.m4: Regenerate.
245         * configure: Regenerate.
246
247 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
248
249         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
250         (ffi_check_float_struct): Remove unused prototype.
251
252 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
253
254         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
255         character on Darwin, use '\n\t' instead.
256
257 2004-06-26  Matthias Klose  <doko@debian.org>
258
259         * libtool-version: Fix typo in revision/age.
260
261 2004-06-17  Matthias Klose  <doko@debian.org>
262
263         * libtool-version: New.
264         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
265         * Makefile.in: Regenerate.
266
267 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
268
269         * Makefile.am: Remove useless multilib rules.
270         * Makefile.in: Regenerate.
271         * aclocal.m4: Regenerate with automake 1.8.5.
272         * configure.ac: Remove useless multilib configury.
273         * configure: Regenerate.
274
275 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
276
277         * .cvsignore: New file.
278
279 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
280
281         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
282         fp_done.
283         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
284         changed from 8.
285
286 2004-06-06  Sean McNeil  <sean@mcneil.com>
287
288         * configure.ac: Add x86_64-*-freebsd* support.
289         * configure: Regenerate.
290
291 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
292
293         Bug 15093
294         * configure.ac: Test for existence of mmap and sys/mman.h before
295         checking blacklist.  Fix suggested by Jim Wilson.
296         * configure: Regenerate.
297
298 2004-04-26  Matt Austern  <austern@apple.com>
299
300         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
301         FDE location.
302         * src/powerpc/darwin_closure.S: Likewise.
303         
304 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
305
306         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
307         error. Reported by Thomas Heller <theller@python.net>.
308         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
309         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
310
311 2004-03-20  Matthias Klose  <doko@debian.org>
312
313         * src/pa/linux.S: Fix typo.
314
315 2004-03-19  Matthias Klose  <doko@debian.org>
316
317         * Makefile.am: Update.
318         * Makefile.in: Regenerate.
319         * src/pa/ffi.h.in: Remove.
320         * src/pa/ffitarget.h: New file.
321
322 2004-02-10  Randolph Chung  <tausq@debian.org>
323
324         * Makefile.am: Add PA support.
325         * Makefile.in: Regenerate.
326         * include/Makefile.in: Regenerate.
327         * configure.ac: Add PA target.
328         * configure: Regenerate.
329         * src/pa/ffi.c: New file.
330         * src/pa/ffi.h.in: Add PA support.
331         * src/pa/linux.S: New file.
332         * prep_cif.c: Add PA support.
333
334 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
335
336         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
337         double.
338         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
339         with ecif->cif->flags.
340         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
341         with cif->flags.
342         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
343         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
344         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
345         sc_retstruct2b): Add for 1 or 2-bytes struct case.
346
347 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
348
349         * configure.in: Rename file to ...
350         * configure.ac: ... this.
351         * fficonfig.h.in: Regenerate.
352         * Makefile.in: Regenerate.
353         * include/Makefile.in: Regenerate.
354         * testsuite/Makefile.in: Regenerate.
355
356 2004-03-12  Matt Austern  <austern@apple.com>
357
358         * src/powerpc/darwin.S: Fix EH information so it corresponds to
359         changes in EH format resulting from addition of linkonce support.
360         * src/powerpc/darwin_closure.S: Likewise.
361
362 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
363             Paolo Bonzini  <bonzini@gnu.org>
364
365         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
366         Remove VPATH. Remove rules for object files. Remove multilib support.
367         (AM_CCASFLAGS): Add.
368         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
369         (AC_PREREQ): Bump version to 2.59.
370         (AC_INIT): Fill with version info and bug address.
371         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
372         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
373         De-precious CC so that the right flags are passed down to multilibs.
374         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
375         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
376         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
377         * configure: Rebuilt.
378         * aclocal.m4: Likewise.
379         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
380         * fficonfig.h.in: Likewise.
381
382 2004-03-11  Andreas Schwab  <schwab@suse.de>
383
384         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
385         arguments from fp registers only for the first 8 parameter slots.
386         Don't convert a float parameter when passed in memory.
387
388 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
389
390         * configure: Regenerate for config/accross.m4 correction.
391
392 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
393
394         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
395         ecif->cif->bytes to bytes.
396         (ffi_prep_cif_machdep): Add braces around nested if statement.
397
398 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
399
400         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
401
402         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
403         (ffi_closure_helper_LINUX64): Fix typo.
404         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
405         for powerpc64-*-*.
406         * testsuite/libffi.call/float.c: Likewise.
407         * testsuite/libffi.call/float2.c: Likewise.
408
409 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
410
411         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
412         long double function return and long double arg handling.
413         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
414         Use "end_pfr" instead of "nf".  Correct long double handling.
415         Localise "temp".
416         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
417         return value.
418         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
419         space for long double return value.  Adjust stack frame and offsets.
420         Load f2 long double return.
421
422 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
423
424         * src/types.c: Use 16 byte long double for POWERPC64.
425
426 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
427
428         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
429         when the structure return address is passed in %o0.
430         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
431         (ffi_v9_layout_struct): Align the field following a nested structure
432         on a word boundary.  Use memmove instead of memcpy.
433         (ffi_call): Update call to ffi_V9_return_struct.
434         (ffi_prep_closure): Define 'ctx' only for V8.
435         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
436         and ffi_closure_sparc_inner_v9.
437         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
438         Always skip the structure return address.  For structures and long
439         doubles, copy the argument directly.
440         (ffi_closure_sparc_inner_v9): Skip the structure return address only
441         if required.  Shift the maximum floating-point slot accordingly.  For
442         big structures, copy the argument directly; otherwise, left-justify the
443         argument and call ffi_v9_layout_struct to lay out the structure on
444         the stack.
445         * src/sparc/v8.S: Undef STACKFRAME before defining it.
446         (ffi_closure_v8): Pass the structure return address.  Update call to
447         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
448         Skip the 'unimp' insn when returning long doubles and structures.
449         * src/sparc/v9.S: Undef STACKFRAME before defining it.
450         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
451         FFI_TYPE_INT handling.  Load structures both in integers and
452         floating-point registers on return.
453         * README: Update status of the SPARC port.
454
455 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
456
457         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
458         as of type ffi_arg.
459         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
460
461 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
462
463         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
464         value as of type ffi_arg, not unsigned int.
465
466 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
467
468         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
469         of the LHS.
470
471 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
472
473         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
474         Solaris.
475
476 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
477
478         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
479         to void *.
480
481 2003-12-10  Richard Henderson  <rth@redhat.com>
482
483         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
484         size_t instead of int.
485
486 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
487
488         * testsuite/libffi.call/many_win32.c: Include <float.h>.
489         * testsuite/libffi.call/many_win32.c (main): Replace variable
490         int i with unsigned long ul.
491
492         * testsuite/libffi.call/cls_align_uint64.c: New test case.
493         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
494         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
495         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
496         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
497         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
498         * testsuite/libffi.call/cls_align_float.c: Likewise.
499         * testsuite/libffi.call/cls_align_double.c: Likewise.
500         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
501         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
502
503 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
504
505         PR other/13221
506         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
507         Align arguments to 32 bits.
508
509 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
510
511         PR other/13221
512         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
513         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
514         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
515         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
516         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
517         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
518
519         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
520
521 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
522
523         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
524         * testsuite/libffi.special/ffitestcxx.h: Likewise.
525
526 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
527
528         * Makefile.in: Rebuilt.
529         * configure: Likewise.
530         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
531         the right type.
532
533 2003-11-21  Andreas Jaeger  <aj@suse.de>
534             Andreas Tobler  <a.tobler@schweiz.ch>
535
536         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
537         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
538         * Makefile.in: Rebuilt.
539         * aclocal.m4: Likewise.
540         * configure: Likewise.
541         * fficonfig.h.in: Likewise.
542         * testsuite/lib/libffi-dg.exp: Add include dir.
543         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
544         * testsuite/libffi.special/ffitestcxx.h: Likewise.
545         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
546         for ffi_closure if available.
547         * testsuite/libffi.call/closure_fn1.c: Likewise.
548         * testsuite/libffi.call/closure_fn2.c: Likewise.
549         * testsuite/libffi.call/closure_fn3.c: Likewise.
550         * testsuite/libffi.call/closure_fn4.c: Likewise.
551         * testsuite/libffi.call/closure_fn5.c: Likewise.
552         * testsuite/libffi.call/cls_12byte.c: Likewise.
553         * testsuite/libffi.call/cls_16byte.c: Likewise.
554         * testsuite/libffi.call/cls_18byte.c: Likewise.
555         * testsuite/libffi.call/cls_19byte.c: Likewise.
556         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
557         * testsuite/libffi.call/cls_20byte.c: Likewise.
558         * testsuite/libffi.call/cls_20byte1.c: Likewise.
559         * testsuite/libffi.call/cls_24byte.c: Likewise.
560         * testsuite/libffi.call/cls_2byte.c: Likewise.
561         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
562         * testsuite/libffi.call/cls_3byte1.c: Likewise.
563         * testsuite/libffi.call/cls_3byte2.c: Likewise.
564         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
565         * testsuite/libffi.call/cls_4byte.c: Likewise.
566         * testsuite/libffi.call/cls_5byte.c: Likewise.
567         * testsuite/libffi.call/cls_64byte.c: Likewise.
568         * testsuite/libffi.call/cls_6byte.c: Likewise.
569         * testsuite/libffi.call/cls_7byte.c: Likewise.
570         * testsuite/libffi.call/cls_8byte.c: Likewise.
571         * testsuite/libffi.call/cls_9byte1.c: Likewise.
572         * testsuite/libffi.call/cls_9byte2.c: Likewise.
573         * testsuite/libffi.call/cls_double.c: Likewise.
574         * testsuite/libffi.call/cls_float.c: Likewise.
575         * testsuite/libffi.call/cls_schar.c: Likewise.
576         * testsuite/libffi.call/cls_sint.c: Likewise.
577         * testsuite/libffi.call/cls_sshort.c: Likewise.
578         * testsuite/libffi.call/cls_uchar.c: Likewise.
579         * testsuite/libffi.call/cls_uint.c: Likewise.
580         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
581         * testsuite/libffi.call/cls_ushort.c: Likewise.
582         * testsuite/libffi.call/nested_struct.c: Likewise.
583         * testsuite/libffi.call/nested_struct1.c: Likewise.
584         * testsuite/libffi.call/nested_struct2.c: Likewise.
585         * testsuite/libffi.call/nested_struct3.c: Likewise.
586         * testsuite/libffi.call/problem1.c: Likewise.
587         * testsuite/libffi.special/unwindtest.cc: Likewise.
588
589 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
590
591         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
592
593 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
594
595         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
596         Add -lgcc_s to additional flags.
597
598 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
599
600         * configure.in, include/Makefile.am: PR libgcj/11147, install
601         the ffitarget.h header file in a gcc versioned and target
602         dependent place.
603         * configure: Regenerated.
604         * Makefile.in, include/Makefile.in: Likewise.
605         * testsuite/Makefile.in: Likewise.
606
607 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
608
609         * testsuite/libffi.call/closure_fn0.c: Print result and check
610         with dg-output to make debugging easier.
611         * testsuite/libffi.call/closure_fn1.c: Likewise.
612         * testsuite/libffi.call/closure_fn2.c: Likewise.
613         * testsuite/libffi.call/closure_fn3.c: Likewise.
614         * testsuite/libffi.call/closure_fn4.c: Likewise.
615         * testsuite/libffi.call/closure_fn5.c: Likewise.
616         * testsuite/libffi.call/cls_12byte.c: Likewise.
617         * testsuite/libffi.call/cls_16byte.c: Likewise.
618         * testsuite/libffi.call/cls_18byte.c: Likewise.
619         * testsuite/libffi.call/cls_19byte.c: Likewise.
620         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
621         * testsuite/libffi.call/cls_20byte.c: Likewise.
622         * testsuite/libffi.call/cls_20byte1.c: Likewise.
623         * testsuite/libffi.call/cls_24byte.c: Likewise.
624         * testsuite/libffi.call/cls_2byte.c: Likewise.
625         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
626         * testsuite/libffi.call/cls_3byte1.c: Likewise.
627         * testsuite/libffi.call/cls_3byte2.c: Likewise.
628         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
629         * testsuite/libffi.call/cls_4byte.c: Likewise.
630         * testsuite/libffi.call/cls_5byte.c: Likewise.
631         * testsuite/libffi.call/cls_64byte.c: Likewise.
632         * testsuite/libffi.call/cls_6byte.c: Likewise.
633         * testsuite/libffi.call/cls_7byte.c: Likewise.
634         * testsuite/libffi.call/cls_8byte.c: Likewise.
635         * testsuite/libffi.call/cls_9byte1.c: Likewise.
636         * testsuite/libffi.call/cls_9byte2.c: Likewise.
637         * testsuite/libffi.call/cls_double.c: Likewise.
638         * testsuite/libffi.call/cls_float.c: Likewise.
639         * testsuite/libffi.call/cls_schar.c: Likewise.
640         * testsuite/libffi.call/cls_sint.c: Likewise.
641         * testsuite/libffi.call/cls_sshort.c: Likewise.
642         * testsuite/libffi.call/cls_uchar.c: Likewise.
643         * testsuite/libffi.call/cls_uint.c: Likewise.
644         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
645         * testsuite/libffi.call/cls_ushort.c: Likewise.
646         * testsuite/libffi.call/problem1.c: Likewise.
647
648         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
649         static.
650
651 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
652
653         * testsuite/libffi.call/cls_9byte2.c: New test case.
654         * testsuite/libffi.call/cls_9byte1.c: Likewise.
655         * testsuite/libffi.call/cls_64byte.c: Likewise.
656         * testsuite/libffi.call/cls_20byte1.c: Likewise.
657         * testsuite/libffi.call/cls_19byte.c: Likewise.
658         * testsuite/libffi.call/cls_18byte.c: Likewise.
659         * testsuite/libffi.call/closure_fn4.c: Likewise.
660         * testsuite/libffi.call/closure_fn5.c: Likewise.
661         * testsuite/libffi.call/cls_schar.c: Likewise.
662         * testsuite/libffi.call/cls_sint.c: Likewise.
663         * testsuite/libffi.call/cls_sshort.c: Likewise.
664         * testsuite/libffi.call/nested_struct2.c: Likewise.
665         * testsuite/libffi.call/nested_struct3.c: Likewise.
666
667 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
668
669         * testsuite/libffi.call/cls_double.c: Do a check on the result.
670         * testsuite/libffi.call/cls_uchar.c: Likewise.
671         * testsuite/libffi.call/cls_uint.c: Likewise.
672         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
673         * testsuite/libffi.call/cls_ushort.c: Likewise.
674         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
675
676 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
677
678         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
679         the initialization.
680
681 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
682
683         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
684         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
685
686 2003-10-22  David Daney  <ddaney@avtrex.com>
687
688         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
689         __attribute__((__mode__(__SI__))) and friends.
690
691 2003-10-22  Andreas Schwab  <schwab@suse.de>
692
693         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
694
695 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
696
697         * configure.in: AC_LINK_FILES(ffitarget.h).
698         * configure: Regenerate.
699         * Makefile.in: Likewise.
700         * include/Makefile.in: Likewise.
701         * testsuite/Makefile.in: Likewise.
702         * fficonfig.h.in: Likewise.
703
704 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
705             Richard Henderson  <rth@redhat.com>
706
707         Avoid that ffi.h includes fficonfig.h.
708
709         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
710         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
711         (TARGET_SRC_MIPS_SGI): Removed.
712         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
713         (MIPS_SGI): Removed.
714         (CLEANFILES): Removed.
715         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
716         targets.
717         * acconfig.h: Removed.
718         * configure.in: Compute sizeofs only for double and long double.
719         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
720         into AC_DEFINE instead of using acconfig.h.  Create
721         include/ffitarget.h instead of include/fficonfig.h.  Rename
722         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
723         AC_DEFINE EH_FRAME_FLAGS.
724         * include/Makefile.am (DISTCLEANFILES): New automake macro.
725         (hack_DATA): Add ffitarget.h.
726         * include/ffi.h.in: Remove all system specific definitions.
727         Declare raw API even if it is not installed, why bother?
728         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
729         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
730         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
731         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
732         * include/ffi_common.h (bool): Do not define.
733         (ffi_assert): Accept failed assertion.
734         (ffi_type_test): Return void and accept file/line.
735         (FFI_ASSERT): Pass stringized failed assertion.
736         (FFI_ASSERT_AT): New macro.
737         (FFI_ASSERT_VALID_TYPE): New macro.
738         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
739         UINT64, SINT64): Define here with gcc's __attribute__ macro
740         instead of in ffi.h
741         (FLOAT32, ALIGN): Define here instead of in ffi.h
742         * include/ffi-mips.h: Removed.  Its content moved to
743         src/mips/ffitarget.h after separating assembly and C sections.
744         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
745         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
746         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
747         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
748         SIZEOF_ARG -> FFI_SIZEOF_ARG.
749         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
750         * src/debug.c (ffi_assert): Accept stringized failed assertion.
751         (ffi_type_test): Rewritten.
752         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
753         FFI_ASSERT_VALID_TYPE.
754         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
755         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
756         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
757         src/s390/ffitarget.h, src/sh/ffitarget.h,
758         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
759         src/x86/ffitarget.h: New files.
760         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
761         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
762         src/powerpc/aix.S, src/powerpc/darwin.S,
763         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
764         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
765         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
766         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
767         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
768         include fficonfig.h
769
770 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
771
772         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
773         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
774
775 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
776
777         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
778         Used when FFI_DEBUG = 1.
779
780 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
781
782         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
783         and align.
784
785 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
786
787         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
788         FFI_MIPS_O32 for O32 ABI.
789
790 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
791
792         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
793         SPARC64. Cleanup whitespaces.
794
795 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
796
797         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
798         strongarm, xscale. Cleanup whitespaces.
799         * testsuite/libffi.call/closure_fn1.c: Likewise.
800         * testsuite/libffi.call/closure_fn2.c: Likewise.
801         * testsuite/libffi.call/closure_fn3.c: Likewise.
802         * testsuite/libffi.call/cls_12byte.c: Likewise.
803         * testsuite/libffi.call/cls_16byte.c: Likewise.
804         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
805         * testsuite/libffi.call/cls_20byte.c: Likewise.
806         * testsuite/libffi.call/cls_24byte.c: Likewise.
807         * testsuite/libffi.call/cls_2byte.c: Likewise.
808         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
809         * testsuite/libffi.call/cls_3byte1.c: Likewise.
810         * testsuite/libffi.call/cls_3byte2.c: Likewise.
811         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
812         * testsuite/libffi.call/cls_4byte.c: Likewise.
813         * testsuite/libffi.call/cls_5byte.c: Likewise.
814         * testsuite/libffi.call/cls_6byte.c: Likewise.
815         * testsuite/libffi.call/cls_7byte.c: Likewise.
816         * testsuite/libffi.call/cls_8byte.c: Likewise.
817         * testsuite/libffi.call/cls_double.c: Likewise.
818         * testsuite/libffi.call/cls_float.c: Likewise.
819         * testsuite/libffi.call/cls_uchar.c: Likewise.
820         * testsuite/libffi.call/cls_uint.c: Likewise.
821         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
822         * testsuite/libffi.call/cls_ushort.c: Likewise.
823         * testsuite/libffi.call/nested_struct.c: Likewise.
824         * testsuite/libffi.call/nested_struct1.c: Likewise.
825         * testsuite/libffi.call/problem1.c: Likewise.
826         * testsuite/libffi.special/unwindtest.cc: Likewise.
827         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
828
829 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
830
831         * src/powerpc/aix.S: Cleanup whitespaces.
832         * src/powerpc/aix_closure.S: Likewise.
833
834 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
835
836         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
837         * src/powerpc/darwin_closure.S: Likewise.
838         * src/powerpc/ffi_darwin.c: Likewise.
839
840 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
841             David Edelsohn  <edelsohn@gnu.org>
842
843         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
844         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
845         parameter stack.
846         * src/powerpc/darwin_closure.S: Likewise.
847         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
848         according to the Darwin/AIX ABI.
849         (ffi_prep_cif_machdep): Likewise.
850         (ffi_closure_helper_DARWIN): Likewise.
851         Remove the outgoing parameter stack logic. Simplify the evaluation
852         of the different CASE types.
853         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
854         statement in the trampoline code.
855
856 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
857
858         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
859         for the register size.
860         (ffi_closure_helper_SYSV): Handle the structure return value
861         address correctly.
862         (ffi_closure_helper_SYSV): Return the appropriate type when
863         the registers are used for the structure return value.
864         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
865         the 64-bit return value.  Update copyright years.
866
867 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
868
869         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
870         srcdir for ffi_mips.h.
871
872 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
873
874         * src/prep_cif.c (initialize_aggregate): Include tail padding in
875         structure size.
876         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
877         placement of float result.
878         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
879         cast of "resp" for big-endian 64 bit machines.
880
881 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
882
883         * src/types.c (double, longdouble): Merge identical SH and ARM
884         typedefs, and add POWERPC64.
885         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
886         struct split over gpr and rest.
887         (ffi_prep_cif_machdep): Correct intarg_count for structures.
888         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
889
890 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
891
892         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
893         passing correctly.
894
895 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
896
897         * configure: Regenerate.
898
899 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
900
901         * Makefile.am: Remove build rules for ffitest.
902         * Makefile.in: Rebuilt.
903
904 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
905
906         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
907         about implicit declaration of abort().
908
909 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
910
911         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
912         * Makefile.in: Rebuilt.
913         * configure.in: Add dejagnu test framework.
914         * configure: Rebuilt.
915
916         * testsuite/Makefile.am: New file.
917         * testsuite/Makefile.in: Built
918         * testsuite/lib/libffi-dg.exp: New file.
919         * testsuite/config/default.exp: Likewise.
920         * testsuite/libffi.call/call.exp: Likewise.
921         * testsuite/libffi.call/ffitest.h: Likewise.
922         * testsuite/libffi.call/closure_fn0.c: Likewise.
923         * testsuite/libffi.call/closure_fn1.c: Likewise.
924         * testsuite/libffi.call/closure_fn2.c: Likewise.
925         * testsuite/libffi.call/closure_fn3.c: Likewise.
926         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
927         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
928         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
929         * testsuite/libffi.call/cls_2byte.c: Likewise.
930         * testsuite/libffi.call/cls_3byte1.c: Likewise.
931         * testsuite/libffi.call/cls_3byte2.c: Likewise.
932         * testsuite/libffi.call/cls_4byte.c: Likewise.
933         * testsuite/libffi.call/cls_5byte.c: Likewise.
934         * testsuite/libffi.call/cls_6byte.c: Likewise.
935         * testsuite/libffi.call/cls_7byte.c: Likewise.
936         * testsuite/libffi.call/cls_8byte.c: Likewise.
937         * testsuite/libffi.call/cls_12byte.c: Likewise.
938         * testsuite/libffi.call/cls_16byte.c: Likewise.
939         * testsuite/libffi.call/cls_20byte.c: Likewise.
940         * testsuite/libffi.call/cls_24byte.c: Likewise.
941         * testsuite/libffi.call/cls_double.c: Likewise.
942         * testsuite/libffi.call/cls_float.c: Likewise.
943         * testsuite/libffi.call/cls_uchar.c: Likewise.
944         * testsuite/libffi.call/cls_uint.c: Likewise.
945         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
946         * testsuite/libffi.call/cls_ushort.c: Likewise.
947         * testsuite/libffi.call/float.c: Likewise.
948         * testsuite/libffi.call/float1.c: Likewise.
949         * testsuite/libffi.call/float2.c: Likewise.
950         * testsuite/libffi.call/many.c: Likewise.
951         * testsuite/libffi.call/many_win32.c: Likewise.
952         * testsuite/libffi.call/nested_struct.c: Likewise.
953         * testsuite/libffi.call/nested_struct1.c: Likewise.
954         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
955         * testsuite/libffi.call/problem1.c: Likewise.
956         * testsuite/libffi.call/promotion.c: Likewise.
957         * testsuite/libffi.call/return_ll.c: Likewise.
958         * testsuite/libffi.call/return_sc.c: Likewise.
959         * testsuite/libffi.call/return_uc.c: Likewise.
960         * testsuite/libffi.call/strlen.c: Likewise.
961         * testsuite/libffi.call/strlen_win32.c: Likewise.
962         * testsuite/libffi.call/struct1.c: Likewise.
963         * testsuite/libffi.call/struct2.c: Likewise.
964         * testsuite/libffi.call/struct3.c: Likewise.
965         * testsuite/libffi.call/struct4.c: Likewise.
966         * testsuite/libffi.call/struct5.c: Likewise.
967         * testsuite/libffi.call/struct6.c: Likewise.
968         * testsuite/libffi.call/struct7.c: Likewise.
969         * testsuite/libffi.call/struct8.c: Likewise.
970         * testsuite/libffi.call/struct9.c: Likewise.
971         * testsuite/libffi.special/special.exp: New file.
972         * testsuite/libffi.special/ffitestcxx.h: Likewise.
973         * testsuite/libffi.special/unwindtest.cc: Likewise.
974
975
976 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
977
978         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
979         copyright years.
980
981 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
982
983         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
984         structure passing.
985         (ffi_closure_helper_LINUX64): Likewise.
986         * src/powerpc/linux64.S: Remove code writing to parm save area.
987         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
988         address in lr from ffi_closure_helper_LINUX64 call to calculate
989         table address.  Optimize function tail.
990
991 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
992
993         * src/sparc/ffi.c: Handle all floating point registers.
994         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
995
996 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
997
998         * README: Note that libffi is not part of GCC.  Update the project
999         URL and status.
1000
1001 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1002
1003         * src/powerpc/ppc_closure.S: Include ffi.h.
1004
1005 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1006
1007         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
1008         Use C style comments.
1009
1010 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1011
1012         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
1013         * Makefile.in: Regenerate.
1014         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
1015         * configure: Regenerate.
1016         * include/ffi.h.in: Add SHmedia support.
1017         * src/sh64/ffi.c: New file.
1018         * src/sh64/sysv.S: New file.
1019
1020 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
1021
1022         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
1023         should be read-only.
1024         * configure: Rebuilt.
1025         * fficonfig.h.in: Rebuilt.
1026         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
1027         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
1028         * src/powerpc/linux64.S: Likewise.
1029         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
1030         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
1031         if -fpic/-fPIC/-mrelocatable.
1032         * src/powerpc/powerpc_closure.S: Likewise.
1033         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
1034         #write in .eh_frame flags.
1035         * src/sparc/v9.S: Likewise.
1036         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
1037         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
1038         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
1039
1040 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
1041
1042         Fixes PR bootstrap/10656
1043         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
1044         support for .register pseudo-op.
1045         * src/sparc/v8.S: Use it.
1046         * fficonfig.h.in: Rebuilt.
1047         * configure: Rebuilt.
1048
1049 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
1050
1051         * include/ffi.h.in (POWERPC64): Define if 64-bit.
1052         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
1053         Make it the default on POWERPC64.
1054         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
1055         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
1056         * configure: Rebuilt.
1057         * src/powerpc/ffi.c (hidden): Define.
1058         (ffi_prep_args_SYSV): Renamed from
1059         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
1060         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
1061         ASM_NEEDS_REGISTERS64): New.
1062         (ffi_prep_args64): New function.
1063         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
1064         (ffi_call): Likewise.
1065         (ffi_prep_closure): Likewise.
1066         (flush_icache): Surround by #ifndef POWERPC64.
1067         (ffi_dblfl): New union type.
1068         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
1069         (ffi_closure_helper_LINUX64): New function.
1070         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
1071         __powerpc64__.
1072         * src/powerpc/sysv.S: Likewise.
1073         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
1074         * src/powerpc/linux64.S: New file.
1075         * src/powerpc/linux64_closure.S: New file.
1076         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
1077         src/powerpc/linux64_closure.S.
1078         (TARGET_SRC_POWERPC): Likewise.
1079
1080         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
1081         closure_test_fn3): Fix result printing on big-endian 64-bit
1082         machines.
1083         (main): Print tst2_arg instead of uninitialized tst2_result.
1084
1085         * src/ffitest.c (main): Hide what closure pointer really points to
1086         from the compiler.
1087
1088 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
1089
1090         * configure.in (arm-*-netbsdelf*): Add configuration.
1091         (configure): Regenerated.
1092
1093 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
1094
1095         * include/Makefile.in: Regenerate.
1096
1097 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1098
1099         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
1100         bit mode.
1101         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
1102         Receive closure pointer through parameter, read args using
1103         __builtin_dwarf_cfa.
1104         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
1105
1106 2003-03-12  Andreas Schwab  <schwab@suse.de>
1107
1108         * configure.in: Avoid trailing /. in toolexeclibdir.
1109         * configure: Rebuilt.
1110
1111 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
1112
1113         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
1114
1115 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
1116
1117         * libffi/src/powerpc/darwin_closure.S:
1118         Fix alignement bug, allocate 8 bytes for the result.
1119         * libffi/src/powerpc/aix_closure.S:
1120         Likewise.
1121         * libffi/src/powerpc/ffi_darwin.c:
1122         Update stackframe description for aix/darwin_closure.S.
1123
1124 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
1125
1126         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
1127         attribute.
1128
1129 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
1130             Andreas Schwab  <schwab@suse.de>
1131
1132         * configure.in: Adjust command to source config-ml.in to account
1133         for changes to the libffi_basedir definition.
1134         (libffi_basedir): Remove ${srcdir} from value and include trailing
1135         slash if nonempty.
1136
1137         * configure: Regenerate.
1138
1139 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1140
1141         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
1142
1143 2003-01-28  Andrew Haley  <aph@redhat.com>
1144
1145         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
1146         * src/x86/ffi64.c (ffi_prep_closure): New.
1147         (ffi_closure_UNIX64_inner): New.
1148         * src/x86/unix64.S (ffi_closure_UNIX64): New.
1149
1150 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
1151
1152         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
1153         Remove USE_LIBDIR conditional.
1154         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
1155         * Makefile.in, configure: Rebuilt.
1156
1157 2003-01027  David Edelsohn  <edelsohn@gnu.org>
1158
1159         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
1160         * Makefile.in: Regenerate.
1161
1162 2003-01-22  Andrew Haley  <aph@redhat.com>
1163
1164         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
1165         unwind info.
1166
1167 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
1168
1169         * src/powerpc/darwin.S: Add unwind info.
1170         * src/powerpc/darwin_closure.S: Likewise.
1171
1172 2003-01-14  Andrew Haley  <aph@redhat.com>
1173
1174         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
1175         (ffi_prep_cif_machdep): Likewise.
1176         * src/x86/unix64.S: Add unwind info.
1177
1178 2003-01-14  Andreas Jaeger  <aj@suse.de>
1179
1180         * src/ffitest.c (main): Only use ffi_closures if those are
1181         supported.
1182
1183 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
1184
1185         * libffi/src/ffitest.c
1186          add closure testcases
1187
1188 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
1189
1190         * libffi/src/powerpc/ffi.c
1191          fix alignment bug for float (4 byte aligned iso 8 byte)
1192
1193 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
1194
1195         * src/powerpc/ffi_darwin.c: Remove RCS version string.
1196         * src/powerpc/darwin.S: Remove RCS version string.
1197
1198 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
1199
1200         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
1201         * src/ffitest.c (main): Use static storage for closure.
1202         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
1203         * src/sparc/v8.S (ffi_closure_v8): New.
1204         * src/sparc/v9.S (ffi_closure_v9): New.
1205
1206 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
1207
1208         * include/ffi.h.in: Added FFI_STDCALL ffi_type
1209           enumeration for X86_WIN32.
1210         * src/x86/win32.S: Added ffi_call_STDCALL function
1211           definition.
1212         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
1213           switch cases for recognising FFI_STDCALL and
1214           calling ffi_call_STDCALL if target is X86_WIN32.
1215         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
1216           stdcall versions of the "my_strlen" and "many"
1217           test functions (for X86_WIN32).
1218           Added test cases to test stdcall invocation using
1219           these functions.
1220
1221 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1222
1223         * src/sh/sysv.S: Add DWARF2 unwind info.
1224
1225 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
1226
1227         * src/s390/sysv.S (.eh_frame section): Make section read-only.
1228
1229 2002-11-26  Jim Wilson  <wilson@redhat.com>
1230
1231         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
1232
1233 2002-11-23  H.J. Lu <hjl@gnu.org>
1234
1235         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
1236         Include ../config/accross.m4.
1237         * aclocal.m4; Rebuild.
1238         * configure: Likewise.
1239
1240 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
1241
1242         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
1243
1244 2002-11-11  DJ Delorie  <dj@redhat.com>
1245
1246         * configure.in: Look for common files in the right place.
1247
1248 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
1249
1250         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
1251         raw data as _Jv_word values, not ffi_raw.
1252         (ffi_java_ptrarray_to_raw): Likewise.
1253         (ffi_java_rvalue_to_raw): New function.
1254         (ffi_java_raw_call): Call it.
1255         (ffi_java_raw_to_rvalue): New function.
1256         (ffi_java_translate_args): Call it.
1257         * src/ffitest.c (closure_test_fn): Interpret return value
1258         as ffi_arg, not int.
1259         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
1260         FFI_TYPE_POINTER case.
1261         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
1262         values extended to word size.
1263
1264 2002-10-02  Andreas Jaeger  <aj@suse.de>
1265
1266         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
1267
1268 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
1269
1270         * include/ffi.h.in: Fix i386 win32 compilation.
1271
1272 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1273
1274         * configure.in: Add s390x-*-linux-* target.
1275         * configure: Regenerate.
1276         * include/ffi.h.in: Define S390X for s390x targets.
1277         (FFI_CLOSURES): Define for s390/s390x.
1278         (FFI_TRAMPOLINE_SIZE): Likewise.
1279         (FFI_NATIVE_RAW_API): Likewise.
1280         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
1281         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
1282         * src/s390/ffi.c: Major rework of existing code.  Add support for
1283         s390x targets.  Add closure support.
1284         * src/s390/sysv.S: Likewise.
1285
1286 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
1287
1288         * src/arm/sysv.S: Fix typo.
1289
1290 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
1291
1292         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
1293         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
1294         (ffi_call_SYSV): Handle soft-float.
1295
1296 2002-09-27  Bo Thorsen  <bo@suse.de>
1297
1298         * include/ffi.h.in: Fix multilib x86-64 support.
1299
1300 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1301
1302         * Makefile.am (all-multi): Fix multilib parallel build.
1303
1304 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1305
1306         * configure.in (sh[34]*-*-linux*): Add brackets.
1307         * configure: Regenerate.
1308
1309 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1310
1311         * Makefile.am: Add SH support.
1312         * Makefile.in: Regenerate.
1313         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
1314         * configure: Regenerate.
1315         * include/ffi.h.in: Add SH support.
1316         * src/sh/ffi.c: New file.
1317         * src/sh/sysv.S: New file.
1318         * src/types.c: Add SH support.
1319
1320 2002-07-16  Bo Thorsen  <bo@suse.de>
1321
1322         * src/x86/ffi64.c: New file that adds x86-64 support.
1323         * src/x86/unix64.S: New file that handles argument setup for
1324         x86-64.
1325         * src/x86/sysv.S: Don't use this on x86-64.
1326         * src/x86/ffi.c: Don't use this on x86-64.
1327         Remove unused vars.
1328         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
1329         for x86-64.
1330         * src/ffitest.c (struct6): New test that tests a special case in
1331         the x86-64 ABI.
1332         (struct7): Likewise.
1333         (struct8): Likewise.
1334         (struct9): Likewise.
1335         (closure_test_fn): Silence warning about this when it's not used.
1336         (main): Add the new tests.
1337         (main): Fix a couple of wrong casts and silence some compiler warnings.
1338         * include/ffi.h.in: Add x86-64 ABI definition.
1339         * fficonfig.h.in: Regenerate.
1340         * Makefile.am: Add x86-64 support.
1341         * configure.in: Likewise.
1342         * Makefile.in: Regenerate.
1343         * configure: Likewise.
1344
1345 2002-06-24  Bo Thorsen  <bo@suse.de>
1346
1347         * src/types.c: Merge settings for similar architectures.
1348         Add x86-64 sizes and alignments.
1349
1350 2002-06-23  Bo Thorsen  <bo@suse.de>
1351
1352         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
1353         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
1354         * src/mips/ffi.c (ffi_prep_args): Likewise.
1355         * src/m68k/ffi.c (ffi_prep_args): Likewise.
1356
1357 2002-07-18  H.J. Lu  (hjl@gnu.org)
1358
1359         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
1360         (libffi_la_SOURCES): Support MIPS_LINUX.
1361         (libffi_convenience_la_SOURCES): Likewise.
1362         * Makefile.in: Regenerated.
1363
1364         * configure.in (mips64*-*): Skip.
1365         (mips*-*-linux*): New.
1366         * configure: Regenerated.
1367
1368         * src/mips/ffi.c: Include <sgidefs.h>.
1369
1370 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
1371
1372         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
1373
1374 2002-05-27  Roger Sayle  <roger@eyesopen.com>
1375
1376         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
1377
1378 2002-05-27  Bo Thorsen  <bo@suse.de>
1379
1380         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
1381         fix formatting.
1382
1383 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
1384
1385         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
1386         beginning of function (for older apple cc).
1387
1388 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
1389
1390         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
1391         script entry, and set LD to it when configuring multilibs.
1392         * configure: Rebuilt.
1393
1394 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
1395
1396         * configure.in (sparc64-*-netbsd*): Add target.
1397         (sparc-*-netbsdelf*): Likewise.
1398         * configure: Regenerate.
1399
1400 2002-04-28  David S. Miller  <davem@redhat.com>
1401
1402         * configure.in, configure: Fix SPARC test in previous change.
1403
1404 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
1405
1406         * Makefile.am: Add Linux for S/390 support.
1407         * Makefile.in: Regenerate.
1408         * configure.in: Add Linux for S/390 support.
1409         * configure: Regenerate.
1410         * include/ffi.h.in: Add Linux for S/390 support.
1411         * src/s390/ffi.c: New file from libffi CVS tree.
1412         * src/s390/sysv.S: New file from libffi CVS tree.
1413
1414 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1415
1416         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
1417         %r_disp32().
1418         * src/sparc/v8.S: Use it.
1419         * src/sparc/v9.S: Likewise.
1420         * fficonfig.h.in: Rebuilt.
1421         * configure: Rebuilt.
1422
1423 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
1424
1425         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
1426         correctly.
1427         * src/ia64/unix.S: Add unwind information. Fix comments.
1428         Save sp in a way that's compatible with unwind info.
1429         (ffi_call_unix): Correctly restore sp in all cases.
1430         * src/ia64/ffi.c: Add, fix comments.
1431
1432 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
1433
1434         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
1435
1436 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
1437
1438         * configure.in (alpha*-*-netbsd*): Add target.
1439         * configure: Regenerate.
1440
1441 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
1442
1443         * src/sparc/v8.S: Add unwind info.
1444         * src/sparc/v9.S: Likewise.
1445
1446 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
1447
1448         * configure.in: Enable i*86-*-netbsdelf*.
1449         * configure: Rebuilt.
1450
1451 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
1452
1453         PR other/2620
1454         * src/mips/n32.s: Delete
1455         * src/mips/o32.s: Delete
1456
1457 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
1458
1459         * configure.in: Enable alpha*-*-freebsd*.
1460         * configure: Rebuilt.
1461
1462 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1463
1464         * Makefile.am: libfficonvenience -> libffi_convenience.
1465         * Makefile.in: Rebuilt.
1466
1467         * Makefile.am: Define ffitest_OBJECTS.
1468         * Makefile.in: Rebuilt.
1469
1470 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
1471             David Edelsohn  <edelsohn@gnu.org>
1472
1473         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
1474         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
1475         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
1476         * Makefile.in: Regenerate.
1477         * include/ffi.h.in: Add AIX and Darwin closure definitions.
1478         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
1479         (flush_icache, flush_range): New functions.
1480         (ffi_closure_helper_DARWIN): New function.
1481         * src/powerpc/aix_closure.S: New file.
1482         * src/powerpc/darwin_closure.S: New file.
1483
1484 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
1485
1486         * include/ffi.h.in: Add typedef for ffi_arg.
1487         * src/ffitest.c (main): Declare rint with ffi_arg.
1488
1489 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
1490
1491         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
1492         number of GPRs for floating-point arguments.
1493
1494 2002-01-31  Anthony Green  <green@redhat.com>
1495
1496         * configure: Rebuilt.
1497         * configure.in: Replace CHECK_SIZEOF and endian tests with
1498         cross-compiler friendly macros.
1499         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
1500         macros.
1501
1502 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
1503
1504         * src/powerpc/darwin.S (_ffi_call_AIX): New.
1505         * src/powerpc/aix.S (ffi_call_DARWIN): New.
1506
1507 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
1508
1509         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
1510         (TARGET_SRC_POWERPC_AIX): New.
1511         (POWERPC_AIX): New stanza.
1512         * Makefile.in: Regenerate.
1513         * configure.in: Add AIX case.
1514         * configure: Regenerate.
1515         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
1516         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
1517         size.  Fix "long double" support.
1518         (ffi_call): Add FFI_AIX case.
1519         * src/powerpc/aix.S: New.
1520
1521 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
1522
1523         Implement Darwin PowerPC ABI.
1524         * configure.in: Handle powerpc-*-darwin*.
1525         * Makefile.am: Set source files for POWERPC_DARWIN.
1526         * configure: Rebuilt.
1527         * Makefile.in: Rebuilt.
1528         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
1529         POWERPC_DARWIN.
1530         * src/powerpc/darwin.S: New file.
1531         * src/powerpc/ffi_darwin.c: New file.
1532
1533 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1534
1535         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
1536
1537 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1538
1539         * src/x86/sysv.S: Avoid gas-only .balign directive.
1540         Use C style comments.
1541
1542 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1543
1544         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
1545         Fixes PR bootstrap/3563.
1546
1547 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1548
1549         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
1550
1551 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1552
1553         * configure.in: Recognize sparc*-sun-* host.
1554         * configure: Regenerate.
1555
1556 2001-06-06  Andrew Haley  <aph@redhat.com>
1557
1558         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
1559
1560 2001-06-03  Andrew Haley  <aph@redhat.com>
1561
1562         * src/alpha/osf.S: Add unwind info.
1563         * src/powerpc/sysv.S: Add unwind info.
1564         * src/powerpc/ppc_closure.S: Likewise.
1565
1566 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
1567
1568         * configure.in: Fix AC_ARG_ENABLE usage.
1569         * configure: Rebuilt.
1570
1571 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1572
1573         * configure.in: Remove warning about beta code.
1574         * configure: Rebuilt.
1575
1576 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
1577
1578         * src/ia64/unix.S: Restore stack pointer when returning from
1579         ffi_closure_UNIX.
1580         * src/ia64/ffi.c: Fix typo in comment.
1581
1582 2001-04-18  Jim Wilson  <wilson@redhat.com>
1583
1584         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
1585         to eliminate RAW DV.
1586
1587 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
1588
1589         * Makefile.am: Make a libtool convenience library.
1590         * Makefile.in: Rebuilt.
1591
1592 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
1593
1594         * configure.in: Use different syntax for subdirectory creation.
1595         * configure: Rebuilt.
1596
1597 2001-03-27  Jon Beniston  <jon@beniston.com>
1598
1599         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
1600         * configure: Rebuilt.
1601         * Makefile.am: Added X86_WIN32 target support.
1602         * Makefile.in: Rebuilt.
1603
1604         * include/ffi.h.in: Added X86_WIN32 target support.
1605
1606         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
1607         * src/types.c: Added X86_WIN32 target support.
1608
1609         * src/x86/win32.S: New file. Based on sysv.S, but with EH
1610         stuff removed and made to work with CygWin's gas.
1611
1612 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
1613
1614         * configure.in: Make target subdirectory in build dir.
1615         * Makefile.am: Override suffix based rules to specify correct output
1616         subdirectory.
1617         * Makefile.in: Rebuilt.
1618         * configure: Rebuilt.
1619
1620 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
1621
1622         * src/powerpc/ppc_closure.S: New file.
1623         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
1624         involving long long and register pairs.
1625         (ffi_prep_closure): New function.
1626         (flush_icache): Likewise.
1627         (ffi_closure_helper_SYSV): Likewise.
1628         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
1629         (FFI_TRAMPOLINE_SIZE): Likewise.
1630         (FFI_NATIVE_RAW_API): Likewise.
1631         * Makefile.in: Rebuilt.
1632         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
1633         (TARGET_SRC_POWERPC): Likewise.
1634
1635 2001-03-19  Tom Tromey  <tromey@redhat.com>
1636
1637         * Makefile.in: Rebuilt.
1638         * Makefile.am (ffitest_LDFLAGS): New macro.
1639
1640 2001-03-02  Nick Clifton  <nickc@redhat.com>
1641
1642         * include/ffi.h.in: Remove RCS ident string.
1643         * include/ffi_mips.h: Remove RCS ident string.
1644         * src/debug.c: Remove RCS ident string.
1645         * src/ffitest.c: Remove RCS ident string.
1646         * src/prep_cif.c: Remove RCS ident string.
1647         * src/types.c: Remove RCS ident string.
1648         * src/alpha/ffi.c: Remove RCS ident string.
1649         * src/alpha/osf.S: Remove RCS ident string.
1650         * src/arm/ffi.c: Remove RCS ident string.
1651         * src/arm/sysv.S: Remove RCS ident string.
1652         * src/mips/ffi.c: Remove RCS ident string.
1653         * src/mips/n32.S: Remove RCS ident string.
1654         * src/mips/o32.S: Remove RCS ident string.
1655         * src/sparc/ffi.c: Remove RCS ident string.
1656         * src/sparc/v8.S: Remove RCS ident string.
1657         * src/sparc/v9.S: Remove RCS ident string.
1658         * src/x86/ffi.c: Remove RCS ident string.
1659         * src/x86/sysv.S: Remove RCS ident string.
1660
1661 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1662
1663         * include/ffi.h.in: Change sourceware.cygnus.com references to
1664         gcc.gnu.org.
1665
1666 2000-12-09  Richard Henderson  <rth@redhat.com>
1667
1668         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
1669         (ffi_closure_osf_inner): Index rather than increment avalue
1670         and arg_types.  Give ffi_closure_osf the raw return value type.
1671         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
1672         promotion.
1673
1674 2000-12-07  Richard Henderson  <rth@redhat.com>
1675
1676         * src/raw_api.c (ffi_translate_args): Fix typo.
1677         (ffi_prep_closure): Likewise.
1678
1679         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
1680         FFI_TRAMPOLINE_SIZE.
1681         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
1682         cif->bytes for new ffi_call_osf implementation.
1683         (ffi_prep_args): Absorb into ...
1684         (ffi_call): ... here.  Do all stack allocation here and
1685         avoid a callback function.
1686         (ffi_prep_closure, ffi_closure_osf_inner): New.
1687         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
1688         (ffi_closure_osf): New.
1689
1690 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
1691
1692         * config.guess, config.sub, install-sh: Removed.
1693         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
1694         * Makefile.in: Rebuilt.
1695
1696         * acinclude.m4: Include libtool macros from the top level.
1697         * aclocal.m4, configure: Rebuilt.
1698
1699 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
1700
1701         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
1702         * configure: Rebuilt.
1703
1704 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
1705
1706         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
1707         memory correctly.  Use conditional instructions, not branches where
1708         possible.
1709
1710 2000-05-04  Tom Tromey  <tromey@cygnus.com>
1711
1712         * configure: Rebuilt.
1713         * configure.in: Match `arm*-*-linux-*'.
1714         From Chris Dornan <cdornan@arm.com>.
1715
1716 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
1717
1718         * Makefile.am (SUBDIRS): Define.
1719         (AM_MAKEFLAGS): Likewise.
1720         (Multilib support.): Add section.
1721         * Makefile.in: Rebuilt.
1722         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
1723         New variables. Set for gcc using -print-multi-lib. Export them
1724         to libtool.
1725         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
1726         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
1727         for -shared links.
1728         (extra_compiler_flags_value, extra_compiler_flags): Check these
1729         for extra compiler options which need to be passed down in
1730         compiler_flags.
1731
1732 2000-04-16  Anthony Green  <green@redhat.com>
1733
1734         * configure: Rebuilt.
1735         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
1736
1737 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
1738
1739         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
1740         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
1741         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
1742         Replace all void * sizeofs with sizeof(int).
1743         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
1744         different than DOUBLE.
1745         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
1746         (ffi_prep_args_v9): New function.
1747         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
1748         (ffi_V9_return_struct): New function.
1749         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
1750         32bit code (not yet cross-arch calls).
1751         * src/sparc/v8.S: Add struct return delay nop.
1752         Handle long long.
1753         * src/sparc/v9.S: New file.
1754         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
1755         is used on sparc64 only for structures larger than 32 bytes.
1756         Pass by reference for structures is done for structure arguments
1757         larger than 16 bytes.
1758         * src/ffitest.c (main): Use 64bit rint on sparc64.
1759         Run long long tests on sparc.
1760         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
1761         sparc64.
1762         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
1763         on sparc64.
1764         * configure.in (sparc-*-linux*): New supported target.
1765         (sparc64-*-linux*): Likewise.
1766         * configure: Rebuilt.
1767         * Makefile.am: Add v9.S to SPARC files.
1768         * Makefile.in: Likewise.
1769         (LINK): Surround $(CCLD) into double quotes, so that multilib
1770         compiles work correctly.
1771
1772 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1773
1774         * configure: Rebuilt.
1775         * configure.in: (i*86-*-solaris*): New libffi target. Patch
1776         proposed by Bryce McKinlay.
1777
1778 2000-03-20  Tom Tromey  <tromey@cygnus.com>
1779
1780         * Makefile.in: Hand edit for java_raw_api.lo.
1781
1782 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
1783
1784         * config.guess, config.sub: Update from the gcc tree.
1785         Fix for PR libgcj/168.
1786
1787 2000-03-03  Tom Tromey  <tromey@cygnus.com>
1788
1789         * Makefile.in: Fixed ia64 by hand.
1790
1791         * configure: Rebuilt.
1792         * configure.in (--enable-multilib): New option.
1793         (libffi_basedir): New subst.
1794         (AC_OUTPUT): Added multilib code.
1795
1796 2000-03-02  Tom Tromey  <tromey@cygnus.com>
1797
1798         * Makefile.in: Rebuilt.
1799         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
1800         directory name.
1801
1802 2000-02-25  Hans Boehm <boehm@acm.org>
1803
1804         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
1805         files.
1806         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
1807         list.
1808         (ffi_prep_raw_closure): Use ffi_translate_args, not
1809         ffi_closure_translate.
1810         * src/java_raw_api.c: New file.
1811         * src/ffitest.c (closure_test_fn): New function.
1812         (main): Define `rint' as long long on IA64.  Added new test when
1813         FFI_CLOSURES is defined.
1814         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
1815         (ffi_abi): Recognize IA64.
1816         (ffi_raw): Added `flt' field.
1817         Added "Java raw API" code.
1818         * configure.in: Recognize ia64.
1819         * Makefile.am (TARGET_SRC_IA64): New macro.
1820         (libffi_la_common_SOURCES): Added java_raw_api.c.
1821         (libffi_la_SOURCES): Define in IA64 case.
1822
1823 2000-01-04  Tom Tromey  <tromey@cygnus.com>
1824
1825         * Makefile.in: Rebuilt with newer automake.
1826
1827 1999-12-31  Tom Tromey  <tromey@cygnus.com>
1828
1829         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
1830
1831 1999-09-01  Tom Tromey  <tromey@cygnus.com>
1832
1833         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
1834         undefs.
1835         * fficonfig.h.in: Rebuilt.
1836         * configure: Rebuilt.
1837         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
1838         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
1839         * acconfig.h: Don't #undef PACKAGE or VERSION.
1840
1841 1999-08-09  Anthony Green  <green@cygnus.com>
1842
1843         * include/ffi.h.in: Try to work around messy header problem
1844         with PACKAGE and VERSION.
1845
1846         * configure: Rebuilt.
1847         * configure.in: Change version to 2.00-beta.
1848
1849         * fficonfig.h.in: Rebuilt.
1850         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
1851
1852         * src/x86/ffi.c (ffi_raw_call): Rename.
1853
1854 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
1855
1856         * src/x86/ffi.c (ffi_closure_SYSV): New function.
1857         (ffi_prep_incoming_args_SYSV): Ditto.
1858         (ffi_prep_closure): Ditto.
1859         (ffi_closure_raw_SYSV): Ditto.
1860         (ffi_prep_raw_closure): More ditto.
1861         (ffi_call_raw): Final ditto.
1862
1863         * include/ffi.h.in: Add definitions for closure and raw API.
1864
1865         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
1866         FFI_TYPE_UINT64.
1867
1868         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
1869
1870         * src/raw_api.c: New file.
1871
1872         * include/ffi.h.in (ffi_raw): New type.
1873         (UINT_ARG, SINT_ARG): New defines.
1874         (ffi_closure, ffi_raw_closure): New types.
1875         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
1876
1877         * configure.in: Add check for endianness and sizeof void*.
1878
1879         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
1880         instead of directly.
1881
1882         * configure: Rebuilt.
1883
1884 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
1885
1886         * configure.in: Add x86 and powerpc BeOS configurations.
1887         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
1888
1889 1999-05-09  Anthony Green  <green@cygnus.com>
1890
1891         * configure.in: Add warning about this being beta code.
1892         Remove src/Makefile.am from the picture.
1893         * configure: Rebuilt.
1894
1895         * Makefile.am: Move logic from src/Makefile.am.  Add changes
1896         to support libffi as a target library.
1897         * Makefile.in: Rebuilt.
1898
1899         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
1900         Upgraded to new autoconf, automake, libtool.
1901
1902         * README: Tweaks.
1903
1904         * LICENSE: Update copyright date.
1905
1906         * src/Makefile.am, src/Makefile.in: Removed.
1907
1908 1998-11-29  Anthony Green  <green@cygnus.com>
1909
1910         * include/ChangeLog: Removed.
1911         * src/ChangeLog: Removed.
1912         * src/mips/ChangeLog: Removed.
1913         * src/sparc/ChangeLog: Remboved.
1914         * src/x86/ChangeLog: Removed.
1915
1916         * ChangeLog.v1: Created.
1917 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
1918
1919         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
1920         of jal.  Use an absolute encoding for the frame information.
1921
1922 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
1923
1924         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
1925         * acinclude.m4: Delete logic for sincludes.
1926         * aclocal.m4, Makefile.in, configure: Regenerate.
1927         * include/Makefile: Likewise.
1928         * testsuite/Makefile: Likewise.
1929
1930 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1931
1932         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
1933         on a 8-byte boundary.
1934         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
1935
1936 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
1937
1938         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
1939         long long values.  Round stack allocation to a multiple of 8 bytes
1940         for ATPCS compatibility.
1941         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
1942         names.  Handle returning long long types.  Add Thumb and interworking
1943         support.  Improve soft-float code.
1944
1945 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
1946
1947         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
1948         (libffi_exit): New function.
1949         (libffi_init): Build the testglue wrapper if needed.
1950
1951 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1952
1953         PR other/18138
1954         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
1955
1956 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1957
1958         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
1959
1960 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1961
1962         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
1963         * testsuite/libffi.call/float3.c: New test case.
1964
1965 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1966
1967         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
1968         the function returning a structure pointed with R2.
1969         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
1970         the structure return value if T bit set.  Emit position
1971         independent code and EH data if PIC.
1972
1973 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1974
1975         * Makefile.am: Add m32r support.
1976         * configure.ac: Likewise.
1977         * Makefile.in: Regenerate.
1978         * confiugre: Regenerate.
1979         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
1980         (uint64, sint64, double, longdouble)
1981         * src/m32r: New directory.
1982         * src/m32r/ffi.c: New file.
1983         * src/m32r/sysv.S: Likewise.
1984         * src/m32r/ffitarget.h: Likewise.
1985
1986 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1987
1988         * testsuite/libffi.call/negint.c: New test case.
1989
1990 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
1991
1992         PR libgcj/17465
1993         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
1994         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
1995         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
1996         DYLD_LIBRARY_PATH.
1997
1998 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
1999
2000         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2001         * testsuite/libffi.call/promotion.c: Likewise.
2002         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2003         whitespaces.
2004         * testsuite/libffi.call/return_sc.c: Likewise.
2005         * testsuite/libffi.call/return_uc.c: Likewise.
2006
2007 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
2008
2009         * src/powerpc/darwin.S: Fix comments and identation.
2010         * src/powerpc/darwin_closure.S: Likewise.
2011
2012 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
2013
2014         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2015         (ffi_prep_args): Handle longdouble arguments.
2016         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2017         longdouble.
2018         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2019         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2020         values.
2021         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2022         * src/types.c: Defined longdouble size and alignment for darwin.
2023
2024 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
2025
2026         * src/powerpc/aix.S: Remove whitespaces.
2027         * src/powerpc/aix_closure.S: Likewise.
2028         * src/powerpc/asm.h: Likewise.
2029         * src/powerpc/ffi.c: Likewise.
2030         * src/powerpc/ffitarget.h: Likewise.
2031         * src/powerpc/linux64.S: Likewise.
2032         * src/powerpc/linux64_closure.S: Likewise.
2033         * src/powerpc/ppc_closure.S: Likewise.
2034         * src/powerpc/sysv.S: Likewise.
2035
2036 2004-08-30  Anthony Green  <green@redhat.com>
2037
2038         * Makefile.am: Add frv support.
2039         * Makefile.in, testsuite/Makefile.in: Rebuilt.
2040         * configure.ac: Read configure.host.
2041         * configure.in: Read configure.host.
2042         * configure.host: New file.  frv-elf needs libgloss.
2043         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2044         alignment.  This is needed to frv and shouldn't harm the others.
2045         * include/ffi_common.h (ALIGN_DOWN): New macro.
2046         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2047
2048 2004-08-24  David Daney  <daney@avtrex.com>
2049
2050         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2051         * testsuite/libffi.call/closure_fn1.c: Likewise.
2052         * testsuite/libffi.call/closure_fn2.c  Likewise.
2053         * testsuite/libffi.call/closure_fn3.c: Likewise.
2054         * testsuite/libffi.call/closure_fn4.c: Likewise.
2055         * testsuite/libffi.call/closure_fn5.c: Likewise.
2056         * testsuite/libffi.call/cls_18byte.c: Likewise.
2057         * testsuite/libffi.call/cls_19byte.c: Likewise.
2058         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2059         * testsuite/libffi.call/cls_20byte.c: Likewise.
2060         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2061         * testsuite/libffi.call/cls_24byte.c: Likewise.
2062         * testsuite/libffi.call/cls_2byte.c: Likewise.
2063         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2064         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2065         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2066         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2067         * testsuite/libffi.call/cls_4byte.c: Likewise.
2068         * testsuite/libffi.call/cls_64byte.c: Likewise.
2069         * testsuite/libffi.call/cls_6byte.c: Likewise.
2070         * testsuite/libffi.call/cls_7byte.c: Likewise.
2071         * testsuite/libffi.call/cls_8byte.c: Likewise.
2072         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2073         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2074         * testsuite/libffi.call/cls_align_double.c: Likewise.
2075         * testsuite/libffi.call/cls_align_float.c: Likewise.
2076         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2077         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2078         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2079         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2080         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2081         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2082         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2083         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2084         * testsuite/libffi.call/cls_double.c: Likewise.
2085         * testsuite/libffi.call/cls_float.c: Likewise.
2086         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2087         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2088         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2089         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2090         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2091         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2092         * testsuite/libffi.call/cls_schar.c: Likewise.
2093         * testsuite/libffi.call/cls_sint.c: Likewise.
2094         * testsuite/libffi.call/cls_sshort.c: Likewise.
2095         * testsuite/libffi.call/cls_uchar.c: Likewise.
2096         * testsuite/libffi.call/cls_uint.c: Likewise.
2097         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2098         * testsuite/libffi.call/cls_ushort.c: Likewise.
2099         * testsuite/libffi.call/nested_struct.c: Likewise.
2100         * testsuite/libffi.call/nested_struct1.c: Likewise.
2101         * testsuite/libffi.call/nested_struct2.c: Likewise.
2102         * testsuite/libffi.call/nested_struct3.c: Likewise.
2103         * testsuite/libffi.call/problem1.c: Likewise.
2104         * testsuite/libffi.special/unwindtest.cc: Likewise.
2105         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2106         to zero.
2107         * testsuite/libffi.call/cls_16byte.c: Likewise.
2108         * testsuite/libffi.call/cls_5byte.c: Likewise.
2109
2110 2004-08-23  David Daney <daney@avtrex.com>
2111
2112         PR libgcj/13141
2113         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2114         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2115         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2116         parameters and return types.
2117         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2118         (ffi_prep_closure): Ditto.
2119         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2120         alignment calculations.
2121         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2122         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2123
2124 2004-08-14  Casey Marshall <csm@gnu.org>
2125
2126         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2127         contain `FFI_TYPE_UINT64' as return type for any 64-bit
2128         integer (O32 ABI only).
2129         (ffi_prep_closure): new function.
2130         (ffi_closure_mips_inner_O32): new function.
2131         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and 
2132         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2133         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2134         64 bit integers correctly.
2135         (ffi_closure_O32): new function.
2136         Added DWARF-2 unwind info for both functions.
2137
2138 2004-08-10  Andrew Haley  <aph@redhat.com>
2139
2140         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2141
2142 2004-08-01  Robert Millan  <robertmh@gnu.org>
2143
2144         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2145         * configure: Regenerate.
2146
2147 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
2148
2149         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2150         and mmap() explicitly instead of relying on preset autoconf cache
2151         variables.
2152         * aclocal.m4: Regenerate.
2153         * configure: Regenerate.
2154
2155 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2156
2157         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2158         (ffi_check_float_struct): Remove unused prototype.
2159
2160 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
2161
2162         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2163         character on Darwin, use '\n\t' instead.
2164
2165 2004-06-26  Matthias Klose  <doko@debian.org>
2166
2167         * libtool-version: Fix typo in revision/age.
2168
2169 2004-06-17  Matthias Klose  <doko@debian.org>
2170
2171         * libtool-version: New.
2172         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2173         * Makefile.in: Regenerate.
2174
2175 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2176
2177         * Makefile.am: Remove useless multilib rules.
2178         * Makefile.in: Regenerate.
2179         * aclocal.m4: Regenerate with automake 1.8.5.
2180         * configure.ac: Remove useless multilib configury.
2181         * configure: Regenerate.
2182
2183 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
2184
2185         * .cvsignore: New file.
2186
2187 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
2188
2189         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2190         fp_done.
2191         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2192         changed from 8.
2193
2194 2004-06-06  Sean McNeil  <sean@mcneil.com>
2195
2196         * configure.ac: Add x86_64-*-freebsd* support.
2197         * configure: Regenerate.
2198
2199 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
2200
2201         Bug 15093
2202         * configure.ac: Test for existence of mmap and sys/mman.h before
2203         checking blacklist.  Fix suggested by Jim Wilson.
2204         * configure: Regenerate.
2205
2206 2004-04-26  Matt Austern  <austern@apple.com>
2207
2208         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2209         FDE location.
2210         * src/powerpc/darwin_closure.S: Likewise.
2211         
2212 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
2213
2214         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2215         error. Reported by Thomas Heller <theller@python.net>.
2216         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2217         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2218
2219 2004-03-20  Matthias Klose  <doko@debian.org>
2220
2221         * src/pa/linux.S: Fix typo.
2222
2223 2004-03-19  Matthias Klose  <doko@debian.org>
2224
2225         * Makefile.am: Update.
2226         * Makefile.in: Regenerate.
2227         * src/pa/ffi.h.in: Remove.
2228         * src/pa/ffitarget.h: New file.
2229
2230 2004-02-10  Randolph Chung  <tausq@debian.org>
2231
2232         * Makefile.am: Add PA support.
2233         * Makefile.in: Regenerate.
2234         * include/Makefile.in: Regenerate.
2235         * configure.ac: Add PA target.
2236         * configure: Regenerate.
2237         * src/pa/ffi.c: New file.
2238         * src/pa/ffi.h.in: Add PA support.
2239         * src/pa/linux.S: New file.
2240         * prep_cif.c: Add PA support.
2241
2242 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
2243
2244         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2245         double.
2246         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2247         with ecif->cif->flags.
2248         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2249         with cif->flags.
2250         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2251         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2252         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2253         sc_retstruct2b): Add for 1 or 2-bytes struct case.
2254
2255 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2256
2257         * configure.in: Rename file to ...
2258         * configure.ac: ... this.
2259         * fficonfig.h.in: Regenerate.
2260         * Makefile.in: Regenerate.
2261         * include/Makefile.in: Regenerate.
2262         * testsuite/Makefile.in: Regenerate.
2263
2264 2004-03-12  Matt Austern  <austern@apple.com>
2265
2266         * src/powerpc/darwin.S: Fix EH information so it corresponds to
2267         changes in EH format resulting from addition of linkonce support.
2268         * src/powerpc/darwin_closure.S: Likewise.
2269
2270 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
2271             Paolo Bonzini  <bonzini@gnu.org>
2272
2273         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2274         Remove VPATH. Remove rules for object files. Remove multilib support.
2275         (AM_CCASFLAGS): Add.
2276         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2277         (AC_PREREQ): Bump version to 2.59.
2278         (AC_INIT): Fill with version info and bug address.
2279         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2280         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2281         De-precious CC so that the right flags are passed down to multilibs.
2282         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2283         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2284         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2285         * configure: Rebuilt.
2286         * aclocal.m4: Likewise.
2287         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2288         * fficonfig.h.in: Likewise.
2289
2290 2004-03-11  Andreas Schwab  <schwab@suse.de>
2291
2292         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
2293         arguments from fp registers only for the first 8 parameter slots.
2294         Don't convert a float parameter when passed in memory.
2295
2296 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
2297
2298         * configure: Regenerate for config/accross.m4 correction.
2299
2300 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
2301
2302         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
2303         ecif->cif->bytes to bytes.
2304         (ffi_prep_cif_machdep): Add braces around nested if statement.
2305
2306 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
2307
2308         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
2309
2310         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
2311         (ffi_closure_helper_LINUX64): Fix typo.
2312         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
2313         for powerpc64-*-*.
2314         * testsuite/libffi.call/float.c: Likewise.
2315         * testsuite/libffi.call/float2.c: Likewise.
2316
2317 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
2318
2319         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
2320         long double function return and long double arg handling.
2321         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
2322         Use "end_pfr" instead of "nf".  Correct long double handling.
2323         Localise "temp".
2324         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
2325         return value.
2326         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
2327         space for long double return value.  Adjust stack frame and offsets.
2328         Load f2 long double return.
2329
2330 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
2331
2332         * src/types.c: Use 16 byte long double for POWERPC64.
2333
2334 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2335
2336         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
2337         when the structure return address is passed in %o0.
2338         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
2339         (ffi_v9_layout_struct): Align the field following a nested structure
2340         on a word boundary.  Use memmove instead of memcpy.
2341         (ffi_call): Update call to ffi_V9_return_struct.
2342         (ffi_prep_closure): Define 'ctx' only for V8.
2343         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
2344         and ffi_closure_sparc_inner_v9.
2345         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
2346         Always skip the structure return address.  For structures and long
2347         doubles, copy the argument directly.
2348         (ffi_closure_sparc_inner_v9): Skip the structure return address only
2349         if required.  Shift the maximum floating-point slot accordingly.  For
2350         big structures, copy the argument directly; otherwise, left-justify the
2351         argument and call ffi_v9_layout_struct to lay out the structure on
2352         the stack.
2353         * src/sparc/v8.S: Undef STACKFRAME before defining it.
2354         (ffi_closure_v8): Pass the structure return address.  Update call to
2355         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
2356         Skip the 'unimp' insn when returning long doubles and structures.
2357         * src/sparc/v9.S: Undef STACKFRAME before defining it.
2358         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
2359         FFI_TYPE_INT handling.  Load structures both in integers and
2360         floating-point registers on return.
2361         * README: Update status of the SPARC port.
2362
2363 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
2364
2365         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
2366         as of type ffi_arg.
2367         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
2368
2369 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
2370
2371         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
2372         value as of type ffi_arg, not unsigned int.
2373
2374 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
2375
2376         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
2377         of the LHS.
2378
2379 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
2380
2381         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
2382         Solaris.
2383
2384 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2385
2386         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
2387         to void *.
2388
2389 2003-12-10  Richard Henderson  <rth@redhat.com>
2390
2391         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
2392         size_t instead of int.
2393
2394 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
2395
2396         * testsuite/libffi.call/many_win32.c: Include <float.h>.
2397         * testsuite/libffi.call/many_win32.c (main): Replace variable
2398         int i with unsigned long ul.
2399
2400         * testsuite/libffi.call/cls_align_uint64.c: New test case.
2401         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2402         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2403         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2404         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2405         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2406         * testsuite/libffi.call/cls_align_float.c: Likewise.
2407         * testsuite/libffi.call/cls_align_double.c: Likewise.
2408         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2409         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2410
2411 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
2412
2413         PR other/13221
2414         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
2415         Align arguments to 32 bits.
2416
2417 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
2418
2419         PR other/13221
2420         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
2421         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2422         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2423         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2424         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2425         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2426
2427         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
2428
2429 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2430
2431         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
2432         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2433
2434 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
2435
2436         * Makefile.in: Rebuilt.
2437         * configure: Likewise.
2438         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
2439         the right type.
2440
2441 2003-11-21  Andreas Jaeger  <aj@suse.de>
2442             Andreas Tobler  <a.tobler@schweiz.ch>
2443
2444         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
2445         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
2446         * Makefile.in: Rebuilt.
2447         * aclocal.m4: Likewise.
2448         * configure: Likewise.
2449         * fficonfig.h.in: Likewise.
2450         * testsuite/lib/libffi-dg.exp: Add include dir.
2451         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
2452         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2453         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
2454         for ffi_closure if available.
2455         * testsuite/libffi.call/closure_fn1.c: Likewise.
2456         * testsuite/libffi.call/closure_fn2.c: Likewise.
2457         * testsuite/libffi.call/closure_fn3.c: Likewise.
2458         * testsuite/libffi.call/closure_fn4.c: Likewise.
2459         * testsuite/libffi.call/closure_fn5.c: Likewise.
2460         * testsuite/libffi.call/cls_12byte.c: Likewise.
2461         * testsuite/libffi.call/cls_16byte.c: Likewise.
2462         * testsuite/libffi.call/cls_18byte.c: Likewise.
2463         * testsuite/libffi.call/cls_19byte.c: Likewise.
2464         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2465         * testsuite/libffi.call/cls_20byte.c: Likewise.
2466         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2467         * testsuite/libffi.call/cls_24byte.c: Likewise.
2468         * testsuite/libffi.call/cls_2byte.c: Likewise.
2469         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2470         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2471         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2472         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2473         * testsuite/libffi.call/cls_4byte.c: Likewise.
2474         * testsuite/libffi.call/cls_5byte.c: Likewise.
2475         * testsuite/libffi.call/cls_64byte.c: Likewise.
2476         * testsuite/libffi.call/cls_6byte.c: Likewise.
2477         * testsuite/libffi.call/cls_7byte.c: Likewise.
2478         * testsuite/libffi.call/cls_8byte.c: Likewise.
2479         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2480         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2481         * testsuite/libffi.call/cls_double.c: Likewise.
2482         * testsuite/libffi.call/cls_float.c: Likewise.
2483         * testsuite/libffi.call/cls_schar.c: Likewise.
2484         * testsuite/libffi.call/cls_sint.c: Likewise.
2485         * testsuite/libffi.call/cls_sshort.c: Likewise.
2486         * testsuite/libffi.call/cls_uchar.c: Likewise.
2487         * testsuite/libffi.call/cls_uint.c: Likewise.
2488         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2489         * testsuite/libffi.call/cls_ushort.c: Likewise.
2490         * testsuite/libffi.call/nested_struct.c: Likewise.
2491         * testsuite/libffi.call/nested_struct1.c: Likewise.
2492         * testsuite/libffi.call/nested_struct2.c: Likewise.
2493         * testsuite/libffi.call/nested_struct3.c: Likewise.
2494         * testsuite/libffi.call/problem1.c: Likewise.
2495         * testsuite/libffi.special/unwindtest.cc: Likewise.
2496
2497 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
2498
2499         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
2500
2501 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
2502
2503         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
2504         Add -lgcc_s to additional flags.
2505
2506 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
2507
2508         * configure.in, include/Makefile.am: PR libgcj/11147, install
2509         the ffitarget.h header file in a gcc versioned and target
2510         dependent place.
2511         * configure: Regenerated.
2512         * Makefile.in, include/Makefile.in: Likewise.
2513         * testsuite/Makefile.in: Likewise.
2514
2515 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
2516
2517         * testsuite/libffi.call/closure_fn0.c: Print result and check
2518         with dg-output to make debugging easier.
2519         * testsuite/libffi.call/closure_fn1.c: Likewise.
2520         * testsuite/libffi.call/closure_fn2.c: Likewise.
2521         * testsuite/libffi.call/closure_fn3.c: Likewise.
2522         * testsuite/libffi.call/closure_fn4.c: Likewise.
2523         * testsuite/libffi.call/closure_fn5.c: Likewise.
2524         * testsuite/libffi.call/cls_12byte.c: Likewise.
2525         * testsuite/libffi.call/cls_16byte.c: Likewise.
2526         * testsuite/libffi.call/cls_18byte.c: Likewise.
2527         * testsuite/libffi.call/cls_19byte.c: Likewise.
2528         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2529         * testsuite/libffi.call/cls_20byte.c: Likewise.
2530         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2531         * testsuite/libffi.call/cls_24byte.c: Likewise.
2532         * testsuite/libffi.call/cls_2byte.c: Likewise.
2533         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2534         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2535         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2536         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2537         * testsuite/libffi.call/cls_4byte.c: Likewise.
2538         * testsuite/libffi.call/cls_5byte.c: Likewise.
2539         * testsuite/libffi.call/cls_64byte.c: Likewise.
2540         * testsuite/libffi.call/cls_6byte.c: Likewise.
2541         * testsuite/libffi.call/cls_7byte.c: Likewise.
2542         * testsuite/libffi.call/cls_8byte.c: Likewise.
2543         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2544         * testsuite/libffi.call/cls_9byte2.c: Likewise.
2545         * testsuite/libffi.call/cls_double.c: Likewise.
2546         * testsuite/libffi.call/cls_float.c: Likewise.
2547         * testsuite/libffi.call/cls_schar.c: Likewise.
2548         * testsuite/libffi.call/cls_sint.c: Likewise.
2549         * testsuite/libffi.call/cls_sshort.c: Likewise.
2550         * testsuite/libffi.call/cls_uchar.c: Likewise.
2551         * testsuite/libffi.call/cls_uint.c: Likewise.
2552         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2553         * testsuite/libffi.call/cls_ushort.c: Likewise.
2554         * testsuite/libffi.call/problem1.c: Likewise.
2555
2556         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
2557         static.
2558
2559 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
2560
2561         * testsuite/libffi.call/cls_9byte2.c: New test case.
2562         * testsuite/libffi.call/cls_9byte1.c: Likewise.
2563         * testsuite/libffi.call/cls_64byte.c: Likewise.
2564         * testsuite/libffi.call/cls_20byte1.c: Likewise.
2565         * testsuite/libffi.call/cls_19byte.c: Likewise.
2566         * testsuite/libffi.call/cls_18byte.c: Likewise.
2567         * testsuite/libffi.call/closure_fn4.c: Likewise.
2568         * testsuite/libffi.call/closure_fn5.c: Likewise.
2569         * testsuite/libffi.call/cls_schar.c: Likewise.
2570         * testsuite/libffi.call/cls_sint.c: Likewise.
2571         * testsuite/libffi.call/cls_sshort.c: Likewise.
2572         * testsuite/libffi.call/nested_struct2.c: Likewise.
2573         * testsuite/libffi.call/nested_struct3.c: Likewise.
2574
2575 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
2576
2577         * testsuite/libffi.call/cls_double.c: Do a check on the result.
2578         * testsuite/libffi.call/cls_uchar.c: Likewise.
2579         * testsuite/libffi.call/cls_uint.c: Likewise.
2580         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2581         * testsuite/libffi.call/cls_ushort.c: Likewise.
2582         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
2583
2584 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
2585
2586         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
2587         the initialization.
2588
2589 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
2590
2591         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
2592         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
2593
2594 2003-10-22  David Daney  <ddaney@avtrex.com>
2595
2596         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
2597         __attribute__((__mode__(__SI__))) and friends.
2598
2599 2003-10-22  Andreas Schwab  <schwab@suse.de>
2600
2601         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
2602
2603 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
2604
2605         * configure.in: AC_LINK_FILES(ffitarget.h).
2606         * configure: Regenerate.
2607         * Makefile.in: Likewise.
2608         * include/Makefile.in: Likewise.
2609         * testsuite/Makefile.in: Likewise.
2610         * fficonfig.h.in: Likewise.
2611
2612 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
2613             Richard Henderson  <rth@redhat.com>
2614
2615         Avoid that ffi.h includes fficonfig.h.
2616
2617         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
2618         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2619         (TARGET_SRC_MIPS_SGI): Removed.
2620         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
2621         (MIPS_SGI): Removed.
2622         (CLEANFILES): Removed.
2623         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
2624         targets.
2625         * acconfig.h: Removed.
2626         * configure.in: Compute sizeofs only for double and long double.
2627         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
2628         into AC_DEFINE instead of using acconfig.h.  Create
2629         include/ffitarget.h instead of include/fficonfig.h.  Rename
2630         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
2631         AC_DEFINE EH_FRAME_FLAGS.
2632         * include/Makefile.am (DISTCLEANFILES): New automake macro.
2633         (hack_DATA): Add ffitarget.h.
2634         * include/ffi.h.in: Remove all system specific definitions.
2635         Declare raw API even if it is not installed, why bother?
2636         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
2637         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
2638         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
2639         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
2640         * include/ffi_common.h (bool): Do not define.
2641         (ffi_assert): Accept failed assertion.
2642         (ffi_type_test): Return void and accept file/line.
2643         (FFI_ASSERT): Pass stringized failed assertion.
2644         (FFI_ASSERT_AT): New macro.
2645         (FFI_ASSERT_VALID_TYPE): New macro.
2646         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
2647         UINT64, SINT64): Define here with gcc's __attribute__ macro
2648         instead of in ffi.h
2649         (FLOAT32, ALIGN): Define here instead of in ffi.h
2650         * include/ffi-mips.h: Removed.  Its content moved to
2651         src/mips/ffitarget.h after separating assembly and C sections.
2652         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
2653         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
2654         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
2655         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
2656         SIZEOF_ARG -> FFI_SIZEOF_ARG.
2657         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
2658         * src/debug.c (ffi_assert): Accept stringized failed assertion.
2659         (ffi_type_test): Rewritten.
2660         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
2661         FFI_ASSERT_VALID_TYPE.
2662         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
2663         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
2664         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
2665         src/s390/ffitarget.h, src/sh/ffitarget.h,
2666         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
2667         src/x86/ffitarget.h: New files.
2668         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
2669         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
2670         src/powerpc/aix.S, src/powerpc/darwin.S,
2671         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
2672         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
2673         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
2674         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
2675         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
2676         include fficonfig.h
2677
2678 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2679
2680         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
2681         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
2682
2683 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
2684
2685         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
2686         Used when FFI_DEBUG = 1.
2687
2688 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
2689
2690         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
2691         and align.
2692
2693 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2694
2695         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
2696         FFI_MIPS_O32 for O32 ABI.
2697
2698 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
2699
2700         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
2701         SPARC64. Cleanup whitespaces.
2702
2703 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
2704
2705         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
2706         strongarm, xscale. Cleanup whitespaces.
2707         * testsuite/libffi.call/closure_fn1.c: Likewise.
2708         * testsuite/libffi.call/closure_fn2.c: Likewise.
2709         * testsuite/libffi.call/closure_fn3.c: Likewise.
2710         * testsuite/libffi.call/cls_12byte.c: Likewise.
2711         * testsuite/libffi.call/cls_16byte.c: Likewise.
2712         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2713         * testsuite/libffi.call/cls_20byte.c: Likewise.
2714         * testsuite/libffi.call/cls_24byte.c: Likewise.
2715         * testsuite/libffi.call/cls_2byte.c: Likewise.
2716         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2717         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2718         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2719         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2720         * testsuite/libffi.call/cls_4byte.c: Likewise.
2721         * testsuite/libffi.call/cls_5byte.c: Likewise.
2722         * testsuite/libffi.call/cls_6byte.c: Likewise.
2723         * testsuite/libffi.call/cls_7byte.c: Likewise.
2724         * testsuite/libffi.call/cls_8byte.c: Likewise.
2725         * testsuite/libffi.call/cls_double.c: Likewise.
2726         * testsuite/libffi.call/cls_float.c: Likewise.
2727         * testsuite/libffi.call/cls_uchar.c: Likewise.
2728         * testsuite/libffi.call/cls_uint.c: Likewise.
2729         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2730         * testsuite/libffi.call/cls_ushort.c: Likewise.
2731         * testsuite/libffi.call/nested_struct.c: Likewise.
2732         * testsuite/libffi.call/nested_struct1.c: Likewise.
2733         * testsuite/libffi.call/problem1.c: Likewise.
2734         * testsuite/libffi.special/unwindtest.cc: Likewise.
2735         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
2736
2737 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
2738
2739         * src/powerpc/aix.S: Cleanup whitespaces.
2740         * src/powerpc/aix_closure.S: Likewise.
2741
2742 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
2743
2744         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
2745         * src/powerpc/darwin_closure.S: Likewise.
2746         * src/powerpc/ffi_darwin.c: Likewise.
2747
2748 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
2749             David Edelsohn  <edelsohn@gnu.org>
2750
2751         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
2752         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
2753         parameter stack.
2754         * src/powerpc/darwin_closure.S: Likewise.
2755         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
2756         according to the Darwin/AIX ABI.
2757         (ffi_prep_cif_machdep): Likewise.
2758         (ffi_closure_helper_DARWIN): Likewise.
2759         Remove the outgoing parameter stack logic. Simplify the evaluation
2760         of the different CASE types.
2761         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
2762         statement in the trampoline code.
2763
2764 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2765
2766         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
2767         for the register size.
2768         (ffi_closure_helper_SYSV): Handle the structure return value
2769         address correctly.
2770         (ffi_closure_helper_SYSV): Return the appropriate type when
2771         the registers are used for the structure return value.
2772         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
2773         the 64-bit return value.  Update copyright years.
2774
2775 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2776
2777         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
2778         srcdir for ffi_mips.h.
2779
2780 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
2781
2782         * src/prep_cif.c (initialize_aggregate): Include tail padding in
2783         structure size.
2784         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
2785         placement of float result.
2786         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
2787         cast of "resp" for big-endian 64 bit machines.
2788
2789 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
2790
2791         * src/types.c (double, longdouble): Merge identical SH and ARM
2792         typedefs, and add POWERPC64.
2793         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
2794         struct split over gpr and rest.
2795         (ffi_prep_cif_machdep): Correct intarg_count for structures.
2796         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
2797
2798 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
2799
2800         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
2801         passing correctly.
2802
2803 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
2804
2805         * configure: Regenerate.
2806
2807 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
2808
2809         * Makefile.am: Remove build rules for ffitest.
2810         * Makefile.in: Rebuilt.
2811
2812 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
2813
2814         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
2815         about implicit declaration of abort().
2816
2817 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
2818
2819         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
2820         * Makefile.in: Rebuilt.
2821         * configure.in: Add dejagnu test framework.
2822         * configure: Rebuilt.
2823
2824         * testsuite/Makefile.am: New file.
2825         * testsuite/Makefile.in: Built
2826         * testsuite/lib/libffi-dg.exp: New file.
2827         * testsuite/config/default.exp: Likewise.
2828         * testsuite/libffi.call/call.exp: Likewise.
2829         * testsuite/libffi.call/ffitest.h: Likewise.
2830         * testsuite/libffi.call/closure_fn0.c: Likewise.
2831         * testsuite/libffi.call/closure_fn1.c: Likewise.
2832         * testsuite/libffi.call/closure_fn2.c: Likewise.
2833         * testsuite/libffi.call/closure_fn3.c: Likewise.
2834         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2835         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2836         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2837         * testsuite/libffi.call/cls_2byte.c: Likewise.
2838         * testsuite/libffi.call/cls_3byte1.c: Likewise.
2839         * testsuite/libffi.call/cls_3byte2.c: Likewise.
2840         * testsuite/libffi.call/cls_4byte.c: Likewise.
2841         * testsuite/libffi.call/cls_5byte.c: Likewise.
2842         * testsuite/libffi.call/cls_6byte.c: Likewise.
2843         * testsuite/libffi.call/cls_7byte.c: Likewise.
2844         * testsuite/libffi.call/cls_8byte.c: Likewise.
2845         * testsuite/libffi.call/cls_12byte.c: Likewise.
2846         * testsuite/libffi.call/cls_16byte.c: Likewise.
2847         * testsuite/libffi.call/cls_20byte.c: Likewise.
2848         * testsuite/libffi.call/cls_24byte.c: Likewise.
2849         * testsuite/libffi.call/cls_double.c: Likewise.
2850         * testsuite/libffi.call/cls_float.c: Likewise.
2851         * testsuite/libffi.call/cls_uchar.c: Likewise.
2852         * testsuite/libffi.call/cls_uint.c: Likewise.
2853         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2854         * testsuite/libffi.call/cls_ushort.c: Likewise.
2855         * testsuite/libffi.call/float.c: Likewise.
2856         * testsuite/libffi.call/float1.c: Likewise.
2857         * testsuite/libffi.call/float2.c: Likewise.
2858         * testsuite/libffi.call/many.c: Likewise.
2859         * testsuite/libffi.call/many_win32.c: Likewise.
2860         * testsuite/libffi.call/nested_struct.c: Likewise.
2861         * testsuite/libffi.call/nested_struct1.c: Likewise.
2862         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
2863         * testsuite/libffi.call/problem1.c: Likewise.
2864         * testsuite/libffi.call/promotion.c: Likewise.
2865         * testsuite/libffi.call/return_ll.c: Likewise.
2866         * testsuite/libffi.call/return_sc.c: Likewise.
2867         * testsuite/libffi.call/return_uc.c: Likewise.
2868         * testsuite/libffi.call/strlen.c: Likewise.
2869         * testsuite/libffi.call/strlen_win32.c: Likewise.
2870         * testsuite/libffi.call/struct1.c: Likewise.
2871         * testsuite/libffi.call/struct2.c: Likewise.
2872         * testsuite/libffi.call/struct3.c: Likewise.
2873         * testsuite/libffi.call/struct4.c: Likewise.
2874         * testsuite/libffi.call/struct5.c: Likewise.
2875         * testsuite/libffi.call/struct6.c: Likewise.
2876         * testsuite/libffi.call/struct7.c: Likewise.
2877         * testsuite/libffi.call/struct8.c: Likewise.
2878         * testsuite/libffi.call/struct9.c: Likewise.
2879         * testsuite/libffi.special/special.exp: New file.
2880         * testsuite/libffi.special/ffitestcxx.h: Likewise.
2881         * testsuite/libffi.special/unwindtest.cc: Likewise.
2882
2883
2884 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2885
2886         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
2887         copyright years.
2888
2889 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
2890
2891         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
2892         structure passing.
2893         (ffi_closure_helper_LINUX64): Likewise.
2894         * src/powerpc/linux64.S: Remove code writing to parm save area.
2895         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
2896         address in lr from ffi_closure_helper_LINUX64 call to calculate
2897         table address.  Optimize function tail.
2898
2899 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
2900
2901         * src/sparc/ffi.c: Handle all floating point registers.
2902         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
2903
2904 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2905
2906         * README: Note that libffi is not part of GCC.  Update the project
2907         URL and status.
2908
2909 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2910
2911         * src/powerpc/ppc_closure.S: Include ffi.h.
2912
2913 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2914
2915         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
2916         Use C style comments.
2917
2918 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2919
2920         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
2921         * Makefile.in: Regenerate.
2922         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
2923         * configure: Regenerate.
2924         * include/ffi.h.in: Add SHmedia support.
2925         * src/sh64/ffi.c: New file.
2926         * src/sh64/sysv.S: New file.
2927
2928 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
2929
2930         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
2931         should be read-only.
2932         * configure: Rebuilt.
2933         * fficonfig.h.in: Rebuilt.
2934         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
2935         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
2936         * src/powerpc/linux64.S: Likewise.
2937         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
2938         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
2939         if -fpic/-fPIC/-mrelocatable.
2940         * src/powerpc/powerpc_closure.S: Likewise.
2941         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
2942         #write in .eh_frame flags.
2943         * src/sparc/v9.S: Likewise.
2944         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
2945         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
2946         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
2947
2948 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
2949
2950         Fixes PR bootstrap/10656
2951         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
2952         support for .register pseudo-op.
2953         * src/sparc/v8.S: Use it.
2954         * fficonfig.h.in: Rebuilt.
2955         * configure: Rebuilt.
2956
2957 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
2958
2959         * include/ffi.h.in (POWERPC64): Define if 64-bit.
2960         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
2961         Make it the default on POWERPC64.
2962         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
2963         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
2964         * configure: Rebuilt.
2965         * src/powerpc/ffi.c (hidden): Define.
2966         (ffi_prep_args_SYSV): Renamed from
2967         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
2968         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
2969         ASM_NEEDS_REGISTERS64): New.
2970         (ffi_prep_args64): New function.
2971         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
2972         (ffi_call): Likewise.
2973         (ffi_prep_closure): Likewise.
2974         (flush_icache): Surround by #ifndef POWERPC64.
2975         (ffi_dblfl): New union type.
2976         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
2977         (ffi_closure_helper_LINUX64): New function.
2978         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
2979         __powerpc64__.
2980         * src/powerpc/sysv.S: Likewise.
2981         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
2982         * src/powerpc/linux64.S: New file.
2983         * src/powerpc/linux64_closure.S: New file.
2984         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
2985         src/powerpc/linux64_closure.S.
2986         (TARGET_SRC_POWERPC): Likewise.
2987
2988         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
2989         closure_test_fn3): Fix result printing on big-endian 64-bit
2990         machines.
2991         (main): Print tst2_arg instead of uninitialized tst2_result.
2992
2993         * src/ffitest.c (main): Hide what closure pointer really points to
2994         from the compiler.
2995
2996 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
2997
2998         * configure.in (arm-*-netbsdelf*): Add configuration.
2999         (configure): Regenerated.
3000
3001 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
3002
3003         * include/Makefile.in: Regenerate.
3004
3005 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3006
3007         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3008         bit mode.
3009         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3010         Receive closure pointer through parameter, read args using
3011         __builtin_dwarf_cfa.
3012         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3013
3014 2003-03-12  Andreas Schwab  <schwab@suse.de>
3015
3016         * configure.in: Avoid trailing /. in toolexeclibdir.
3017         * configure: Rebuilt.
3018
3019 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
3020
3021         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3022
3023 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
3024
3025         * libffi/src/powerpc/darwin_closure.S:
3026         Fix alignement bug, allocate 8 bytes for the result.
3027         * libffi/src/powerpc/aix_closure.S:
3028         Likewise.
3029         * libffi/src/powerpc/ffi_darwin.c:
3030         Update stackframe description for aix/darwin_closure.S.
3031
3032 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
3033
3034         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3035         attribute.
3036
3037 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
3038             Andreas Schwab  <schwab@suse.de>
3039
3040         * configure.in: Adjust command to source config-ml.in to account
3041         for changes to the libffi_basedir definition.
3042         (libffi_basedir): Remove ${srcdir} from value and include trailing
3043         slash if nonempty.
3044
3045         * configure: Regenerate.
3046
3047 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3048
3049         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3050
3051 2003-01-28  Andrew Haley  <aph@redhat.com>
3052
3053         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3054         * src/x86/ffi64.c (ffi_prep_closure): New.
3055         (ffi_closure_UNIX64_inner): New.
3056         * src/x86/unix64.S (ffi_closure_UNIX64): New.
3057
3058 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
3059
3060         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3061         Remove USE_LIBDIR conditional.
3062         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3063         * Makefile.in, configure: Rebuilt.
3064
3065 2003-01027  David Edelsohn  <edelsohn@gnu.org>
3066
3067         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3068         * Makefile.in: Regenerate.
3069
3070 2003-01-22  Andrew Haley  <aph@redhat.com>
3071
3072         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3073         unwind info.
3074
3075 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
3076
3077         * src/powerpc/darwin.S: Add unwind info.
3078         * src/powerpc/darwin_closure.S: Likewise.
3079
3080 2003-01-14  Andrew Haley  <aph@redhat.com>
3081
3082         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3083         (ffi_prep_cif_machdep): Likewise.
3084         * src/x86/unix64.S: Add unwind info.
3085
3086 2003-01-14  Andreas Jaeger  <aj@suse.de>
3087
3088         * src/ffitest.c (main): Only use ffi_closures if those are
3089         supported.
3090
3091 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3092
3093         * libffi/src/ffitest.c
3094          add closure testcases
3095
3096 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3097
3098         * libffi/src/powerpc/ffi.c
3099          fix alignment bug for float (4 byte aligned iso 8 byte)
3100
3101 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
3102
3103         * src/powerpc/ffi_darwin.c: Remove RCS version string.
3104         * src/powerpc/darwin.S: Remove RCS version string.
3105
3106 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
3107
3108         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3109         * src/ffitest.c (main): Use static storage for closure.
3110         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3111         * src/sparc/v8.S (ffi_closure_v8): New.
3112         * src/sparc/v9.S (ffi_closure_v9): New.
3113
3114 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
3115
3116         * include/ffi.h.in: Added FFI_STDCALL ffi_type
3117           enumeration for X86_WIN32.
3118         * src/x86/win32.S: Added ffi_call_STDCALL function
3119           definition.
3120         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3121           switch cases for recognising FFI_STDCALL and
3122           calling ffi_call_STDCALL if target is X86_WIN32.
3123         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3124           stdcall versions of the "my_strlen" and "many"
3125           test functions (for X86_WIN32).
3126           Added test cases to test stdcall invocation using
3127           these functions.
3128
3129 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3130
3131         * src/sh/sysv.S: Add DWARF2 unwind info.
3132
3133 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
3134
3135         * src/s390/sysv.S (.eh_frame section): Make section read-only.
3136
3137 2002-11-26  Jim Wilson  <wilson@redhat.com>
3138
3139         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3140
3141 2002-11-23  H.J. Lu <hjl@gnu.org>
3142
3143         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3144         Include ../config/accross.m4.
3145         * aclocal.m4; Rebuild.
3146         * configure: Likewise.
3147
3148 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
3149
3150         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3151
3152 2002-11-11  DJ Delorie  <dj@redhat.com>
3153
3154         * configure.in: Look for common files in the right place.
3155
3156 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
3157
3158         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3159         raw data as _Jv_word values, not ffi_raw.
3160         (ffi_java_ptrarray_to_raw): Likewise.
3161         (ffi_java_rvalue_to_raw): New function.
3162         (ffi_java_raw_call): Call it.
3163         (ffi_java_raw_to_rvalue): New function.
3164         (ffi_java_translate_args): Call it.
3165         * src/ffitest.c (closure_test_fn): Interpret return value
3166         as ffi_arg, not int.
3167         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3168         FFI_TYPE_POINTER case.
3169         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
3170         values extended to word size.
3171
3172 2002-10-02  Andreas Jaeger  <aj@suse.de>
3173
3174         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3175
3176 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
3177
3178         * include/ffi.h.in: Fix i386 win32 compilation.
3179
3180 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3181
3182         * configure.in: Add s390x-*-linux-* target.
3183         * configure: Regenerate.
3184         * include/ffi.h.in: Define S390X for s390x targets.
3185         (FFI_CLOSURES): Define for s390/s390x.
3186         (FFI_TRAMPOLINE_SIZE): Likewise.
3187         (FFI_NATIVE_RAW_API): Likewise.
3188         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3189         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3190         * src/s390/ffi.c: Major rework of existing code.  Add support for
3191         s390x targets.  Add closure support.
3192         * src/s390/sysv.S: Likewise.
3193
3194 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
3195
3196         * src/arm/sysv.S: Fix typo.
3197
3198 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
3199
3200         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3201         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3202         (ffi_call_SYSV): Handle soft-float.
3203
3204 2002-09-27  Bo Thorsen  <bo@suse.de>
3205
3206         * include/ffi.h.in: Fix multilib x86-64 support.
3207
3208 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3209
3210         * Makefile.am (all-multi): Fix multilib parallel build.
3211
3212 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3213
3214         * configure.in (sh[34]*-*-linux*): Add brackets.
3215         * configure: Regenerate.
3216
3217 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3218
3219         * Makefile.am: Add SH support.
3220         * Makefile.in: Regenerate.
3221         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3222         * configure: Regenerate.
3223         * include/ffi.h.in: Add SH support.
3224         * src/sh/ffi.c: New file.
3225         * src/sh/sysv.S: New file.
3226         * src/types.c: Add SH support.
3227
3228 2002-07-16  Bo Thorsen  <bo@suse.de>
3229
3230         * src/x86/ffi64.c: New file that adds x86-64 support.
3231         * src/x86/unix64.S: New file that handles argument setup for
3232         x86-64.
3233         * src/x86/sysv.S: Don't use this on x86-64.
3234         * src/x86/ffi.c: Don't use this on x86-64.
3235         Remove unused vars.
3236         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3237         for x86-64.
3238         * src/ffitest.c (struct6): New test that tests a special case in
3239         the x86-64 ABI.
3240         (struct7): Likewise.
3241         (struct8): Likewise.
3242         (struct9): Likewise.
3243         (closure_test_fn): Silence warning about this when it's not used.
3244         (main): Add the new tests.
3245         (main): Fix a couple of wrong casts and silence some compiler warnings.
3246         * include/ffi.h.in: Add x86-64 ABI definition.
3247         * fficonfig.h.in: Regenerate.
3248         * Makefile.am: Add x86-64 support.
3249         * configure.in: Likewise.
3250         * Makefile.in: Regenerate.
3251         * configure: Likewise.
3252
3253 2002-06-24  Bo Thorsen  <bo@suse.de>
3254
3255         * src/types.c: Merge settings for similar architectures.
3256         Add x86-64 sizes and alignments.
3257
3258 2002-06-23  Bo Thorsen  <bo@suse.de>
3259
3260         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3261         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3262         * src/mips/ffi.c (ffi_prep_args): Likewise.
3263         * src/m68k/ffi.c (ffi_prep_args): Likewise.
3264
3265 2002-07-18  H.J. Lu  (hjl@gnu.org)
3266
3267         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3268         (libffi_la_SOURCES): Support MIPS_LINUX.
3269         (libffi_convenience_la_SOURCES): Likewise.
3270         * Makefile.in: Regenerated.
3271
3272         * configure.in (mips64*-*): Skip.
3273         (mips*-*-linux*): New.
3274         * configure: Regenerated.
3275
3276         * src/mips/ffi.c: Include <sgidefs.h>.
3277
3278 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
3279
3280         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
3281
3282 2002-05-27  Roger Sayle  <roger@eyesopen.com>
3283
3284         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3285
3286 2002-05-27  Bo Thorsen  <bo@suse.de>
3287
3288         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3289         fix formatting.
3290
3291 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
3292
3293         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
3294         beginning of function (for older apple cc).
3295
3296 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
3297
3298         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
3299         script entry, and set LD to it when configuring multilibs.
3300         * configure: Rebuilt.
3301
3302 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3303
3304         * configure.in (sparc64-*-netbsd*): Add target.
3305         (sparc-*-netbsdelf*): Likewise.
3306         * configure: Regenerate.
3307
3308 2002-04-28  David S. Miller  <davem@redhat.com>
3309
3310         * configure.in, configure: Fix SPARC test in previous change.
3311
3312 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
3313
3314         * Makefile.am: Add Linux for S/390 support.
3315         * Makefile.in: Regenerate.
3316         * configure.in: Add Linux for S/390 support.
3317         * configure: Regenerate.
3318         * include/ffi.h.in: Add Linux for S/390 support.
3319         * src/s390/ffi.c: New file from libffi CVS tree.
3320         * src/s390/sysv.S: New file from libffi CVS tree.
3321
3322 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
3323
3324         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
3325         %r_disp32().
3326         * src/sparc/v8.S: Use it.
3327         * src/sparc/v9.S: Likewise.
3328         * fficonfig.h.in: Rebuilt.
3329         * configure: Rebuilt.
3330
3331 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
3332
3333         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
3334         correctly.
3335         * src/ia64/unix.S: Add unwind information. Fix comments.
3336         Save sp in a way that's compatible with unwind info.
3337         (ffi_call_unix): Correctly restore sp in all cases.
3338         * src/ia64/ffi.c: Add, fix comments.
3339
3340 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
3341
3342         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
3343
3344 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
3345
3346         * configure.in (alpha*-*-netbsd*): Add target.
3347         * configure: Regenerate.
3348
3349 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
3350
3351         * src/sparc/v8.S: Add unwind info.
3352         * src/sparc/v9.S: Likewise.
3353
3354 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
3355
3356         * configure.in: Enable i*86-*-netbsdelf*.
3357         * configure: Rebuilt.
3358
3359 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
3360
3361         PR other/2620
3362         * src/mips/n32.s: Delete
3363         * src/mips/o32.s: Delete
3364
3365 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
3366
3367         * configure.in: Enable alpha*-*-freebsd*.
3368         * configure: Rebuilt.
3369
3370 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3371
3372         * Makefile.am: libfficonvenience -> libffi_convenience.
3373         * Makefile.in: Rebuilt.
3374
3375         * Makefile.am: Define ffitest_OBJECTS.
3376         * Makefile.in: Rebuilt.
3377
3378 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
3379             David Edelsohn  <edelsohn@gnu.org>
3380
3381         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
3382         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
3383         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
3384         * Makefile.in: Regenerate.
3385         * include/ffi.h.in: Add AIX and Darwin closure definitions.
3386         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
3387         (flush_icache, flush_range): New functions.
3388         (ffi_closure_helper_DARWIN): New function.
3389         * src/powerpc/aix_closure.S: New file.
3390         * src/powerpc/darwin_closure.S: New file.
3391
3392 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
3393
3394         * include/ffi.h.in: Add typedef for ffi_arg.
3395         * src/ffitest.c (main): Declare rint with ffi_arg.
3396
3397 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
3398
3399         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
3400         number of GPRs for floating-point arguments.
3401
3402 2002-01-31  Anthony Green  <green@redhat.com>
3403
3404         * configure: Rebuilt.
3405         * configure.in: Replace CHECK_SIZEOF and endian tests with
3406         cross-compiler friendly macros.
3407         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
3408         macros.
3409
3410 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
3411
3412         * src/powerpc/darwin.S (_ffi_call_AIX): New.
3413         * src/powerpc/aix.S (ffi_call_DARWIN): New.
3414
3415 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
3416
3417         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
3418         (TARGET_SRC_POWERPC_AIX): New.
3419         (POWERPC_AIX): New stanza.
3420         * Makefile.in: Regenerate.
3421         * configure.in: Add AIX case.
3422         * configure: Regenerate.
3423         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
3424         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
3425         size.  Fix "long double" support.
3426         (ffi_call): Add FFI_AIX case.
3427         * src/powerpc/aix.S: New.
3428
3429 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
3430
3431         Implement Darwin PowerPC ABI.
3432         * configure.in: Handle powerpc-*-darwin*.
3433         * Makefile.am: Set source files for POWERPC_DARWIN.
3434         * configure: Rebuilt.
3435         * Makefile.in: Rebuilt.
3436         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
3437         POWERPC_DARWIN.
3438         * src/powerpc/darwin.S: New file.
3439         * src/powerpc/ffi_darwin.c: New file.
3440
3441 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
3442
3443         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
3444
3445 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3446
3447         * src/x86/sysv.S: Avoid gas-only .balign directive.
3448         Use C style comments.
3449
3450 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3451
3452         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
3453         Fixes PR bootstrap/3563.
3454
3455 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3456
3457         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
3458
3459 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3460
3461         * configure.in: Recognize sparc*-sun-* host.
3462         * configure: Regenerate.
3463
3464 2001-06-06  Andrew Haley  <aph@redhat.com>
3465
3466         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
3467
3468 2001-06-03  Andrew Haley  <aph@redhat.com>
3469
3470         * src/alpha/osf.S: Add unwind info.
3471         * src/powerpc/sysv.S: Add unwind info.
3472         * src/powerpc/ppc_closure.S: Likewise.
3473
3474 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
3475
3476         * configure.in: Fix AC_ARG_ENABLE usage.
3477         * configure: Rebuilt.
3478
3479 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3480
3481         * configure.in: Remove warning about beta code.
3482         * configure: Rebuilt.
3483
3484 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
3485
3486         * src/ia64/unix.S: Restore stack pointer when returning from
3487         ffi_closure_UNIX.
3488         * src/ia64/ffi.c: Fix typo in comment.
3489
3490 2001-04-18  Jim Wilson  <wilson@redhat.com>
3491
3492         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
3493         to eliminate RAW DV.
3494
3495 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
3496
3497         * Makefile.am: Make a libtool convenience library.
3498         * Makefile.in: Rebuilt.
3499
3500 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
3501
3502         * configure.in: Use different syntax for subdirectory creation.
3503         * configure: Rebuilt.
3504
3505 2001-03-27  Jon Beniston  <jon@beniston.com>
3506
3507         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
3508         * configure: Rebuilt.
3509         * Makefile.am: Added X86_WIN32 target support.
3510         * Makefile.in: Rebuilt.
3511
3512         * include/ffi.h.in: Added X86_WIN32 target support.
3513
3514         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
3515         * src/types.c: Added X86_WIN32 target support.
3516
3517         * src/x86/win32.S: New file. Based on sysv.S, but with EH
3518         stuff removed and made to work with CygWin's gas.
3519
3520 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
3521
3522         * configure.in: Make target subdirectory in build dir.
3523         * Makefile.am: Override suffix based rules to specify correct output
3524         subdirectory.
3525         * Makefile.in: Rebuilt.
3526         * configure: Rebuilt.
3527
3528 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
3529
3530         * src/powerpc/ppc_closure.S: New file.
3531         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
3532         involving long long and register pairs.
3533         (ffi_prep_closure): New function.
3534         (flush_icache): Likewise.
3535         (ffi_closure_helper_SYSV): Likewise.
3536         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
3537         (FFI_TRAMPOLINE_SIZE): Likewise.
3538         (FFI_NATIVE_RAW_API): Likewise.
3539         * Makefile.in: Rebuilt.
3540         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
3541         (TARGET_SRC_POWERPC): Likewise.
3542
3543 2001-03-19  Tom Tromey  <tromey@redhat.com>
3544
3545         * Makefile.in: Rebuilt.
3546         * Makefile.am (ffitest_LDFLAGS): New macro.
3547
3548 2001-03-02  Nick Clifton  <nickc@redhat.com>
3549
3550         * include/ffi.h.in: Remove RCS ident string.
3551         * include/ffi_mips.h: Remove RCS ident string.
3552         * src/debug.c: Remove RCS ident string.
3553         * src/ffitest.c: Remove RCS ident string.
3554         * src/prep_cif.c: Remove RCS ident string.
3555         * src/types.c: Remove RCS ident string.
3556         * src/alpha/ffi.c: Remove RCS ident string.
3557         * src/alpha/osf.S: Remove RCS ident string.
3558         * src/arm/ffi.c: Remove RCS ident string.
3559         * src/arm/sysv.S: Remove RCS ident string.
3560         * src/mips/ffi.c: Remove RCS ident string.
3561         * src/mips/n32.S: Remove RCS ident string.
3562         * src/mips/o32.S: Remove RCS ident string.
3563         * src/sparc/ffi.c: Remove RCS ident string.
3564         * src/sparc/v8.S: Remove RCS ident string.
3565         * src/sparc/v9.S: Remove RCS ident string.
3566         * src/x86/ffi.c: Remove RCS ident string.
3567         * src/x86/sysv.S: Remove RCS ident string.
3568
3569 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
3570
3571         * include/ffi.h.in: Change sourceware.cygnus.com references to
3572         gcc.gnu.org.
3573
3574 2000-12-09  Richard Henderson  <rth@redhat.com>
3575
3576         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
3577         (ffi_closure_osf_inner): Index rather than increment avalue
3578         and arg_types.  Give ffi_closure_osf the raw return value type.
3579         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
3580         promotion.
3581
3582 2000-12-07  Richard Henderson  <rth@redhat.com>
3583
3584         * src/raw_api.c (ffi_translate_args): Fix typo.
3585         (ffi_prep_closure): Likewise.
3586
3587         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
3588         FFI_TRAMPOLINE_SIZE.
3589         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
3590         cif->bytes for new ffi_call_osf implementation.
3591         (ffi_prep_args): Absorb into ...
3592         (ffi_call): ... here.  Do all stack allocation here and
3593         avoid a callback function.
3594         (ffi_prep_closure, ffi_closure_osf_inner): New.
3595         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
3596         (ffi_closure_osf): New.
3597
3598 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
3599
3600         * config.guess, config.sub, install-sh: Removed.
3601         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
3602         * Makefile.in: Rebuilt.
3603
3604         * acinclude.m4: Include libtool macros from the top level.
3605         * aclocal.m4, configure: Rebuilt.
3606
3607 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
3608
3609         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
3610         * configure: Rebuilt.
3611
3612 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
3613
3614         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
3615         memory correctly.  Use conditional instructions, not branches where
3616         possible.
3617
3618 2000-05-04  Tom Tromey  <tromey@cygnus.com>
3619
3620         * configure: Rebuilt.
3621         * configure.in: Match `arm*-*-linux-*'.
3622         From Chris Dornan <cdornan@arm.com>.
3623
3624 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
3625
3626         * Makefile.am (SUBDIRS): Define.
3627         (AM_MAKEFLAGS): Likewise.
3628         (Multilib support.): Add section.
3629         * Makefile.in: Rebuilt.
3630         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
3631         New variables. Set for gcc using -print-multi-lib. Export them
3632         to libtool.
3633         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
3634         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
3635         for -shared links.
3636         (extra_compiler_flags_value, extra_compiler_flags): Check these
3637         for extra compiler options which need to be passed down in
3638         compiler_flags.
3639
3640 2000-04-16  Anthony Green  <green@redhat.com>
3641
3642         * configure: Rebuilt.
3643         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
3644
3645 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
3646
3647         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
3648         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
3649         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
3650         Replace all void * sizeofs with sizeof(int).
3651         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
3652         different than DOUBLE.
3653         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
3654         (ffi_prep_args_v9): New function.
3655         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
3656         (ffi_V9_return_struct): New function.
3657         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
3658         32bit code (not yet cross-arch calls).
3659         * src/sparc/v8.S: Add struct return delay nop.
3660         Handle long long.
3661         * src/sparc/v9.S: New file.
3662         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
3663         is used on sparc64 only for structures larger than 32 bytes.
3664         Pass by reference for structures is done for structure arguments
3665         larger than 16 bytes.
3666         * src/ffitest.c (main): Use 64bit rint on sparc64.
3667         Run long long tests on sparc.
3668         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
3669         sparc64.
3670         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
3671         on sparc64.
3672         * configure.in (sparc-*-linux*): New supported target.
3673         (sparc64-*-linux*): Likewise.
3674         * configure: Rebuilt.
3675         * Makefile.am: Add v9.S to SPARC files.
3676         * Makefile.in: Likewise.
3677         (LINK): Surround $(CCLD) into double quotes, so that multilib
3678         compiles work correctly.
3679
3680 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
3681
3682         * configure: Rebuilt.
3683         * configure.in: (i*86-*-solaris*): New libffi target. Patch
3684         proposed by Bryce McKinlay.
3685
3686 2000-03-20  Tom Tromey  <tromey@cygnus.com>
3687
3688         * Makefile.in: Hand edit for java_raw_api.lo.
3689
3690 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
3691
3692         * config.guess, config.sub: Update from the gcc tree.
3693         Fix for PR libgcj/168.
3694
3695 2000-03-03  Tom Tromey  <tromey@cygnus.com>
3696
3697         * Makefile.in: Fixed ia64 by hand.
3698
3699         * configure: Rebuilt.
3700         * configure.in (--enable-multilib): New option.
3701         (libffi_basedir): New subst.
3702         (AC_OUTPUT): Added multilib code.
3703
3704 2000-03-02  Tom Tromey  <tromey@cygnus.com>
3705
3706         * Makefile.in: Rebuilt.
3707         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
3708         directory name.
3709
3710 2000-02-25  Hans Boehm <boehm@acm.org>
3711
3712         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
3713         files.
3714         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
3715         list.
3716         (ffi_prep_raw_closure): Use ffi_translate_args, not
3717         ffi_closure_translate.
3718         * src/java_raw_api.c: New file.
3719         * src/ffitest.c (closure_test_fn): New function.
3720         (main): Define `rint' as long long on IA64.  Added new test when
3721         FFI_CLOSURES is defined.
3722         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
3723         (ffi_abi): Recognize IA64.
3724         (ffi_raw): Added `flt' field.
3725         Added "Java raw API" code.
3726         * configure.in: Recognize ia64.
3727         * Makefile.am (TARGET_SRC_IA64): New macro.
3728         (libffi_la_common_SOURCES): Added java_raw_api.c.
3729         (libffi_la_SOURCES): Define in IA64 case.
3730
3731 2000-01-04  Tom Tromey  <tromey@cygnus.com>
3732
3733         * Makefile.in: Rebuilt with newer automake.
3734
3735 1999-12-31  Tom Tromey  <tromey@cygnus.com>
3736
3737         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
3738
3739 1999-09-01  Tom Tromey  <tromey@cygnus.com>
3740
3741         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
3742         undefs.
3743         * fficonfig.h.in: Rebuilt.
3744         * configure: Rebuilt.
3745         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
3746         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
3747         * acconfig.h: Don't #undef PACKAGE or VERSION.
3748
3749 1999-08-09  Anthony Green  <green@cygnus.com>
3750
3751         * include/ffi.h.in: Try to work around messy header problem
3752         with PACKAGE and VERSION.
3753
3754         * configure: Rebuilt.
3755         * configure.in: Change version to 2.00-beta.
3756
3757         * fficonfig.h.in: Rebuilt.
3758         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
3759
3760         * src/x86/ffi.c (ffi_raw_call): Rename.
3761
3762 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
3763
3764         * src/x86/ffi.c (ffi_closure_SYSV): New function.
3765         (ffi_prep_incoming_args_SYSV): Ditto.
3766         (ffi_prep_closure): Ditto.
3767         (ffi_closure_raw_SYSV): Ditto.
3768         (ffi_prep_raw_closure): More ditto.
3769         (ffi_call_raw): Final ditto.
3770
3771         * include/ffi.h.in: Add definitions for closure and raw API.
3772
3773         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
3774         FFI_TYPE_UINT64.
3775
3776         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
3777
3778         * src/raw_api.c: New file.
3779
3780         * include/ffi.h.in (ffi_raw): New type.
3781         (UINT_ARG, SINT_ARG): New defines.
3782         (ffi_closure, ffi_raw_closure): New types.
3783         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
3784
3785         * configure.in: Add check for endianness and sizeof void*.
3786
3787         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
3788         instead of directly.
3789
3790         * configure: Rebuilt.
3791
3792 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
3793
3794         * configure.in: Add x86 and powerpc BeOS configurations.
3795         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
3796
3797 1999-05-09  Anthony Green  <green@cygnus.com>
3798
3799         * configure.in: Add warning about this being beta code.
3800         Remove src/Makefile.am from the picture.
3801         * configure: Rebuilt.
3802
3803         * Makefile.am: Move logic from src/Makefile.am.  Add changes
3804         to support libffi as a target library.
3805         * Makefile.in: Rebuilt.
3806
3807         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
3808         Upgraded to new autoconf, automake, libtool.
3809
3810         * README: Tweaks.
3811
3812         * LICENSE: Update copyright date.
3813
3814         * src/Makefile.am, src/Makefile.in: Removed.
3815
3816 1998-11-29  Anthony Green  <green@cygnus.com>
3817
3818         * include/ChangeLog: Removed.
3819         * src/ChangeLog: Removed.
3820         * src/mips/ChangeLog: Removed.
3821         * src/sparc/ChangeLog: Remboved.
3822         * src/x86/ChangeLog: Removed.
3823
3824         * ChangeLog.v1: Created.