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