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