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