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