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