blob: d5bf71f1372c8c440aa3b75b21fe05dc605e8291 [file] [log] [blame]
Anthony Green8a286f52013-03-16 08:01:19 -040012013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
2
3 * src/m68k/sysv.S (epilogue): Don't user extb instruction on
4 m680000 machines.
5
Anthony Green211a9eb2013-03-16 04:24:40 -070062013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
7
8 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
9
Anthony Green2fb527a2013-03-16 07:46:38 -0400102013-03-13 Markos Chandras <markos.chandras@imgtec.com>
11
12 * configure.ac: Add support for Imagination Technologies Meta.
13 * Makefile.am: Likewise.
14 * README: Add Imagination Technologies Meta details.
15 * src/metag/ffi.c: New.
16 * src/metag/ffitarget.h: Likewise.
17 * src/metag/sysv.S: Likewise.
18
Anthony Green675c9832013-03-16 08:12:38 -0400192013-02-24 Andreas Schwab <schwab@linux-m68k.org>
20
21 * doc/libffi.texi (Structures): Fix missing category argument of
22 @deftp.
23
Anthony Greenf308faf2013-02-11 14:25:13 -0500242013-02-11 Anthony Green <green@moxielogic.com>
25
26 * configure.ac: Update release number to 3.0.12.
27 * configure: Rebuilt.
28 * README: Update release info.
29
302013-02-10 Anthony Green <green@moxielogic.com>
31
32 * README: Add Moxie.
33 * src/moxie/ffi.c: Created.
34 * src/moxie/eabi.S: Created.
35 * src/moxie/ffitarget.h: Created.
36 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
37 * Makefile.in: Rebuilt.
38 * configure.ac: Add Moxie.
39 * configure: Rebuilt.
40 * testsuite/libffi.call/huge_struct.c: Disable format string
41 warnings for moxie*-*-elf tests.
42
432013-02-10 Anthony Green <green@moxielogic.com>
44
45 * Makefile.am (LTLDFLAGS): Fix reference.
46 * Makefile.in: Rebuilt.
47
Anthony Green4ea22e52013-02-10 08:48:38 -0500482013-02-10 Anthony Green <green@moxielogic.com>
49
50 * README: Update supported platforms. Update test results link.
51
Anthony Green10e77222013-02-10 08:47:26 -0500522013-02-09 Anthony Green <green@moxielogic.com>
53
54 * testsuite/libffi.call/negint.c: Remove forced -O2.
55 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
56 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
57
58 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
59 closure return type fix developed by Martin v. Löwis for cpython
60 fork.
61
Anthony Green70b11b42013-02-08 16:12:19 -0500622013-02-08 Andreas Tobler <andreast@fgznet.ch>
63
64 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
65 support.
66 * src/powerpc/sysv.S: Ditto.
67
Anthony Green63ba1fa2013-02-08 15:18:19 -0500682013-02-08 Anthony Green <green@moxielogic.com>
69
70 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
71 arm*-*-*.
72
732013-02-08 Anthony Green <green@moxielogic.com>
74
75 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
76
Anthony Green24fbca42013-02-08 14:19:56 -0500772013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -050078
79 * man/ffi_prep_cif.3: Clean up for debian linter.
80
Anthony Green24fbca42013-02-08 14:19:56 -0500812013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -050082
83 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
84 on the stack.
85
Anthony Greencb03ea82013-02-08 12:25:18 -0500862013-02-08 Anthony Green <green@moxielogic.com>
87
Anthony Green7aab8252013-02-08 13:26:21 -050088 * Makefile.am (EXTRA_DIST): Add missing files.
89 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
90 * Makefile.in: Rebuilt.
91
922013-02-08 Anthony Green <green@moxielogic.com>
93
Anthony Greencb03ea82013-02-08 12:25:18 -050094 * configure.ac: Move sparc asm config checks to within functions
95 for compatibility with sun tools.
96 * configure: Rebuilt.
97 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
98 systems.
99 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
100 flusher.
101
Anthony Green35ee8d42013-02-08 07:12:41 -05001022013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
103
104 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
105 small big-endian structures.
106 (ffi_prep_args): Ditto.
107
Anthony Greened6ae952013-02-07 16:43:36 -05001082013-02-07 Anthony Green <green@moxielogic.com>
109
Anthony Green9db7e1a2013-02-07 21:06:08 -0500110 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
111 (effectively hiding ffi_call_v8).
112
1132013-02-07 Anthony Green <green@moxielogic.com>
114
Anthony Greence0138e2013-02-07 18:04:01 -0500115 * configure.ac: Update bug reporting address.
116 * configure.in: Rebuild.
117
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500118 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
119 Sun compiler.
120 * src/sparc/ffi.c (ffi_call): Remove warning.
121 Call ffi_flush_icache for non-GCC builds.
122 (ffi_prep_closure_loc): Use ffi_flush_icache.
123
Anthony Greened6ae952013-02-07 16:43:36 -0500124 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
125 * Makefile.in: Rebuilt.
126 * libtool-ldflags: New file.
127
Anthony Greenffef2e02013-02-07 15:47:01 -05001282013-02-07 Daniel Schepler <dschepler@gmail.com>
129
130 * configure.ac: Correctly identify x32 systems as 64-bit.
131 * m4/libtool.m4: Remove libtool expr error.
132 * aclocal.m4, configure: Rebuilt.
133
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05001342013-02-07 Anthony Green <green@moxielogic.com>
135
Anthony Green176aa9d2013-02-07 15:29:22 -0500136 * configure.ac: Fix GCC usage test.
137 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500138 * README: Mention LLVM/GCC x86_64 issue.
139 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500140
1412013-02-07 Anthony Green <green@moxielogic.com>
142
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500143 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
144 comments with /* */ for xlc compiler.
145 * testsuite/libffi.call/stret_large.c (main): Ditto.
146 * testsuite/libffi.call/stret_large2.c (main): Ditto.
147 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
148 * testsuite/libffi.call/huge_struct.c (main): Ditto.
149 * testsuite/libffi.call/float_va.c (main): Ditto.
150 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
151 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
152 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
153 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
154
Anthony Greenf7cd61e2013-02-06 17:38:04 -05001552013-02-06 Anthony Green <green@moxielogic.com>
156
Anthony Green522f8fe2013-02-06 20:31:31 -0500157 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
158
1592013-02-06 Anthony Green <green@moxielogic.com>
160
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500161 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
162 * Makefile.in: Rebuild.
163
Anthony Green6a790122013-02-06 17:37:15 -05001642013-02-02 Mark H Weaver <mhw@netris.org>
165
166 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
167 via general purpose registers.
168
Anthony Greenaeb87192013-01-21 07:37:30 -05001692013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
170
171 * README: Add MicroBlaze details.
172 * Makefile.am: Add MicroBlaze support.
173 * configure.ac: Likewise.
174 * src/microblaze/ffi.c: New.
175 * src/microblaze/ffitarget.h: Likewise.
176 * src/microblaze/sysv.S: Likewise.
177
1782013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
179 * testsuite/libffi.call/return_uc.c: Fixed issue.
180
Anthony Green20cae322013-01-21 07:07:38 -05001812013-01-21 Chris Zankel <chris@zankel.net>
182
183 * README: Add Xtensa support.
184 * Makefile.am: Likewise.
185 * configure.ac: Likewise.
186 * Makefile.in Regenerate.
187 * configure: Likewise.
188 * src/prep_cif.c: Handle Xtensa.
189 * src/xtensa: New directory.
190 * src/xtensa/ffi.c: New file.
191 * src/xtensa/ffitarget.h: Ditto.
192 * src/xtensa/sysv.S: Ditto.
193
Anthony Greenbff052d2013-01-11 10:24:32 -05001942013-01-11 Anthony Green <green@moxielogic.com>
195
Anthony Green05fbe1f2013-01-11 16:54:40 -0500196 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
197 comments with /* */ for xlc compiler.
198 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500199 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
200 deprecated inline function.
201 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500202 * README: Add update for AIX support.
203
2042013-01-11 Anthony Green <green@moxielogic.com>
205
Anthony Greenbff052d2013-01-11 10:24:32 -0500206 * configure.ac: Robustify pc relative reloc check.
207 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
208 changing option for 32-bit x86.
209 * aclocal.m4, configure: Rebuilt.
210 * README: Update supported target list.
211
Anthony Green2d9b3932013-01-09 21:14:54 -05002122013-01-10 Anthony Green <green@moxielogic.com>
213
Anthony Greencd41aea2013-01-10 17:25:45 -0500214 * README (tested): Add Compiler column to table.
215
2162013-01-10 Anthony Green <green@moxielogic.com>
217
Anthony Green8bf987d2013-01-10 17:24:51 -0500218 * src/x86/ffi64.c (struct register_args): Make sse array and array
219 of unions for sunpro compiler compatibility.
220
2212013-01-10 Anthony Green <green@moxielogic.com>
222
Anthony Green13e2d7b2013-01-10 10:52:02 -0500223 * configure.ac: Test target platform size_t size. Handle both 32
224 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
225 CFLAG option to change default settings).
226 * configure, aclocal.m4: Rebuilt.
227
2282013-01-10 Anthony Green <green@moxielogic.com>
229
Anthony Green51415432013-01-10 07:35:53 -0500230 * testsuite/libffi.special/special.exp: Only run exception
231 handling tests when using GNU compiler.
232
Anthony Green56ba8d82013-01-10 07:25:10 -0500233 * m4/ax_compiler_vendor.m4: New file.
234 * configure.ac: Test for compiler vendor and don't use
235 AX_CFLAGS_WARN_ALL with the sun compiler.
236 * aclocal.m4, configure: Rebuilt.
237
2382013-01-10 Anthony Green <green@moxielogic.com>
239
Anthony Green6a028ca2013-01-10 01:19:43 -0500240 * include/ffi_common.h: Don't use GCCisms to define types when
241 building with the SUNPRO compiler.
242
2432013-01-10 Anthony Green <green@moxielogic.com>
244
Anthony Green2d9b3932013-01-09 21:14:54 -0500245 * configure.ac: Put local.exp in the right place.
246 * configure: Rebuilt.
247
248 * src/x86/ffi.c: Update comment about regparm function attributes.
249 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
250 that all function arguments be passed on the stack (no regparm
251 support).
252
Anthony Greenf7879bc2013-01-08 07:30:28 -05002532013-01-08 Anthony Green <green@moxielogic.com>
254
Anthony Green83089842013-01-08 15:14:21 -0500255 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
256 when we are using the vendor compiler.
257 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
258 ../local.exp.
259 * configure, testsuite/Makefile.in: Rebuilt.
260
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500261 * testsuite/libffi.call/call.exp: Run tests with different
262 options, depending on whether or not we are using gcc or the
263 vendor compiler.
264 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
265 whether or not we are building/testing with gcc.
266
2672013-01-08 Anthony Green <green@moxielogic.com>
268
Anthony Green74c776e2013-01-08 12:25:54 -0500269 * configure.ac: Switch x86 solaris target to X86 by default.
270 * configure: Rebuilt.
271
2722013-01-08 Anthony Green <green@moxielogic.com>
273
Anthony Green8962c8c2013-01-08 12:22:24 -0500274 * configure.ac: Fix test for read-only eh_frame.
275 * configure: Rebuilt.
276
2772013-01-08 Anthony Green <green@moxielogic.com>
278
Anthony Green35ddb692013-01-08 07:53:37 -0500279 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
280 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500281 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
282 compiler.
283
Anthony Green8f4772f2013-01-07 06:14:53 -05002842013-01-07 Thorsten Glaser <tg@mirbsd.org>
285
Anthony Green67cea902013-01-07 06:30:24 -0500286 * testsuite/libffi.call/cls_uchar_va.c,
287 testsuite/libffi.call/cls_ushort_va.c,
288 testsuite/libffi.call/va_1.c: Testsuite fixes.
289
2902013-01-07 Thorsten Glaser <tg@mirbsd.org>
291
Anthony Green8f4772f2013-01-07 06:14:53 -0500292 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
293 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
294 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
295
Anthony Greenea7f8442013-01-04 09:09:32 -05002962013-01-04 Anthony Green <green@moxielogic.com>
297
298 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
299 and -Wall. This is set in the configure script after testing for
300 GCC.
301 * Makefile.in: Rebuilt.
302
Anthony Greenf06c0f12013-01-02 09:39:17 -05003032013-01-02 rofl0r <https://github.com/rofl0r>
304
305 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
306 when long double == double.
307
3082013-01-02 Reini Urban <rurban@x-ray.at>
309
310 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
311 (required for shared libs on cygwin/mingw).
312 * Makefile.in: Rebuilt.
313
Anthony Greendfadfb12012-10-31 06:46:41 -04003142012-10-31 Alan Modra <amodra@gmail.com>
315
316 * src/powerpc/linux64_closure.S: Add new ABI support.
317 * src/powerpc/linux64.S: Likewise.
318
Anthony Greene944b8c2012-10-30 14:06:09 -04003192012-10-30 Magnus Granberg <zorry@gentoo.org>
320 Pavel Labushev <pavel.labushev@runbox.ru>
321
322 * configure.ac: New options pax_emutramp
323 * configure, fficonfig.h.in: Regenerated
324 * src/closures.c: New function emutramp_enabled_check() and
325 checks.
326
Anthony Greenf3429962012-10-30 07:42:27 -04003272012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
328
329 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
330 lion) and future version.
331 * configure: Rebuild.
332
Anthony Green58e8b662012-10-30 07:07:19 -04003332012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
334 Marcus Shawcroft <marcus.shawcroft at arm.com>
335
336 * README: Add details of aarch64 port.
337 * src/aarch64/ffi.c: New.
338 * src/aarch64/ffitarget.h: Likewise.
339 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500340 * Makefile.am: Support aarch64.
341 * configure.ac: Support aarch64.
342 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400343
3442012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
345 Marcus Shawcroft <marcus.shawcroft at arm.com>
346
347 * testsuite/lib/libffi.exp: Add support for aarch64.
348 * testsuite/libffi.call/cls_struct_va1.c: New.
349 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
350 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500351 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400352 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
353 * testsuite/libffi.call/nested_struct11.c: Likewise.
354 * testsuite/libffi.call/uninitialized.c: Likewise.
355 * testsuite/libffi.call/va_1.c: Likewise.
356 * testsuite/libffi.call/va_struct1.c: Likewise.
357 * testsuite/libffi.call/va_struct2.c: Likewise.
358 * testsuite/libffi.call/va_struct3.c: Likewise.
359
Anthony Green9c00a3f2012-10-12 16:46:06 -04003602012-10-12 Walter Lee <walt@tilera.com>
361
362 * Makefile.am: Add TILE-Gx/TILEPro support.
363 * configure.ac: Likewise.
364 * Makefile.in: Regenerate.
365 * configure: Likewise.
366 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
367 * src/tile: New directory.
368 * src/tile/ffi.c: New file.
369 * src/tile/ffitarget.h: Ditto.
370 * src/tile/tile.S: Ditto.
371
3722012-10-12 Matthias Klose <doko@ubuntu.com>
373
374 * generate-osx-source-and-headers.py: Normalize whitespace.
375
Anthony Green048d2f42012-10-11 10:55:25 -04003762012-09-14 David Edelsohn <dje.gcc@gmail.com>
377
378 * configure: Regenerated.
379
3802012-08-26 Andrew Pinski <apinski@cavium.com>
381
382 PR libffi/53014
383 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
384 soft-float.
385
3862012-08-08 Uros Bizjak <ubizjak@gmail.com>
387
388 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
389 just return FFI_BAD_ABI when things are wrong.
390
3912012-07-18 H.J. Lu <hongjiu.lu@intel.com>
392
393 PR libffi/53982
394 PR libffi/53973
395 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
396 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
397
3982012-05-16 H.J. Lu <hongjiu.lu@intel.com>
399
400 * configure: Regenerated.
401
Nicolas Lelongd330f192012-05-05 09:37:02 -04004022012-05-05 Nicolas Lelong
403
404 * libffi.xcodeproj/project.pbxproj: Fixes.
405 * README: Update for iOS builds.
406
Anthony Green213ed152012-04-27 01:34:15 -04004072012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
408
409 * configure.ac: Add Blackfin/sysv support
410 * Makefile.am: Add Blackfin/sysv support
411 * src/bfin/ffi.c: Add Blackfin/sysv support
412 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400413
Anthony Green7e0a4122012-04-11 22:47:44 -04004142012-04-11 Anthony Green <green@moxielogic.com>
415
416 * Makefile.am (EXTRA_DIST): Add new script.
417 * Makefile.in: Rebuilt.
418
Zachary Waldowski39e6a582012-04-11 22:39:46 -04004192012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
420
421 * generate-ios-source-and-headers.py,
422 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
423 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
424 generation into an Xcode "run script" phase. Include both as
425 Xcode build scripts. Don't always regenerate config files.
426
Anthony Green853cc722012-04-10 06:33:33 -04004272012-04-10 Anthony Green <green@moxielogic.com>
428
429 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
430
Anthony Green3f502302012-04-06 20:34:51 -04004312012-04-06 Anthony Green <green@moxielogic.com>
432
433 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
434 * Makefile.in: Rebuilt.
435
Mike Lewisebb8e892012-04-06 20:02:08 -04004362012-04-06 Mike Lewis <mikelikespie@gmail.com>
437
438 * generate-ios-source-and-headers.py: New file.
439 * libffi.xcodeproj/project.pbxproj: New file.
440 * README: Update instructions on building iOS binary.
441 * build-ios.sh: Delete.
442
Anthony Greena044a562012-04-06 10:39:10 -04004432012-04-06 Anthony Green <green@moxielogic.com>
444
445 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
446 compilers, then use it.
447
Anthony Green048d2f42012-10-11 10:55:25 -04004482012-04-06 H.J. Lu <hongjiu.lu@intel.com>
449
450 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
451
Anthony Green59bb61a2012-04-06 08:26:14 -04004522012-04-06 Anthony Green <green@moxielogic.com>
453
454 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
455 * testsuite/Makefile.in: Rebuilt.
456
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04004572012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
458
459 * include/ffi.h.in: Add missing trampoline table fields.
460 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
461 in CNAME.
462 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
463
Anthony Green089dbce2013-01-02 08:37:35 -05004642012-04-02 Peter Bergner <bergner@vnet.ibm.com>
465
466 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
467 Silence casting pointer to integer of different size warning.
468 Delete goto to previously deleted label.
469 (ffi_call): Silence possibly undefined warning.
470 (ffi_closure_helper_SYSV): Declare variable type.
471
4722012-04-02 Peter Rosin <peda@lysator.liu.se>
473
474 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
475 value in the Intel version as is already done for the AT&T version.
476 (ffi_closure_SYSV): Likewise.
477 (ffi_closure_raw_SYSV): Likewise.
478 (ffi_closure_STDCALL): Likewise.
479
Peter Rosin0a1ab122012-03-30 08:14:08 -04004802012-03-29 Peter Rosin <peda@lysator.liu.se>
481
482 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
483 generation, fix the ENDP label and remove the surplus third arg
484 from the 'lea' insn.
485
4862012-03-29 Peter Rosin <peda@lysator.liu.se>
487
488 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
489 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
490 it. Also instruct the assembler to add a frame to the function.
491
4922012-03-23 Peter Rosin <peda@lysator.liu.se>
493
494 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
495 * Makefile.in: Rebuilt.
496 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
497 to all data exports, when compiling libffi clients using MSVC.
498
4992012-03-29 Peter Rosin <peda@lysator.liu.se>
500
501 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
502 make it the default for MSVC.
503 (FFI_TYPE_MS_STRUCT): New structure return convention.
504 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
505 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
506 instead of an ordinary FFI_TYPE_STRUCT.
507 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
508 (ffi_call): Likewise.
509 (ffi_prep_incoming_args_SYSV): Likewise.
510 (ffi_raw_call): Likewise.
511 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
512 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
513 return a pointer to the result structure in eax and don't pop
514 that pointer from the stack, the caller takes care of it.
515 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
516 (ffi_closure_raw_SYSV): Likewise.
517
5182012-03-22 Peter Rosin <peda@lysator.liu.se>
519
520 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
521 assembly version with Intel syntax.
522 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
523
5242012-03-23 Peter Rosin <peda@lysator.liu.se>
525
526 * testsuite/libffi.call/ffitest.h: Provide abstration of
527 __attribute__((fastcall)) in the form of a __FASTCALL__
528 define. Define it to __fastcall for MSVC.
529 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
530 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
531 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
532 * testsuite/libffi.call/strlen2_win32.c: Likewise.
533 * testsuite/libffi.call/struct1_win32.c: Likewise.
534 * testsuite/libffi.call/struct2_win32.c: Likewise.
535
5362012-03-22 Peter Rosin <peda@lysator.liu.se>
537
538 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
539 frame on function entry, MASM adds one automatically.
540
5412012-03-22 Peter Rosin <peda@lysator.liu.se>
542
543 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
544 bits in the MSVC headers.
545
5462012-03-22 Peter Rosin <peda@lysator.liu.se>
547
548 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
549 with no declarations after statements.
550 * testsuite/libffi.call/cls_16byte.c: Likewise.
551 * testsuite/libffi.call/cls_18byte.c: Likewise.
552 * testsuite/libffi.call/cls_19byte.c: Likewise.
553 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
554 * testsuite/libffi.call/cls_20byte.c: Likewise.
555 * testsuite/libffi.call/cls_20byte1.c: Likewise.
556 * testsuite/libffi.call/cls_24byte.c: Likewise.
557 * testsuite/libffi.call/cls_2byte.c: Likewise.
558 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
559 * testsuite/libffi.call/cls_3byte1.c: Likewise.
560 * testsuite/libffi.call/cls_3byte2.c: Likewise.
561 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
562 * testsuite/libffi.call/cls_4byte.c: Likewise.
563 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
564 * testsuite/libffi.call/cls_5byte.c: Likewise.
565 * testsuite/libffi.call/cls_64byte.c: Likewise.
566 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
567 * testsuite/libffi.call/cls_6byte.c: Likewise.
568 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
569 * testsuite/libffi.call/cls_7byte.c: Likewise.
570 * testsuite/libffi.call/cls_8byte.c: Likewise.
571 * testsuite/libffi.call/cls_9byte1.c: Likewise.
572 * testsuite/libffi.call/cls_9byte2.c: Likewise.
573 * testsuite/libffi.call/cls_align_double.c: Likewise.
574 * testsuite/libffi.call/cls_align_float.c: Likewise.
575 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
576 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
577 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
578 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
579 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
580 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
581 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
582 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
583 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
584 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
585 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
586 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
587 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
588 * testsuite/libffi.call/huge_struct.c: Likewise.
589 * testsuite/libffi.call/nested_struct.c: Likewise.
590 * testsuite/libffi.call/nested_struct1.c: Likewise.
591 * testsuite/libffi.call/nested_struct10.c: Likewise.
592 * testsuite/libffi.call/nested_struct2.c: Likewise.
593 * testsuite/libffi.call/nested_struct3.c: Likewise.
594 * testsuite/libffi.call/nested_struct4.c: Likewise.
595 * testsuite/libffi.call/nested_struct5.c: Likewise.
596 * testsuite/libffi.call/nested_struct6.c: Likewise.
597 * testsuite/libffi.call/nested_struct7.c: Likewise.
598 * testsuite/libffi.call/nested_struct8.c: Likewise.
599 * testsuite/libffi.call/nested_struct9.c: Likewise.
600 * testsuite/libffi.call/stret_large.c: Likewise.
601 * testsuite/libffi.call/stret_large2.c: Likewise.
602 * testsuite/libffi.call/stret_medium.c: Likewise.
603 * testsuite/libffi.call/stret_medium2.c: Likewise.
604 * testsuite/libffi.call/struct1.c: Likewise.
605 * testsuite/libffi.call/struct1_win32.c: Likewise.
606 * testsuite/libffi.call/struct2.c: Likewise.
607 * testsuite/libffi.call/struct2_win32.c: Likewise.
608 * testsuite/libffi.call/struct3.c: Likewise.
609 * testsuite/libffi.call/struct4.c: Likewise.
610 * testsuite/libffi.call/struct5.c: Likewise.
611 * testsuite/libffi.call/struct6.c: Likewise.
612 * testsuite/libffi.call/struct7.c: Likewise.
613 * testsuite/libffi.call/struct8.c: Likewise.
614 * testsuite/libffi.call/struct9.c: Likewise.
615 * testsuite/libffi.call/testclosure.c: Likewise.
616
Anthony Greene72ed5e2012-03-21 09:52:28 -04006172012-03-21 Peter Rosin <peda@lysator.liu.se>
618
619 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
620 printing doubles (%lf is for long doubles).
621 (main): Likewise.
622
Anthony Greenbd78c9c2012-03-21 08:09:30 -04006232012-03-21 Peter Rosin <peda@lysator.liu.se>
624
625 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
626 (set_ld_library_path_env_vars): Add the library search dir to PATH
627 (and save PATH for later).
628 (restore_ld_library_path_env_vars): Restore PATH.
629
Anthony Greenccee09a2013-01-02 08:41:55 -05006302012-03-21 Peter Rosin <peda@lysator.liu.se>
631
632 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
633 (set_ld_library_path_env_vars): Add the library search dir to PATH
634 (and save PATH for later).
635 (restore_ld_library_path_env_vars): Restore PATH.
636
Anthony Greenbd78c9c2012-03-21 08:09:30 -04006372012-03-20 Peter Rosin <peda@lysator.liu.se>
638
639 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
640 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
641 visible outside the PROC, so that ffi_closure_THISCALL can see it.
642
Anthony Green048d2f42012-10-11 10:55:25 -04006432012-03-20 Peter Rosin <peda@lysator.liu.se>
644
645 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
646 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
647 visible outside the PROC, so that ffi_closure_THISCALL can see it.
648
Anthony Greenbd78c9c2012-03-21 08:09:30 -04006492012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
650
651 * src/m68k/ffi.c: Add MINT support.
652 * src/m68k/sysv.S: Ditto.
653
Anthony Green048d2f42012-10-11 10:55:25 -04006542012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
655
656 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
657 ffi_call_VFP().
658 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
659 ffi_closure_VFP.
660 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
661
Anthony Green089dbce2013-01-02 08:37:35 -05006622012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400663
Anthony Green089dbce2013-01-02 08:37:35 -0500664 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
665 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400666
Anthony Green84d32532012-03-19 23:07:35 -04006672012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
668
669 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
670 just return FFI_BAD_ABI when things are wrong.
671 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
672
6732012-03-09 David Edelsohn <dje.gcc@gmail.com>
674
675 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
676 change to return value of ffi_closure_helper_DARWIN and load type
677 from return type.
678
Anthony Green964c5b92012-03-03 14:46:20 -05006792012-03-03 H.J. Lu <hongjiu.lu@intel.com>
680
681 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
682 long.
683 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
684 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
685 first.
686
687 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
688 (ffi_arg): Set to unsigned long long for x32.
689 (ffi_sarg): Set to long long for x32.
690
6912012-03-03 H.J. Lu <hongjiu.lu@intel.com>
692
693 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
694
Anthony Green6c194232012-03-03 14:17:54 -05006952012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
696
697 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
698 windows-like hosts.
699 * configure: Rebuilt.
700
Anthony Green7c5e60b2012-03-29 08:48:22 -04007012012-02-27 Mikael Pettersson <mikpe@it.uu.se>
702
703 PR libffi/52223
704 * Makefile.am (FLAGS_TO_PASS): Define.
705 * Makefile.in: Regenerate.
706
Anthony Green8360bf12012-02-23 07:01:13 -05007072012-02-23 Anthony Green <green@moxielogic.com>
708
709 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
710 directly.
711
Anthony Green7c5e60b2012-03-29 08:48:22 -04007122012-02-23 Kai Tietz <ktietz@redhat.com>
713
714 PR libffi/52221
715 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
716 prototype.
717 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
718 thiscall-convention.
719 (ffi_raw_call): Use ffi_prep_args_raw.
720 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
721 implementation for stub.
722
Anthony Greendee20f82012-02-10 13:06:46 -05007232012-02-10 Kai Tietz <ktietz@redhat.com>
724
725 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
726 windows target.
727 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500728
Anthony Greendee20f82012-02-10 13:06:46 -05007292012-02-08 Kai Tietz <ktietz@redhat.com>
730
731 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
732 also FFI_THISCALL.
733 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
734 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
735 (ffi_prep_closure_loc): Add FFI_THISCALL support.
736 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
737 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
738 for thiscall-calling convention.
739 * testsuite/libffi.call/closure_thiscall.c: New test.
740
Anthony Green1ff9c602012-02-01 16:34:30 -06007412012-01-28 Kai Tietz <ktietz@redhat.com>
742
743 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
744 argument to prototype for specify calling-convention.
745 (ffi_call): Add support for stdcall/thiscall convention.
746 (ffi_prep_args): Likewise.
747 (ffi_raw_call): Likewise.
748 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
749 FFI_FASTCALL.
750 * src/x86/win32.S (_ffi_call_win32): Add support for
751 fastcall/thiscall calling-convention calls.
752 * testsuite/libffi.call/fastthis1_win32.c: New test.
753 * testsuite/libffi.call/fastthis2_win32.c: New test.
754 * testsuite/libffi.call/fastthis3_win32.c: New test.
755 * testsuite/libffi.call/strlen2_win32.c: New test.
756 * testsuite/libffi.call/many2_win32.c: New test.
757 * testsuite/libffi.call/struct1_win32.c: New test.
758 * testsuite/libffi.call/struct2_win32.c: New test.
759
Anthony Green211060e2012-01-23 14:24:01 -05007602012-01-23 Uros Bizjak <ubizjak@gmail.com>
761
762 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
763
Anthony Green1ff9c602012-02-01 16:34:30 -06007642012-01-23 Anthony Green <green@moxielogic.com>
765 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500766
767 * configure.ac: Add Amiga support.
768 * configure: Rebuilt.
769
7702012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500771
772 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
773
Anthony Green1ff9c602012-02-01 16:34:30 -06007742012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500775
776 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
777 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
778
Anthony Greenc365ee72012-01-23 11:13:18 -05007792012-01-19 Jakub Jelinek <jakub@redhat.com>
780
781 PR rtl-optimization/48496
782 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
783
7842012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
785
786 * configure.ac (i?86-*-*): Set TARGET to X86_64.
787 * configure: Regenerate.
788
7892011-12-07 Andrew Pinski <apinski@cavium.com>
790
791 PR libffi/50051
792 * src/mips/n32.S: Add ".set mips4".
793
7942011-11-21 Andreas Tobler <andreast@fgznet.ch>
795
796 * configure: Regenerate.
797
Anthony Greenff9454d2011-11-12 17:18:51 -05007982011-11-12 David Gilbert <david.gilbert@linaro.org>
799
800 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
801 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
802 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
803 src/cris/ffi.c, src/prep_cif.c,
804 testsuite/libffi.call/cls_double_va.c,
805 testsuite/libffi.call/cls_longdouble_va.c,
806 testsuite/libffi.call/float_va.c: Many changes to support variadic
807 function calls.
808
Anthony Green52891f82011-11-12 16:35:55 -05008092011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
810
811 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
812 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
813 softfloat powerpc variants.
814
Anthony Green6a6e7f82011-11-12 16:20:42 -05008152011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
816
817 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
818 * configure: Rebuilt.
819
Anthony Greend52fbed2011-11-12 16:13:41 -05008202011-11-12 Timothy Wall <twall@users.sf.net>
821
822 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
823 alignment of 4 for wince on ARM.
824
Anthony Greenaf18df22011-11-12 15:52:08 -05008252011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
826 Anthony Green <green@moxielogic.com>
827
828 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
829 instructions (not available on some cores, like the PPC440).
830
Anthony Greenc411f142011-11-12 07:32:36 -05008312011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400832
Anthony Greenc411f142011-11-12 07:32:36 -0500833 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500834 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500835 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
836 X 10.7.
837 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400838
Anthony Green6a6e7f82011-11-12 16:20:42 -05008392011-11-12 Anthony Green <green@moxielogic.com>
840
841 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
842 files with debug info.
843 * Makefile.in: Rebuilt.
844
8452011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
846
847 * README: Update list of supported OpenBSD systems.
848
8492011-11-12 Anthony Green <green@moxielogic.com>
850
851 * libtool-version: Update.
852 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
853 FFI_DEBUG.
854 (libffi_la_SOURCES): Remove src/debug.c
855 (EXTRA_DIST): Add src/debug.c
856 * Makefile.in: Rebuilt.
857 * README: Update for 3.0.11.
858
Anthony Green3d561062011-11-12 07:20:24 -05008592011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -0400860
Anthony Green3d561062011-11-12 07:20:24 -0500861 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
862 * configure, aclocal.m4: Rebuild.
863
8642011-09-04 Iain Sandoe <iains@gcc.gnu.org>
865
866 PR libffi/49594
867 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
868 helper reference track the architecture pointer size.
869
8702011-08-25 Andrew Haley <aph@redhat.com>
871
872 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
873 instructions.
874 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -0400875
Anthony Greend992ac52011-07-29 17:32:53 -04008762011-07-11 Andrew Haley <aph@redhat.com>
877
878 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
879
8802011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
881
882 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
883 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
884
8852011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
886
887 PR libffi/46660
888 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
889 mips-sgi-irix6*.
890 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
891
8922011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
893
894 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
895 PRId8 instead of %hhu, %hhd.
896 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
897 PRIu8): Define.
898 [__sgi__] (PRId8, PRIu8): Define.
899
9002011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
901
902 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
903 Define.
904 Use them to handle ELF vs. ECOFF differences.
905 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
906
Anthony Green2d3fb362011-03-30 16:54:42 -04009072011-03-30 Timothy Wall <twall@users.sf.net>
908
909 * src/powerpc/darwin.S: Fix unknown FDE encoding.
910 * src/powerpc/darwin_closure.S: ditto.
911
Anthony Green25416792011-02-25 15:09:13 -05009122011-02-25 Anthony Green <green@moxielogic.com>
913
Anthony Green74ee6ea2011-02-25 15:52:14 -0500914 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
915 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -0500916
Anthony Green8cf88782011-02-15 15:19:49 -05009172011-02-15 Anthony Green <green@moxielogic.com>
918
919 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
920 * configure: Rebuilt.
921
Anthony Greend992ac52011-07-29 17:32:53 -04009222011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
923
924 * configure: Regenerate.
925
Anthony Green1fbf9dc2011-02-13 08:06:39 -05009262011-02-13 Anthony Green <green@moxielogic.com>
927
928 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
929 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
930 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
931
932 * src/prep_cif.c (initialize_aggregate): Convert assertion into
933 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
934
935 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
936 just return FFI_BAD_ABI when things are wrong.
937 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
938 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
939 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
940 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
941 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
942
Anthony Green1833aa02011-02-11 07:11:04 -05009432011-02-11 Anthony Green <green@moxielogic.com>
944
945 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
946 just return FFI_BAD_ABI when things are wrong.
947
Anthony Green7c5e60b2012-03-29 08:48:22 -04009482012-02-11 Eric Botcazou <ebotcazou@adacore.com>
949
950 * src/sparc/v9.S (STACKFRAME): Bump to 176.
951
Anthony Green42695e72011-02-09 15:12:35 -05009522011-02-09 Stuart Shelton <srcshelton@gmail.com>
953
954 http://bugs.gentoo.org/show_bug.cgi?id=286911
955 * src/mips/ffitarget.h: Clean up error messages.
956 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
957 ffi_raw*.
958 * include/ffi.h.in: Add pragma for SGI compiler.
959
Anthony Greena6e56b92011-02-09 15:00:42 -05009602011-02-09 Anthony Green <green@moxielogic.com>
961
962 * configure.ac: Add powerpc64-*-darwin* support.
963
Anthony Green0cad4382011-02-09 06:11:46 -05009642011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500965
Anthony Green747d6c32011-02-09 14:56:23 -0500966 * README: Mention Interix.
967
9682011-02-09 Jonathan Callen <abcd@gentoo.org>
969
970 * configure.ac: Add Interix to win32/cygwin/mingw case.
971 * configure: Ditto.
972 * src/closures.c: Treat Interix like Cygwin, instead of as a
973 generic win32.
974
9752011-02-09 Anthony Green <green@moxielogic.com>
976
Anthony Green69dbe842011-02-09 07:38:43 -0500977 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
978 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
979 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
980 (ffi_prep_closure_loc): Check for bad ABI.
981 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
982 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500983
Anthony Green90af15e2011-02-12 12:29:36 -05009842011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500985
986 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
987 src/arm/trampoline.S.
988 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
989 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
990 * src/arm/ffi.c (ffi_trampoline_table)
991 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
992 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
993 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
994 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
995 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
996 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
997 separately.
998 * src/arm/sysv.S: Handle Apple iOS host.
999 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001000 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001001 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001002 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001003
Anthony Greendc411e82011-02-08 10:49:29 -050010042011-02-08 Oren Held <orenhe@il.ibm.com>
1005
1006 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1007 redefinition of mallinfo on HP-UX.
1008
Anthony Green404585d2011-02-08 10:44:36 -050010092011-02-08 Ginn Chen <ginn.chen@oracle.com>
1010
1011 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001012 aggregate return ABI. Flush cache.
1013 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001014
Anthony Green6972a4f2011-02-11 07:32:51 -050010152011-02-11 Anthony Green <green@moxielogic.com>
1016
1017 From Tom Honermann <tom.honermann@oracle.com>:
1018 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1019 AIX. Declare .ffi_prep_args. Insert nops after branch
1020 instructions so that the AIX linker can insert TOC reload
1021 instructions.
1022 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1023
Anthony Greend992ac52011-07-29 17:32:53 -040010242011-02-08 Ed <ed@kdtc.net>
1025
1026 * src/powerpc/asm.h: Fix grammar nit in comment.
1027
Anthony Green89284fe2011-02-08 10:19:19 -050010282011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1029
1030 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1031
Anthony Greend992ac52011-07-29 17:32:53 -040010322011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1033
1034 PR libffi/46661
1035 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1036 uintptr_t first.
1037 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1038
Anthony Greened2c5182011-02-08 10:10:07 -050010392011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1040
1041 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001042 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001043
Anthony Green3b836242011-02-08 14:28:59 -050010442011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1045
1046 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1047 Handle case when CPU variant does not have long double support.
1048 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1049 and cores with soft floating point.
1050
10512011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1052
1053 * configure.ac: Add mips*-*-rtems* support.
1054 * configure: Regenerate.
1055 * src/mips/ffitarget.h: Ensure needed constants are available
1056 for targets which do not have sgidefs.h.
1057
Anthony Green0e584392011-02-08 07:52:40 -050010582011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1059
1060 PR target/40125
1061 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1062 * configure: Regenerate.
1063
10642010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1065
1066 PR libffi/29152
1067 PR libffi/42378
1068 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1069 update comments.
1070 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1071 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1072 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1073 update comments.
1074 * src/powerpc/ffi_darwin.c: Likewise.
1075
10762010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1077
1078 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1079 backslashes.
1080 (libffi_cv_as_string_pseudo_op): Likewise.
1081 * configure: Regenerate.
1082
10832010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1084
1085 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1086 (ffi_closure_VFP): Same.
1087 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1088 directive.
1089
10902010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1091
1092 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1093 (PRIuPTR): Define.
1094
10952010-11-29 Richard Henderson <rth@redhat.com>
1096 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1097
1098 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1099 (.eh_frame): Use FDE_ENCODING.
1100 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1101
Anthony Green5b9cd522010-11-22 15:19:57 -050011022010-11-22 Jacek Caban <jacek@codeweavers.com>
1103
1104 * configure.ac: Check for symbol underscores on mingw-w64.
1105 * configure: Rebuilt.
1106 * src/x86/win64.S: Correctly access extern symbols in respect to
1107 underscores.
1108
Anthony Green2db72612010-11-21 10:50:56 -050011092010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1110
1111 * testsuite/lib/libffi-dg.exp: Rename ...
1112 * testsuite/lib/libffi.exp: ... to this.
1113 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1114 * libffi/testsuite/libffi.special/special.exp: Likewise.
1115
11162010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1117
1118 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1119 code, new parameter, and return value. Update comments.
1120 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1121 call to layout_vfp_args().
1122 (ffi_call_SYSV): Update declaration.
1123 (ffi_call_VFP): New declaration.
1124 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1125 when ABI is FFI_VFP.
1126 (ffi_closure_VFP): New declaration.
1127 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1128 ffi_prep_incoming_args_SYSV().
1129 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1130 case handling.
1131 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1132 construction under VFP hard-float.
1133 (rec_vfp_type_p): New function.
1134 (vfp_type_p): Same.
1135 (place_vfp_arg): Same.
1136 (layout_vfp_args): Same.
1137 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1138 based on __ARM_PCS_VFP.
1139 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1140 fields.
1141 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1142 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1143 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1144 direct call. Move function pointer load upwards.
1145 (ffi_call_VFP): New function.
1146 (ffi_closure_VFP): Same.
1147
1148 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1149 (dg-skip-if): New function.
1150 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1151 and compiler options include -mfloat-abi=hard.
1152 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1153
11542010-10-01 Jakub Jelinek <jakub@redhat.com>
1155
1156 PR libffi/45677
1157 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1158 a multiple of 8.
1159 * testsuite/libffi.call/many2.c: New test.
1160
11612010-08-20 Mark Wielaard <mjw@redhat.com>
1162
1163 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1164 returns NULL.
1165
11662010-08-09 Andreas Tobler <andreast@fgznet.ch>
1167
1168 * configure.ac: Add target powerpc64-*-freebsd*.
1169 * configure: Regenerate.
1170 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1171 -mlong-double-128 only to linux targets.
1172 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1173 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1174 * testsuite/libffi.call/huge_struct.c: Likewise.
1175
Anthony Green00d0b592010-08-05 14:56:53 -040011762010-08-05 Dan Witte <dwitte@mozilla.com>
1177
1178 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1179 debug CRT when --enable-debug is given.
1180 * configure.ac: Define it.
1181 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1182
Anthony Greenc1d28ba2010-08-05 08:48:16 -040011832010-08-04 Dan Witte <dwitte@mozilla.com>
1184
1185 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1186 platforms.
1187 * src/x86/ffi.c: Remove redundant ifdef checks.
1188 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1189 for X86_ANY so return value space doesn't get added twice.
1190
Anthony Greenbda487e2010-08-05 09:02:41 -040011912010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1192
1193 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1194
Anthony Greend14178b2010-07-23 09:14:00 -040011952010-07-22 Dan Witte <dwitte@mozilla.com>
1196
1197 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1198 * src/prep_cif.c: Fix ABI assertion.
1199 * src/cris/ffi.c: Ditto.
1200
Anthony Greeneaf444e2010-07-10 08:59:09 -040012012010-07-10 Evan Phoenix <evan@fallingsnow.net>
1202
1203 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1204
Anthony Green5feacad2010-08-05 08:30:04 -040012052010-07-07 Dan Horák <dan@danny.cz>
1206
1207 * include/ffi.h.in: Protect #define with #ifndef.
1208 * src/powerpc/ffitarget.h: Ditto.
1209 * src/s390/ffitarget.h: Ditto.
1210 * src/sparc/ffitarget.h: Ditto.
1211
Anthony Green2db72612010-11-21 10:50:56 -050012122010-07-07 Neil Roberts <neil@linux.intel.com>
1213
1214 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1215 16-bytes.
1216
12172010-07-02 Jakub Jelinek <jakub@redhat.com>
1218
1219 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1220 * Makefile.in: Regenerated.
1221
12222010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1223
1224 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1225 output, too.
1226 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1227 (libffi_cv_as_string_pseudo_op): Check for .string.
1228 * configure: Regenerate.
1229 * fficonfig.h.in: Regenerate.
1230 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1231
Anthony Green10ea8482010-08-05 08:24:27 -040012322010-05-11 Dan Witte <dwitte@mozilla.com>
1233
1234 * doc/libffi.tex: Document previous change.
1235
12362010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1237
1238 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1239
Anthony Green63097412010-05-05 20:14:56 -040012402010-05-05 Michael Kohler <michaelkohler@live.com>
1241
1242 * src/dlmalloc.c (dlfree): Fix spelling.
1243 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1244 * configure.ac: Ditto.
1245 * configure: Rebuilt.
1246
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040012472010-04-13 Dan Witte <dwitte@mozilla.com>
1248
1249 * msvcc.sh: Build with -W3 instead of -Wall.
1250 * src/powerpc/ffi_darwin.c: Remove build warnings.
1251 * src/x86/ffi.c: Ditto.
1252 * src/x86/ffitarget.h: Ditto.
1253
Anthony Green2db72612010-11-21 10:50:56 -050012542010-04-12 Dan Witte <dwitte@mozilla.com>
1255 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001256
Anthony Green2db72612010-11-21 10:50:56 -05001257 * configure.ac: Add OS/2 support.
1258 * configure: Rebuilt.
1259 * src/closures.c: Ditto.
1260 * src/dlmalloc.c: Ditto.
1261 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001262
12632010-04-07 Jakub Jelinek <jakub@redhat.com>
1264
Anthony Green2db72612010-11-21 10:50:56 -05001265 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001266
12672010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1268
1269 * Makefile.in: Regenerate.
1270 * aclocal.m4: Regenerate.
1271 * include/Makefile.in: Regenerate.
1272 * man/Makefile.in: Regenerate.
1273 * testsuite/Makefile.in: Regenerate.
1274
Anthony Green2db72612010-11-21 10:50:56 -050012752010-03-30 Dan Witte <dwitte@mozilla.com>
1276
1277 * msvcc.sh: Disable build warnings.
1278 * README (tested): Clarify windows build procedure.
1279
Anthony Green3f5b1372010-07-12 14:39:18 -040012802010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1281
1282 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1283 * configure: Regenerate.
1284 * fficonfig.h.in: Regenerate.
1285 * libffi/src/x86/unix64.S (.eh_frame)
1286 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1287
Anthony Green2db72612010-11-21 10:50:56 -050012882010-03-14 Matthias Klose <doko@ubuntu.com>
1289
1290 * src/x86/ffi64.c: Fix typo in comment.
1291 * src/x86/ffi.c: Use /* ... */ comment style.
1292
Anthony Green9dc9a292010-04-13 10:33:52 -040012932010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1294
1295 * doc/libffi.texi (The Closure API): Fix typo.
1296 * doc/libffi.info: Remove.
1297
12982010-02-15 Matthias Klose <doko@ubuntu.com>
1299
1300 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1301 __ARM_ARCH_7EM__.
1302
Anthony Green2db72612010-11-21 10:50:56 -050013032010-01-15 Anthony Green <green@redhat.com>
1304
1305 * README: Add notes on building with Microsoft Visual C++.
1306
13072010-01-15 Daniel Witte <dwitte@mozilla.com>
1308
1309 * msvcc.sh: New file.
1310
1311 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1312 * src/x86/ffi.c: Tweak function declaration and remove excess
1313 parens.
1314 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1315 ffi_closure.
1316
1317 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1318 function ffi_call_win32 on X86_WIN32.
1319 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1320 (ffi_call_STDCALL): Remove.
1321
1322 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1323 to ffi_prep_cif_machdep for x86.
1324 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1325
13262010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1327
1328 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001329 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001330
13312010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1332
1333 * doc/libffi.texi: Add closure example.
1334
Anthony Green7b7a42f2010-01-12 09:14:14 -050013352010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1336
1337 PR libffi/40701
1338 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1339 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1340 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1341 alpha*-dec-osf*.
1342 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1343 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1344 * testsuite/libffi.call/return_ll1.c: Likewise.
1345 * testsuite/libffi.call/stret_medium2.c: Likewise.
1346 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1347 MAP_FAILED to char *.
1348
13492010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1350
1351 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1352
Anthony Greenc3042af2010-01-01 08:08:02 -050013532009-12-31 Anthony Green <green@redhat.com>
1354
1355 * README: Update for libffi 3.0.9.
1356
13572009-12-27 Matthias Klose <doko@ubuntu.com>
1358
1359 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1360 appropriate.
1361 * configure: Rebuilt.
1362
13632009-12-26 Anthony Green <green@redhat.com>
1364
1365 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1366 avr32*-*-*.
1367 * testsuite/libffi.call/cls_double_va.c: Ditto.
1368
13692009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1370
1371 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1372 and inttypes.h.
1373 * testsuite/libffi.special/unwindtest.cc: Ditto.
1374
13752009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1376
1377 * configure.ac: Add amd64-*-openbsd*.
1378 * configure: Rebuilt.
1379 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1380 openbsd programs with -lpthread.
1381
13822009-12-26 Anthony Green <green@redhat.com>
1383
1384 * testsuite/libffi.call/cls_double_va.c,
1385 testsuite/libffi.call/cls_longdouble.c,
1386 testsuite/libffi.call/cls_longdouble_va.c,
1387 testsuite/libffi.call/cls_pointer.c,
1388 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1389 mips*-*-* and arm*-*-*.
1390 * testsuite/libffi.call/cls_align_longdouble_split.c,
1391 testsuite/libffi.call/cls_align_longdouble_split2.c,
1392 testsuite/libffi.call/stret_medium2.c,
1393 testsuite/libffi.call/stret_medium.c,
1394 testsuite/libffi.call/stret_large.c,
1395 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1396
13972009-12-31 Kay Tietz <ktietz70@googlemail.com>
1398
1399 * testsuite/libffi.call/ffitest.h,
1400 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1401 definitions.
1402
14032009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1404
1405 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1406 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1407 * configure: Rebuilt.
1408 * Makefile.in: Rebuilt.
1409
14102009-12-31 Anthony Green <green@redhat.com>
1411 Blake Chaffin.
1412
1413 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1414 Chaffin @ Apple.
1415
Anthony Green0cfe60e2009-12-29 10:06:04 -050014162009-12-28 David Edelsohn <edelsohn@gnu.org>
1417
1418 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1419 local variables.
1420 (aix_adjust_aggregate_sizes): New function.
1421 (ffi_prep_cif_machdep): Call it.
1422
14232009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1424
1425 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1426 * configure: Regenerate.
1427 * fficonfig.h.in: Likewise.
1428 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1429 Solaris/x86.
1430
14312009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1432
1433 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1434 when a float arguments is passed in memory.
1435 (ffi_closure_helper_SYSV): Mark general registers as used up when
1436 a 64bit or soft-float long double argument is passed in memory.
1437
Anthony Green9458d882009-12-26 07:02:27 -050014382009-12-25 Matthias Klose <doko@ubuntu.com>
1439
1440 * man/ffi_call.3: Fix #include in examples.
1441 * doc/libffi.texi: Add dircategory.
1442
14432009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1444
1445 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1446 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1447 IRIX MIPSPro c99.
1448 * include/ffi_common.h: Added '__sgi' define to non
1449 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001450 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001451 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1452 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1453 FFI_LONGDOUBLE support and alignment(N32 only).
1454 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1455 fixed non '__attribute__((__mode__()))' integer typedefs.
1456 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1457 since they are Linux/GNU Assembler specific.
1458
14592009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1460
1461 * configure.ac, Makefile.am, src/avr32/ffi.c,
1462 src/avr32/ffitarget.h,
1463 src/avr32/sysv.S: Add AVR32 port.
1464 * configure, Makefile.in: Rebuilt.
1465
Anthony Green115ab362009-12-24 00:22:00 -050014662009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1467
1468 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1469 * configure: Regenerate.
1470
14712009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1472
1473 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1474
14752009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1476
1477 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1478 type on HP-UX.
1479
Anthony Green7c5e60b2012-03-29 08:48:22 -040014802012-02-13 Kai Tietz <ktietz@redhat.com>
1481
1482 PR libffi/52221
1483 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1484 support for X86_WIN32.
1485 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1486
Anthony Green115ab362009-12-24 00:22:00 -050014872009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1488
1489 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1490 double' arguments.
1491
14922009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1493
1494 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1495
14962009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1497
1498 PR libffi/40700
1499 * src/closures.c [X86_64 && __sun__ && __svr4__]
1500 (FFI_MMAP_EXEC_WRIT): Define.
1501
15022009-12-08 David Daney <ddaney@caviumnetworks.com>
1503
1504 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1505 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1506 * testsuite/libffi.call/stret_large.c: Same.
1507 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1508 * testsuite/libffi.call/stret_large2.c: Same.
1509 * testsuite/libffi.call/stret_medium2.c: Same.
1510
15112009-12-07 David Edelsohn <edelsohn@gnu.org>
1512
1513 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1514 typo.
1515
15162009-12-05 David Edelsohn <edelsohn@gnu.org>
1517
1518 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1519 code.
1520 * src/powerpc/aix_closure.S: Same.
1521
15222009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1523
1524 * Makefile.in: Regenerate.
1525 * configure: Regenerate.
1526 * include/Makefile.in: Regenerate.
1527 * man/Makefile.in: Regenerate.
1528 * testsuite/Makefile.in: Regenerate.
1529
15302009-12-04 David Edelsohn <edelsohn@gnu.org>
1531
1532 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001533 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001534
15352009-12-04 Uros Bizjak <ubizjak@gmail.com>
1536
1537 PR libffi/41908
1538 * src/x86/ffi64.c (classify_argument): Update from
1539 gcc/config/i386/i386.c.
1540 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1541 SSE registers directly.
1542 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1543 for x86_64 linux targets.
1544
15452009-12-04 David Edelsohn <edelsohn@gnu.org>
1546
1547 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1548 pfr for long double split between fpr13 and stack.
1549
15502009-12-03 David Edelsohn <edelsohn@gnu.org>
1551
1552 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1553 fparg_count twice for long double.
1554
15552009-12-03 David Edelsohn <edelsohn@gnu.org>
1556
1557 PR libffi/42243
1558 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1559
15602009-12-03 Uros Bizjak <ubizjak@gmail.com>
1561
1562 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1563 Remove xfails for x86 linux targets.
1564
15652009-12-02 David Edelsohn <edelsohn@gnu.org>
1566
1567 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1568 case.
1569
15702009-12-01 David Edelsohn <edelsohn@gnu.org>
1571
1572 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1573 register usage. Call ffi_prep_args directly. Add long double
1574 return value support.
1575 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1576 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1577 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1578 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1579 mode.
1580 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1581 into case.
1582 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1583 Allocate result area between params and FPRs.
1584
15852009-11-30 David Edelsohn <edelsohn@gnu.org>
1586
1587 PR target/35484
1588 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1589 AIX64.
1590 * src/powerpc/aix.S: Implement AIX64 version.
1591 * src/powerpc/aix_closure.S: Implement AIX64 version.
1592 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1593 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1594 support.
1595 (ffi_prep_cif_machdep): Same.
1596 (ffi_call): Same.
1597 (ffi_closure_helper_DARWIN): Same.
1598
15992009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1600
1601 PR libffi/41908
1602 * testsuite/libffi.call/testclosure.c: New test.
1603
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016042009-09-28 Kai Tietz <kai.tietz@onevision.com>
1605
1606 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1607 assembly version use of ___chkstk.
1608
16092009-09-23 Matthias Klose <doko@ubuntu.com>
1610
1611 PR libffi/40242, PR libffi/41443
1612 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1613 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1614 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1615 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1616 for -mfloat-abi=softfp to work.
1617
16182009-09-17 Loren J. Rittle <ljrittle@acm.org>
1619
1620 PR testsuite/32843 (strikes again)
1621 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1622 enable proper extension on char and short.
1623
16242009-09-15 David Daney <ddaney@caviumnetworks.com>
1625
1626 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1627 handling for FFI_TYPE_POINTER.
1628 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1629 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1630 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1631 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1632 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1633 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1634 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1635 structure and pointer returns.
1636 (ffi_closure_N32): Add handling for pointer returns.
1637 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1638 calc_n32_return_struct_flags): Handle soft-float.
1639 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1640 (ffi_call_N32): Declare proper argument types.
1641 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1642 soft-float.
1643
16442009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1645
1646 * configure.ac (AC_PREREQ): Bump to 2.64.
1647
16482009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1649
1650 * Makefile.am (install-html, install-pdf): Remove.
1651 * Makefile.in: Regenerate.
1652
1653 * Makefile.in: Regenerate.
1654 * aclocal.m4: Regenerate.
1655 * configure: Regenerate.
1656 * fficonfig.h.in: Regenerate.
1657 * include/Makefile.in: Regenerate.
1658 * man/Makefile.in: Regenerate.
1659 * testsuite/Makefile.in: Regenerate.
1660
Anthony Green3d561062011-11-12 07:20:24 -050016612011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1662
1663 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1664 * configure: Rebuilt.
1665
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016662009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1667
1668 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1669
16702009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1671
1672 PR libffi/40807
1673 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1674 return types for X86_WIN32.
1675 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1676 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1677 _ffi_closure_STDCALL): Likewise.
1678
1679 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1680 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1681
16822009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1683
1684 PR testsuite/40699
1685 PR testsuite/40707
1686 PR testsuite/40709
1687 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1688 2009-06-30 commits.
1689
16902009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1691
1692 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1693 to "" before adding paths. (This reinstates an assignment that
1694 was removed by my 2009-06-30 commit, but changes the initial
1695 value from "." to "".)
1696
16972009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1698
1699 PR testsuite/40601
1700 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1701 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1702 empty.
1703
17042009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1705
1706 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1707 to ld_library_path. Use add_path. Add just find_libgcc_s
1708 to ld_library_path, not every libgcc multilib directory.
1709
17102009-06-16 Wim Lewis <wiml@hhhh.org>
1711
1712 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1713 supposed to be callee-saved.
1714 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1715 return buffer for odd-size structs.
1716
17172009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1718
1719 PR libffi/40444
1720 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1721 allow_stack_execute for Darwin.
1722
17232009-06-16 Andrew Haley <aph@redhat.com>
1724
1725 * configure.ac (TARGETDIR): Add missing blank lines.
1726 * configure: Regenerate.
1727
17282009-06-16 Andrew Haley <aph@redhat.com>
1729
1730 * testsuite/libffi.call/cls_align_sint64.c,
1731 testsuite/libffi.call/cls_align_uint64.c,
1732 testsuite/libffi.call/cls_longdouble_va.c,
1733 testsuite/libffi.call/cls_ulonglong.c,
1734 testsuite/libffi.call/return_ll1.c,
1735 testsuite/libffi.call/stret_medium2.c: Fix printf format
1736 specifiers.
1737 * testsuite/libffi.call/ffitest.h,
1738 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1739
17402009-06-15 Andrew Haley <aph@redhat.com>
1741
1742 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1743 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001744
Anthony Greenc6dddbd2009-10-04 08:11:33 -040017452009-06-12 Andrew Haley <aph@redhat.com>
1746
1747 * Makefile.am: Remove info_TEXINFOS.
1748
17492009-06-12 Andrew Haley <aph@redhat.com>
1750
1751 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1752 testsuite/libffi.call/cls_align_uint64.c,
1753 testsuite/libffi.call/cls_ulonglong.c,
1754 testsuite/libffi.call/return_ll1.c,
1755 testsuite/libffi.call/stret_medium2.c: Fix printf format
1756 specifiers.
1757 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1758
17592009-06-11 Timothy Wall <twall@users.sf.net>
1760
1761 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001762 configure.ac,
1763 include/ffi.h.in,
1764 include/ffi_common.h,
1765 src/closures.c,
1766 src/dlmalloc.c,
1767 src/x86/ffi.c,
1768 src/x86/ffitarget.h,
1769 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001770 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001771 * Makefile.in,
1772 include/Makefile.in,
1773 man/Makefile.in,
1774 testsuite/Makefile.in,
1775 configure,
1776 aclocal.m4: Regenerated
1777 * ltcf-c.sh: properly escape cygwin/w32 path
1778 * man/ffi_call.3: Clarify size requirements for return value.
1779 * src/x86/ffi64.c: Fix filename in comment.
1780 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001781
Anthony Green0cfe60e2009-12-29 10:06:04 -05001782 * testsuite/libffi.call/closure_fn0.c,
1783 testsuite/libffi.call/closure_fn1.c,
1784 testsuite/libffi.call/closure_fn2.c,
1785 testsuite/libffi.call/closure_fn3.c,
1786 testsuite/libffi.call/closure_fn4.c,
1787 testsuite/libffi.call/closure_fn5.c,
1788 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001789 testsuite/libffi.call/closure_stdcall.c,
1790 testsuite/libffi.call/cls_12byte.c,
1791 testsuite/libffi.call/cls_16byte.c,
1792 testsuite/libffi.call/cls_18byte.c,
1793 testsuite/libffi.call/cls_19byte.c,
1794 testsuite/libffi.call/cls_1_1byte.c,
1795 testsuite/libffi.call/cls_20byte.c,
1796 testsuite/libffi.call/cls_20byte1.c,
1797 testsuite/libffi.call/cls_24byte.c,
1798 testsuite/libffi.call/cls_2byte.c,
1799 testsuite/libffi.call/cls_3_1byte.c,
1800 testsuite/libffi.call/cls_3byte1.c,
1801 testsuite/libffi.call/cls_3byte2.c,
1802 testsuite/libffi.call/cls_4_1byte.c,
1803 testsuite/libffi.call/cls_4byte.c,
1804 testsuite/libffi.call/cls_5_1_byte.c,
1805 testsuite/libffi.call/cls_5byte.c,
1806 testsuite/libffi.call/cls_64byte.c,
1807 testsuite/libffi.call/cls_6_1_byte.c,
1808 testsuite/libffi.call/cls_6byte.c,
1809 testsuite/libffi.call/cls_7_1_byte.c,
1810 testsuite/libffi.call/cls_7byte.c,
1811 testsuite/libffi.call/cls_8byte.c,
1812 testsuite/libffi.call/cls_9byte1.c,
1813 testsuite/libffi.call/cls_9byte2.c,
1814 testsuite/libffi.call/cls_align_double.c,
1815 testsuite/libffi.call/cls_align_float.c,
1816 testsuite/libffi.call/cls_align_longdouble.c,
1817 testsuite/libffi.call/cls_align_longdouble_split.c,
1818 testsuite/libffi.call/cls_align_longdouble_split2.c,
1819 testsuite/libffi.call/cls_align_pointer.c,
1820 testsuite/libffi.call/cls_align_sint16.c,
1821 testsuite/libffi.call/cls_align_sint32.c,
1822 testsuite/libffi.call/cls_align_sint64.c,
1823 testsuite/libffi.call/cls_align_uint16.c,
1824 testsuite/libffi.call/cls_align_uint32.c,
1825 testsuite/libffi.call/cls_align_uint64.c,
1826 testsuite/libffi.call/cls_dbls_struct.c,
1827 testsuite/libffi.call/cls_double.c,
1828 testsuite/libffi.call/cls_double_va.c,
1829 testsuite/libffi.call/cls_float.c,
1830 testsuite/libffi.call/cls_longdouble.c,
1831 testsuite/libffi.call/cls_longdouble_va.c,
1832 testsuite/libffi.call/cls_multi_schar.c,
1833 testsuite/libffi.call/cls_multi_sshort.c,
1834 testsuite/libffi.call/cls_multi_sshortchar.c,
1835 testsuite/libffi.call/cls_multi_uchar.c,
1836 testsuite/libffi.call/cls_multi_ushort.c,
1837 testsuite/libffi.call/cls_multi_ushortchar.c,
1838 testsuite/libffi.call/cls_pointer.c,
1839 testsuite/libffi.call/cls_pointer_stack.c,
1840 testsuite/libffi.call/cls_schar.c,
1841 testsuite/libffi.call/cls_sint.c,
1842 testsuite/libffi.call/cls_sshort.c,
1843 testsuite/libffi.call/cls_uchar.c,
1844 testsuite/libffi.call/cls_uint.c,
1845 testsuite/libffi.call/cls_ulonglong.c,
1846 testsuite/libffi.call/cls_ushort.c,
1847 testsuite/libffi.call/err_bad_abi.c,
1848 testsuite/libffi.call/err_bad_typedef.c,
1849 testsuite/libffi.call/float2.c,
1850 testsuite/libffi.call/huge_struct.c,
1851 testsuite/libffi.call/nested_struct.c,
1852 testsuite/libffi.call/nested_struct1.c,
1853 testsuite/libffi.call/nested_struct10.c,
1854 testsuite/libffi.call/nested_struct2.c,
1855 testsuite/libffi.call/nested_struct3.c,
1856 testsuite/libffi.call/nested_struct4.c,
1857 testsuite/libffi.call/nested_struct5.c,
1858 testsuite/libffi.call/nested_struct6.c,
1859 testsuite/libffi.call/nested_struct7.c,
1860 testsuite/libffi.call/nested_struct8.c,
1861 testsuite/libffi.call/nested_struct9.c,
1862 testsuite/libffi.call/problem1.c,
1863 testsuite/libffi.call/return_ldl.c,
1864 testsuite/libffi.call/return_ll1.c,
1865 testsuite/libffi.call/stret_large.c,
1866 testsuite/libffi.call/stret_large2.c,
1867 testsuite/libffi.call/stret_medium.c,
1868 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001869 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1870 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001871
18722009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1873
1874 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1875 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1876 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1877
18782009-06-09 Andrew Haley <aph@redhat.com>
1879
1880 * src/x86/freebsd.S: Add missing file.
1881
18822009-06-08 Andrew Haley <aph@redhat.com>
1883
1884 Import from libffi 3.0.8:
1885
1886 * doc/libffi.texi: New file.
1887 * doc/libffi.info: Likewise.
1888 * doc/stamp-vti: Likewise.
1889 * man/Makefile.am: New file.
1890 * man/ffi_call.3: New file.
1891
1892 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1893 src/dlmalloc.c.
1894 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1895
1896 * configure.ac: Bump version to 3.0.8.
1897 parisc*-*-linux*: Add.
1898 i386-*-freebsd* | i386-*-openbsd*: Add.
1899 powerpc-*-beos*: Add.
1900 AM_CONDITIONAL X86_FREEBSD: Add.
1901 AC_CONFIG_FILES: Add man/Makefile.
1902
1903 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1904
19052009-06-08 Andrew Haley <aph@redhat.com>
1906
1907 * README: Import from libffi 3.0.8.
1908
19092009-06-08 Andrew Haley <aph@redhat.com>
1910
1911 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1912 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1913 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1914 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1915
1916 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1917 * testsuite/libffi.call/stret_medium.c: Likewise.
1918 * testsuite/libffi.call/stret_large2.c: Likewise.
1919 * testsuite/libffi.call/stret_large.c: Likewise.
1920
19212008-12-26 Timothy Wall <twall@users.sf.net>
1922
Anthony Green0cfe60e2009-12-29 10:06:04 -05001923 * testsuite/libffi.call/cls_longdouble.c,
1924 testsuite/libffi.call/cls_longdouble_va.c,
1925 testsuite/libffi.call/cls_align_longdouble.c,
1926 testsuite/libffi.call/cls_align_longdouble_split.c,
1927 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1928 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001929
19302008-12-22 Timothy Wall <twall@users.sf.net>
1931
Anthony Green0cfe60e2009-12-29 10:06:04 -05001932 * testsuite/libffi.call/closure_fn0.c,
1933 testsuite/libffi.call/closure_fn1.c,
1934 testsuite/libffi.call/closure_fn2.c,
1935 testsuite/libffi.call/closure_fn3.c,
1936 testsuite/libffi.call/closure_fn4.c,
1937 testsuite/libffi.call/closure_fn5.c,
1938 testsuite/libffi.call/closure_fn6.c,
1939 testsuite/libffi.call/closure_loc_fn0.c,
1940 testsuite/libffi.call/closure_stdcall.c,
1941 testsuite/libffi.call/cls_align_pointer.c,
1942 testsuite/libffi.call/cls_pointer.c,
1943 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1944 pointer to integer (intptr_t).
1945 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001946
19472008-07-24 Anthony Green <green@redhat.com>
1948
Anthony Green0cfe60e2009-12-29 10:06:04 -05001949 * testsuite/libffi.call/cls_dbls_struct.c,
1950 testsuite/libffi.call/cls_double_va.c,
1951 testsuite/libffi.call/cls_longdouble.c,
1952 testsuite/libffi.call/cls_longdouble_va.c,
1953 testsuite/libffi.call/cls_pointer.c,
1954 testsuite/libffi.call/cls_pointer_stack.c,
1955 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1956 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001957
19582008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001959 Blake Chaffin
1960 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001961
Anthony Green0cfe60e2009-12-29 10:06:04 -05001962 * testsuite/libffi.call/cls_align_longdouble_split2.c
1963 testsuite/libffi.call/cls_align_longdouble_split.c
1964 testsuite/libffi.call/cls_dbls_struct.c
1965 testsuite/libffi.call/cls_double_va.c
1966 testsuite/libffi.call/cls_longdouble.c
1967 testsuite/libffi.call/cls_longdouble_va.c
1968 testsuite/libffi.call/cls_pointer.c
1969 testsuite/libffi.call/cls_pointer_stack.c
1970 testsuite/libffi.call/err_bad_abi.c
1971 testsuite/libffi.call/err_bad_typedef.c
1972 testsuite/libffi.call/stret_large2.c
1973 testsuite/libffi.call/stret_large.c
1974 testsuite/libffi.call/stret_medium2.c
1975 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001976
19772009-06-05 Andrew Haley <aph@redhat.com>
1978
1979 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1980 libffi.
1981
19822009-06-04 Andrew Haley <aph@redhat.com>
1983
1984 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1985 stdcall changes.
1986
19872008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001988 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001989
Anthony Green0cfe60e2009-12-29 10:06:04 -05001990 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1991 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001992
19932008-02-03 Timothy Wall <twall@users.sf.net>
1994
Anthony Green0cfe60e2009-12-29 10:06:04 -05001995 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1996 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001997
19982008-01-31 Timothy Wall <twall@users.sf.net>
1999
Anthony Green0cfe60e2009-12-29 10:06:04 -05002000 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2001 closures.
2002 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2003 closures.
2004 * src/x86/win32.S: Add assembly for stdcall closure.
2005 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002006
20072009-06-04 Andrew Haley <aph@redhat.com>
2008
2009 * include/ffi.h.in: Change void (*)() to void (*)(void).
2010 * src/x86/ffi.c: Likewise.
2011
20122009-06-04 Andrew Haley <aph@redhat.com>
2013
2014 * src/powerpc/ppc_closure.S: Insert licence header.
2015 * src/powerpc/linux64_closure.S: Likewise.
2016 * src/m68k/sysv.S: Likewise.
2017
2018 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2019 * src/powerpc/ffi.c: Likewise.
2020 * src/powerpc/ffi_darwin.c: Likewise.
2021 * src/m32r/ffi.c: Likewise.
2022 * src/sh64/ffi.c: Likewise.
2023 * src/x86/ffi64.c: Likewise.
2024 * src/alpha/ffi.c: Likewise.
2025 * src/alpha/osf.S: Likewise.
2026 * src/frv/ffi.c: Likewise.
2027 * src/s390/ffi.c: Likewise.
2028 * src/pa/ffi.c: Likewise.
2029 * src/pa/hpux32.S: Likewise.
2030 * src/ia64/unix.S: Likewise.
2031 * src/ia64/ffi.c: Likewise.
2032 * src/sparc/ffi.c: Likewise.
2033 * src/mips/ffi.c: Likewise.
2034 * src/sh/ffi.c: Likewise.
2035
20362008-02-15 David Daney <ddaney@avtrex.com>
2037
Anthony Green0cfe60e2009-12-29 10:06:04 -05002038 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2039 Define (conditionally), and use it to include cachectl.h.
2040 (ffi_prep_closure_loc): Fix cache flushing.
2041 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002042
20432009-06-04 Andrew Haley <aph@redhat.com>
2044
2045 include/ffi.h.in,
2046 src/arm/ffitarget.h,
2047 src/arm/ffi.c,
2048 src/arm/sysv.S,
2049 src/powerpc/ffitarget.h,
2050 src/closures.c,
2051 src/sh64/ffitarget.h,
2052 src/sh64/ffi.c,
2053 src/sh64/sysv.S,
2054 src/types.c,
2055 src/x86/ffi64.c,
2056 src/x86/ffitarget.h,
2057 src/x86/win32.S,
2058 src/x86/darwin.S,
2059 src/x86/ffi.c,
2060 src/x86/sysv.S,
2061 src/x86/unix64.S,
2062 src/alpha/ffitarget.h,
2063 src/alpha/ffi.c,
2064 src/alpha/osf.S,
2065 src/m68k/ffitarget.h,
2066 src/frv/ffitarget.h,
2067 src/frv/ffi.c,
2068 src/s390/ffitarget.h,
2069 src/s390/sysv.S,
2070 src/cris/ffitarget.h,
2071 src/pa/linux.S,
2072 src/pa/ffitarget.h,
2073 src/pa/ffi.c,
2074 src/raw_api.c,
2075 src/ia64/ffitarget.h,
2076 src/ia64/unix.S,
2077 src/ia64/ffi.c,
2078 src/ia64/ia64_flags.h,
2079 src/java_raw_api.c,
2080 src/debug.c,
2081 src/sparc/v9.S,
2082 src/sparc/ffitarget.h,
2083 src/sparc/ffi.c,
2084 src/sparc/v8.S,
2085 src/mips/ffitarget.h,
2086 src/mips/n32.S,
2087 src/mips/o32.S,
2088 src/mips/ffi.c,
2089 src/prep_cif.c,
2090 src/sh/ffitarget.h,
2091 src/sh/ffi.c,
2092 src/sh/sysv.S: Update license text.
2093
20942009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2095
2096 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2097 (.eh_frame): Add FDE for it.
2098
20992009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2100
2101 * configure.ac: Also check if assembler supports pc-relative
2102 relocs on X86_WIN32 targets.
2103 * configure: Regenerate.
2104 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2105 (_ffi_call_SYSV): Add missing function type symbol .def and
2106 add EH markup labels.
2107 (_ffi_call_STDCALL): Likewise.
2108 (_ffi_closure_SYSV): Likewise.
2109 (_ffi_closure_raw_SYSV): Likewise.
2110 (.eh_frame): Add hand-crafted EH data.
2111
21122009-04-09 Jakub Jelinek <jakub@redhat.com>
2113
2114 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2115 version 3 of the GNU General Public License and to point readers
2116 at the COPYING3 file and the FSF's license web page.
2117 * testsuite/libffi.call/call.exp: Likewise.
2118 * testsuite/libffi.special/special.exp: Likewise.
2119
21202009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2121
2122 * configure: Regenerate.
2123
21242008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2125
2126 PR libffi/26048
2127 * configure.ac (HAVE_AS_X86_PCREL): New test.
2128 * configure: Regenerate.
2129 * fficonfig.h.in: Regenerate.
2130 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2131 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2132 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2133 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2134 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2135 (.Lload_table): Likewise.
2136 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2137
21382008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2139
2140 * configure: Regenerate.
2141
21422008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2143
2144 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2145 signed/unsigned int8/16 return values.
2146 * src/sparc/v8.S (ffi_call_v8): Likewise.
2147 (ffi_closure_v8): Likewise.
2148
21492008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002150 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002151
2152 * configure: Regenerate for new libtool.
2153 * Makefile.in: Ditto.
2154 * include/Makefile.in: Ditto.
2155 * aclocal.m4: Ditto.
2156
21572008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2158
2159 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2160 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2161 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2162 Adjust copyright notice.
2163 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2164 register or two register to use for FFI_SYSV structs.
2165 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2166 (ffi_closure_helper_SYSV): Fix the return type for
2167 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2168 Adjust copyright notice.
2169
21702008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2171
2172 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2173 int.
2174
21752008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2176
2177 * configure: Regenerate.
2178 * include/Makefile.in: Regenerate.
2179 * testsuite/Makefile.in: Regenerate.
2180
21812008-06-07 Joseph Myers <joseph@codesourcery.com>
2182
2183 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2184 powerpc-*-beos*): Remove.
2185 * configure: Regenerate.
2186
21872008-05-09 Julian Brown <julian@codesourcery.com>
2188
2189 * Makefile.am (LTLDFLAGS): New.
2190 (libffi_la_LDFLAGS): Use above.
2191 * Makefile.in: Regenerate.
2192
21932008-04-18 Paolo Bonzini <bonzini@gnu.org>
2194
2195 PR bootstrap/35457
2196 * aclocal.m4: Regenerate.
2197 * configure: Regenerate.
2198
21992008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2200
2201 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2202 * src/sh64/sysv.S: Likewise.
2203
22042008-03-26 Daniel Jacobowitz <dan@debian.org>
2205
2206 * src/arm/sysv.S: Fix ARM comment marker.
2207
22082008-03-26 Jakub Jelinek <jakub@redhat.com>
2209
2210 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2211 * src/s390/sysv.S: Likewise.
2212 * src/powerpc/ppc_closure.S: Likewise.
2213 * src/powerpc/sysv.S: Likewise.
2214 * src/x86/unix64.S: Likewise.
2215 * src/x86/sysv.S: Likewise.
2216 * src/sparc/v8.S: Likewise.
2217 * src/sparc/v9.S: Likewise.
2218 * src/m68k/sysv.S: Likewise.
2219 * src/arm/sysv.S: Likewise.
2220
22212008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2222
2223 * aclocal.m4: Regenerate.
2224 * configure: Likewise.
2225 * Makefile.in: Likewise.
2226 * include/Makefile.in: Likewise.
2227 * testsuite/Makefile.in: Likewise.
2228
22292008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2230 Andreas Tobler <a.tobler@schweiz.org>
2231
2232 * configure.ac: Add amd64-*-freebsd* target.
2233 * configure: Regenerate.
2234
22352008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2236
2237 PR libffi/34612
2238 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2239 returning struct.
2240
2241 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2242 tests.
2243
22442008-01-24 David Edelsohn <edelsohn@gnu.org>
2245
2246 * configure: Regenerate.
2247
22482008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2249
2250 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2251
22522008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2253
2254 PR testsuite/32843
2255 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2256 signed/unsigned int8/16 for X86_DARWIN.
2257 Updated copyright info.
2258 Handle one and two byte structs with special cif->flags.
2259 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2260 Updated copyright info.
2261 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2262 sysv.S
2263 Remove code to pop args from the stack after call.
2264 Special-case signed/unsigned for int8/16, one and two byte structs.
2265 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2266 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2267 FFI_TYPE_SINT32.
2268 Updated copyright info.
2269
22702007-12-08 David Daney <ddaney@avtrex.com>
2271
Anthony Green0cfe60e2009-12-29 10:06:04 -05002272 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002273 SUBU, add with ADDU and use smaller code sequences.
2274
22752007-12-07 David Daney <ddaney@avtrex.com>
2276
2277 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2278 type.
2279
22802007-12-06 David Daney <ddaney@avtrex.com>
2281
2282 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2283 defined.
2284 (ffi_java_raw): New typedef.
2285 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2286 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2287 ffi_java_raw.
2288 (ffi_java_raw_closure) : Same.
2289 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2290 parameter types.
2291 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2292 FFI_SIZEOF_JAVA_RAW.
2293 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2294 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2295 sizeof(ffi_java_raw) for alignment calculations.
2296 (ffi_java_ptrarray_to_raw): Same.
2297 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002298 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002299 (ffi_java_raw_to_rvalue): Same.
2300 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2301 (ffi_java_translate_args): Same.
2302 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2303 parameter types.
2304 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2305
23062007-12-06 David Daney <ddaney@avtrex.com>
2307
Anthony Green0cfe60e2009-12-29 10:06:04 -05002308 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002309 pointer values.
2310
23112007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2312
2313 PR libffi/31937
2314 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2315 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2316 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2317 set the NUM_FPR_ARG_REGISTERS according to.
2318 Add support for potential soft-float support under hard-float
2319 architecture.
2320 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2321 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2322 to the FFI_LINUX_SOFT_FLOAT ABI.
2323 (ffi_prep_cif_machdep): Likewise.
2324 (ffi_closure_helper_SYSV): Likewise.
2325 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2326 on archs where __NO_FPRS__ is true.
2327 Add FFI_TYPE_UINT128 support.
2328 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2329 Adjust copyright notice.
2330
23312007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2332
2333 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2334 * include/ffi_common.h: ... here.
2335 Update copyright.
2336
23372007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2338
2339 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2340 * src/powerpc/linux64.S: Likewise.
2341 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2342 * testsuite/libffi.call/return_ldl.c: New test.
2343
23442007-09-04 <aph@redhat.com>
2345
2346 * src/arm/sysv.S (UNWIND): New.
2347 (Whole file): Conditionally compile unwinder directives.
2348 * src/arm/sysv.S: Add unwinder directives.
2349
2350 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2351 Only treat r0 as a struct address if we're actually returning a
2352 struct by address.
2353 Only copy the bytes that are actually within a struct.
2354 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2355 is returned in r0, not passed by address.
2356 (ffi_call): Allocate a word-sized temporary for the case where
2357 a composite is returned in r0.
2358 (ffi_prep_incoming_args_SYSV): Align as necessary.
2359
23602007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2361
Anthony Green0cfe60e2009-12-29 10:06:04 -05002362 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002363 directly using the sys_cacheflush syscall.
2364
23652007-07-27 Andrew Haley <aph@redhat.com>
2366
2367 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2368
23692007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2370
2371 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2372 * configure.ac: Likewise.
2373 * Makefile.in: Regenerate.
2374 * include/Makefile.in: Likewise.
2375 * testsuite/Makefile.in: Likewise.
2376 * configure: Likewise.
2377
23782007-08-24 David Daney <ddaney@avtrex.com>
2379
2380 * testsuite/libffi.call/return_sl.c: New test.
2381
23822007-08-10 David Daney <ddaney@avtrex.com>
2383
2384 * testsuite/libffi.call/cls_multi_ushort.c,
2385 testsuite/libffi.call/cls_align_uint16.c,
2386 testsuite/libffi.call/nested_struct1.c,
2387 testsuite/libffi.call/nested_struct3.c,
2388 testsuite/libffi.call/cls_7_1_byte.c,
2389 testsuite/libffi.call/nested_struct5.c,
2390 testsuite/libffi.call/cls_double.c,
2391 testsuite/libffi.call/nested_struct7.c,
2392 testsuite/libffi.call/cls_sint.c,
2393 testsuite/libffi.call/nested_struct9.c,
2394 testsuite/libffi.call/cls_20byte1.c,
2395 testsuite/libffi.call/cls_multi_sshortchar.c,
2396 testsuite/libffi.call/cls_align_sint64.c,
2397 testsuite/libffi.call/cls_3byte2.c,
2398 testsuite/libffi.call/cls_multi_schar.c,
2399 testsuite/libffi.call/cls_multi_uchar.c,
2400 testsuite/libffi.call/cls_19byte.c,
2401 testsuite/libffi.call/cls_9byte1.c,
2402 testsuite/libffi.call/cls_align_float.c,
2403 testsuite/libffi.call/closure_fn1.c,
2404 testsuite/libffi.call/problem1.c,
2405 testsuite/libffi.call/closure_fn3.c,
2406 testsuite/libffi.call/cls_sshort.c,
2407 testsuite/libffi.call/closure_fn5.c,
2408 testsuite/libffi.call/cls_align_double.c,
2409 testsuite/libffi.call/nested_struct.c,
2410 testsuite/libffi.call/cls_2byte.c,
2411 testsuite/libffi.call/nested_struct10.c,
2412 testsuite/libffi.call/cls_4byte.c,
2413 testsuite/libffi.call/cls_6byte.c,
2414 testsuite/libffi.call/cls_8byte.c,
2415 testsuite/libffi.call/cls_multi_sshort.c,
2416 testsuite/libffi.call/cls_align_sint16.c,
2417 testsuite/libffi.call/cls_align_uint32.c,
2418 testsuite/libffi.call/cls_20byte.c,
2419 testsuite/libffi.call/cls_float.c,
2420 testsuite/libffi.call/nested_struct2.c,
2421 testsuite/libffi.call/cls_5_1_byte.c,
2422 testsuite/libffi.call/nested_struct4.c,
2423 testsuite/libffi.call/cls_24byte.c,
2424 testsuite/libffi.call/nested_struct6.c,
2425 testsuite/libffi.call/cls_64byte.c,
2426 testsuite/libffi.call/nested_struct8.c,
2427 testsuite/libffi.call/cls_uint.c,
2428 testsuite/libffi.call/cls_multi_ushortchar.c,
2429 testsuite/libffi.call/cls_schar.c,
2430 testsuite/libffi.call/cls_uchar.c,
2431 testsuite/libffi.call/cls_align_uint64.c,
2432 testsuite/libffi.call/cls_ulonglong.c,
2433 testsuite/libffi.call/cls_align_longdouble.c,
2434 testsuite/libffi.call/cls_1_1byte.c,
2435 testsuite/libffi.call/cls_12byte.c,
2436 testsuite/libffi.call/cls_3_1byte.c,
2437 testsuite/libffi.call/cls_3byte1.c,
2438 testsuite/libffi.call/cls_4_1byte.c,
2439 testsuite/libffi.call/cls_6_1_byte.c,
2440 testsuite/libffi.call/cls_16byte.c,
2441 testsuite/libffi.call/cls_18byte.c,
2442 testsuite/libffi.call/closure_fn0.c,
2443 testsuite/libffi.call/cls_9byte2.c,
2444 testsuite/libffi.call/closure_fn2.c,
2445 testsuite/libffi.call/closure_fn4.c,
2446 testsuite/libffi.call/cls_ushort.c,
2447 testsuite/libffi.call/closure_fn6.c,
2448 testsuite/libffi.call/cls_5byte.c,
2449 testsuite/libffi.call/cls_align_pointer.c,
2450 testsuite/libffi.call/cls_7byte.c,
2451 testsuite/libffi.call/cls_align_sint32.c,
2452 testsuite/libffi.special/unwindtest_ffi_call.cc,
2453 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2454
24552007-08-10 David Daney <ddaney@avtrex.com>
2456
2457 PR libffi/28313
2458 * configure.ac: Don't treat mips64 as a special case.
2459 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2460 * configure: Regenerate
2461 * Makefile.in: Ditto.
2462 * fficonfig.h.in: Ditto.
2463 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2464 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2465 (FFI_DEFAULT_ABI): Set for n64 case.
2466 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2467 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2468 (ffi_closure_N32): New function.
2469 (.eh_frame): New section
2470 * src/mips/o32.S: Clean up comments.
2471 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2472 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2473 _MIPS_SIM == _ABIN32 throughout.
2474 (FFI_MIPS_STOP_HERE): New, use in place of
2475 ffi_stop_here.
2476 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2477 to support n32/n64 ABIs.
2478 (calc_n32_struct_flags): Rewrite.
2479 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2480 position of flag bits.
2481 (ffi_prep_cif_machdep): Rewrite n32 portion.
2482 (ffi_call): Enable for n64. Add special handling for small structure
2483 return values.
2484 (ffi_prep_closure_loc): Add n32 and n64 support.
2485 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2486 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2487
24882007-08-08 David Daney <ddaney@avtrex.com>
2489
2490 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2491 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2492 specifiers.
2493 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2494 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2495 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2496 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2497 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2498 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2499 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2500 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2501 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2502 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2503 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2504 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2505 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2506 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2507 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2508 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2509 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2510 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2511 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2512 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2513 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2514 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2515 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2516 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2517 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2518 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2519 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2520 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2521 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2522 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2523 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2524
25252007-08-07 Andrew Haley <aph@redhat.com>
2526
2527 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2528 checkin.
2529
25302007-08-06 Andrew Haley <aph@redhat.com>
2531
2532 PR testsuite/32843
2533 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2534 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2535 FFI_TYPE_SINT32.
2536
25372007-08-02 David Daney <ddaney@avtrex.com>
2538
2539 * testsuite/libffi.call/return_ul.c (main): Define return type as
2540 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002541
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025422007-07-30 Andrew Haley <aph@redhat.com>
2543
2544 PR testsuite/32843
2545 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2546 signed/unsigned int8/16.
2547 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2548 Use a jump table.
2549 Remove code to pop args from the stack after call.
2550 Special-case signed/unsigned int8/16.
2551 * testsuite/libffi.call/return_sc.c (main): Revert.
2552
25532007-07-26 Richard Guenther <rguenther@suse.de>
2554
2555 PR testsuite/32843
2556 * testsuite/libffi.call/return_sc.c (main): Verify call
2557 result as signed char, not ffi_arg.
2558
25592007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2560
2561 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2562 * configure: Regenerate.
2563
25642007-07-11 David Daney <ddaney@avtrex.com>
2565
2566 * src/mips/ffi.c: Don't include sys/cachectl.h.
2567 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2568 cacheflush().
2569
25702007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2571
2572 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2573 from (ffi_prep_closure): ... this.
2574 (FFI_INIT_TRAMPOLINE): Adjust.
2575
25762005-12-31 Phil Blundell <pb@reciva.com>
2577
Anthony Green0cfe60e2009-12-29 10:06:04 -05002578 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2579 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002580 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2581 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2582 (FFI_CLOSURES): Enable closure support.
2583
25842007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2585
Anthony Green0cfe60e2009-12-29 10:06:04 -05002586 * testsuite/libffi.call/cls_multi_ushort.c,
2587 testsuite/libffi.call/cls_align_uint16.c,
2588 testsuite/libffi.call/nested_struct1.c,
2589 testsuite/libffi.call/nested_struct3.c,
2590 testsuite/libffi.call/cls_7_1_byte.c,
2591 testsuite/libffi.call/cls_double.c,
2592 testsuite/libffi.call/nested_struct5.c,
2593 testsuite/libffi.call/nested_struct7.c,
2594 testsuite/libffi.call/cls_sint.c,
2595 testsuite/libffi.call/nested_struct9.c,
2596 testsuite/libffi.call/cls_20byte1.c,
2597 testsuite/libffi.call/cls_multi_sshortchar.c,
2598 testsuite/libffi.call/cls_align_sint64.c,
2599 testsuite/libffi.call/cls_3byte2.c,
2600 testsuite/libffi.call/cls_multi_schar.c,
2601 testsuite/libffi.call/cls_multi_uchar.c,
2602 testsuite/libffi.call/cls_19byte.c,
2603 testsuite/libffi.call/cls_9byte1.c,
2604 testsuite/libffi.call/cls_align_float.c,
2605 testsuite/libffi.call/closure_fn1.c,
2606 testsuite/libffi.call/problem1.c,
2607 testsuite/libffi.call/closure_fn3.c,
2608 testsuite/libffi.call/cls_sshort.c,
2609 testsuite/libffi.call/closure_fn5.c,
2610 testsuite/libffi.call/cls_align_double.c,
2611 testsuite/libffi.call/cls_2byte.c,
2612 testsuite/libffi.call/nested_struct.c,
2613 testsuite/libffi.call/nested_struct10.c,
2614 testsuite/libffi.call/cls_4byte.c,
2615 testsuite/libffi.call/cls_6byte.c,
2616 testsuite/libffi.call/cls_8byte.c,
2617 testsuite/libffi.call/cls_multi_sshort.c,
2618 testsuite/libffi.call/cls_align_uint32.c,
2619 testsuite/libffi.call/cls_align_sint16.c,
2620 testsuite/libffi.call/cls_float.c,
2621 testsuite/libffi.call/cls_20byte.c,
2622 testsuite/libffi.call/cls_5_1_byte.c,
2623 testsuite/libffi.call/nested_struct2.c,
2624 testsuite/libffi.call/cls_24byte.c,
2625 testsuite/libffi.call/nested_struct4.c,
2626 testsuite/libffi.call/nested_struct6.c,
2627 testsuite/libffi.call/cls_64byte.c,
2628 testsuite/libffi.call/nested_struct8.c,
2629 testsuite/libffi.call/cls_uint.c,
2630 testsuite/libffi.call/cls_multi_ushortchar.c,
2631 testsuite/libffi.call/cls_schar.c,
2632 testsuite/libffi.call/cls_uchar.c,
2633 testsuite/libffi.call/cls_align_uint64.c,
2634 testsuite/libffi.call/cls_ulonglong.c,
2635 testsuite/libffi.call/cls_align_longdouble.c,
2636 testsuite/libffi.call/cls_1_1byte.c,
2637 testsuite/libffi.call/cls_12byte.c,
2638 testsuite/libffi.call/cls_3_1byte.c,
2639 testsuite/libffi.call/cls_3byte1.c,
2640 testsuite/libffi.call/cls_4_1byte.c,
2641 testsuite/libffi.call/cls_6_1_byte.c,
2642 testsuite/libffi.call/cls_16byte.c,
2643 testsuite/libffi.call/cls_18byte.c,
2644 testsuite/libffi.call/closure_fn0.c,
2645 testsuite/libffi.call/cls_9byte2.c,
2646 testsuite/libffi.call/closure_fn2.c,
2647 testsuite/libffi.call/closure_fn4.c,
2648 testsuite/libffi.call/cls_ushort.c,
2649 testsuite/libffi.call/closure_fn6.c,
2650 testsuite/libffi.call/cls_5byte.c,
2651 testsuite/libffi.call/cls_align_pointer.c,
2652 testsuite/libffi.call/cls_7byte.c,
2653 testsuite/libffi.call/cls_align_sint32.c,
2654 testsuite/libffi.special/unwindtest_ffi_call.cc,
2655 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002656
26572007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2658
2659 * aclocal.m4: Regenerated.
2660
26612007-06-02 Paolo Bonzini <bonzini@gnu.org>
2662
2663 * configure: Regenerate.
2664
26652007-05-23 Steve Ellcey <sje@cup.hp.com>
2666
2667 * Makefile.in: Regenerate.
2668 * configure: Regenerate.
2669 * aclocal.m4: Regenerate.
2670 * include/Makefile.in: Regenerate.
2671 * testsuite/Makefile.in: Regenerate.
2672
26732007-05-10 Roman Zippel <zippel@linux-m68k.org>
2674
2675 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2676 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2677 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2678 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2679 (FFI_CLOSURES): Enable closure support.
2680
26812007-05-10 Roman Zippel <zippel@linux-m68k.org>
2682
2683 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2684 * configure: Regenerate.
2685 * fficonfig.h.in: Regenerate.
2686 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2687 CFI_OFFSET,CFI_DEF_CFA): New macros.
2688 (ffi_call_SYSV): Add callframe annotation.
2689
26902007-05-10 Roman Zippel <zippel@linux-m68k.org>
2691
2692 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2693 numerous test suite failures.
2694 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2695
26962007-04-11 Paolo Bonzini <bonzini@gnu.org>
2697
2698 * Makefile.am (EXTRA_DIST): Bring up to date.
2699 * Makefile.in: Regenerate.
2700 * src/frv/eabi.S: Remove RCS keyword.
2701
27022007-04-06 Richard Henderson <rth@redhat.com>
2703
2704 * configure.ac: Tidy target case.
2705 (HAVE_LONG_DOUBLE): Allow the target to override.
2706 * configure: Regenerate.
2707 * include/ffi.h.in: Don't define ffi_type_foo if
2708 LIBFFI_HIDE_BASIC_TYPES is defined.
2709 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2710 to ffi_type_double.
2711 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2712 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2713 (ffi_type_longdouble): Special case for Alpha. Don't define
2714 if long double == double.
2715
2716 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2717 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2718 (ffi_call, ffi_closure_osf_inner): Likewise.
2719 (ffi_closure_osf_inner): Likewise. Mark hidden.
2720 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2721 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2722 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2723 (load_table): Handle 128-bit long double.
2724
2725 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2726
27272007-04-06 Tom Tromey <tromey@redhat.com>
2728
2729 PR libffi/31491:
2730 * README: Fixed bug in example.
2731
27322007-04-03 Jakub Jelinek <jakub@redhat.com>
2733
2734 * src/closures.c: Include sys/statfs.h.
2735 (_GNU_SOURCE): Define on Linux.
2736 (FFI_MMAP_EXEC_SELINUX): Define.
2737 (selinux_enabled): New variable.
2738 (selinux_enabled_check): New function.
2739 (is_selinux_enabled): Define.
2740 (dlmmap): Use it.
2741
27422007-03-24 Uros Bizjak <ubizjak@gmail.com>
2743
2744 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2745 Use 'volatile float sum' to create sum of floats to avoid false
2746 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002747 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002748
27492007-03-08 Alexandre Oliva <aoliva@redhat.com>
2750
2751 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2752 patch.
2753 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2754
27552007-03-07 Alexandre Oliva <aoliva@redhat.com>
2756
2757 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2758 (ffi_prep_closure_loc): New.
2759 (ffi_prep_raw_closure_loc): New.
2760 (ffi_prep_java_raw_closure_loc): New.
2761 * src/closures.c: New file.
2762 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2763 Replace sflags with exec_offset.
2764 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2765 sub_segment_exec_offset): New macros.
2766 (get_segment_flags, set_segment_flags, check_segment_merge): New
2767 macros.
2768 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2769 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2770 destroy_mspace): Use new macros.
2771 (sys_alloc): Silence warning.
2772 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2773 * Makefile.in: Rebuilt.
2774 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2775 terms of ffi_prep_closure_loc.
2776 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2777 from...
2778 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2779 renamed version.
2780 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2781 adjusted from...
2782 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2783 the renamed version.
2784 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2785 (ffi_prep_closure): ... this.
2786 * src/pa/ffi.c: Likewise.
2787 * src/cris/ffi.c: Likewise. Adjust.
2788 * src/frv/ffi.c: Likewise.
2789 * src/ia64/ffi.c: Likewise.
2790 * src/mips/ffi.c: Likewise.
2791 * src/powerpc/ffi_darwin.c: Likewise.
2792 * src/s390/ffi.c: Likewise.
2793 * src/sh/ffi.c: Likewise.
2794 * src/sh64/ffi.c: Likewise.
2795 * src/sparc/ffi.c: Likewise.
2796 * src/x86/ffi64.c: Likewise.
2797 * src/x86/ffi.c: Likewise.
2798 (FFI_INIT_TRAMPOLINE): Adjust.
2799 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2800 (ffi_prep_raw_closure): ... this.
2801 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2802 (ffi_prep_closure): ... this.
2803 (flush_icache): Adjust.
2804
28052007-03-07 Alexandre Oliva <aoliva@redhat.com>
2806
2807 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2808 Lea's malloc.
2809
28102007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2811
2812 * Makefile.am: Add dummy install-pdf target.
2813 * Makefile.in: Regenerate
2814
28152007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2816
2817 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2818 ffi_closure_helper_SYSV): Add long double handling.
2819
28202007-02-02 Jakub Jelinek <jakub@redhat.com>
2821
2822 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2823 immediately after bctrl instruction.
2824
28252007-01-18 Alexandre Oliva <aoliva@redhat.com>
2826
2827 * Makefile.am (all-recursive, install-recursive,
2828 mostlyclean-recursive, clean-recursive, distclean-recursive,
2829 maintainer-clean-recursive): Add missing targets.
2830 * Makefile.in: Rebuilt.
2831
28322006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2833
2834 * configure.ac: Add TARGET for x86_64-*-darwin*.
2835 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2836 for X86_DARWIN.
2837 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2838 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2839 * configure: Regenerate.
2840 * Makefile.in: Regenerate.
2841 * include/Makefile.in: Regenerate.
2842 * testsuite/Makefile.in: Regenerate.
2843 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2844 ffi_call only.
2845
28462006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2847
2848 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2849 Makefile.am.
2850
28512006-10-31 Geoffrey Keating <geoffk@apple.com>
2852
2853 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2854 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2855 Darwin.
2856 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2857 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2858
28592006-10-10 Paolo Bonzini <bonzini@gnu.org>
2860 Sandro Tolaini <tolaini@libero.it>
2861
Anthony Green0cfe60e2009-12-29 10:06:04 -05002862 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002863 conditional.
2864 * configure: Regenerated.
2865 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2866 (EXTRA_DIST): Add src/x86/darwin.S.
2867 * Makefile.in: Regenerated.
2868 * include/Makefile.in: Regenerated.
2869 * testsuite/Makefile.in: Regenerated.
2870
2871 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2872 X86_WIN32, and additionally align stack to 16 bytes.
2873 * src/x86/darwin.S: New, based on sysv.S.
2874 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2875
28762006-09-12 David Daney <ddaney@avtrex.com>
2877
2878 PR libffi/23935
2879 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2880 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2881 * aclocal.m4: Regenerated for automake 1.9.6.
2882 * Makefile.in: Regenerated.
2883 * include/Makefile.in: Regenerated.
2884 * testsuite/Makefile.in: Regenerated.
2885
28862006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2887
2888 * include/ffi_common.h (struct): Revert accidental commit.
2889
28902006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2891
2892 * include/ffi_common.h: Remove lint directives.
2893 * include/ffi.h.in: Likewise.
2894
28952006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2896
2897 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2898 for 32-bit architectures.
2899 * testsuite/libffi.call/return_ul.c: New test case.
2900
29012006-07-19 David Daney <ddaney@avtrex.com>
2902
2903 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2904 xfail remains for mips64.
2905
29062006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2907
2908 * Makefile.am: Add install-html target. Add install-html to .PHONY
2909 * Makefile.in: Regenerate.
2910 * aclocal.m4: Regenerate.
2911 * include/Makefile.in: Regenerate.
2912 * testsuite/Makefile.in: Regenerate.
2913
29142006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2915
2916 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2917 stack slot.
2918
29192006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2920
2921 * README: Remove notice about 'Crazy Comments'.
2922 * src/debug.c: Remove lint directives. Cleanup white spaces.
2923 * src/java_raw_api.c: Likewise.
2924 * src/prep_cif.c: Likewise.
2925 * src/raw_api.c: Likewise.
2926 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2927 to the testsuite.
2928 * src/arm/ffi.c: Remove lint directives.
2929 * src/m32r/ffi.c: Likewise.
2930 * src/pa/ffi.c: Likewise.
2931 * src/powerpc/ffi.c: Likewise.
2932 * src/powerpc/ffi_darwin.c: Likewise.
2933 * src/sh/ffi.c: Likewise.
2934 * src/sh64/ffi.c: Likewise.
2935 * src/x86/ffi.c: Likewise.
2936 * testsuite/libffi.call/float2.c: Likewise.
2937 * testsuite/libffi.call/promotion.c: Likewise.
2938 * testsuite/libffi.call/struct1.c: Likewise.
2939
29402006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2941
2942 * src/pa/hpux32.S: Correct unwind offset calculation for
2943 ffi_closure_pa32.
2944 * src/pa/linux.S: Likewise.
2945
29462006-04-12 James E Wilson <wilson@specifix.com>
2947
2948 PR libgcj/26483
2949 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2950 (hfa_type_load): Call stf_spill.
2951 (hfa_type_store): Call ldf_fill.
2952 (ffi_call): Adjust calls to above routines. Add local temps for
2953 macro result.
2954
29552006-04-10 Matthias Klose <doko@debian.org>
2956
2957 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2958 directory names containing underscores.
2959
29602006-04-07 James E Wilson <wilson@specifix.com>
2961
2962 * testsuite/libffi.call/float4.c: New testcase.
2963
29642006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2965 Andreas Tobler <a.tobler@schweiz.ch>
2966
2967 * Makefile.am: Add PA_HPUX port.
2968 * Makefile.in: Regenerate.
2969 * include/Makefile.in: Likewise.
2970 * testsuite/Makefile.in: Likewise.
2971 * configure.ac: Add PA_HPUX rules.
2972 * configure: Regenerate.
2973 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2974 Add PA_HPUX and PA64_HPUX.
2975 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2976 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2977 (FFI_TYPE_SMALL_STRUCT2): Define.
2978 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2979 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2980 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2981 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2982 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2983 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2984 * src/pa/ffi.c (ROUND_DOWN): Delete.
2985 (fldw, fstw, fldd, fstd): Use '__asm__'.
2986 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2987 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2988 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2989 Simplify incrementing of stack slot variable. Change type of local
2990 'n' to unsigned int.
2991 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2992 double on PA_HPUX.
2993 (ffi_prep_cif_machdep): Likewise.
2994 (ffi_call): Likewise.
2995 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2996 return type to ffi_status. Simplify incrementing of stack slot
2997 variable. Only copy floating point argument registers when PA_LINUX
2998 is true. Reformat debug statement.
2999 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3000 FFI_TYPE_SMALL_STRUCT8.
3001 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3002 declaration.
3003 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3004 Add nops to cache flush. Add trampoline for PA_HPUX.
3005 * src/pa/hpux32.S: New file.
3006 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3007 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3008 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3009 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3010 argument type checks so that common argument types appear first.
3011 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3012 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3013
30142006-03-24 Alan Modra <amodra@bigpond.net.au>
3015
3016 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3017 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3018 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3019 FFI_TYPE_LONGDOUBLE.
3020 (ffi_prep_args64): Assert using IBM extended double.
3021 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3022 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3023 (ffi_call): Handle FFI_LINUX.
3024 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3025 gpr3 return pointer as for struct return. Handle FFI_LINUX
3026 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3027 unnecessarily.
3028 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3029 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3030 Don't use r6 as pointer to results, instead use sp offset. Don't
3031 make a special call to load lr with case table address, instead
3032 use offset from previous call.
3033 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3034 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3035 return.
3036
30372006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3038
3039 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3040 passed with FP registers correctly.
3041 (ffi_closure_helper_SYSV): Likewise.
3042 * src/sh64/sysv.S: Likewise.
3043
30442006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3045
3046 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3047 args and userdata unused.
3048 (closure_test_fn1): Mark cif and userdata unused.
3049 (main): Remove unused res.
3050
30512006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3052
3053 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3054 -O2, -O3, -Os and the warning flags -W -Wall.
3055 * testsuite/libffi.special/special.exp: Likewise.
3056 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3057 unused parameter unused for gcc or else do nothing.
3058 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3059 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3060 and userdata unused.
3061 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3062 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3063 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3064 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3065 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3066 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3067 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3068 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3069 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3070 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3071 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3072 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3073 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3074 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3075 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3076 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3077 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3078 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3079 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3080 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3081 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3082 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3083 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3084 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3085 Likewise.
3086 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3087 Likewise.
3088 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3089 Likewise.
3090 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3091 void* to avoid compiler warning.
3092 (main): Likewise.
3093 (cls_struct_align_gn): Mark cif and userdata unused.
3094 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3095 Likewise.
3096 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3097 Likewise.
3098 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3099 Likewise.
3100 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3101 Likewise.
3102 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3103 Likewise.
3104 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3105 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3106 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3107 data unused.
3108 (main): Cast res_call to silence gcc.
3109 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3110 data unused.
3111 (main): Cast res_call to silence gcc.
3112 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3113 and data unused.
3114 (main): Cast res_call to silence gcc.
3115 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3116 data unused.
3117 (main): Cast res_call to silence gcc.
3118 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3119 data unused.
3120 (main): Cast res_call to silence gcc.
3121 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3122 and data unused.
3123 (main): Cast res_call to silence gcc.
3124 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3125 userdata unused.
3126 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3127 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3128 userdata unused.
3129 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3130 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3131 userdata unused.
3132 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3133 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3134 userdata unused.
3135 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3136 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3137 userdata unused.
3138 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3139 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3140 and userdata unused.
3141 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3142 userdata unused.
3143 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3144 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3145 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3146 Cleanup white spaces.
3147 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3148 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3149 cif and userdata unused.
3150 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3151 Likewise.
3152 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3153 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3154 formatters to silence gcc.
3155 (B_gn): Mark cif and userdata unused.
3156 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3157 unused.
3158 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3159 (B_gn): Mark cif and userdata unused.
3160 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3161 unused.
3162 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3163 (B_gn): Mark cif and userdata unused.
3164 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3165 unused.
3166 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3167 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3168 * testsuite/libffi.call/problem1.c (stub): Likewise.
3169 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3170 gcc.
3171 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3172 in the last commit for this test case in the test case itself.
3173 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3174 unused.
3175 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3176 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3177 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3178 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3179 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3180 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3181
31822006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3183
3184 * src/sh/sysv.S: Fix register numbers in the FDE for
3185 ffi_closure_SYSV.
3186
31872006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3188
3189 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3190 declaration to avoid a false negative on ix86. See PR323.
3191
31922006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3193
3194 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3195 and cast integer to void * if needed. Update the pointer to
3196 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003197
Anthony Greenc6dddbd2009-10-04 08:11:33 -040031982006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3199
3200 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3201 is fixed.
3202 * testsuite/libffi.call/nested_struct4.c: Likewise.
3203
32042006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3205
3206 * testsuite/libffi.call/return_dbl.c: New test case.
3207 * testsuite/libffi.call/return_dbl1.c: Likewise.
3208 * testsuite/libffi.call/return_dbl2.c: Likewise.
3209 * testsuite/libffi.call/return_fl.c: Likewise.
3210 * testsuite/libffi.call/return_fl1.c: Likewise.
3211 * testsuite/libffi.call/return_fl2.c: Likewise.
3212 * testsuite/libffi.call/return_fl3.c: Likewise.
3213 * testsuite/libffi.call/closure_fn6.c: Likewise.
3214
3215 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3216 definition.
3217 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3218 here to be used by other test cases too.
3219
3220 * testsuite/libffi.call/nested_struct10.c: New test case.
3221 * testsuite/libffi.call/nested_struct9.c: Likewise.
3222 * testsuite/libffi.call/nested_struct8.c: Likewise.
3223 * testsuite/libffi.call/nested_struct7.c: Likewise.
3224 * testsuite/libffi.call/nested_struct6.c: Likewise.
3225 * testsuite/libffi.call/nested_struct5.c: Likewise.
3226 * testsuite/libffi.call/nested_struct4.c: Likewise.
3227
32282006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3229
3230 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3231 * configure: Rebuilt.
3232
32332006-01-18 Jakub Jelinek <jakub@redhat.com>
3234
3235 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3236 instead do the shifting inline.
3237 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3238 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3239 and 8 byte structs, for the remaining struct sizes don't call
3240 __lshrdi3, instead do the shifting inline.
3241
32422005-12-07 Thiemo Seufer <ths@networkno.de>
3243
3244 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3245 missing parentheses.
3246 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3247 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3248 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3249 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3250 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3251 FA_0_0_OFF2.
3252 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3253 endianness bugs.
3254 (ffi_prep_closure): Improve trampoline instruction scheduling.
3255 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3256
32572005-12-03 Alan Modra <amodra@bigpond.net.au>
3258
3259 * src/powerpc/ffi.c: Formatting.
3260 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3261 (ffi_prep_args64): Likewise.
3262
32632005-09-30 Geoffrey Keating <geoffk@apple.com>
3264
3265 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3266 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3267
32682005-09-26 Tom Tromey <tromey@redhat.com>
3269
3270 * testsuite/libffi.call/float1.c (value_type): New typedef.
3271 (CANARY): New define.
3272 (main): Check for result buffer overflow.
3273 * src/powerpc/linux64.S: Handle linux64 long double returns.
3274 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3275 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3276
32772005-08-25 Alan Modra <amodra@bigpond.net.au>
3278
3279 PR target/23404
3280 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3281 homed fp args.
3282 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3283
32842005-08-11 Jakub Jelinek <jakub@redhat.com>
3285
3286 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3287 (AH_BOTTOM): Add FFI_HIDDEN definition.
3288 * configure: Rebuilt.
3289 * fficonfig.h.in: Rebuilt.
3290 * src/powerpc/ffi.c (hidden): Remove.
3291 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3292 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3293 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3294 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3295 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3296 add FFI_HIDDEN to its prototype.
3297 (ffi_closure_SYSV_inner): New.
3298 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3299 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3300
33012005-08-10 Alfred M. Szmidt <ams@gnu.org>
3302
3303 PR libffi/21819:
3304 * configure: Rebuilt.
3305 * configure.ac: Handle i*86-*-gnu*.
3306
33072005-08-09 Jakub Jelinek <jakub@redhat.com>
3308
3309 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3310 DW_CFA_offset_extended_sf rather than
3311 DW_CFA_GNU_negative_offset_extended.
3312 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3313
33142005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3315
3316 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3317 on sh3.
3318 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3319 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3320 partially on register.
3321 (ffi_closure_helper_SYSV): Likewise.
3322 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3323
33242005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3325
3326 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3327 Remove empty line.
3328 * src/sh64/ffi.c (simple_type): Remove.
3329 (return_type): Handle small structures correctly.
3330 (ffi_prep_args): Likewise.
3331 (ffi_call): Likewise.
3332 (ffi_closure_helper_SYSV): Likewise.
3333 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3334 Emit position independent code if PIC and remove wrong datalabel
3335 prefixes from EH data.
3336
33372005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3338
3339 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3340 * Makefile.in: Regenerate.
3341 * include/Makefile.in: Likewise.
3342 * testsuite/Makefile.in: Likewise.
3343 * configure.ac: Add POWERPC_FREEBSD rules.
3344 * configure: Regenerate.
3345 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3346 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3347 * src/powerpc/ffi.c: Add flags to handle small structure returns
3348 in ffi_call_SYSV.
3349 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3350 Aka FFI_SYSV.
3351 (ffi_closure_helper_SYSV): Likewise.
3352 * src/powerpc/ppc_closure.S: Add return types for small structures.
3353 * src/powerpc/sysv.S: Add bits to handle small structures for
3354 final SYSV 4 ABI.
3355
33562005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3357
3358 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3359 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3360 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3361
33622005-07-05 Randolph Chung <tausq@debian.org>
3363
3364 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3365 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3366 structures. Kill compilation warnings.
3367 (ffi_closure_inner_LINUX): Print return values as hex in debug
3368 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3369 Properly handle 5-7 byte structure returns.
3370 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3371 (FFI_TYPE_SMALL_STRUCT2): Remove.
3372 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3373 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3374 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3375 (checksmst1, checksmst2): Remove.
3376 (checksmst3): Optimize handling of 3-byte struct returns.
3377 (checksmst567): Properly handle 5-7 byte struct returns.
3378
33792005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3380
3381 PR libgcj/21943
3382 * src/mips/n32.S: Enforce PIC code.
3383 * src/mips/o32.S: Likewise.
3384
33852005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3386
3387 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3388 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003389
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033902005-06-01 Alan Modra <amodra@bigpond.net.au>
3391
3392 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3393 to call ffi_closure_helper_SYSV. Append @local instead.
3394 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3395
33962005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3397
3398 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3399 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3400 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3401 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3402 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003403
Anthony Greenc6dddbd2009-10-04 08:11:33 -040034042005-05-09 Mike Stump <mrs@apple.com>
3405
3406 * configure: Regenerate.
3407
34082005-05-08 Richard Henderson <rth@redhat.com>
3409
3410 PR libffi/21285
3411 * src/alpha/osf.S: Update unwind into to match code.
3412
34132005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3414 Richard Henderson <rth@redhat.com>
3415
3416 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3417 bit 11 of flags.
3418 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3419 (ffi_prep_closure): Set carry bit if sse-used flag set.
3420 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3421 Only load sse registers if ssecount non-zero.
3422 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3423
34242005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3425
3426 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3427 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3428 * configure: Regenerate.
3429
34302005-04-20 Hans-Peter Nilsson <hp@axis.com>
3431
3432 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3433 have Tcl8.3-compatible intermediate variable.
3434
Anthony Green0cfe60e2009-12-29 10:06:04 -050034352005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003436 Hans-Peter Nilsson <hp@axis.com>
3437
3438 * Makefile.am: Add CRIS support.
3439 * configure.ac: Likewise.
3440 * Makefile.in, configure, testsuite/Makefile.in,
3441 include/Makefile.in: Regenerate.
3442 * src/cris: New directory.
3443 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3444 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3445
3446 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3447 \r?\n in output tests.
3448
34492005-04-12 Mike Stump <mrs@apple.com>
3450
3451 * configure: Regenerate.
3452
34532005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3454
3455 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003456
Anthony Greenc6dddbd2009-10-04 08:11:33 -040034572005-03-30 Steve Ellcey <sje@cup.hp.com>
3458
3459 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3460 (ffi_sarg) Ditto.
3461 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3462 to 64 bits in ILP32 mode.
3463 Load 64 bits even for short data.
3464
34652005-03-23 Mike Stump <mrs@apple.com>
3466
3467 * src/powerpc/darwin.S: Update for -m64 multilib.
3468 * src/powerpc/darwin_closure.S: Likewise.
3469
34702005-03-21 Zack Weinberg <zack@codesourcery.com>
3471
3472 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3473 Do not set tool_include_dir.
3474 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3475 Regenerate.
3476 * include/Makefile.am: Set gcc_version and toollibffidir.
3477 * include/Makefile.in: Regenerate.
3478
34792005-02-22 Andrew Haley <aph@redhat.com>
3480
3481 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3482 odd-numbered register pairs for 64-bit integer types.
3483
34842005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3485
3486 PR libffi/20104
3487 * testsuite/libffi.call/return_ll1.c: New test case.
3488
34892005-02-11 Janis Johnson <janis187@us.ibm.com>
3490
3491 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3492 * testsuite/libffi.call/float.c: Ditto.
3493 * testsuite/libffi.call/float2.c: Ditto.
3494 * testsuite/libffi.call/float3.c: Ditto.
3495
34962005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3497
3498 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3499
35002005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3501
3502 * testsuite/libffi.special/special.exp (cxx_options): Add
3503 -shared-libgcc.
3504
35052004-12-31 Richard Henderson <rth@redhat.com>
3506
3507 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3508 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3509 offset parameters with a type parameter; deduce size and structure
3510 alignment. Update all users.
3511
35122004-12-31 Richard Henderson <rth@redhat.com>
3513
3514 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3515 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3516 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3517 into ffi_prep_closure.
3518 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3519 from scratch.
3520
35212004-12-27 Richard Henderson <rth@redhat.com>
3522
3523 * src/x86/unix64.S: Fix typo in unwind info.
3524
35252004-12-25 Richard Henderson <rth@redhat.com>
3526
3527 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3528 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3529 (merge_classes): Check for it.
3530 (SSE_CLASS_P): New.
3531 (classify_argument): Pass byte_offset by value; perform all updates
3532 inside struct case.
3533 (examine_argument): Add classes argument; handle
3534 X86_64_COMPLEX_X87_CLASS.
3535 (ffi_prep_args): Merge into ...
3536 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3537 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3538 (ffi_fill_return_value): Remove.
3539 (ffi_prep_closure): Remove dead assert.
3540 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3541 Rewrite to use struct register_args instead of va_list. Create
3542 flags for handling structure returns.
3543 * src/x86/unix64.S: Remove dead strings.
3544 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3545 stack frame with ffi_call. Handle structure returns properly.
3546 (float2sse, floatfloat2sse, double2sse): Remove.
3547 (sse2float, sse2double, sse2floatfloat): Remove.
3548 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3549 to handle structure returns properly.
3550
35512004-12-08 David Edelsohn <edelsohn@gnu.org>
3552
3553 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3554 PICFLAG.
3555 * Makefile.in: Regenerated.
3556
35572004-12-02 Richard Sandiford <rsandifo@redhat.com>
3558
3559 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3560 * configure, aclocal.m4, Makefile.in: Regenerate.
3561 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3562
35632004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3564
3565 * configure: Regenerate for libtool change.
3566
35672004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3568
3569 * configure: Regenerate for libtool reversion.
3570
35712004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3572
3573 * configure: Regenerate for libtool change.
3574
35752004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3576
3577 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3578
35792004-11-23 Richard Sandiford <rsandifo@redhat.com>
3580
3581 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3582 of jal. Use an absolute encoding for the frame information.
3583
35842004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3585
3586 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3587 * acinclude.m4: Delete logic for sincludes.
3588 * aclocal.m4, Makefile.in, configure: Regenerate.
3589 * include/Makefile: Likewise.
3590 * testsuite/Makefile: Likewise.
3591
35922004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3593
3594 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3595 on a 8-byte boundary.
3596 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3597
35982004-10-27 Richard Earnshaw <rearnsha@arm.com>
3599
3600 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3601 long long values. Round stack allocation to a multiple of 8 bytes
3602 for ATPCS compatibility.
3603 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3604 names. Handle returning long long types. Add Thumb and interworking
3605 support. Improve soft-float code.
3606
36072004-10-27 Richard Earnshaw <rearnsha@arm.com>
3608
3609 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3610 (libffi_exit): New function.
3611 (libffi_init): Build the testglue wrapper if needed.
3612
36132004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3614
3615 PR other/18138
3616 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3617
36182004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3619
3620 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3621
36222004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3623
3624 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3625 * testsuite/libffi.call/float3.c: New test case.
3626
36272004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3628
3629 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3630 the function returning a structure pointed with R2.
3631 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3632 the structure return value if T bit set. Emit position
3633 independent code and EH data if PIC.
3634
36352004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3636
3637 * Makefile.am: Add m32r support.
3638 * configure.ac: Likewise.
3639 * Makefile.in: Regenerate.
3640 * confiugre: Regenerate.
3641 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3642 (uint64, sint64, double, longdouble)
3643 * src/m32r: New directory.
3644 * src/m32r/ffi.c: New file.
3645 * src/m32r/sysv.S: Likewise.
3646 * src/m32r/ffitarget.h: Likewise.
3647
36482004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3649
3650 * testsuite/libffi.call/negint.c: New test case.
3651
36522004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3653
3654 PR libgcj/17465
3655 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3656 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3657 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3658 DYLD_LIBRARY_PATH.
3659
36602004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3661
3662 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3663 * testsuite/libffi.call/promotion.c: Likewise.
3664 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3665 whitespaces.
3666 * testsuite/libffi.call/return_sc.c: Likewise.
3667 * testsuite/libffi.call/return_uc.c: Likewise.
3668
36692004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3670
3671 * src/powerpc/darwin.S: Fix comments and identation.
3672 * src/powerpc/darwin_closure.S: Likewise.
3673
36742004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3675
3676 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3677 (ffi_prep_args): Handle longdouble arguments.
3678 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3679 longdouble.
3680 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3681 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3682 values.
3683 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3684 * src/types.c: Defined longdouble size and alignment for darwin.
3685
36862004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3687
3688 * src/powerpc/aix.S: Remove whitespaces.
3689 * src/powerpc/aix_closure.S: Likewise.
3690 * src/powerpc/asm.h: Likewise.
3691 * src/powerpc/ffi.c: Likewise.
3692 * src/powerpc/ffitarget.h: Likewise.
3693 * src/powerpc/linux64.S: Likewise.
3694 * src/powerpc/linux64_closure.S: Likewise.
3695 * src/powerpc/ppc_closure.S: Likewise.
3696 * src/powerpc/sysv.S: Likewise.
3697
36982004-08-30 Anthony Green <green@redhat.com>
3699
3700 * Makefile.am: Add frv support.
3701 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3702 * configure.ac: Read configure.host.
3703 * configure.in: Read configure.host.
3704 * configure.host: New file. frv-elf needs libgloss.
3705 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3706 alignment. This is needed to frv and shouldn't harm the others.
3707 * include/ffi_common.h (ALIGN_DOWN): New macro.
3708 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3709
37102004-08-24 David Daney <daney@avtrex.com>
3711
3712 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3713 * testsuite/libffi.call/closure_fn1.c: Likewise.
3714 * testsuite/libffi.call/closure_fn2.c Likewise.
3715 * testsuite/libffi.call/closure_fn3.c: Likewise.
3716 * testsuite/libffi.call/closure_fn4.c: Likewise.
3717 * testsuite/libffi.call/closure_fn5.c: Likewise.
3718 * testsuite/libffi.call/cls_18byte.c: Likewise.
3719 * testsuite/libffi.call/cls_19byte.c: Likewise.
3720 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3721 * testsuite/libffi.call/cls_20byte.c: Likewise.
3722 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3723 * testsuite/libffi.call/cls_24byte.c: Likewise.
3724 * testsuite/libffi.call/cls_2byte.c: Likewise.
3725 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3726 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3727 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3728 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3729 * testsuite/libffi.call/cls_4byte.c: Likewise.
3730 * testsuite/libffi.call/cls_64byte.c: Likewise.
3731 * testsuite/libffi.call/cls_6byte.c: Likewise.
3732 * testsuite/libffi.call/cls_7byte.c: Likewise.
3733 * testsuite/libffi.call/cls_8byte.c: Likewise.
3734 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3735 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3736 * testsuite/libffi.call/cls_align_double.c: Likewise.
3737 * testsuite/libffi.call/cls_align_float.c: Likewise.
3738 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3739 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3740 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3741 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3742 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3743 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3744 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3745 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3746 * testsuite/libffi.call/cls_double.c: Likewise.
3747 * testsuite/libffi.call/cls_float.c: Likewise.
3748 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3749 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3750 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3751 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3752 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3753 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3754 * testsuite/libffi.call/cls_schar.c: Likewise.
3755 * testsuite/libffi.call/cls_sint.c: Likewise.
3756 * testsuite/libffi.call/cls_sshort.c: Likewise.
3757 * testsuite/libffi.call/cls_uchar.c: Likewise.
3758 * testsuite/libffi.call/cls_uint.c: Likewise.
3759 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3760 * testsuite/libffi.call/cls_ushort.c: Likewise.
3761 * testsuite/libffi.call/nested_struct.c: Likewise.
3762 * testsuite/libffi.call/nested_struct1.c: Likewise.
3763 * testsuite/libffi.call/nested_struct2.c: Likewise.
3764 * testsuite/libffi.call/nested_struct3.c: Likewise.
3765 * testsuite/libffi.call/problem1.c: Likewise.
3766 * testsuite/libffi.special/unwindtest.cc: Likewise.
3767 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3768 to zero.
3769 * testsuite/libffi.call/cls_16byte.c: Likewise.
3770 * testsuite/libffi.call/cls_5byte.c: Likewise.
3771
37722004-08-23 David Daney <daney@avtrex.com>
3773
3774 PR libgcj/13141
3775 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3776 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3777 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3778 parameters and return types.
3779 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3780 (ffi_prep_closure): Ditto.
3781 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3782 alignment calculations.
3783 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3784 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3785
37862004-08-14 Casey Marshall <csm@gnu.org>
3787
3788 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3789 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3790 integer (O32 ABI only).
3791 (ffi_prep_closure): new function.
3792 (ffi_closure_mips_inner_O32): new function.
3793 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3794 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3795 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3796 64 bit integers correctly.
3797 (ffi_closure_O32): new function.
3798 Added DWARF-2 unwind info for both functions.
3799
38002004-08-10 Andrew Haley <aph@redhat.com>
3801
3802 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3803
38042004-08-01 Robert Millan <robertmh@gnu.org>
3805
3806 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3807 * configure: Regenerate.
3808
38092004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3810
3811 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3812 and mmap() explicitly instead of relying on preset autoconf cache
3813 variables.
3814 * aclocal.m4: Regenerate.
3815 * configure: Regenerate.
3816
38172004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3818
3819 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3820 (ffi_check_float_struct): Remove unused prototype.
3821
38222004-06-30 Geoffrey Keating <geoffk@apple.com>
3823
3824 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3825 character on Darwin, use '\n\t' instead.
3826
38272004-06-26 Matthias Klose <doko@debian.org>
3828
3829 * libtool-version: Fix typo in revision/age.
3830
38312004-06-17 Matthias Klose <doko@debian.org>
3832
3833 * libtool-version: New.
3834 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3835 * Makefile.in: Regenerate.
3836
38372004-06-15 Paolo Bonzini <bonzini@gnu.org>
3838
3839 * Makefile.am: Remove useless multilib rules.
3840 * Makefile.in: Regenerate.
3841 * aclocal.m4: Regenerate with automake 1.8.5.
3842 * configure.ac: Remove useless multilib configury.
3843 * configure: Regenerate.
3844
38452004-06-15 Paolo Bonzini <bonzini@gnu.org>
3846
3847 * .cvsignore: New file.
3848
38492004-06-10 Jakub Jelinek <jakub@redhat.com>
3850
3851 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3852 fp_done.
3853 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3854 changed from 8.
3855
38562004-06-06 Sean McNeil <sean@mcneil.com>
3857
3858 * configure.ac: Add x86_64-*-freebsd* support.
3859 * configure: Regenerate.
3860
38612004-04-26 Joe Buck <jbuck@welsh-buck.org>
3862
3863 Bug 15093
3864 * configure.ac: Test for existence of mmap and sys/mman.h before
3865 checking blacklist. Fix suggested by Jim Wilson.
3866 * configure: Regenerate.
3867
38682004-04-26 Matt Austern <austern@apple.com>
3869
3870 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3871 FDE location.
3872 * src/powerpc/darwin_closure.S: Likewise.
3873
38742004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3875
3876 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3877 error. Reported by Thomas Heller <theller@python.net>.
3878 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3879 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3880
38812004-03-20 Matthias Klose <doko@debian.org>
3882
3883 * src/pa/linux.S: Fix typo.
3884
38852004-03-19 Matthias Klose <doko@debian.org>
3886
3887 * Makefile.am: Update.
3888 * Makefile.in: Regenerate.
3889 * src/pa/ffi.h.in: Remove.
3890 * src/pa/ffitarget.h: New file.
3891
38922004-02-10 Randolph Chung <tausq@debian.org>
3893
3894 * Makefile.am: Add PA support.
3895 * Makefile.in: Regenerate.
3896 * include/Makefile.in: Regenerate.
3897 * configure.ac: Add PA target.
3898 * configure: Regenerate.
3899 * src/pa/ffi.c: New file.
3900 * src/pa/ffi.h.in: Add PA support.
3901 * src/pa/linux.S: New file.
3902 * prep_cif.c: Add PA support.
3903
39042004-03-16 Hosaka Yuji <hos@tamanegi.org>
3905
3906 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3907 double.
3908 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3909 with ecif->cif->flags.
3910 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3911 with cif->flags.
3912 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3913 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3914 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3915 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3916
39172004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3918
3919 * configure.in: Rename file to ...
3920 * configure.ac: ... this.
3921 * fficonfig.h.in: Regenerate.
3922 * Makefile.in: Regenerate.
3923 * include/Makefile.in: Regenerate.
3924 * testsuite/Makefile.in: Regenerate.
3925
39262004-03-12 Matt Austern <austern@apple.com>
3927
3928 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3929 changes in EH format resulting from addition of linkonce support.
3930 * src/powerpc/darwin_closure.S: Likewise.
3931
39322004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3933 Paolo Bonzini <bonzini@gnu.org>
3934
3935 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3936 Remove VPATH. Remove rules for object files. Remove multilib support.
3937 (AM_CCASFLAGS): Add.
3938 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3939 (AC_PREREQ): Bump version to 2.59.
3940 (AC_INIT): Fill with version info and bug address.
3941 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3942 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3943 De-precious CC so that the right flags are passed down to multilibs.
3944 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3945 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3946 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3947 * configure: Rebuilt.
3948 * aclocal.m4: Likewise.
3949 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3950 * fficonfig.h.in: Likewise.
3951
39522004-03-11 Andreas Schwab <schwab@suse.de>
3953
3954 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3955 arguments from fp registers only for the first 8 parameter slots.
3956 Don't convert a float parameter when passed in memory.
3957
39582004-03-09 Hans-Peter Nilsson <hp@axis.com>
3959
3960 * configure: Regenerate for config/accross.m4 correction.
3961
39622004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3963
3964 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3965 ecif->cif->bytes to bytes.
3966 (ffi_prep_cif_machdep): Add braces around nested if statement.
3967
39682004-02-09 Alan Modra <amodra@bigpond.net.au>
3969
3970 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3971
3972 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3973 (ffi_closure_helper_LINUX64): Fix typo.
3974 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3975 for powerpc64-*-*.
3976 * testsuite/libffi.call/float.c: Likewise.
3977 * testsuite/libffi.call/float2.c: Likewise.
3978
39792004-02-08 Alan Modra <amodra@bigpond.net.au>
3980
3981 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3982 long double function return and long double arg handling.
3983 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3984 Use "end_pfr" instead of "nf". Correct long double handling.
3985 Localise "temp".
3986 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3987 return value.
3988 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3989 space for long double return value. Adjust stack frame and offsets.
3990 Load f2 long double return.
3991
39922004-02-07 Alan Modra <amodra@bigpond.net.au>
3993
3994 * src/types.c: Use 16 byte long double for POWERPC64.
3995
39962004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3997
3998 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3999 when the structure return address is passed in %o0.
4000 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4001 (ffi_v9_layout_struct): Align the field following a nested structure
4002 on a word boundary. Use memmove instead of memcpy.
4003 (ffi_call): Update call to ffi_V9_return_struct.
4004 (ffi_prep_closure): Define 'ctx' only for V8.
4005 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4006 and ffi_closure_sparc_inner_v9.
4007 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4008 Always skip the structure return address. For structures and long
4009 doubles, copy the argument directly.
4010 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4011 if required. Shift the maximum floating-point slot accordingly. For
4012 big structures, copy the argument directly; otherwise, left-justify the
4013 argument and call ffi_v9_layout_struct to lay out the structure on
4014 the stack.
4015 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4016 (ffi_closure_v8): Pass the structure return address. Update call to
4017 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4018 Skip the 'unimp' insn when returning long doubles and structures.
4019 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4020 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4021 FFI_TYPE_INT handling. Load structures both in integers and
4022 floating-point registers on return.
4023 * README: Update status of the SPARC port.
4024
40252004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4026
4027 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4028 as of type ffi_arg.
4029 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4030
40312004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4032
4033 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4034 value as of type ffi_arg, not unsigned int.
4035
40362004-01-21 Michael Ritzert <ritzert@t-online.de>
4037
4038 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4039 of the LHS.
4040
40412004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4042
4043 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4044 Solaris.
4045
40462004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4047
4048 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4049 to void *.
4050
40512003-12-10 Richard Henderson <rth@redhat.com>
4052
4053 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4054 size_t instead of int.
4055
40562003-12-04 Hosaka Yuji <hos@tamanegi.org>
4057
4058 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4059 * testsuite/libffi.call/many_win32.c (main): Replace variable
4060 int i with unsigned long ul.
4061
4062 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4063 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4064 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4065 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4066 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4067 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4068 * testsuite/libffi.call/cls_align_float.c: Likewise.
4069 * testsuite/libffi.call/cls_align_double.c: Likewise.
4070 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4071 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4072
40732003-12-02 Hosaka Yuji <hos@tamanegi.org>
4074
4075 PR other/13221
4076 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4077 Align arguments to 32 bits.
4078
40792003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4080
4081 PR other/13221
4082 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4083 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4084 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4085 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4086 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4087 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4088
4089 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4090
40912003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4092
4093 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4094 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4095
40962003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4097
4098 * Makefile.in: Rebuilt.
4099 * configure: Likewise.
4100 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4101 the right type.
4102
41032003-11-21 Andreas Jaeger <aj@suse.de>
4104 Andreas Tobler <a.tobler@schweiz.ch>
4105
4106 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4107 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4108 * Makefile.in: Rebuilt.
4109 * aclocal.m4: Likewise.
4110 * configure: Likewise.
4111 * fficonfig.h.in: Likewise.
4112 * testsuite/lib/libffi-dg.exp: Add include dir.
4113 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4114 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4115 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4116 for ffi_closure if available.
4117 * testsuite/libffi.call/closure_fn1.c: Likewise.
4118 * testsuite/libffi.call/closure_fn2.c: Likewise.
4119 * testsuite/libffi.call/closure_fn3.c: Likewise.
4120 * testsuite/libffi.call/closure_fn4.c: Likewise.
4121 * testsuite/libffi.call/closure_fn5.c: Likewise.
4122 * testsuite/libffi.call/cls_12byte.c: Likewise.
4123 * testsuite/libffi.call/cls_16byte.c: Likewise.
4124 * testsuite/libffi.call/cls_18byte.c: Likewise.
4125 * testsuite/libffi.call/cls_19byte.c: Likewise.
4126 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4127 * testsuite/libffi.call/cls_20byte.c: Likewise.
4128 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4129 * testsuite/libffi.call/cls_24byte.c: Likewise.
4130 * testsuite/libffi.call/cls_2byte.c: Likewise.
4131 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4132 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4133 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4134 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4135 * testsuite/libffi.call/cls_4byte.c: Likewise.
4136 * testsuite/libffi.call/cls_5byte.c: Likewise.
4137 * testsuite/libffi.call/cls_64byte.c: Likewise.
4138 * testsuite/libffi.call/cls_6byte.c: Likewise.
4139 * testsuite/libffi.call/cls_7byte.c: Likewise.
4140 * testsuite/libffi.call/cls_8byte.c: Likewise.
4141 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4142 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4143 * testsuite/libffi.call/cls_double.c: Likewise.
4144 * testsuite/libffi.call/cls_float.c: Likewise.
4145 * testsuite/libffi.call/cls_schar.c: Likewise.
4146 * testsuite/libffi.call/cls_sint.c: Likewise.
4147 * testsuite/libffi.call/cls_sshort.c: Likewise.
4148 * testsuite/libffi.call/cls_uchar.c: Likewise.
4149 * testsuite/libffi.call/cls_uint.c: Likewise.
4150 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4151 * testsuite/libffi.call/cls_ushort.c: Likewise.
4152 * testsuite/libffi.call/nested_struct.c: Likewise.
4153 * testsuite/libffi.call/nested_struct1.c: Likewise.
4154 * testsuite/libffi.call/nested_struct2.c: Likewise.
4155 * testsuite/libffi.call/nested_struct3.c: Likewise.
4156 * testsuite/libffi.call/problem1.c: Likewise.
4157 * testsuite/libffi.special/unwindtest.cc: Likewise.
4158
41592003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4160
4161 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4162
41632003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4164
4165 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4166 Add -lgcc_s to additional flags.
4167
41682003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4169
4170 * configure.in, include/Makefile.am: PR libgcj/11147, install
4171 the ffitarget.h header file in a gcc versioned and target
4172 dependent place.
4173 * configure: Regenerated.
4174 * Makefile.in, include/Makefile.in: Likewise.
4175 * testsuite/Makefile.in: Likewise.
4176
41772003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4178
4179 * testsuite/libffi.call/closure_fn0.c: Print result and check
4180 with dg-output to make debugging easier.
4181 * testsuite/libffi.call/closure_fn1.c: Likewise.
4182 * testsuite/libffi.call/closure_fn2.c: Likewise.
4183 * testsuite/libffi.call/closure_fn3.c: Likewise.
4184 * testsuite/libffi.call/closure_fn4.c: Likewise.
4185 * testsuite/libffi.call/closure_fn5.c: Likewise.
4186 * testsuite/libffi.call/cls_12byte.c: Likewise.
4187 * testsuite/libffi.call/cls_16byte.c: Likewise.
4188 * testsuite/libffi.call/cls_18byte.c: Likewise.
4189 * testsuite/libffi.call/cls_19byte.c: Likewise.
4190 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4191 * testsuite/libffi.call/cls_20byte.c: Likewise.
4192 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4193 * testsuite/libffi.call/cls_24byte.c: Likewise.
4194 * testsuite/libffi.call/cls_2byte.c: Likewise.
4195 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4196 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4197 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4198 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4199 * testsuite/libffi.call/cls_4byte.c: Likewise.
4200 * testsuite/libffi.call/cls_5byte.c: Likewise.
4201 * testsuite/libffi.call/cls_64byte.c: Likewise.
4202 * testsuite/libffi.call/cls_6byte.c: Likewise.
4203 * testsuite/libffi.call/cls_7byte.c: Likewise.
4204 * testsuite/libffi.call/cls_8byte.c: Likewise.
4205 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4206 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4207 * testsuite/libffi.call/cls_double.c: Likewise.
4208 * testsuite/libffi.call/cls_float.c: Likewise.
4209 * testsuite/libffi.call/cls_schar.c: Likewise.
4210 * testsuite/libffi.call/cls_sint.c: Likewise.
4211 * testsuite/libffi.call/cls_sshort.c: Likewise.
4212 * testsuite/libffi.call/cls_uchar.c: Likewise.
4213 * testsuite/libffi.call/cls_uint.c: Likewise.
4214 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4215 * testsuite/libffi.call/cls_ushort.c: Likewise.
4216 * testsuite/libffi.call/problem1.c: Likewise.
4217
4218 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4219 static.
4220
42212003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4222
4223 * testsuite/libffi.call/cls_9byte2.c: New test case.
4224 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4225 * testsuite/libffi.call/cls_64byte.c: Likewise.
4226 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4227 * testsuite/libffi.call/cls_19byte.c: Likewise.
4228 * testsuite/libffi.call/cls_18byte.c: Likewise.
4229 * testsuite/libffi.call/closure_fn4.c: Likewise.
4230 * testsuite/libffi.call/closure_fn5.c: Likewise.
4231 * testsuite/libffi.call/cls_schar.c: Likewise.
4232 * testsuite/libffi.call/cls_sint.c: Likewise.
4233 * testsuite/libffi.call/cls_sshort.c: Likewise.
4234 * testsuite/libffi.call/nested_struct2.c: Likewise.
4235 * testsuite/libffi.call/nested_struct3.c: Likewise.
4236
42372003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4238
4239 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4240 * testsuite/libffi.call/cls_uchar.c: Likewise.
4241 * testsuite/libffi.call/cls_uint.c: Likewise.
4242 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4243 * testsuite/libffi.call/cls_ushort.c: Likewise.
4244 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4245
42462003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4247
4248 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4249 the initialization.
4250
42512003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4252
4253 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4254 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4255
42562003-10-22 David Daney <ddaney@avtrex.com>
4257
4258 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4259 __attribute__((__mode__(__SI__))) and friends.
4260
42612003-10-22 Andreas Schwab <schwab@suse.de>
4262
4263 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4264
42652003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4266
4267 * configure.in: AC_LINK_FILES(ffitarget.h).
4268 * configure: Regenerate.
4269 * Makefile.in: Likewise.
4270 * include/Makefile.in: Likewise.
4271 * testsuite/Makefile.in: Likewise.
4272 * fficonfig.h.in: Likewise.
4273
42742003-10-21 Paolo Bonzini <bonzini@gnu.org>
4275 Richard Henderson <rth@redhat.com>
4276
4277 Avoid that ffi.h includes fficonfig.h.
4278
4279 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4280 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4281 (TARGET_SRC_MIPS_SGI): Removed.
4282 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4283 (MIPS_SGI): Removed.
4284 (CLEANFILES): Removed.
4285 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4286 targets.
4287 * acconfig.h: Removed.
4288 * configure.in: Compute sizeofs only for double and long double.
4289 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4290 into AC_DEFINE instead of using acconfig.h. Create
4291 include/ffitarget.h instead of include/fficonfig.h. Rename
4292 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4293 AC_DEFINE EH_FRAME_FLAGS.
4294 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4295 (hack_DATA): Add ffitarget.h.
4296 * include/ffi.h.in: Remove all system specific definitions.
4297 Declare raw API even if it is not installed, why bother?
4298 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4299 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4300 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4301 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4302 * include/ffi_common.h (bool): Do not define.
4303 (ffi_assert): Accept failed assertion.
4304 (ffi_type_test): Return void and accept file/line.
4305 (FFI_ASSERT): Pass stringized failed assertion.
4306 (FFI_ASSERT_AT): New macro.
4307 (FFI_ASSERT_VALID_TYPE): New macro.
4308 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4309 UINT64, SINT64): Define here with gcc's __attribute__ macro
4310 instead of in ffi.h
4311 (FLOAT32, ALIGN): Define here instead of in ffi.h
4312 * include/ffi-mips.h: Removed. Its content moved to
4313 src/mips/ffitarget.h after separating assembly and C sections.
4314 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4315 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4316 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4317 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4318 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4319 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4320 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4321 (ffi_type_test): Rewritten.
4322 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4323 FFI_ASSERT_VALID_TYPE.
4324 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4325 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4326 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4327 src/s390/ffitarget.h, src/sh/ffitarget.h,
4328 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4329 src/x86/ffitarget.h: New files.
4330 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4331 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4332 src/powerpc/aix.S, src/powerpc/darwin.S,
4333 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4334 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4335 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4336 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4337 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4338 include fficonfig.h
4339
43402003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4341
4342 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4343 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4344
43452003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4346
4347 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4348 Used when FFI_DEBUG = 1.
4349
43502003-10-14 Alan Modra <amodra@bigpond.net.au>
4351
4352 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4353 and align.
4354
43552003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4356
4357 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4358 FFI_MIPS_O32 for O32 ABI.
4359
43602003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4361
4362 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4363 SPARC64. Cleanup whitespaces.
4364
43652003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4366
4367 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4368 strongarm, xscale. Cleanup whitespaces.
4369 * testsuite/libffi.call/closure_fn1.c: Likewise.
4370 * testsuite/libffi.call/closure_fn2.c: Likewise.
4371 * testsuite/libffi.call/closure_fn3.c: Likewise.
4372 * testsuite/libffi.call/cls_12byte.c: Likewise.
4373 * testsuite/libffi.call/cls_16byte.c: Likewise.
4374 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4375 * testsuite/libffi.call/cls_20byte.c: Likewise.
4376 * testsuite/libffi.call/cls_24byte.c: Likewise.
4377 * testsuite/libffi.call/cls_2byte.c: Likewise.
4378 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4379 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4380 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4381 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4382 * testsuite/libffi.call/cls_4byte.c: Likewise.
4383 * testsuite/libffi.call/cls_5byte.c: Likewise.
4384 * testsuite/libffi.call/cls_6byte.c: Likewise.
4385 * testsuite/libffi.call/cls_7byte.c: Likewise.
4386 * testsuite/libffi.call/cls_8byte.c: Likewise.
4387 * testsuite/libffi.call/cls_double.c: Likewise.
4388 * testsuite/libffi.call/cls_float.c: Likewise.
4389 * testsuite/libffi.call/cls_uchar.c: Likewise.
4390 * testsuite/libffi.call/cls_uint.c: Likewise.
4391 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4392 * testsuite/libffi.call/cls_ushort.c: Likewise.
4393 * testsuite/libffi.call/nested_struct.c: Likewise.
4394 * testsuite/libffi.call/nested_struct1.c: Likewise.
4395 * testsuite/libffi.call/problem1.c: Likewise.
4396 * testsuite/libffi.special/unwindtest.cc: Likewise.
4397 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4398
43992003-09-18 David Edelsohn <edelsohn@gnu.org>
4400
4401 * src/powerpc/aix.S: Cleanup whitespaces.
4402 * src/powerpc/aix_closure.S: Likewise.
4403
44042003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4405
4406 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4407 * src/powerpc/darwin_closure.S: Likewise.
4408 * src/powerpc/ffi_darwin.c: Likewise.
4409
44102003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4411 David Edelsohn <edelsohn@gnu.org>
4412
4413 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4414 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4415 parameter stack.
4416 * src/powerpc/darwin_closure.S: Likewise.
4417 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4418 according to the Darwin/AIX ABI.
4419 (ffi_prep_cif_machdep): Likewise.
4420 (ffi_closure_helper_DARWIN): Likewise.
4421 Remove the outgoing parameter stack logic. Simplify the evaluation
4422 of the different CASE types.
4423 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4424 statement in the trampoline code.
4425
44262003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4427
4428 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4429 for the register size.
4430 (ffi_closure_helper_SYSV): Handle the structure return value
4431 address correctly.
4432 (ffi_closure_helper_SYSV): Return the appropriate type when
4433 the registers are used for the structure return value.
4434 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4435 the 64-bit return value. Update copyright years.
4436
44372003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4438
4439 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4440 srcdir for ffi_mips.h.
4441
44422003-09-12 Alan Modra <amodra@bigpond.net.au>
4443
4444 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4445 structure size.
4446 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4447 placement of float result.
4448 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4449 cast of "resp" for big-endian 64 bit machines.
4450
44512003-09-11 Alan Modra <amodra@bigpond.net.au>
4452
4453 * src/types.c (double, longdouble): Merge identical SH and ARM
4454 typedefs, and add POWERPC64.
4455 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4456 struct split over gpr and rest.
4457 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4458 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4459
44602003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4461
4462 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4463 passing correctly.
4464
44652003-09-09 Alan Modra <amodra@bigpond.net.au>
4466
4467 * configure: Regenerate.
4468
44692003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4470
4471 * Makefile.am: Remove build rules for ffitest.
4472 * Makefile.in: Rebuilt.
4473
44742003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4475
4476 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4477 about implicit declaration of abort().
4478
44792003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4480
4481 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4482 * Makefile.in: Rebuilt.
4483 * configure.in: Add dejagnu test framework.
4484 * configure: Rebuilt.
4485
4486 * testsuite/Makefile.am: New file.
4487 * testsuite/Makefile.in: Built
4488 * testsuite/lib/libffi-dg.exp: New file.
4489 * testsuite/config/default.exp: Likewise.
4490 * testsuite/libffi.call/call.exp: Likewise.
4491 * testsuite/libffi.call/ffitest.h: Likewise.
4492 * testsuite/libffi.call/closure_fn0.c: Likewise.
4493 * testsuite/libffi.call/closure_fn1.c: Likewise.
4494 * testsuite/libffi.call/closure_fn2.c: Likewise.
4495 * testsuite/libffi.call/closure_fn3.c: Likewise.
4496 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4497 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4498 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4499 * testsuite/libffi.call/cls_2byte.c: Likewise.
4500 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4501 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4502 * testsuite/libffi.call/cls_4byte.c: Likewise.
4503 * testsuite/libffi.call/cls_5byte.c: Likewise.
4504 * testsuite/libffi.call/cls_6byte.c: Likewise.
4505 * testsuite/libffi.call/cls_7byte.c: Likewise.
4506 * testsuite/libffi.call/cls_8byte.c: Likewise.
4507 * testsuite/libffi.call/cls_12byte.c: Likewise.
4508 * testsuite/libffi.call/cls_16byte.c: Likewise.
4509 * testsuite/libffi.call/cls_20byte.c: Likewise.
4510 * testsuite/libffi.call/cls_24byte.c: Likewise.
4511 * testsuite/libffi.call/cls_double.c: Likewise.
4512 * testsuite/libffi.call/cls_float.c: Likewise.
4513 * testsuite/libffi.call/cls_uchar.c: Likewise.
4514 * testsuite/libffi.call/cls_uint.c: Likewise.
4515 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4516 * testsuite/libffi.call/cls_ushort.c: Likewise.
4517 * testsuite/libffi.call/float.c: Likewise.
4518 * testsuite/libffi.call/float1.c: Likewise.
4519 * testsuite/libffi.call/float2.c: Likewise.
4520 * testsuite/libffi.call/many.c: Likewise.
4521 * testsuite/libffi.call/many_win32.c: Likewise.
4522 * testsuite/libffi.call/nested_struct.c: Likewise.
4523 * testsuite/libffi.call/nested_struct1.c: Likewise.
4524 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4525 * testsuite/libffi.call/problem1.c: Likewise.
4526 * testsuite/libffi.call/promotion.c: Likewise.
4527 * testsuite/libffi.call/return_ll.c: Likewise.
4528 * testsuite/libffi.call/return_sc.c: Likewise.
4529 * testsuite/libffi.call/return_uc.c: Likewise.
4530 * testsuite/libffi.call/strlen.c: Likewise.
4531 * testsuite/libffi.call/strlen_win32.c: Likewise.
4532 * testsuite/libffi.call/struct1.c: Likewise.
4533 * testsuite/libffi.call/struct2.c: Likewise.
4534 * testsuite/libffi.call/struct3.c: Likewise.
4535 * testsuite/libffi.call/struct4.c: Likewise.
4536 * testsuite/libffi.call/struct5.c: Likewise.
4537 * testsuite/libffi.call/struct6.c: Likewise.
4538 * testsuite/libffi.call/struct7.c: Likewise.
4539 * testsuite/libffi.call/struct8.c: Likewise.
4540 * testsuite/libffi.call/struct9.c: Likewise.
4541 * testsuite/libffi.special/special.exp: New file.
4542 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4543 * testsuite/libffi.special/unwindtest.cc: Likewise.
4544
4545
45462003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4547
4548 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4549 copyright years.
4550
45512003-08-02 Alan Modra <amodra@bigpond.net.au>
4552
4553 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4554 structure passing.
4555 (ffi_closure_helper_LINUX64): Likewise.
4556 * src/powerpc/linux64.S: Remove code writing to parm save area.
4557 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4558 address in lr from ffi_closure_helper_LINUX64 call to calculate
4559 table address. Optimize function tail.
4560
45612003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4562
4563 * src/sparc/ffi.c: Handle all floating point registers.
4564 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4565
45662003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4567
4568 * README: Note that libffi is not part of GCC. Update the project
4569 URL and status.
4570
45712003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4572
4573 * src/powerpc/ppc_closure.S: Include ffi.h.
4574
45752003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4576
4577 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4578 Use C style comments.
4579
45802003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4581
4582 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4583 * Makefile.in: Regenerate.
4584 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4585 * configure: Regenerate.
4586 * include/ffi.h.in: Add SHmedia support.
4587 * src/sh64/ffi.c: New file.
4588 * src/sh64/sysv.S: New file.
4589
45902003-05-16 Jakub Jelinek <jakub@redhat.com>
4591
4592 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4593 should be read-only.
4594 * configure: Rebuilt.
4595 * fficonfig.h.in: Rebuilt.
4596 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4597 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4598 * src/powerpc/linux64.S: Likewise.
4599 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4600 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4601 if -fpic/-fPIC/-mrelocatable.
4602 * src/powerpc/powerpc_closure.S: Likewise.
4603 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4604 #write in .eh_frame flags.
4605 * src/sparc/v9.S: Likewise.
4606 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4607 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4608 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4609
46102003-05-07 Jeff Sturm <jsturm@one-point.com>
4611
4612 Fixes PR bootstrap/10656
4613 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4614 support for .register pseudo-op.
4615 * src/sparc/v8.S: Use it.
4616 * fficonfig.h.in: Rebuilt.
4617 * configure: Rebuilt.
4618
46192003-04-18 Jakub Jelinek <jakub@redhat.com>
4620
4621 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4622 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4623 Make it the default on POWERPC64.
4624 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4625 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4626 * configure: Rebuilt.
4627 * src/powerpc/ffi.c (hidden): Define.
4628 (ffi_prep_args_SYSV): Renamed from
4629 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4630 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4631 ASM_NEEDS_REGISTERS64): New.
4632 (ffi_prep_args64): New function.
4633 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4634 (ffi_call): Likewise.
4635 (ffi_prep_closure): Likewise.
4636 (flush_icache): Surround by #ifndef POWERPC64.
4637 (ffi_dblfl): New union type.
4638 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4639 (ffi_closure_helper_LINUX64): New function.
4640 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4641 __powerpc64__.
4642 * src/powerpc/sysv.S: Likewise.
4643 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4644 * src/powerpc/linux64.S: New file.
4645 * src/powerpc/linux64_closure.S: New file.
4646 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4647 src/powerpc/linux64_closure.S.
4648 (TARGET_SRC_POWERPC): Likewise.
4649
4650 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4651 closure_test_fn3): Fix result printing on big-endian 64-bit
4652 machines.
4653 (main): Print tst2_arg instead of uninitialized tst2_result.
4654
4655 * src/ffitest.c (main): Hide what closure pointer really points to
4656 from the compiler.
4657
46582003-04-16 Richard Earnshaw <rearnsha@arm.com>
4659
4660 * configure.in (arm-*-netbsdelf*): Add configuration.
4661 (configure): Regenerated.
4662
46632003-04-04 Loren J. Rittle <ljrittle@acm.org>
4664
4665 * include/Makefile.in: Regenerate.
4666
46672003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4668
4669 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4670 bit mode.
4671 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4672 Receive closure pointer through parameter, read args using
4673 __builtin_dwarf_cfa.
4674 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4675
46762003-03-12 Andreas Schwab <schwab@suse.de>
4677
4678 * configure.in: Avoid trailing /. in toolexeclibdir.
4679 * configure: Rebuilt.
4680
46812003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4682
4683 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4684
46852003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4686
4687 * libffi/src/powerpc/darwin_closure.S:
4688 Fix alignement bug, allocate 8 bytes for the result.
4689 * libffi/src/powerpc/aix_closure.S:
4690 Likewise.
4691 * libffi/src/powerpc/ffi_darwin.c:
4692 Update stackframe description for aix/darwin_closure.S.
4693
46942003-02-06 Jakub Jelinek <jakub@redhat.com>
4695
4696 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4697 attribute.
4698
46992003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4700 Andreas Schwab <schwab@suse.de>
4701
4702 * configure.in: Adjust command to source config-ml.in to account
4703 for changes to the libffi_basedir definition.
4704 (libffi_basedir): Remove ${srcdir} from value and include trailing
4705 slash if nonempty.
4706
4707 * configure: Regenerate.
4708
47092003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4710
4711 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4712
47132003-01-28 Andrew Haley <aph@redhat.com>
4714
4715 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4716 * src/x86/ffi64.c (ffi_prep_closure): New.
4717 (ffi_closure_UNIX64_inner): New.
4718 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4719
47202003-01-27 Alexandre Oliva <aoliva@redhat.com>
4721
4722 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4723 Remove USE_LIBDIR conditional.
4724 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4725 * Makefile.in, configure: Rebuilt.
4726
47272003-01027 David Edelsohn <edelsohn@gnu.org>
4728
4729 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4730 * Makefile.in: Regenerate.
4731
47322003-01-22 Andrew Haley <aph@redhat.com>
4733
4734 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4735 unwind info.
4736
47372003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4738
4739 * src/powerpc/darwin.S: Add unwind info.
4740 * src/powerpc/darwin_closure.S: Likewise.
4741
47422003-01-14 Andrew Haley <aph@redhat.com>
4743
4744 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4745 (ffi_prep_cif_machdep): Likewise.
4746 * src/x86/unix64.S: Add unwind info.
4747
47482003-01-14 Andreas Jaeger <aj@suse.de>
4749
4750 * src/ffitest.c (main): Only use ffi_closures if those are
4751 supported.
4752
47532003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4754
4755 * libffi/src/ffitest.c
4756 add closure testcases
4757
47582003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4759
4760 * libffi/src/powerpc/ffi.c
4761 fix alignment bug for float (4 byte aligned iso 8 byte)
4762
47632003-01-09 Geoffrey Keating <geoffk@apple.com>
4764
4765 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4766 * src/powerpc/darwin.S: Remove RCS version string.
4767
47682003-01-03 Jeff Sturm <jsturm@one-point.com>
4769
4770 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4771 * src/ffitest.c (main): Use static storage for closure.
4772 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4773 * src/sparc/v8.S (ffi_closure_v8): New.
4774 * src/sparc/v9.S (ffi_closure_v9): New.
4775
47762002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4777
4778 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4779 enumeration for X86_WIN32.
4780 * src/x86/win32.S: Added ffi_call_STDCALL function
4781 definition.
4782 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4783 switch cases for recognising FFI_STDCALL and
4784 calling ffi_call_STDCALL if target is X86_WIN32.
4785 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4786 stdcall versions of the "my_strlen" and "many"
4787 test functions (for X86_WIN32).
4788 Added test cases to test stdcall invocation using
4789 these functions.
4790
47912002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4792
4793 * src/sh/sysv.S: Add DWARF2 unwind info.
4794
47952002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4796
4797 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4798
47992002-11-26 Jim Wilson <wilson@redhat.com>
4800
4801 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4802
48032002-11-23 H.J. Lu <hjl@gnu.org>
4804
4805 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4806 Include ../config/accross.m4.
4807 * aclocal.m4; Rebuild.
4808 * configure: Likewise.
4809
48102002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4811
4812 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4813
48142002-11-11 DJ Delorie <dj@redhat.com>
4815
4816 * configure.in: Look for common files in the right place.
4817
48182002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4819
4820 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4821 raw data as _Jv_word values, not ffi_raw.
4822 (ffi_java_ptrarray_to_raw): Likewise.
4823 (ffi_java_rvalue_to_raw): New function.
4824 (ffi_java_raw_call): Call it.
4825 (ffi_java_raw_to_rvalue): New function.
4826 (ffi_java_translate_args): Call it.
4827 * src/ffitest.c (closure_test_fn): Interpret return value
4828 as ffi_arg, not int.
4829 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4830 FFI_TYPE_POINTER case.
4831 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4832 values extended to word size.
4833
48342002-10-02 Andreas Jaeger <aj@suse.de>
4835
4836 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4837
48382002-10-01 Bo Thorsen <bo@smetana.suse.de>
4839
4840 * include/ffi.h.in: Fix i386 win32 compilation.
4841
48422002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4843
4844 * configure.in: Add s390x-*-linux-* target.
4845 * configure: Regenerate.
4846 * include/ffi.h.in: Define S390X for s390x targets.
4847 (FFI_CLOSURES): Define for s390/s390x.
4848 (FFI_TRAMPOLINE_SIZE): Likewise.
4849 (FFI_NATIVE_RAW_API): Likewise.
4850 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4851 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4852 * src/s390/ffi.c: Major rework of existing code. Add support for
4853 s390x targets. Add closure support.
4854 * src/s390/sysv.S: Likewise.
4855
48562002-09-29 Richard Earnshaw <rearnsha@arm.com>
4857
4858 * src/arm/sysv.S: Fix typo.
4859
48602002-09-28 Richard Earnshaw <rearnsha@arm.com>
4861
4862 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4863 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4864 (ffi_call_SYSV): Handle soft-float.
4865
48662002-09-27 Bo Thorsen <bo@suse.de>
4867
4868 * include/ffi.h.in: Fix multilib x86-64 support.
4869
48702002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4871
4872 * Makefile.am (all-multi): Fix multilib parallel build.
4873
48742002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4875
4876 * configure.in (sh[34]*-*-linux*): Add brackets.
4877 * configure: Regenerate.
4878
48792002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4880
4881 * Makefile.am: Add SH support.
4882 * Makefile.in: Regenerate.
4883 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4884 * configure: Regenerate.
4885 * include/ffi.h.in: Add SH support.
4886 * src/sh/ffi.c: New file.
4887 * src/sh/sysv.S: New file.
4888 * src/types.c: Add SH support.
4889
48902002-07-16 Bo Thorsen <bo@suse.de>
4891
4892 * src/x86/ffi64.c: New file that adds x86-64 support.
4893 * src/x86/unix64.S: New file that handles argument setup for
4894 x86-64.
4895 * src/x86/sysv.S: Don't use this on x86-64.
4896 * src/x86/ffi.c: Don't use this on x86-64.
4897 Remove unused vars.
4898 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4899 for x86-64.
4900 * src/ffitest.c (struct6): New test that tests a special case in
4901 the x86-64 ABI.
4902 (struct7): Likewise.
4903 (struct8): Likewise.
4904 (struct9): Likewise.
4905 (closure_test_fn): Silence warning about this when it's not used.
4906 (main): Add the new tests.
4907 (main): Fix a couple of wrong casts and silence some compiler warnings.
4908 * include/ffi.h.in: Add x86-64 ABI definition.
4909 * fficonfig.h.in: Regenerate.
4910 * Makefile.am: Add x86-64 support.
4911 * configure.in: Likewise.
4912 * Makefile.in: Regenerate.
4913 * configure: Likewise.
4914
49152002-06-24 Bo Thorsen <bo@suse.de>
4916
4917 * src/types.c: Merge settings for similar architectures.
4918 Add x86-64 sizes and alignments.
4919
49202002-06-23 Bo Thorsen <bo@suse.de>
4921
4922 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4923 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4924 * src/mips/ffi.c (ffi_prep_args): Likewise.
4925 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4926
49272002-07-18 H.J. Lu (hjl@gnu.org)
4928
4929 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4930 (libffi_la_SOURCES): Support MIPS_LINUX.
4931 (libffi_convenience_la_SOURCES): Likewise.
4932 * Makefile.in: Regenerated.
4933
4934 * configure.in (mips64*-*): Skip.
4935 (mips*-*-linux*): New.
4936 * configure: Regenerated.
4937
4938 * src/mips/ffi.c: Include <sgidefs.h>.
4939
49402002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4941
4942 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4943
49442002-05-27 Roger Sayle <roger@eyesopen.com>
4945
4946 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4947
49482002-05-27 Bo Thorsen <bo@suse.de>
4949
4950 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4951 fix formatting.
4952
49532002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4954
4955 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4956 beginning of function (for older apple cc).
4957
49582002-05-08 Alexandre Oliva <aoliva@redhat.com>
4959
4960 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4961 script entry, and set LD to it when configuring multilibs.
4962 * configure: Rebuilt.
4963
49642002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4965
4966 * configure.in (sparc64-*-netbsd*): Add target.
4967 (sparc-*-netbsdelf*): Likewise.
4968 * configure: Regenerate.
4969
49702002-04-28 David S. Miller <davem@redhat.com>
4971
4972 * configure.in, configure: Fix SPARC test in previous change.
4973
49742002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4975
4976 * Makefile.am: Add Linux for S/390 support.
4977 * Makefile.in: Regenerate.
4978 * configure.in: Add Linux for S/390 support.
4979 * configure: Regenerate.
4980 * include/ffi.h.in: Add Linux for S/390 support.
4981 * src/s390/ffi.c: New file from libffi CVS tree.
4982 * src/s390/sysv.S: New file from libffi CVS tree.
4983
49842002-04-28 Jakub Jelinek <jakub@redhat.com>
4985
4986 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4987 %r_disp32().
4988 * src/sparc/v8.S: Use it.
4989 * src/sparc/v9.S: Likewise.
4990 * fficonfig.h.in: Rebuilt.
4991 * configure: Rebuilt.
4992
49932002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4994
4995 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4996 correctly.
4997 * src/ia64/unix.S: Add unwind information. Fix comments.
4998 Save sp in a way that's compatible with unwind info.
4999 (ffi_call_unix): Correctly restore sp in all cases.
5000 * src/ia64/ffi.c: Add, fix comments.
5001
50022002-04-08 Jakub Jelinek <jakub@redhat.com>
5003
5004 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5005
50062002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5007
5008 * configure.in (alpha*-*-netbsd*): Add target.
5009 * configure: Regenerate.
5010
50112002-04-04 Jeff Sturm <jsturm@one-point.com>
5012
5013 * src/sparc/v8.S: Add unwind info.
5014 * src/sparc/v9.S: Likewise.
5015
50162002-03-30 Krister Walfridsson <cato@df.lth.se>
5017
5018 * configure.in: Enable i*86-*-netbsdelf*.
5019 * configure: Rebuilt.
5020
50212002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5022
5023 PR other/2620
5024 * src/mips/n32.s: Delete
5025 * src/mips/o32.s: Delete
5026
50272002-03-21 Loren J. Rittle <ljrittle@acm.org>
5028
5029 * configure.in: Enable alpha*-*-freebsd*.
5030 * configure: Rebuilt.
5031
50322002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5033
5034 * Makefile.am: libfficonvenience -> libffi_convenience.
5035 * Makefile.in: Rebuilt.
5036
5037 * Makefile.am: Define ffitest_OBJECTS.
5038 * Makefile.in: Rebuilt.
5039
50402002-03-07 Andreas Tobler <toa@pop.agri.ch>
5041 David Edelsohn <edelsohn@gnu.org>
5042
5043 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5044 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5045 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5046 * Makefile.in: Regenerate.
5047 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5048 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5049 (flush_icache, flush_range): New functions.
5050 (ffi_closure_helper_DARWIN): New function.
5051 * src/powerpc/aix_closure.S: New file.
5052 * src/powerpc/darwin_closure.S: New file.
5053
50542002-02-24 Jeff Sturm <jsturm@one-point.com>
5055
5056 * include/ffi.h.in: Add typedef for ffi_arg.
5057 * src/ffitest.c (main): Declare rint with ffi_arg.
5058
50592002-02-21 Andreas Tobler <toa@pop.agri.ch>
5060
5061 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5062 number of GPRs for floating-point arguments.
5063
50642002-01-31 Anthony Green <green@redhat.com>
5065
5066 * configure: Rebuilt.
5067 * configure.in: Replace CHECK_SIZEOF and endian tests with
5068 cross-compiler friendly macros.
5069 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5070 macros.
5071
50722002-01-18 David Edelsohn <edelsohn@gnu.org>
5073
5074 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5075 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5076
50772002-01-17 David Edelsohn <edelsohn@gnu.org>
5078
5079 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5080 (TARGET_SRC_POWERPC_AIX): New.
5081 (POWERPC_AIX): New stanza.
5082 * Makefile.in: Regenerate.
5083 * configure.in: Add AIX case.
5084 * configure: Regenerate.
5085 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5086 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5087 size. Fix "long double" support.
5088 (ffi_call): Add FFI_AIX case.
5089 * src/powerpc/aix.S: New.
5090
50912001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5092
5093 Implement Darwin PowerPC ABI.
5094 * configure.in: Handle powerpc-*-darwin*.
5095 * Makefile.am: Set source files for POWERPC_DARWIN.
5096 * configure: Rebuilt.
5097 * Makefile.in: Rebuilt.
5098 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5099 POWERPC_DARWIN.
5100 * src/powerpc/darwin.S: New file.
5101 * src/powerpc/ffi_darwin.c: New file.
5102
51032001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5104
5105 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5106
51072001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5108
5109 * src/x86/sysv.S: Avoid gas-only .balign directive.
5110 Use C style comments.
5111
51122001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5113
5114 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5115 Fixes PR bootstrap/3563.
5116
51172001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5118
5119 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5120
51212001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5122
5123 * configure.in: Recognize sparc*-sun-* host.
5124 * configure: Regenerate.
5125
51262001-06-06 Andrew Haley <aph@redhat.com>
5127
5128 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5129
51302001-06-03 Andrew Haley <aph@redhat.com>
5131
5132 * src/alpha/osf.S: Add unwind info.
5133 * src/powerpc/sysv.S: Add unwind info.
5134 * src/powerpc/ppc_closure.S: Likewise.
5135
51362000-05-31 Jeff Sturm <jsturm@one-point.com>
5137
5138 * configure.in: Fix AC_ARG_ENABLE usage.
5139 * configure: Rebuilt.
5140
51412001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5142
5143 * configure.in: Remove warning about beta code.
5144 * configure: Rebuilt.
5145
51462001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5147
5148 * src/ia64/unix.S: Restore stack pointer when returning from
5149 ffi_closure_UNIX.
5150 * src/ia64/ffi.c: Fix typo in comment.
5151
51522001-04-18 Jim Wilson <wilson@redhat.com>
5153
5154 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5155 to eliminate RAW DV.
5156
51572001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5158
5159 * Makefile.am: Make a libtool convenience library.
5160 * Makefile.in: Rebuilt.
5161
51622001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5163
5164 * configure.in: Use different syntax for subdirectory creation.
5165 * configure: Rebuilt.
5166
51672001-03-27 Jon Beniston <jon@beniston.com>
5168
5169 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5170 * configure: Rebuilt.
5171 * Makefile.am: Added X86_WIN32 target support.
5172 * Makefile.in: Rebuilt.
5173
5174 * include/ffi.h.in: Added X86_WIN32 target support.
5175
5176 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5177 * src/types.c: Added X86_WIN32 target support.
5178
5179 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5180 stuff removed and made to work with CygWin's gas.
5181
51822001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5183
5184 * configure.in: Make target subdirectory in build dir.
5185 * Makefile.am: Override suffix based rules to specify correct output
5186 subdirectory.
5187 * Makefile.in: Rebuilt.
5188 * configure: Rebuilt.
5189
51902001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5191
5192 * src/powerpc/ppc_closure.S: New file.
5193 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5194 involving long long and register pairs.
5195 (ffi_prep_closure): New function.
5196 (flush_icache): Likewise.
5197 (ffi_closure_helper_SYSV): Likewise.
5198 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5199 (FFI_TRAMPOLINE_SIZE): Likewise.
5200 (FFI_NATIVE_RAW_API): Likewise.
5201 * Makefile.in: Rebuilt.
5202 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5203 (TARGET_SRC_POWERPC): Likewise.
5204
52052001-03-19 Tom Tromey <tromey@redhat.com>
5206
5207 * Makefile.in: Rebuilt.
5208 * Makefile.am (ffitest_LDFLAGS): New macro.
5209
52102001-03-02 Nick Clifton <nickc@redhat.com>
5211
5212 * include/ffi.h.in: Remove RCS ident string.
5213 * include/ffi_mips.h: Remove RCS ident string.
5214 * src/debug.c: Remove RCS ident string.
5215 * src/ffitest.c: Remove RCS ident string.
5216 * src/prep_cif.c: Remove RCS ident string.
5217 * src/types.c: Remove RCS ident string.
5218 * src/alpha/ffi.c: Remove RCS ident string.
5219 * src/alpha/osf.S: Remove RCS ident string.
5220 * src/arm/ffi.c: Remove RCS ident string.
5221 * src/arm/sysv.S: Remove RCS ident string.
5222 * src/mips/ffi.c: Remove RCS ident string.
5223 * src/mips/n32.S: Remove RCS ident string.
5224 * src/mips/o32.S: Remove RCS ident string.
5225 * src/sparc/ffi.c: Remove RCS ident string.
5226 * src/sparc/v8.S: Remove RCS ident string.
5227 * src/sparc/v9.S: Remove RCS ident string.
5228 * src/x86/ffi.c: Remove RCS ident string.
5229 * src/x86/sysv.S: Remove RCS ident string.
5230
52312001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5232
5233 * include/ffi.h.in: Change sourceware.cygnus.com references to
5234 gcc.gnu.org.
5235
52362000-12-09 Richard Henderson <rth@redhat.com>
5237
5238 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5239 (ffi_closure_osf_inner): Index rather than increment avalue
5240 and arg_types. Give ffi_closure_osf the raw return value type.
5241 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5242 promotion.
5243
52442000-12-07 Richard Henderson <rth@redhat.com>
5245
5246 * src/raw_api.c (ffi_translate_args): Fix typo.
5247 (ffi_prep_closure): Likewise.
5248
5249 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5250 FFI_TRAMPOLINE_SIZE.
5251 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5252 cif->bytes for new ffi_call_osf implementation.
5253 (ffi_prep_args): Absorb into ...
5254 (ffi_call): ... here. Do all stack allocation here and
5255 avoid a callback function.
5256 (ffi_prep_closure, ffi_closure_osf_inner): New.
5257 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5258 (ffi_closure_osf): New.
5259
52602000-09-10 Alexandre Oliva <aoliva@redhat.com>
5261
5262 * config.guess, config.sub, install-sh: Removed.
5263 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5264 * Makefile.in: Rebuilt.
5265
5266 * acinclude.m4: Include libtool macros from the top level.
5267 * aclocal.m4, configure: Rebuilt.
5268
52692000-08-22 Alexandre Oliva <aoliva@redhat.com>
5270
5271 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5272 * configure: Rebuilt.
5273
52742000-05-11 Scott Bambrough <scottb@netwinder.org>
5275
5276 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5277 memory correctly. Use conditional instructions, not branches where
5278 possible.
5279
52802000-05-04 Tom Tromey <tromey@cygnus.com>
5281
5282 * configure: Rebuilt.
5283 * configure.in: Match `arm*-*-linux-*'.
5284 From Chris Dornan <cdornan@arm.com>.
5285
52862000-04-28 Jakub Jelinek <jakub@redhat.com>
5287
5288 * Makefile.am (SUBDIRS): Define.
5289 (AM_MAKEFLAGS): Likewise.
5290 (Multilib support.): Add section.
5291 * Makefile.in: Rebuilt.
5292 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5293 New variables. Set for gcc using -print-multi-lib. Export them
5294 to libtool.
5295 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5296 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5297 for -shared links.
5298 (extra_compiler_flags_value, extra_compiler_flags): Check these
5299 for extra compiler options which need to be passed down in
5300 compiler_flags.
5301
53022000-04-16 Anthony Green <green@redhat.com>
5303
5304 * configure: Rebuilt.
5305 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5306
53072000-04-14 Jakub Jelinek <jakub@redhat.com>
5308
5309 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5310 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5311 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5312 Replace all void * sizeofs with sizeof(int).
5313 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5314 different than DOUBLE.
5315 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5316 (ffi_prep_args_v9): New function.
5317 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5318 (ffi_V9_return_struct): New function.
5319 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5320 32bit code (not yet cross-arch calls).
5321 * src/sparc/v8.S: Add struct return delay nop.
5322 Handle long long.
5323 * src/sparc/v9.S: New file.
5324 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5325 is used on sparc64 only for structures larger than 32 bytes.
5326 Pass by reference for structures is done for structure arguments
5327 larger than 16 bytes.
5328 * src/ffitest.c (main): Use 64bit rint on sparc64.
5329 Run long long tests on sparc.
5330 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5331 sparc64.
5332 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5333 on sparc64.
5334 * configure.in (sparc-*-linux*): New supported target.
5335 (sparc64-*-linux*): Likewise.
5336 * configure: Rebuilt.
5337 * Makefile.am: Add v9.S to SPARC files.
5338 * Makefile.in: Likewise.
5339 (LINK): Surround $(CCLD) into double quotes, so that multilib
5340 compiles work correctly.
5341
53422000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5343
5344 * configure: Rebuilt.
5345 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5346 proposed by Bryce McKinlay.
5347
53482000-03-20 Tom Tromey <tromey@cygnus.com>
5349
5350 * Makefile.in: Hand edit for java_raw_api.lo.
5351
53522000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5353
5354 * config.guess, config.sub: Update from the gcc tree.
5355 Fix for PR libgcj/168.
5356
53572000-03-03 Tom Tromey <tromey@cygnus.com>
5358
5359 * Makefile.in: Fixed ia64 by hand.
5360
5361 * configure: Rebuilt.
5362 * configure.in (--enable-multilib): New option.
5363 (libffi_basedir): New subst.
5364 (AC_OUTPUT): Added multilib code.
5365
53662000-03-02 Tom Tromey <tromey@cygnus.com>
5367
5368 * Makefile.in: Rebuilt.
5369 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5370 directory name.
5371
53722000-02-25 Hans Boehm <boehm@acm.org>
5373
5374 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5375 files.
5376 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5377 list.
5378 (ffi_prep_raw_closure): Use ffi_translate_args, not
5379 ffi_closure_translate.
5380 * src/java_raw_api.c: New file.
5381 * src/ffitest.c (closure_test_fn): New function.
5382 (main): Define `rint' as long long on IA64. Added new test when
5383 FFI_CLOSURES is defined.
5384 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5385 (ffi_abi): Recognize IA64.
5386 (ffi_raw): Added `flt' field.
5387 Added "Java raw API" code.
5388 * configure.in: Recognize ia64.
5389 * Makefile.am (TARGET_SRC_IA64): New macro.
5390 (libffi_la_common_SOURCES): Added java_raw_api.c.
5391 (libffi_la_SOURCES): Define in IA64 case.
5392
53932000-01-04 Tom Tromey <tromey@cygnus.com>
5394
5395 * Makefile.in: Rebuilt with newer automake.
5396
53971999-12-31 Tom Tromey <tromey@cygnus.com>
5398
5399 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5400
54011999-09-01 Tom Tromey <tromey@cygnus.com>
5402
5403 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5404 undefs.
5405 * fficonfig.h.in: Rebuilt.
5406 * configure: Rebuilt.
5407 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5408 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5409 * acconfig.h: Don't #undef PACKAGE or VERSION.
5410
54111999-08-09 Anthony Green <green@cygnus.com>
5412
5413 * include/ffi.h.in: Try to work around messy header problem
5414 with PACKAGE and VERSION.
5415
5416 * configure: Rebuilt.
5417 * configure.in: Change version to 2.00-beta.
5418
5419 * fficonfig.h.in: Rebuilt.
5420 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5421
5422 * src/x86/ffi.c (ffi_raw_call): Rename.
5423
54241999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5425
5426 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5427 (ffi_prep_incoming_args_SYSV): Ditto.
5428 (ffi_prep_closure): Ditto.
5429 (ffi_closure_raw_SYSV): Ditto.
5430 (ffi_prep_raw_closure): More ditto.
5431 (ffi_call_raw): Final ditto.
5432
5433 * include/ffi.h.in: Add definitions for closure and raw API.
5434
5435 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5436 FFI_TYPE_UINT64.
5437
5438 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5439
5440 * src/raw_api.c: New file.
5441
5442 * include/ffi.h.in (ffi_raw): New type.
5443 (UINT_ARG, SINT_ARG): New defines.
5444 (ffi_closure, ffi_raw_closure): New types.
5445 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5446
5447 * configure.in: Add check for endianness and sizeof void*.
5448
5449 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5450 instead of directly.
5451
5452 * configure: Rebuilt.
5453
5454Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5455
5456 * configure.in: Add x86 and powerpc BeOS configurations.
5457 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5458
54591999-05-09 Anthony Green <green@cygnus.com>
5460
5461 * configure.in: Add warning about this being beta code.
5462 Remove src/Makefile.am from the picture.
5463 * configure: Rebuilt.
5464
5465 * Makefile.am: Move logic from src/Makefile.am. Add changes
5466 to support libffi as a target library.
5467 * Makefile.in: Rebuilt.
5468
5469 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5470 Upgraded to new autoconf, automake, libtool.
5471
5472 * README: Tweaks.
5473
5474 * LICENSE: Update copyright date.
5475
5476 * src/Makefile.am, src/Makefile.in: Removed.
5477
54781998-11-29 Anthony Green <green@cygnus.com>
5479
5480 * include/ChangeLog: Removed.
5481 * src/ChangeLog: Removed.
5482 * src/mips/ChangeLog: Removed.
5483 * src/sparc/ChangeLog: Remboved.
5484 * src/x86/ChangeLog: Removed.
5485
5486 * ChangeLog.v1: Created.