OSDN Git Service

2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libffi / ChangeLog
1 2004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
2
3         * configure: Regenerate for libtool reversion.
4
5 2004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
6
7         * configure: Regenerate for libtool change.
8
9 2004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10
11         * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
12
13 2004-11-23  Richard Sandiford  <rsandifo@redhat.com>
14
15         * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
16         of jal.  Use an absolute encoding for the frame information.
17
18 2004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
19
20         * Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
21         * acinclude.m4: Delete logic for sincludes.
22         * aclocal.m4, Makefile.in, configure: Regenerate.
23         * include/Makefile: Likewise.
24         * testsuite/Makefile: Likewise.
25
26 2004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
27
28         * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
29         on a 8-byte boundary.
30         * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
31
32 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
33
34         * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
35         long long values.  Round stack allocation to a multiple of 8 bytes
36         for ATPCS compatibility.
37         * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
38         names.  Handle returning long long types.  Add Thumb and interworking
39         support.  Improve soft-float code.
40
41 2004-10-27  Richard Earnshaw  <rearnsha@arm.com>
42
43         * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
44         (libffi_exit): New function.
45         (libffi_init): Build the testglue wrapper if needed.
46
47 2004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
48
49         PR other/18138
50         * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
51
52 2004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
53
54         * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
55
56 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
57
58         * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
59         * testsuite/libffi.call/float3.c: New test case.
60
61 2004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
62
63         * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
64         the function returning a structure pointed with R2.
65         * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
66         the structure return value if T bit set.  Emit position
67         independent code and EH data if PIC.
68
69 2004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
70
71         * Makefile.am: Add m32r support.
72         * configure.ac: Likewise.
73         * Makefile.in: Regenerate.
74         * confiugre: Regenerate.
75         * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
76         (uint64, sint64, double, longdouble)
77         * src/m32r: New directory.
78         * src/m32r/ffi.c: New file.
79         * src/m32r/sysv.S: Likewise.
80         * src/m32r/ffitarget.h: Likewise.
81
82 2004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
83
84         * testsuite/libffi.call/negint.c: New test case.
85
86 2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
87
88         PR libgcj/17465
89         * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
90         Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
91         LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
92         DYLD_LIBRARY_PATH.
93
94 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
95
96         * testsuite/libffi.call/many_win32.c: Remove whitespaces.
97         * testsuite/libffi.call/promotion.c: Likewise.
98         * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
99         whitespaces.
100         * testsuite/libffi.call/return_sc.c: Likewise.
101         * testsuite/libffi.call/return_uc.c: Likewise.
102
103 2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
104
105         * src/powerpc/darwin.S: Fix comments and identation.
106         * src/powerpc/darwin_closure.S: Likewise.
107
108 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
109
110         * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
111         (ffi_prep_args): Handle longdouble arguments.
112         (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
113         longdouble.
114         (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
115         * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
116         values.
117         * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
118         * src/types.c: Defined longdouble size and alignment for darwin.
119
120 2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
121
122         * src/powerpc/aix.S: Remove whitespaces.
123         * src/powerpc/aix_closure.S: Likewise.
124         * src/powerpc/asm.h: Likewise.
125         * src/powerpc/ffi.c: Likewise.
126         * src/powerpc/ffitarget.h: Likewise.
127         * src/powerpc/linux64.S: Likewise.
128         * src/powerpc/linux64_closure.S: Likewise.
129         * src/powerpc/ppc_closure.S: Likewise.
130         * src/powerpc/sysv.S: Likewise.
131
132 2004-08-30  Anthony Green  <green@redhat.com>
133
134         * Makefile.am: Add frv support.
135         * Makefile.in, testsuite/Makefile.in: Rebuilt.
136         * configure.ac: Read configure.host.
137         * configure.in: Read configure.host.
138         * configure.host: New file.  frv-elf needs libgloss.
139         * include/ffi.h.in: Force ffi_closure to have a nice big (8)
140         alignment.  This is needed to frv and shouldn't harm the others.
141         * include/ffi_common.h (ALIGN_DOWN): New macro.
142         * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
143
144 2004-08-24  David Daney  <daney@avtrex.com>
145
146         * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
147         * testsuite/libffi.call/closure_fn1.c: Likewise.
148         * testsuite/libffi.call/closure_fn2.c  Likewise.
149         * testsuite/libffi.call/closure_fn3.c: Likewise.
150         * testsuite/libffi.call/closure_fn4.c: Likewise.
151         * testsuite/libffi.call/closure_fn5.c: Likewise.
152         * testsuite/libffi.call/cls_18byte.c: Likewise.
153         * testsuite/libffi.call/cls_19byte.c: Likewise.
154         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
155         * testsuite/libffi.call/cls_20byte.c: Likewise.
156         * testsuite/libffi.call/cls_20byte1.c: Likewise.
157         * testsuite/libffi.call/cls_24byte.c: Likewise.
158         * testsuite/libffi.call/cls_2byte.c: Likewise.
159         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
160         * testsuite/libffi.call/cls_3byte1.c: Likewise.
161         * testsuite/libffi.call/cls_3byte2.c: Likewise.
162         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
163         * testsuite/libffi.call/cls_4byte.c: Likewise.
164         * testsuite/libffi.call/cls_64byte.c: Likewise.
165         * testsuite/libffi.call/cls_6byte.c: Likewise.
166         * testsuite/libffi.call/cls_7byte.c: Likewise.
167         * testsuite/libffi.call/cls_8byte.c: Likewise.
168         * testsuite/libffi.call/cls_9byte1.c: Likewise.
169         * testsuite/libffi.call/cls_9byte2.c: Likewise.
170         * testsuite/libffi.call/cls_align_double.c: Likewise.
171         * testsuite/libffi.call/cls_align_float.c: Likewise.
172         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
173         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
174         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
175         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
176         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
177         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
178         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
179         * testsuite/libffi.call/cls_align_uint64.c: Likewise.
180         * testsuite/libffi.call/cls_double.c: Likewise.
181         * testsuite/libffi.call/cls_float.c: Likewise.
182         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
183         * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
184         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
185         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
186         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
187         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
188         * testsuite/libffi.call/cls_schar.c: Likewise.
189         * testsuite/libffi.call/cls_sint.c: Likewise.
190         * testsuite/libffi.call/cls_sshort.c: Likewise.
191         * testsuite/libffi.call/cls_uchar.c: Likewise.
192         * testsuite/libffi.call/cls_uint.c: Likewise.
193         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
194         * testsuite/libffi.call/cls_ushort.c: Likewise.
195         * testsuite/libffi.call/nested_struct.c: Likewise.
196         * testsuite/libffi.call/nested_struct1.c: Likewise.
197         * testsuite/libffi.call/nested_struct2.c: Likewise.
198         * testsuite/libffi.call/nested_struct3.c: Likewise.
199         * testsuite/libffi.call/problem1.c: Likewise.
200         * testsuite/libffi.special/unwindtest.cc: Likewise.
201         * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
202         to zero.
203         * testsuite/libffi.call/cls_16byte.c: Likewise.
204         * testsuite/libffi.call/cls_5byte.c: Likewise.
205
206 2004-08-23  David Daney <daney@avtrex.com>
207
208         PR libgcj/13141
209         * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
210         * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
211         (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
212         parameters and return types.
213         (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
214         (ffi_prep_closure): Ditto.
215         (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
216         alignment calculations.
217         * src/mips/o32.S (ffi_closure_O32): Don't use floating point
218         instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
219
220 2004-08-14  Casey Marshall <csm@gnu.org>
221
222         * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
223         contain `FFI_TYPE_UINT64' as return type for any 64-bit
224         integer (O32 ABI only).
225         (ffi_prep_closure): new function.
226         (ffi_closure_mips_inner_O32): new function.
227         * src/mips/ffitarget.h: Define `FFI_CLOSURES' and 
228         `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
229         * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
230         64 bit integers correctly.
231         (ffi_closure_O32): new function.
232         Added DWARF-2 unwind info for both functions.
233
234 2004-08-10  Andrew Haley  <aph@redhat.com>
235
236         * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
237
238 2004-08-01  Robert Millan  <robertmh@gnu.org>
239
240         * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
241         * configure: Regenerate.
242
243 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
244
245         * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
246         and mmap() explicitly instead of relying on preset autoconf cache
247         variables.
248         * aclocal.m4: Regenerate.
249         * configure: Regenerate.
250
251 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
252
253         * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
254         (ffi_check_float_struct): Remove unused prototype.
255
256 2004-06-30  Geoffrey Keating  <geoffk@apple.com>
257
258         * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
259         character on Darwin, use '\n\t' instead.
260
261 2004-06-26  Matthias Klose  <doko@debian.org>
262
263         * libtool-version: Fix typo in revision/age.
264
265 2004-06-17  Matthias Klose  <doko@debian.org>
266
267         * libtool-version: New.
268         * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
269         * Makefile.in: Regenerate.
270
271 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
272
273         * Makefile.am: Remove useless multilib rules.
274         * Makefile.in: Regenerate.
275         * aclocal.m4: Regenerate with automake 1.8.5.
276         * configure.ac: Remove useless multilib configury.
277         * configure: Regenerate.
278
279 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
280
281         * .cvsignore: New file.
282
283 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
284
285         * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
286         fp_done.
287         (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
288         changed from 8.
289
290 2004-06-06  Sean McNeil  <sean@mcneil.com>
291
292         * configure.ac: Add x86_64-*-freebsd* support.
293         * configure: Regenerate.
294
295 2004-04-26  Joe Buck <jbuck@welsh-buck.org>
296
297         Bug 15093
298         * configure.ac: Test for existence of mmap and sys/mman.h before
299         checking blacklist.  Fix suggested by Jim Wilson.
300         * configure: Regenerate.
301
302 2004-04-26  Matt Austern  <austern@apple.com>
303
304         * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
305         FDE location.
306         * src/powerpc/darwin_closure.S: Likewise.
307         
308 2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
309
310         * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
311         error. Reported by Thomas Heller <theller@python.net>.
312         * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
313         * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
314
315 2004-03-20  Matthias Klose  <doko@debian.org>
316
317         * src/pa/linux.S: Fix typo.
318
319 2004-03-19  Matthias Klose  <doko@debian.org>
320
321         * Makefile.am: Update.
322         * Makefile.in: Regenerate.
323         * src/pa/ffi.h.in: Remove.
324         * src/pa/ffitarget.h: New file.
325
326 2004-02-10  Randolph Chung  <tausq@debian.org>
327
328         * Makefile.am: Add PA support.
329         * Makefile.in: Regenerate.
330         * include/Makefile.in: Regenerate.
331         * configure.ac: Add PA target.
332         * configure: Regenerate.
333         * src/pa/ffi.c: New file.
334         * src/pa/ffi.h.in: Add PA support.
335         * src/pa/linux.S: New file.
336         * prep_cif.c: Add PA support.
337
338 2004-03-16  Hosaka Yuji  <hos@tamanegi.org>
339
340         * src/types.c: Fix alignment size of X86_WIN32 case int64 and
341         double.
342         * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
343         with ecif->cif->flags.
344         (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
345         with cif->flags.
346         (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
347         (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
348         * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
349         sc_retstruct2b): Add for 1 or 2-bytes struct case.
350
351 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
352
353         * configure.in: Rename file to ...
354         * configure.ac: ... this.
355         * fficonfig.h.in: Regenerate.
356         * Makefile.in: Regenerate.
357         * include/Makefile.in: Regenerate.
358         * testsuite/Makefile.in: Regenerate.
359
360 2004-03-12  Matt Austern  <austern@apple.com>
361
362         * src/powerpc/darwin.S: Fix EH information so it corresponds to
363         changes in EH format resulting from addition of linkonce support.
364         * src/powerpc/darwin_closure.S: Likewise.
365
366 2004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
367             Paolo Bonzini  <bonzini@gnu.org>
368
369         * Makefile.am (AUTOMAKE_OPTIONS): Set them.
370         Remove VPATH. Remove rules for object files. Remove multilib support.
371         (AM_CCASFLAGS): Add.
372         * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
373         (AC_PREREQ): Bump version to 2.59.
374         (AC_INIT): Fill with version info and bug address.
375         (ORIGINAL_LD_FOR_MULTILIBS): Remove.
376         (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
377         De-precious CC so that the right flags are passed down to multilibs.
378         (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
379         (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
380         (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
381         * configure: Rebuilt.
382         * aclocal.m4: Likewise.
383         * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
384         * fficonfig.h.in: Likewise.
385
386 2004-03-11  Andreas Schwab  <schwab@suse.de>
387
388         * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
389         arguments from fp registers only for the first 8 parameter slots.
390         Don't convert a float parameter when passed in memory.
391
392 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
393
394         * configure: Regenerate for config/accross.m4 correction.
395
396 2004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
397
398         * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
399         ecif->cif->bytes to bytes.
400         (ffi_prep_cif_machdep): Add braces around nested if statement.
401
402 2004-02-09  Alan Modra  <amodra@bigpond.net.au>
403
404         * src/types.c (pointer): POWERPC64 has 8 byte pointers.
405
406         * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
407         (ffi_closure_helper_LINUX64): Fix typo.
408         * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
409         for powerpc64-*-*.
410         * testsuite/libffi.call/float.c: Likewise.
411         * testsuite/libffi.call/float2.c: Likewise.
412
413 2004-02-08  Alan Modra  <amodra@bigpond.net.au>
414
415         * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
416         long double function return and long double arg handling.
417         (ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
418         Use "end_pfr" instead of "nf".  Correct long double handling.
419         Localise "temp".
420         * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
421         return value.
422         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
423         space for long double return value.  Adjust stack frame and offsets.
424         Load f2 long double return.
425
426 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
427
428         * src/types.c: Use 16 byte long double for POWERPC64.
429
430 2004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
431
432         * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
433         when the structure return address is passed in %o0.
434         (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
435         (ffi_v9_layout_struct): Align the field following a nested structure
436         on a word boundary.  Use memmove instead of memcpy.
437         (ffi_call): Update call to ffi_V9_return_struct.
438         (ffi_prep_closure): Define 'ctx' only for V8.
439         (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
440         and ffi_closure_sparc_inner_v9.
441         (ffi_closure_sparc_inner_v8): Return long doubles by reference.
442         Always skip the structure return address.  For structures and long
443         doubles, copy the argument directly.
444         (ffi_closure_sparc_inner_v9): Skip the structure return address only
445         if required.  Shift the maximum floating-point slot accordingly.  For
446         big structures, copy the argument directly; otherwise, left-justify the
447         argument and call ffi_v9_layout_struct to lay out the structure on
448         the stack.
449         * src/sparc/v8.S: Undef STACKFRAME before defining it.
450         (ffi_closure_v8): Pass the structure return address.  Update call to
451         ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
452         Skip the 'unimp' insn when returning long doubles and structures.
453         * src/sparc/v9.S: Undef STACKFRAME before defining it.
454         (ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
455         FFI_TYPE_INT handling.  Load structures both in integers and
456         floating-point registers on return.
457         * README: Update status of the SPARC port.
458
459 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
460
461         * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
462         as of type ffi_arg.
463         * testsuite/libffi.call/struct3.c (main): Fix CHECK.
464
465 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
466
467         * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
468         value as of type ffi_arg, not unsigned int.
469
470 2004-01-21  Michael Ritzert  <ritzert@t-online.de>
471
472         * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
473         of the LHS.
474
475 2004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
476
477         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
478         Solaris.
479
480 2004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
481
482         * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
483         to void *.
484
485 2003-12-10  Richard Henderson  <rth@redhat.com>
486
487         * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
488         size_t instead of int.
489
490 2003-12-04  Hosaka Yuji  <hos@tamanegi.org>
491
492         * testsuite/libffi.call/many_win32.c: Include <float.h>.
493         * testsuite/libffi.call/many_win32.c (main): Replace variable
494         int i with unsigned long ul.
495
496         * testsuite/libffi.call/cls_align_uint64.c: New test case.
497         * testsuite/libffi.call/cls_align_sint64.c: Likewise.
498         * testsuite/libffi.call/cls_align_uint32.c: Likewise.
499         * testsuite/libffi.call/cls_align_sint32.c: Likewise.
500         * testsuite/libffi.call/cls_align_uint16.c: Likewise.
501         * testsuite/libffi.call/cls_align_sint16.c: Likewise.
502         * testsuite/libffi.call/cls_align_float.c: Likewise.
503         * testsuite/libffi.call/cls_align_double.c: Likewise.
504         * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
505         * testsuite/libffi.call/cls_align_pointer.c: Likewise.
506
507 2003-12-02  Hosaka Yuji  <hos@tamanegi.org>
508
509         PR other/13221
510         * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
511         Align arguments to 32 bits.
512
513 2003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
514
515         PR other/13221
516         * testsuite/libffi.call/cls_multi_sshort.c: New test case.
517         * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
518         * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
519         * testsuite/libffi.call/cls_multi_schar.c: Likewise.
520         * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
521         * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
522
523         * testsuite/libffi.special/unwindtest.cc: Cosmetics.
524
525 2003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
526
527         * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
528         * testsuite/libffi.special/ffitestcxx.h: Likewise.
529
530 2003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
531
532         * Makefile.in: Rebuilt.
533         * configure: Likewise.
534         * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
535         the right type.
536
537 2003-11-21  Andreas Jaeger  <aj@suse.de>
538             Andreas Tobler  <a.tobler@schweiz.ch>
539
540         * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
541         * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
542         * Makefile.in: Rebuilt.
543         * aclocal.m4: Likewise.
544         * configure: Likewise.
545         * fficonfig.h.in: Likewise.
546         * testsuite/lib/libffi-dg.exp: Add include dir.
547         * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
548         * testsuite/libffi.special/ffitestcxx.h: Likewise.
549         * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
550         for ffi_closure if available.
551         * testsuite/libffi.call/closure_fn1.c: Likewise.
552         * testsuite/libffi.call/closure_fn2.c: Likewise.
553         * testsuite/libffi.call/closure_fn3.c: Likewise.
554         * testsuite/libffi.call/closure_fn4.c: Likewise.
555         * testsuite/libffi.call/closure_fn5.c: Likewise.
556         * testsuite/libffi.call/cls_12byte.c: Likewise.
557         * testsuite/libffi.call/cls_16byte.c: Likewise.
558         * testsuite/libffi.call/cls_18byte.c: Likewise.
559         * testsuite/libffi.call/cls_19byte.c: Likewise.
560         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
561         * testsuite/libffi.call/cls_20byte.c: Likewise.
562         * testsuite/libffi.call/cls_20byte1.c: Likewise.
563         * testsuite/libffi.call/cls_24byte.c: Likewise.
564         * testsuite/libffi.call/cls_2byte.c: Likewise.
565         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
566         * testsuite/libffi.call/cls_3byte1.c: Likewise.
567         * testsuite/libffi.call/cls_3byte2.c: Likewise.
568         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
569         * testsuite/libffi.call/cls_4byte.c: Likewise.
570         * testsuite/libffi.call/cls_5byte.c: Likewise.
571         * testsuite/libffi.call/cls_64byte.c: Likewise.
572         * testsuite/libffi.call/cls_6byte.c: Likewise.
573         * testsuite/libffi.call/cls_7byte.c: Likewise.
574         * testsuite/libffi.call/cls_8byte.c: Likewise.
575         * testsuite/libffi.call/cls_9byte1.c: Likewise.
576         * testsuite/libffi.call/cls_9byte2.c: Likewise.
577         * testsuite/libffi.call/cls_double.c: Likewise.
578         * testsuite/libffi.call/cls_float.c: Likewise.
579         * testsuite/libffi.call/cls_schar.c: Likewise.
580         * testsuite/libffi.call/cls_sint.c: Likewise.
581         * testsuite/libffi.call/cls_sshort.c: Likewise.
582         * testsuite/libffi.call/cls_uchar.c: Likewise.
583         * testsuite/libffi.call/cls_uint.c: Likewise.
584         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
585         * testsuite/libffi.call/cls_ushort.c: Likewise.
586         * testsuite/libffi.call/nested_struct.c: Likewise.
587         * testsuite/libffi.call/nested_struct1.c: Likewise.
588         * testsuite/libffi.call/nested_struct2.c: Likewise.
589         * testsuite/libffi.call/nested_struct3.c: Likewise.
590         * testsuite/libffi.call/problem1.c: Likewise.
591         * testsuite/libffi.special/unwindtest.cc: Likewise.
592
593 2003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
594
595         * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
596
597 2003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
598
599         * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
600         Add -lgcc_s to additional flags.
601
602 2003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
603
604         * configure.in, include/Makefile.am: PR libgcj/11147, install
605         the ffitarget.h header file in a gcc versioned and target
606         dependent place.
607         * configure: Regenerated.
608         * Makefile.in, include/Makefile.in: Likewise.
609         * testsuite/Makefile.in: Likewise.
610
611 2003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
612
613         * testsuite/libffi.call/closure_fn0.c: Print result and check
614         with dg-output to make debugging easier.
615         * testsuite/libffi.call/closure_fn1.c: Likewise.
616         * testsuite/libffi.call/closure_fn2.c: Likewise.
617         * testsuite/libffi.call/closure_fn3.c: Likewise.
618         * testsuite/libffi.call/closure_fn4.c: Likewise.
619         * testsuite/libffi.call/closure_fn5.c: Likewise.
620         * testsuite/libffi.call/cls_12byte.c: Likewise.
621         * testsuite/libffi.call/cls_16byte.c: Likewise.
622         * testsuite/libffi.call/cls_18byte.c: Likewise.
623         * testsuite/libffi.call/cls_19byte.c: Likewise.
624         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
625         * testsuite/libffi.call/cls_20byte.c: Likewise.
626         * testsuite/libffi.call/cls_20byte1.c: Likewise.
627         * testsuite/libffi.call/cls_24byte.c: Likewise.
628         * testsuite/libffi.call/cls_2byte.c: Likewise.
629         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
630         * testsuite/libffi.call/cls_3byte1.c: Likewise.
631         * testsuite/libffi.call/cls_3byte2.c: Likewise.
632         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
633         * testsuite/libffi.call/cls_4byte.c: Likewise.
634         * testsuite/libffi.call/cls_5byte.c: Likewise.
635         * testsuite/libffi.call/cls_64byte.c: Likewise.
636         * testsuite/libffi.call/cls_6byte.c: Likewise.
637         * testsuite/libffi.call/cls_7byte.c: Likewise.
638         * testsuite/libffi.call/cls_8byte.c: Likewise.
639         * testsuite/libffi.call/cls_9byte1.c: Likewise.
640         * testsuite/libffi.call/cls_9byte2.c: Likewise.
641         * testsuite/libffi.call/cls_double.c: Likewise.
642         * testsuite/libffi.call/cls_float.c: Likewise.
643         * testsuite/libffi.call/cls_schar.c: Likewise.
644         * testsuite/libffi.call/cls_sint.c: Likewise.
645         * testsuite/libffi.call/cls_sshort.c: Likewise.
646         * testsuite/libffi.call/cls_uchar.c: Likewise.
647         * testsuite/libffi.call/cls_uint.c: Likewise.
648         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
649         * testsuite/libffi.call/cls_ushort.c: Likewise.
650         * testsuite/libffi.call/problem1.c: Likewise.
651
652         * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
653         static.
654
655 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
656
657         * testsuite/libffi.call/cls_9byte2.c: New test case.
658         * testsuite/libffi.call/cls_9byte1.c: Likewise.
659         * testsuite/libffi.call/cls_64byte.c: Likewise.
660         * testsuite/libffi.call/cls_20byte1.c: Likewise.
661         * testsuite/libffi.call/cls_19byte.c: Likewise.
662         * testsuite/libffi.call/cls_18byte.c: Likewise.
663         * testsuite/libffi.call/closure_fn4.c: Likewise.
664         * testsuite/libffi.call/closure_fn5.c: Likewise.
665         * testsuite/libffi.call/cls_schar.c: Likewise.
666         * testsuite/libffi.call/cls_sint.c: Likewise.
667         * testsuite/libffi.call/cls_sshort.c: Likewise.
668         * testsuite/libffi.call/nested_struct2.c: Likewise.
669         * testsuite/libffi.call/nested_struct3.c: Likewise.
670
671 2003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
672
673         * testsuite/libffi.call/cls_double.c: Do a check on the result.
674         * testsuite/libffi.call/cls_uchar.c: Likewise.
675         * testsuite/libffi.call/cls_uint.c: Likewise.
676         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
677         * testsuite/libffi.call/cls_ushort.c: Likewise.
678         * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
679
680 2003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
681
682         * src/prep_cif.c (ffi_prep_cif): Move the validity check after
683         the initialization.
684
685 2003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
686
687         * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
688         FFI_ASSERT(FALSE) with FFI_ASSERT(0).
689
690 2003-10-22  David Daney  <ddaney@avtrex.com>
691
692         * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
693         __attribute__((__mode__(__SI__))) and friends.
694
695 2003-10-22  Andreas Schwab  <schwab@suse.de>
696
697         * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
698
699 2003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
700
701         * configure.in: AC_LINK_FILES(ffitarget.h).
702         * configure: Regenerate.
703         * Makefile.in: Likewise.
704         * include/Makefile.in: Likewise.
705         * testsuite/Makefile.in: Likewise.
706         * fficonfig.h.in: Likewise.
707
708 2003-10-21  Paolo Bonzini  <bonzini@gnu.org>
709             Richard Henderson  <rth@redhat.com>
710
711         Avoid that ffi.h includes fficonfig.h.
712
713         * Makefile.am (EXTRA_DIST): Include ffitarget.h files
714         (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
715         (TARGET_SRC_MIPS_SGI): Removed.
716         (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
717         (MIPS_SGI): Removed.
718         (CLEANFILES): Removed.
719         (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
720         targets.
721         * acconfig.h: Removed.
722         * configure.in: Compute sizeofs only for double and long double.
723         Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
724         into AC_DEFINE instead of using acconfig.h.  Create
725         include/ffitarget.h instead of include/fficonfig.h.  Rename
726         MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
727         AC_DEFINE EH_FRAME_FLAGS.
728         * include/Makefile.am (DISTCLEANFILES): New automake macro.
729         (hack_DATA): Add ffitarget.h.
730         * include/ffi.h.in: Remove all system specific definitions.
731         Declare raw API even if it is not installed, why bother?
732         Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
733         not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
734         ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
735         (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
736         * include/ffi_common.h (bool): Do not define.
737         (ffi_assert): Accept failed assertion.
738         (ffi_type_test): Return void and accept file/line.
739         (FFI_ASSERT): Pass stringized failed assertion.
740         (FFI_ASSERT_AT): New macro.
741         (FFI_ASSERT_VALID_TYPE): New macro.
742         (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
743         UINT64, SINT64): Define here with gcc's __attribute__ macro
744         instead of in ffi.h
745         (FLOAT32, ALIGN): Define here instead of in ffi.h
746         * include/ffi-mips.h: Removed.  Its content moved to
747         src/mips/ffitarget.h after separating assembly and C sections.
748         * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
749         src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
750         src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
751         src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
752         SIZEOF_ARG -> FFI_SIZEOF_ARG.
753         * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
754         * src/debug.c (ffi_assert): Accept stringized failed assertion.
755         (ffi_type_test): Rewritten.
756         * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
757         FFI_ASSERT_VALID_TYPE.
758         * src/alpha/ffitarget.h, src/arm/ffitarget.h,
759         src/ia64/ffitarget.h, src/m68k/ffitarget.h,
760         src/mips/ffitarget.h, src/powerpc/ffitarget.h,
761         src/s390/ffitarget.h, src/sh/ffitarget.h,
762         src/sh64/ffitarget.h, src/sparc/ffitarget.h,
763         src/x86/ffitarget.h: New files.
764         * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
765         src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
766         src/powerpc/aix.S, src/powerpc/darwin.S,
767         src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
768         src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
769         src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
770         src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
771         src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
772         include fficonfig.h
773
774 2003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
775
776         * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
777         _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
778
779 2003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
780
781         * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
782         Used when FFI_DEBUG = 1.
783
784 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
785
786         * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
787         and align.
788
789 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
790
791         * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
792         FFI_MIPS_O32 for O32 ABI.
793
794 2003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
795
796         * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
797         SPARC64. Cleanup whitespaces.
798
799 2003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
800
801         * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
802         strongarm, xscale. Cleanup whitespaces.
803         * testsuite/libffi.call/closure_fn1.c: Likewise.
804         * testsuite/libffi.call/closure_fn2.c: Likewise.
805         * testsuite/libffi.call/closure_fn3.c: Likewise.
806         * testsuite/libffi.call/cls_12byte.c: Likewise.
807         * testsuite/libffi.call/cls_16byte.c: Likewise.
808         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
809         * testsuite/libffi.call/cls_20byte.c: Likewise.
810         * testsuite/libffi.call/cls_24byte.c: Likewise.
811         * testsuite/libffi.call/cls_2byte.c: Likewise.
812         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
813         * testsuite/libffi.call/cls_3byte1.c: Likewise.
814         * testsuite/libffi.call/cls_3byte2.c: Likewise.
815         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
816         * testsuite/libffi.call/cls_4byte.c: Likewise.
817         * testsuite/libffi.call/cls_5byte.c: Likewise.
818         * testsuite/libffi.call/cls_6byte.c: Likewise.
819         * testsuite/libffi.call/cls_7byte.c: Likewise.
820         * testsuite/libffi.call/cls_8byte.c: Likewise.
821         * testsuite/libffi.call/cls_double.c: Likewise.
822         * testsuite/libffi.call/cls_float.c: Likewise.
823         * testsuite/libffi.call/cls_uchar.c: Likewise.
824         * testsuite/libffi.call/cls_uint.c: Likewise.
825         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
826         * testsuite/libffi.call/cls_ushort.c: Likewise.
827         * testsuite/libffi.call/nested_struct.c: Likewise.
828         * testsuite/libffi.call/nested_struct1.c: Likewise.
829         * testsuite/libffi.call/problem1.c: Likewise.
830         * testsuite/libffi.special/unwindtest.cc: Likewise.
831         * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
832
833 2003-09-18  David Edelsohn  <edelsohn@gnu.org>
834
835         * src/powerpc/aix.S: Cleanup whitespaces.
836         * src/powerpc/aix_closure.S: Likewise.
837
838 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
839
840         * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
841         * src/powerpc/darwin_closure.S: Likewise.
842         * src/powerpc/ffi_darwin.c: Likewise.
843
844 2003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
845             David Edelsohn  <edelsohn@gnu.org>
846
847         * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
848         * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
849         parameter stack.
850         * src/powerpc/darwin_closure.S: Likewise.
851         * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
852         according to the Darwin/AIX ABI.
853         (ffi_prep_cif_machdep): Likewise.
854         (ffi_closure_helper_DARWIN): Likewise.
855         Remove the outgoing parameter stack logic. Simplify the evaluation
856         of the different CASE types.
857         (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
858         statement in the trampoline code.
859
860 2003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
861
862         * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
863         for the register size.
864         (ffi_closure_helper_SYSV): Handle the structure return value
865         address correctly.
866         (ffi_closure_helper_SYSV): Return the appropriate type when
867         the registers are used for the structure return value.
868         * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
869         the 64-bit return value.  Update copyright years.
870
871 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
872
873         * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
874         srcdir for ffi_mips.h.
875
876 2003-09-12  Alan Modra  <amodra@bigpond.net.au>
877
878         * src/prep_cif.c (initialize_aggregate): Include tail padding in
879         structure size.
880         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
881         placement of float result.
882         * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
883         cast of "resp" for big-endian 64 bit machines.
884
885 2003-09-11  Alan Modra  <amodra@bigpond.net.au>
886
887         * src/types.c (double, longdouble): Merge identical SH and ARM
888         typedefs, and add POWERPC64.
889         * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
890         struct split over gpr and rest.
891         (ffi_prep_cif_machdep): Correct intarg_count for structures.
892         * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
893
894 2003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
895
896         * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
897         passing correctly.
898
899 2003-09-09  Alan Modra  <amodra@bigpond.net.au>
900
901         * configure: Regenerate.
902
903 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
904
905         * Makefile.am: Remove build rules for ffitest.
906         * Makefile.in: Rebuilt.
907
908 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
909
910         * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
911         about implicit declaration of abort().
912
913 2003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
914
915         * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
916         * Makefile.in: Rebuilt.
917         * configure.in: Add dejagnu test framework.
918         * configure: Rebuilt.
919
920         * testsuite/Makefile.am: New file.
921         * testsuite/Makefile.in: Built
922         * testsuite/lib/libffi-dg.exp: New file.
923         * testsuite/config/default.exp: Likewise.
924         * testsuite/libffi.call/call.exp: Likewise.
925         * testsuite/libffi.call/ffitest.h: Likewise.
926         * testsuite/libffi.call/closure_fn0.c: Likewise.
927         * testsuite/libffi.call/closure_fn1.c: Likewise.
928         * testsuite/libffi.call/closure_fn2.c: Likewise.
929         * testsuite/libffi.call/closure_fn3.c: Likewise.
930         * testsuite/libffi.call/cls_1_1byte.c: Likewise.
931         * testsuite/libffi.call/cls_3_1byte.c: Likewise.
932         * testsuite/libffi.call/cls_4_1byte.c: Likewise.
933         * testsuite/libffi.call/cls_2byte.c: Likewise.
934         * testsuite/libffi.call/cls_3byte1.c: Likewise.
935         * testsuite/libffi.call/cls_3byte2.c: Likewise.
936         * testsuite/libffi.call/cls_4byte.c: Likewise.
937         * testsuite/libffi.call/cls_5byte.c: Likewise.
938         * testsuite/libffi.call/cls_6byte.c: Likewise.
939         * testsuite/libffi.call/cls_7byte.c: Likewise.
940         * testsuite/libffi.call/cls_8byte.c: Likewise.
941         * testsuite/libffi.call/cls_12byte.c: Likewise.
942         * testsuite/libffi.call/cls_16byte.c: Likewise.
943         * testsuite/libffi.call/cls_20byte.c: Likewise.
944         * testsuite/libffi.call/cls_24byte.c: Likewise.
945         * testsuite/libffi.call/cls_double.c: Likewise.
946         * testsuite/libffi.call/cls_float.c: Likewise.
947         * testsuite/libffi.call/cls_uchar.c: Likewise.
948         * testsuite/libffi.call/cls_uint.c: Likewise.
949         * testsuite/libffi.call/cls_ulonglong.c: Likewise.
950         * testsuite/libffi.call/cls_ushort.c: Likewise.
951         * testsuite/libffi.call/float.c: Likewise.
952         * testsuite/libffi.call/float1.c: Likewise.
953         * testsuite/libffi.call/float2.c: Likewise.
954         * testsuite/libffi.call/many.c: Likewise.
955         * testsuite/libffi.call/many_win32.c: Likewise.
956         * testsuite/libffi.call/nested_struct.c: Likewise.
957         * testsuite/libffi.call/nested_struct1.c: Likewise.
958         * testsuite/libffi.call/pyobjc-tc.c: Likewise.
959         * testsuite/libffi.call/problem1.c: Likewise.
960         * testsuite/libffi.call/promotion.c: Likewise.
961         * testsuite/libffi.call/return_ll.c: Likewise.
962         * testsuite/libffi.call/return_sc.c: Likewise.
963         * testsuite/libffi.call/return_uc.c: Likewise.
964         * testsuite/libffi.call/strlen.c: Likewise.
965         * testsuite/libffi.call/strlen_win32.c: Likewise.
966         * testsuite/libffi.call/struct1.c: Likewise.
967         * testsuite/libffi.call/struct2.c: Likewise.
968         * testsuite/libffi.call/struct3.c: Likewise.
969         * testsuite/libffi.call/struct4.c: Likewise.
970         * testsuite/libffi.call/struct5.c: Likewise.
971         * testsuite/libffi.call/struct6.c: Likewise.
972         * testsuite/libffi.call/struct7.c: Likewise.
973         * testsuite/libffi.call/struct8.c: Likewise.
974         * testsuite/libffi.call/struct9.c: Likewise.
975         * testsuite/libffi.special/special.exp: New file.
976         * testsuite/libffi.special/ffitestcxx.h: Likewise.
977         * testsuite/libffi.special/unwindtest.cc: Likewise.
978
979
980 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
981
982         * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
983         copyright years.
984
985 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
986
987         * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
988         structure passing.
989         (ffi_closure_helper_LINUX64): Likewise.
990         * src/powerpc/linux64.S: Remove code writing to parm save area.
991         * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
992         address in lr from ffi_closure_helper_LINUX64 call to calculate
993         table address.  Optimize function tail.
994
995 2003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
996
997         * src/sparc/ffi.c: Handle all floating point registers.
998         * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
999
1000 2003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1001
1002         * README: Note that libffi is not part of GCC.  Update the project
1003         URL and status.
1004
1005 2003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1006
1007         * src/powerpc/ppc_closure.S: Include ffi.h.
1008
1009 2003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1010
1011         * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
1012         Use C style comments.
1013
1014 2003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1015
1016         * Makefile.am: Add SHmedia support.  Fix a typo of SH support.
1017         * Makefile.in: Regenerate.
1018         * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
1019         * configure: Regenerate.
1020         * include/ffi.h.in: Add SHmedia support.
1021         * src/sh64/ffi.c: New file.
1022         * src/sh64/sysv.S: New file.
1023
1024 2003-05-16  Jakub Jelinek  <jakub@redhat.com>
1025
1026         * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
1027         should be read-only.
1028         * configure: Rebuilt.
1029         * fficonfig.h.in: Rebuilt.
1030         * include/ffi.h.in (EH_FRAME_FLAGS): Define.
1031         * src/alpha/osf.S: Use EH_FRAME_FLAGS.
1032         * src/powerpc/linux64.S: Likewise.
1033         * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
1034         * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
1035         if -fpic/-fPIC/-mrelocatable.
1036         * src/powerpc/powerpc_closure.S: Likewise.
1037         * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
1038         #write in .eh_frame flags.
1039         * src/sparc/v9.S: Likewise.
1040         * src/x86/unix64.S: Use EH_FRAME_FLAGS.
1041         * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
1042         * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
1043
1044 2003-05-07  Jeff Sturm  <jsturm@one-point.com>
1045
1046         Fixes PR bootstrap/10656
1047         * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
1048         support for .register pseudo-op.
1049         * src/sparc/v8.S: Use it.
1050         * fficonfig.h.in: Rebuilt.
1051         * configure: Rebuilt.
1052
1053 2003-04-18  Jakub Jelinek  <jakub@redhat.com>
1054
1055         * include/ffi.h.in (POWERPC64): Define if 64-bit.
1056         (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
1057         Make it the default on POWERPC64.
1058         (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
1059         * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
1060         * configure: Rebuilt.
1061         * src/powerpc/ffi.c (hidden): Define.
1062         (ffi_prep_args_SYSV): Renamed from
1063         ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
1064         (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
1065         ASM_NEEDS_REGISTERS64): New.
1066         (ffi_prep_args64): New function.
1067         (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
1068         (ffi_call): Likewise.
1069         (ffi_prep_closure): Likewise.
1070         (flush_icache): Surround by #ifndef POWERPC64.
1071         (ffi_dblfl): New union type.
1072         (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
1073         (ffi_closure_helper_LINUX64): New function.
1074         * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
1075         __powerpc64__.
1076         * src/powerpc/sysv.S: Likewise.
1077         (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
1078         * src/powerpc/linux64.S: New file.
1079         * src/powerpc/linux64_closure.S: New file.
1080         * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
1081         src/powerpc/linux64_closure.S.
1082         (TARGET_SRC_POWERPC): Likewise.
1083
1084         * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
1085         closure_test_fn3): Fix result printing on big-endian 64-bit
1086         machines.
1087         (main): Print tst2_arg instead of uninitialized tst2_result.
1088
1089         * src/ffitest.c (main): Hide what closure pointer really points to
1090         from the compiler.
1091
1092 2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
1093
1094         * configure.in (arm-*-netbsdelf*): Add configuration.
1095         (configure): Regenerated.
1096
1097 2003-04-04  Loren J. Rittle  <ljrittle@acm.org>
1098
1099         * include/Makefile.in: Regenerate.
1100
1101 2003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1102
1103         * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
1104         bit mode.
1105         * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
1106         Receive closure pointer through parameter, read args using
1107         __builtin_dwarf_cfa.
1108         (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
1109
1110 2003-03-12  Andreas Schwab  <schwab@suse.de>
1111
1112         * configure.in: Avoid trailing /. in toolexeclibdir.
1113         * configure: Rebuilt.
1114
1115 2003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
1116
1117         * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
1118
1119 2003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
1120
1121         * libffi/src/powerpc/darwin_closure.S:
1122         Fix alignement bug, allocate 8 bytes for the result.
1123         * libffi/src/powerpc/aix_closure.S:
1124         Likewise.
1125         * libffi/src/powerpc/ffi_darwin.c:
1126         Update stackframe description for aix/darwin_closure.S.
1127
1128 2003-02-06  Jakub Jelinek  <jakub@redhat.com>
1129
1130         * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
1131         attribute.
1132
1133 2003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
1134             Andreas Schwab  <schwab@suse.de>
1135
1136         * configure.in: Adjust command to source config-ml.in to account
1137         for changes to the libffi_basedir definition.
1138         (libffi_basedir): Remove ${srcdir} from value and include trailing
1139         slash if nonempty.
1140
1141         * configure: Regenerate.
1142
1143 2003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1144
1145         * src/powerpc/ppc_closure.S: Recode to fit shared libs.
1146
1147 2003-01-28  Andrew Haley  <aph@redhat.com>
1148
1149         * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
1150         * src/x86/ffi64.c (ffi_prep_closure): New.
1151         (ffi_closure_UNIX64_inner): New.
1152         * src/x86/unix64.S (ffi_closure_UNIX64): New.
1153
1154 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
1155
1156         * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
1157         Remove USE_LIBDIR conditional.
1158         * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
1159         * Makefile.in, configure: Rebuilt.
1160
1161 2003-01027  David Edelsohn  <edelsohn@gnu.org>
1162
1163         * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
1164         * Makefile.in: Regenerate.
1165
1166 2003-01-22  Andrew Haley  <aph@redhat.com>
1167
1168         * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
1169         unwind info.
1170
1171 2003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
1172
1173         * src/powerpc/darwin.S: Add unwind info.
1174         * src/powerpc/darwin_closure.S: Likewise.
1175
1176 2003-01-14  Andrew Haley  <aph@redhat.com>
1177
1178         * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
1179         (ffi_prep_cif_machdep): Likewise.
1180         * src/x86/unix64.S: Add unwind info.
1181
1182 2003-01-14  Andreas Jaeger  <aj@suse.de>
1183
1184         * src/ffitest.c (main): Only use ffi_closures if those are
1185         supported.
1186
1187 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
1188
1189         * libffi/src/ffitest.c
1190          add closure testcases
1191
1192 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
1193
1194         * libffi/src/powerpc/ffi.c
1195          fix alignment bug for float (4 byte aligned iso 8 byte)
1196
1197 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
1198
1199         * src/powerpc/ffi_darwin.c: Remove RCS version string.
1200         * src/powerpc/darwin.S: Remove RCS version string.
1201
1202 2003-01-03  Jeff Sturm  <jsturm@one-point.com>
1203
1204         * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
1205         * src/ffitest.c (main): Use static storage for closure.
1206         * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
1207         * src/sparc/v8.S (ffi_closure_v8): New.
1208         * src/sparc/v9.S (ffi_closure_v9): New.
1209
1210 2002-11-10  Ranjit Mathew <rmathew@hotmail.com>
1211
1212         * include/ffi.h.in: Added FFI_STDCALL ffi_type
1213           enumeration for X86_WIN32.
1214         * src/x86/win32.S: Added ffi_call_STDCALL function
1215           definition.
1216         * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
1217           switch cases for recognising FFI_STDCALL and
1218           calling ffi_call_STDCALL if target is X86_WIN32.
1219         * src/ffitest.c (my_stdcall_strlen/stdcall_many):
1220           stdcall versions of the "my_strlen" and "many"
1221           test functions (for X86_WIN32).
1222           Added test cases to test stdcall invocation using
1223           these functions.
1224
1225 2002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1226
1227         * src/sh/sysv.S: Add DWARF2 unwind info.
1228
1229 2002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
1230
1231         * src/s390/sysv.S (.eh_frame section): Make section read-only.
1232
1233 2002-11-26  Jim Wilson  <wilson@redhat.com>
1234
1235         * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
1236
1237 2002-11-23  H.J. Lu <hjl@gnu.org>
1238
1239         * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
1240         Include ../config/accross.m4.
1241         * aclocal.m4; Rebuild.
1242         * configure: Likewise.
1243
1244 2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
1245
1246         * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
1247
1248 2002-11-11  DJ Delorie  <dj@redhat.com>
1249
1250         * configure.in: Look for common files in the right place.
1251
1252 2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
1253
1254         * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
1255         raw data as _Jv_word values, not ffi_raw.
1256         (ffi_java_ptrarray_to_raw): Likewise.
1257         (ffi_java_rvalue_to_raw): New function.
1258         (ffi_java_raw_call): Call it.
1259         (ffi_java_raw_to_rvalue): New function.
1260         (ffi_java_translate_args): Call it.
1261         * src/ffitest.c (closure_test_fn): Interpret return value
1262         as ffi_arg, not int.
1263         * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
1264         FFI_TYPE_POINTER case.
1265         (ffi_closure_helper_SYSV): Likewise.  Also, assume return
1266         values extended to word size.
1267
1268 2002-10-02  Andreas Jaeger  <aj@suse.de>
1269
1270         * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
1271
1272 2002-10-01  Bo Thorsen  <bo@smetana.suse.de>
1273
1274         * include/ffi.h.in: Fix i386 win32 compilation.
1275
1276 2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1277
1278         * configure.in: Add s390x-*-linux-* target.
1279         * configure: Regenerate.
1280         * include/ffi.h.in: Define S390X for s390x targets.
1281         (FFI_CLOSURES): Define for s390/s390x.
1282         (FFI_TRAMPOLINE_SIZE): Likewise.
1283         (FFI_NATIVE_RAW_API): Likewise.
1284         * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
1285         * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
1286         * src/s390/ffi.c: Major rework of existing code.  Add support for
1287         s390x targets.  Add closure support.
1288         * src/s390/sysv.S: Likewise.
1289
1290 2002-09-29  Richard Earnshaw  <rearnsha@arm.com>
1291
1292         * src/arm/sysv.S: Fix typo.
1293
1294 2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
1295
1296         * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
1297         has defined __USER_LABEL_PREFIX__, then use it in CNAME.
1298         (ffi_call_SYSV): Handle soft-float.
1299
1300 2002-09-27  Bo Thorsen  <bo@suse.de>
1301
1302         * include/ffi.h.in: Fix multilib x86-64 support.
1303
1304 2002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1305
1306         * Makefile.am (all-multi): Fix multilib parallel build.
1307
1308 2002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1309
1310         * configure.in (sh[34]*-*-linux*): Add brackets.
1311         * configure: Regenerate.
1312
1313 2002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1314
1315         * Makefile.am: Add SH support.
1316         * Makefile.in: Regenerate.
1317         * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
1318         * configure: Regenerate.
1319         * include/ffi.h.in: Add SH support.
1320         * src/sh/ffi.c: New file.
1321         * src/sh/sysv.S: New file.
1322         * src/types.c: Add SH support.
1323
1324 2002-07-16  Bo Thorsen  <bo@suse.de>
1325
1326         * src/x86/ffi64.c: New file that adds x86-64 support.
1327         * src/x86/unix64.S: New file that handles argument setup for
1328         x86-64.
1329         * src/x86/sysv.S: Don't use this on x86-64.
1330         * src/x86/ffi.c: Don't use this on x86-64.
1331         Remove unused vars.
1332         * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
1333         for x86-64.
1334         * src/ffitest.c (struct6): New test that tests a special case in
1335         the x86-64 ABI.
1336         (struct7): Likewise.
1337         (struct8): Likewise.
1338         (struct9): Likewise.
1339         (closure_test_fn): Silence warning about this when it's not used.
1340         (main): Add the new tests.
1341         (main): Fix a couple of wrong casts and silence some compiler warnings.
1342         * include/ffi.h.in: Add x86-64 ABI definition.
1343         * fficonfig.h.in: Regenerate.
1344         * Makefile.am: Add x86-64 support.
1345         * configure.in: Likewise.
1346         * Makefile.in: Regenerate.
1347         * configure: Likewise.
1348
1349 2002-06-24  Bo Thorsen  <bo@suse.de>
1350
1351         * src/types.c: Merge settings for similar architectures.
1352         Add x86-64 sizes and alignments.
1353
1354 2002-06-23  Bo Thorsen  <bo@suse.de>
1355
1356         * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
1357         * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
1358         * src/mips/ffi.c (ffi_prep_args): Likewise.
1359         * src/m68k/ffi.c (ffi_prep_args): Likewise.
1360
1361 2002-07-18  H.J. Lu  (hjl@gnu.org)
1362
1363         * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
1364         (libffi_la_SOURCES): Support MIPS_LINUX.
1365         (libffi_convenience_la_SOURCES): Likewise.
1366         * Makefile.in: Regenerated.
1367
1368         * configure.in (mips64*-*): Skip.
1369         (mips*-*-linux*): New.
1370         * configure: Regenerated.
1371
1372         * src/mips/ffi.c: Include <sgidefs.h>.
1373
1374 2002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
1375
1376         * src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
1377
1378 2002-05-27  Roger Sayle  <roger@eyesopen.com>
1379
1380         * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
1381
1382 2002-05-27  Bo Thorsen  <bo@suse.de>
1383
1384         * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
1385         fix formatting.
1386
1387 2002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
1388
1389         * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
1390         beginning of function (for older apple cc).
1391
1392 2002-05-08  Alexandre Oliva  <aoliva@redhat.com>
1393
1394         * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
1395         script entry, and set LD to it when configuring multilibs.
1396         * configure: Rebuilt.
1397
1398 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
1399
1400         * configure.in (sparc64-*-netbsd*): Add target.
1401         (sparc-*-netbsdelf*): Likewise.
1402         * configure: Regenerate.
1403
1404 2002-04-28  David S. Miller  <davem@redhat.com>
1405
1406         * configure.in, configure: Fix SPARC test in previous change.
1407
1408 2002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
1409
1410         * Makefile.am: Add Linux for S/390 support.
1411         * Makefile.in: Regenerate.
1412         * configure.in: Add Linux for S/390 support.
1413         * configure: Regenerate.
1414         * include/ffi.h.in: Add Linux for S/390 support.
1415         * src/s390/ffi.c: New file from libffi CVS tree.
1416         * src/s390/sysv.S: New file from libffi CVS tree.
1417
1418 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
1419
1420         * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
1421         %r_disp32().
1422         * src/sparc/v8.S: Use it.
1423         * src/sparc/v9.S: Likewise.
1424         * fficonfig.h.in: Rebuilt.
1425         * configure: Rebuilt.
1426
1427 2002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
1428
1429         * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
1430         correctly.
1431         * src/ia64/unix.S: Add unwind information. Fix comments.
1432         Save sp in a way that's compatible with unwind info.
1433         (ffi_call_unix): Correctly restore sp in all cases.
1434         * src/ia64/ffi.c: Add, fix comments.
1435
1436 2002-04-08  Jakub Jelinek  <jakub@redhat.com>
1437
1438         * src/sparc/v8.S: Make .eh_frame dependent on target word size.
1439
1440 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
1441
1442         * configure.in (alpha*-*-netbsd*): Add target.
1443         * configure: Regenerate.
1444
1445 2002-04-04  Jeff Sturm  <jsturm@one-point.com>
1446
1447         * src/sparc/v8.S: Add unwind info.
1448         * src/sparc/v9.S: Likewise.
1449
1450 2002-03-30  Krister Walfridsson  <cato@df.lth.se>
1451
1452         * configure.in: Enable i*86-*-netbsdelf*.
1453         * configure: Rebuilt.
1454
1455 2002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
1456
1457         PR other/2620
1458         * src/mips/n32.s: Delete
1459         * src/mips/o32.s: Delete
1460
1461 2002-03-21  Loren J. Rittle  <ljrittle@acm.org>
1462
1463         * configure.in: Enable alpha*-*-freebsd*.
1464         * configure: Rebuilt.
1465
1466 2002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1467
1468         * Makefile.am: libfficonvenience -> libffi_convenience.
1469         * Makefile.in: Rebuilt.
1470
1471         * Makefile.am: Define ffitest_OBJECTS.
1472         * Makefile.in: Rebuilt.
1473
1474 2002-03-07  Andreas Tobler  <toa@pop.agri.ch>
1475             David Edelsohn  <edelsohn@gnu.org>
1476
1477         * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
1478         (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
1479         (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
1480         * Makefile.in: Regenerate.
1481         * include/ffi.h.in: Add AIX and Darwin closure definitions.
1482         * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
1483         (flush_icache, flush_range): New functions.
1484         (ffi_closure_helper_DARWIN): New function.
1485         * src/powerpc/aix_closure.S: New file.
1486         * src/powerpc/darwin_closure.S: New file.
1487
1488 2002-02-24  Jeff Sturm  <jsturm@one-point.com>
1489
1490         * include/ffi.h.in: Add typedef for ffi_arg.
1491         * src/ffitest.c (main): Declare rint with ffi_arg.
1492
1493 2002-02-21  Andreas Tobler  <toa@pop.agri.ch>
1494
1495         * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
1496         number of GPRs for floating-point arguments.
1497
1498 2002-01-31  Anthony Green  <green@redhat.com>
1499
1500         * configure: Rebuilt.
1501         * configure.in: Replace CHECK_SIZEOF and endian tests with
1502         cross-compiler friendly macros.
1503         * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
1504         macros.
1505
1506 2002-01-18  David Edelsohn  <edelsohn@gnu.org>
1507
1508         * src/powerpc/darwin.S (_ffi_call_AIX): New.
1509         * src/powerpc/aix.S (ffi_call_DARWIN): New.
1510
1511 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
1512
1513         * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
1514         (TARGET_SRC_POWERPC_AIX): New.
1515         (POWERPC_AIX): New stanza.
1516         * Makefile.in: Regenerate.
1517         * configure.in: Add AIX case.
1518         * configure: Regenerate.
1519         * include/ffi.h.in (ffi_abi): Add FFI_AIX.
1520         * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
1521         size.  Fix "long double" support.
1522         (ffi_call): Add FFI_AIX case.
1523         * src/powerpc/aix.S: New.
1524
1525 2001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
1526
1527         Implement Darwin PowerPC ABI.
1528         * configure.in: Handle powerpc-*-darwin*.
1529         * Makefile.am: Set source files for POWERPC_DARWIN.
1530         * configure: Rebuilt.
1531         * Makefile.in: Rebuilt.
1532         * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
1533         POWERPC_DARWIN.
1534         * src/powerpc/darwin.S: New file.
1535         * src/powerpc/ffi_darwin.c: New file.
1536
1537 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1538
1539         * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
1540
1541 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1542
1543         * src/x86/sysv.S: Avoid gas-only .balign directive.
1544         Use C style comments.
1545
1546 2001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1547
1548         * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
1549         Fixes PR bootstrap/3563.
1550
1551 2001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1552
1553         * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
1554
1555 2001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1556
1557         * configure.in: Recognize sparc*-sun-* host.
1558         * configure: Regenerate.
1559
1560 2001-06-06  Andrew Haley  <aph@redhat.com>
1561
1562         * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
1563
1564 2001-06-03  Andrew Haley  <aph@redhat.com>
1565
1566         * src/alpha/osf.S: Add unwind info.
1567         * src/powerpc/sysv.S: Add unwind info.
1568         * src/powerpc/ppc_closure.S: Likewise.
1569
1570 2000-05-31  Jeff Sturm  <jsturm@one-point.com>
1571
1572         * configure.in: Fix AC_ARG_ENABLE usage.
1573         * configure: Rebuilt.
1574
1575 2001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1576
1577         * configure.in: Remove warning about beta code.
1578         * configure: Rebuilt.
1579
1580 2001-04-25  Hans Boehm <Hans_Boehm@hp.com>
1581
1582         * src/ia64/unix.S: Restore stack pointer when returning from
1583         ffi_closure_UNIX.
1584         * src/ia64/ffi.c: Fix typo in comment.
1585
1586 2001-04-18  Jim Wilson  <wilson@redhat.com>
1587
1588         * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
1589         to eliminate RAW DV.
1590
1591 2001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
1592
1593         * Makefile.am: Make a libtool convenience library.
1594         * Makefile.in: Rebuilt.
1595
1596 2001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
1597
1598         * configure.in: Use different syntax for subdirectory creation.
1599         * configure: Rebuilt.
1600
1601 2001-03-27  Jon Beniston  <jon@beniston.com>
1602
1603         * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
1604         * configure: Rebuilt.
1605         * Makefile.am: Added X86_WIN32 target support.
1606         * Makefile.in: Rebuilt.
1607
1608         * include/ffi.h.in: Added X86_WIN32 target support.
1609
1610         * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
1611         * src/types.c: Added X86_WIN32 target support.
1612
1613         * src/x86/win32.S: New file. Based on sysv.S, but with EH
1614         stuff removed and made to work with CygWin's gas.
1615
1616 2001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
1617
1618         * configure.in: Make target subdirectory in build dir.
1619         * Makefile.am: Override suffix based rules to specify correct output
1620         subdirectory.
1621         * Makefile.in: Rebuilt.
1622         * configure: Rebuilt.
1623
1624 2001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
1625
1626         * src/powerpc/ppc_closure.S: New file.
1627         * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
1628         involving long long and register pairs.
1629         (ffi_prep_closure): New function.
1630         (flush_icache): Likewise.
1631         (ffi_closure_helper_SYSV): Likewise.
1632         * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
1633         (FFI_TRAMPOLINE_SIZE): Likewise.
1634         (FFI_NATIVE_RAW_API): Likewise.
1635         * Makefile.in: Rebuilt.
1636         * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
1637         (TARGET_SRC_POWERPC): Likewise.
1638
1639 2001-03-19  Tom Tromey  <tromey@redhat.com>
1640
1641         * Makefile.in: Rebuilt.
1642         * Makefile.am (ffitest_LDFLAGS): New macro.
1643
1644 2001-03-02  Nick Clifton  <nickc@redhat.com>
1645
1646         * include/ffi.h.in: Remove RCS ident string.
1647         * include/ffi_mips.h: Remove RCS ident string.
1648         * src/debug.c: Remove RCS ident string.
1649         * src/ffitest.c: Remove RCS ident string.
1650         * src/prep_cif.c: Remove RCS ident string.
1651         * src/types.c: Remove RCS ident string.
1652         * src/alpha/ffi.c: Remove RCS ident string.
1653         * src/alpha/osf.S: Remove RCS ident string.
1654         * src/arm/ffi.c: Remove RCS ident string.
1655         * src/arm/sysv.S: Remove RCS ident string.
1656         * src/mips/ffi.c: Remove RCS ident string.
1657         * src/mips/n32.S: Remove RCS ident string.
1658         * src/mips/o32.S: Remove RCS ident string.
1659         * src/sparc/ffi.c: Remove RCS ident string.
1660         * src/sparc/v8.S: Remove RCS ident string.
1661         * src/sparc/v9.S: Remove RCS ident string.
1662         * src/x86/ffi.c: Remove RCS ident string.
1663         * src/x86/sysv.S: Remove RCS ident string.
1664
1665 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1666
1667         * include/ffi.h.in: Change sourceware.cygnus.com references to
1668         gcc.gnu.org.
1669
1670 2000-12-09  Richard Henderson  <rth@redhat.com>
1671
1672         * src/alpha/ffi.c (ffi_call): Simplify struct return test.
1673         (ffi_closure_osf_inner): Index rather than increment avalue
1674         and arg_types.  Give ffi_closure_osf the raw return value type.
1675         * src/alpha/osf.S (ffi_closure_osf): Handle return value type
1676         promotion.
1677
1678 2000-12-07  Richard Henderson  <rth@redhat.com>
1679
1680         * src/raw_api.c (ffi_translate_args): Fix typo.
1681         (ffi_prep_closure): Likewise.
1682
1683         * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
1684         FFI_TRAMPOLINE_SIZE.
1685         * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
1686         cif->bytes for new ffi_call_osf implementation.
1687         (ffi_prep_args): Absorb into ...
1688         (ffi_call): ... here.  Do all stack allocation here and
1689         avoid a callback function.
1690         (ffi_prep_closure, ffi_closure_osf_inner): New.
1691         * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
1692         (ffi_closure_osf): New.
1693
1694 2000-09-10  Alexandre Oliva  <aoliva@redhat.com>
1695
1696         * config.guess, config.sub, install-sh: Removed.
1697         * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
1698         * Makefile.in: Rebuilt.
1699
1700         * acinclude.m4: Include libtool macros from the top level.
1701         * aclocal.m4, configure: Rebuilt.
1702
1703 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
1704
1705         * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
1706         * configure: Rebuilt.
1707
1708 2000-05-11  Scott Bambrough  <scottb@netwinder.org>
1709
1710         * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
1711         memory correctly.  Use conditional instructions, not branches where
1712         possible.
1713
1714 2000-05-04  Tom Tromey  <tromey@cygnus.com>
1715
1716         * configure: Rebuilt.
1717         * configure.in: Match `arm*-*-linux-*'.
1718         From Chris Dornan <cdornan@arm.com>.
1719
1720 2000-04-28  Jakub Jelinek  <jakub@redhat.com>
1721
1722         * Makefile.am (SUBDIRS): Define.
1723         (AM_MAKEFLAGS): Likewise.
1724         (Multilib support.): Add section.
1725         * Makefile.in: Rebuilt.
1726         * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
1727         New variables. Set for gcc using -print-multi-lib. Export them
1728         to libtool.
1729         (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
1730         * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
1731         for -shared links.
1732         (extra_compiler_flags_value, extra_compiler_flags): Check these
1733         for extra compiler options which need to be passed down in
1734         compiler_flags.
1735
1736 2000-04-16  Anthony Green  <green@redhat.com>
1737
1738         * configure: Rebuilt.
1739         * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
1740
1741 2000-04-14  Jakub Jelinek  <jakub@redhat.com>
1742
1743         * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
1744         Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
1745         * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
1746         Replace all void * sizeofs with sizeof(int).
1747         Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
1748         different than DOUBLE.
1749         Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
1750         (ffi_prep_args_v9): New function.
1751         (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
1752         (ffi_V9_return_struct): New function.
1753         (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
1754         32bit code (not yet cross-arch calls).
1755         * src/sparc/v8.S: Add struct return delay nop.
1756         Handle long long.
1757         * src/sparc/v9.S: New file.
1758         * src/prep_cif.c (ffi_prep_cif): Return structure pointer
1759         is used on sparc64 only for structures larger than 32 bytes.
1760         Pass by reference for structures is done for structure arguments
1761         larger than 16 bytes.
1762         * src/ffitest.c (main): Use 64bit rint on sparc64.
1763         Run long long tests on sparc.
1764         * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
1765         sparc64.
1766         (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
1767         on sparc64.
1768         * configure.in (sparc-*-linux*): New supported target.
1769         (sparc64-*-linux*): Likewise.
1770         * configure: Rebuilt.
1771         * Makefile.am: Add v9.S to SPARC files.
1772         * Makefile.in: Likewise.
1773         (LINK): Surround $(CCLD) into double quotes, so that multilib
1774         compiles work correctly.
1775
1776 2000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
1777
1778         * configure: Rebuilt.
1779         * configure.in: (i*86-*-solaris*): New libffi target. Patch
1780         proposed by Bryce McKinlay.
1781
1782 2000-03-20  Tom Tromey  <tromey@cygnus.com>
1783
1784         * Makefile.in: Hand edit for java_raw_api.lo.
1785
1786 2000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
1787
1788         * config.guess, config.sub: Update from the gcc tree.
1789         Fix for PR libgcj/168.
1790
1791 2000-03-03  Tom Tromey  <tromey@cygnus.com>
1792
1793         * Makefile.in: Fixed ia64 by hand.
1794
1795         * configure: Rebuilt.
1796         * configure.in (--enable-multilib): New option.
1797         (libffi_basedir): New subst.
1798         (AC_OUTPUT): Added multilib code.
1799
1800 2000-03-02  Tom Tromey  <tromey@cygnus.com>
1801
1802         * Makefile.in: Rebuilt.
1803         * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
1804         directory name.
1805
1806 2000-02-25  Hans Boehm <boehm@acm.org>
1807
1808         * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
1809         files.
1810         * src/raw_api.c (ffi_translate_args): Fixed typo in argument
1811         list.
1812         (ffi_prep_raw_closure): Use ffi_translate_args, not
1813         ffi_closure_translate.
1814         * src/java_raw_api.c: New file.
1815         * src/ffitest.c (closure_test_fn): New function.
1816         (main): Define `rint' as long long on IA64.  Added new test when
1817         FFI_CLOSURES is defined.
1818         * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
1819         (ffi_abi): Recognize IA64.
1820         (ffi_raw): Added `flt' field.
1821         Added "Java raw API" code.
1822         * configure.in: Recognize ia64.
1823         * Makefile.am (TARGET_SRC_IA64): New macro.
1824         (libffi_la_common_SOURCES): Added java_raw_api.c.
1825         (libffi_la_SOURCES): Define in IA64 case.
1826
1827 2000-01-04  Tom Tromey  <tromey@cygnus.com>
1828
1829         * Makefile.in: Rebuilt with newer automake.
1830
1831 1999-12-31  Tom Tromey  <tromey@cygnus.com>
1832
1833         * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
1834
1835 1999-09-01  Tom Tromey  <tromey@cygnus.com>
1836
1837         * include/ffi.h.in: Removed PACKAGE and VERSION defines and
1838         undefs.
1839         * fficonfig.h.in: Rebuilt.
1840         * configure: Rebuilt.
1841         * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
1842         Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
1843         * acconfig.h: Don't #undef PACKAGE or VERSION.
1844
1845 1999-08-09  Anthony Green  <green@cygnus.com>
1846
1847         * include/ffi.h.in: Try to work around messy header problem
1848         with PACKAGE and VERSION.
1849
1850         * configure: Rebuilt.
1851         * configure.in: Change version to 2.00-beta.
1852
1853         * fficonfig.h.in: Rebuilt.
1854         * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
1855
1856         * src/x86/ffi.c (ffi_raw_call): Rename.
1857
1858 1999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
1859
1860         * src/x86/ffi.c (ffi_closure_SYSV): New function.
1861         (ffi_prep_incoming_args_SYSV): Ditto.
1862         (ffi_prep_closure): Ditto.
1863         (ffi_closure_raw_SYSV): Ditto.
1864         (ffi_prep_raw_closure): More ditto.
1865         (ffi_call_raw): Final ditto.
1866
1867         * include/ffi.h.in: Add definitions for closure and raw API.
1868
1869         * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
1870         FFI_TYPE_UINT64.
1871
1872         * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
1873
1874         * src/raw_api.c: New file.
1875
1876         * include/ffi.h.in (ffi_raw): New type.
1877         (UINT_ARG, SINT_ARG): New defines.
1878         (ffi_closure, ffi_raw_closure): New types.
1879         (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
1880
1881         * configure.in: Add check for endianness and sizeof void*.
1882
1883         * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
1884         instead of directly.
1885
1886         * configure: Rebuilt.
1887
1888 Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
1889
1890         * configure.in: Add x86 and powerpc BeOS configurations.
1891         From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
1892
1893 1999-05-09  Anthony Green  <green@cygnus.com>
1894
1895         * configure.in: Add warning about this being beta code.
1896         Remove src/Makefile.am from the picture.
1897         * configure: Rebuilt.
1898
1899         * Makefile.am: Move logic from src/Makefile.am.  Add changes
1900         to support libffi as a target library.
1901         * Makefile.in: Rebuilt.
1902
1903         * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
1904         Upgraded to new autoconf, automake, libtool.
1905
1906         * README: Tweaks.
1907
1908         * LICENSE: Update copyright date.
1909
1910         * src/Makefile.am, src/Makefile.in: Removed.
1911
1912 1998-11-29  Anthony Green  <green@cygnus.com>
1913
1914         * include/ChangeLog: Removed.
1915         * src/ChangeLog: Removed.
1916         * src/mips/ChangeLog: Removed.
1917         * src/sparc/ChangeLog: Remboved.
1918         * src/x86/ChangeLog: Removed.
1919
1920         * ChangeLog.v1: Created.