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