OSDN Git Service

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