OSDN Git Service

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