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