OSDN Git Service

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