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