blob: 87a979af54521f5bdfd846a4816d06abf2ab57a0 [file] [log] [blame]
Anthony Green2f5b7ce2013-11-09 06:16:32 -050012013-11-09 Anthony Green <green@moxielogic.com>
2
3 * m4/libtool.m4: Refresh.
4 * configure, Makefile.in: Rebuilt.
5 * README: Add more notes about next release.
6
72013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp>
8
9 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
10 UltraSPARC-IIi as ultrasparc3.
11
Mark Kettenisbecd7542013-11-06 06:43:49 -0500122013-11-06 Mark Kettenis <kettenis@gnu.org>
13
14 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
15 16-bytes.
16
Konstantin Belousov05c31092013-11-06 06:40:58 -0500172013-11-06 Konstantin Belousov <kib@freebsd.org>
18
19 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
20 source as not requiring executable stack.
21
Anthony Greencf6bf982013-11-02 17:23:59 -0400222013-11-02 Anthony Green <green@moxielogic.com>
23
24 * doc/libffi.texi (The Basics): Clarify return value buffer size
25 requirements. Also, NULL result buffer pointers are no longer
26 supported.
27 * doc/libffi.info: Rebuilt.
28
Anthony Greenc2422172013-11-02 14:08:23 -0700292013-11-02 Mischa Jonker <mjonker@synopsys.com>
30
31 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
32 * Makefile.in: Rebuilt.
33
342013-11-02 David Schneider <david.schneider@bivab.de>
35
36 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
37 * testsuite/libffi.call/many_mixed.c: New file.
38 * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
39
Anthony Greenf4b843f2013-11-02 17:01:15 -0400402013-11-02 Vitaly Budovski
41
42 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
43
Mark H Weaverd3372c52013-10-26 08:30:06 -0400442013-10-23 Mark H Weaver <mhw@netris.org>
45
46 * src/mips/ffi.c: Fix handling of uint32_t arguments on the
47 MIPS N32 ABI.
48
Sandra Loosemore16b93a22013-10-15 15:33:59 -0400492013-10-13 Sandra Loosemore <sandra@codesourcery.com>
50
51 * README: Add Nios II to table of supported platforms.
52 * Makefile.am (EXTRA_DIST): Add nios2 files.
53 (nodist_libffi_la_SOURCES): Likewise.
54 * Makefile.in: Regenerated.
55 * configure.ac (nios2*-linux*): New host.
56 (NIOS2): Add AM_CONDITIONAL.
57 * configure: Regenerated.
58 * src/nios2/ffi.c: New.
59 * src/nios2/ffitarget.h: New.
60 * src/nios2/sysv.S: New.
61 * src/prep_cif.c (initialize_aggregate): Handle extra structure
62 alignment via FFI_AGGREGATE_ALIGNMENT.
63 (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
64
Sandra Loosemore2f5626c2013-10-15 15:32:16 -0400652013-10-10 Sandra Loosemore <sandra@codesourcery.com>
66
67 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
68 Fix uninitialized variable.
69
Marcus Shawcroftf64e4a82013-10-15 15:20:14 -0400702013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
71
72 * testsuite/libffi.call/many.c (many): Replace * with +.
73
Anthony Green128cd1d2013-10-08 06:45:51 -0400742013-10-08 Ondřej Bílka <neleai@seznam.cz>
75
76 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
77 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
78 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
79 src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
80 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
81 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
82 spelling errors.
83
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400842013-10-08 Anthony Green <green@moxielogic.com>
85
86 * aclocal.m4, compile, config.guess, config.sub, depcomp,
87 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
88 * configure.ac: Update version to 3.0.14-rc0.
89 * Makefile.in, configure, Makefile.in, include/Makefile.in,
90 man/Makefile.in, testsuite/Makefile.in: Rebuilt.
Anthony Green128cd1d2013-10-08 06:45:51 -040091 * README: Mention M88K and VAX.
Anthony Greend2fcbcd2013-10-08 06:27:46 -040092
932013-07-15 Miod Vallat <miod@openbsd.org>
94
95 * Makefile.am,
96 configure.ac,
97 src/m88k/ffi.c,
98 src/m88k/ffitarget.h,
99 src/m88k/obsd.S,
100 src/vax/elfbsd.S,
101 src/vax/ffi.c,
102 src/vax/ffitarget.h: Add m88k and vax support.
103
Anthony Greend3d099b2013-07-02 16:11:38 -04001042013-06-24 Alan Modra <amodra@gmail.com>
105
106 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
107 before statements.
108 (ffi_prep_args64): Support little-endian.
109 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
110 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
111 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
112
Mischa Jonkerb082e152013-06-10 16:19:33 +02001132013-06-12 Mischa Jonker <mjonker@synopsys.com>
114
115 * configure.ac: Add support for ARC.
116 * Makefile.am: Likewise.
117 * README: Add ARC details.
118 * src/arc/arcompact.S: New.
119 * src/arc/ffi.c: Likewise.
120 * src/arc/ffitarget.h: Likewise.
121
David Schneider4750e3c2013-03-28 16:56:36 +01001222013-03-28 David Schneider <david.schneider@bivab.de>
123
124 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
125 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
126 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
127 mixed arguments, many doubles.
128 * testsuite/libffi.call/many_double.c: testcase for calling a function using
129 more than 8 doubles.
130 * testcase/libffi.call/many.c: use absolute value to check result against an
131 epsilon
132
Anthony Greencb32c812013-03-17 09:27:55 -04001332013-03-17 Anthony Green <green@moxielogic.com>
134
Anthony Green12b18862013-03-17 18:32:12 -0400135 * README: Update for 3.0.13.
136 * configure.ac: Ditto.
137 * configure: Rebuilt.
138 * doc/*: Update version.
139
1402013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
141
142 * src/closures.c (is_emutramp_enabled
143 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
144 enclosing #if scope.
145
1462013-03-17 Anthony Green <green@moxielogic.com>
147
Anthony Greencb32c812013-03-17 09:27:55 -0400148 * configure.ac: Only modify toolexecdir in certain cases.
149 * configure: Rebuilt.
150
Anthony Green4acf0052013-03-16 08:18:45 -04001512013-03-16 Gilles Talis <gilles.talis@gmail.com>
152
153 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
154 fparg_count,etc on __NO_FPRS__ targets.
155
Anthony Green8a286f52013-03-16 08:01:19 -04001562013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
157
Anthony Green4acf0052013-03-16 08:18:45 -0400158 * src/m68k/sysv.S (epilogue): Don't use extb instruction on
Anthony Green8a286f52013-03-16 08:01:19 -0400159 m680000 machines.
160
Anthony Green211a9eb2013-03-16 04:24:40 -07001612013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
162
163 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
164
Anthony Green2fb527a2013-03-16 07:46:38 -04001652013-03-13 Markos Chandras <markos.chandras@imgtec.com>
166
167 * configure.ac: Add support for Imagination Technologies Meta.
168 * Makefile.am: Likewise.
169 * README: Add Imagination Technologies Meta details.
170 * src/metag/ffi.c: New.
171 * src/metag/ffitarget.h: Likewise.
172 * src/metag/sysv.S: Likewise.
173
Anthony Green675c9832013-03-16 08:12:38 -04001742013-02-24 Andreas Schwab <schwab@linux-m68k.org>
175
176 * doc/libffi.texi (Structures): Fix missing category argument of
177 @deftp.
178
Anthony Greenf308faf2013-02-11 14:25:13 -05001792013-02-11 Anthony Green <green@moxielogic.com>
180
181 * configure.ac: Update release number to 3.0.12.
182 * configure: Rebuilt.
183 * README: Update release info.
184
1852013-02-10 Anthony Green <green@moxielogic.com>
186
187 * README: Add Moxie.
188 * src/moxie/ffi.c: Created.
189 * src/moxie/eabi.S: Created.
190 * src/moxie/ffitarget.h: Created.
191 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
192 * Makefile.in: Rebuilt.
193 * configure.ac: Add Moxie.
194 * configure: Rebuilt.
195 * testsuite/libffi.call/huge_struct.c: Disable format string
196 warnings for moxie*-*-elf tests.
197
1982013-02-10 Anthony Green <green@moxielogic.com>
199
200 * Makefile.am (LTLDFLAGS): Fix reference.
201 * Makefile.in: Rebuilt.
202
Anthony Green4ea22e52013-02-10 08:48:38 -05002032013-02-10 Anthony Green <green@moxielogic.com>
204
205 * README: Update supported platforms. Update test results link.
206
Anthony Green10e77222013-02-10 08:47:26 -05002072013-02-09 Anthony Green <green@moxielogic.com>
208
209 * testsuite/libffi.call/negint.c: Remove forced -O2.
210 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
211 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
212
213 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
214 closure return type fix developed by Martin v. Löwis for cpython
215 fork.
216
Anthony Green70b11b42013-02-08 16:12:19 -05002172013-02-08 Andreas Tobler <andreast@fgznet.ch>
218
219 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
220 support.
221 * src/powerpc/sysv.S: Ditto.
222
Anthony Green63ba1fa2013-02-08 15:18:19 -05002232013-02-08 Anthony Green <green@moxielogic.com>
224
225 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
226 arm*-*-*.
227
2282013-02-08 Anthony Green <green@moxielogic.com>
229
230 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
231
Anthony Green24fbca42013-02-08 14:19:56 -05002322013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -0500233
234 * man/ffi_prep_cif.3: Clean up for debian linter.
235
Anthony Green24fbca42013-02-08 14:19:56 -05002362013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -0500237
238 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
239 on the stack.
240
Anthony Greencb03ea82013-02-08 12:25:18 -05002412013-02-08 Anthony Green <green@moxielogic.com>
242
Anthony Green7aab8252013-02-08 13:26:21 -0500243 * Makefile.am (EXTRA_DIST): Add missing files.
244 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
245 * Makefile.in: Rebuilt.
246
2472013-02-08 Anthony Green <green@moxielogic.com>
248
Anthony Greencb03ea82013-02-08 12:25:18 -0500249 * configure.ac: Move sparc asm config checks to within functions
250 for compatibility with sun tools.
251 * configure: Rebuilt.
252 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
253 systems.
254 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
255 flusher.
256
Anthony Green35ee8d42013-02-08 07:12:41 -05002572013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
258
259 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
260 small big-endian structures.
261 (ffi_prep_args): Ditto.
262
Anthony Greened6ae952013-02-07 16:43:36 -05002632013-02-07 Anthony Green <green@moxielogic.com>
264
Anthony Green9db7e1a2013-02-07 21:06:08 -0500265 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
266 (effectively hiding ffi_call_v8).
267
2682013-02-07 Anthony Green <green@moxielogic.com>
269
Anthony Greence0138e2013-02-07 18:04:01 -0500270 * configure.ac: Update bug reporting address.
271 * configure.in: Rebuild.
272
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500273 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
274 Sun compiler.
275 * src/sparc/ffi.c (ffi_call): Remove warning.
276 Call ffi_flush_icache for non-GCC builds.
277 (ffi_prep_closure_loc): Use ffi_flush_icache.
278
Anthony Greened6ae952013-02-07 16:43:36 -0500279 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
280 * Makefile.in: Rebuilt.
281 * libtool-ldflags: New file.
282
Anthony Greenffef2e02013-02-07 15:47:01 -05002832013-02-07 Daniel Schepler <dschepler@gmail.com>
284
285 * configure.ac: Correctly identify x32 systems as 64-bit.
286 * m4/libtool.m4: Remove libtool expr error.
287 * aclocal.m4, configure: Rebuilt.
288
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05002892013-02-07 Anthony Green <green@moxielogic.com>
290
Anthony Green176aa9d2013-02-07 15:29:22 -0500291 * configure.ac: Fix GCC usage test.
292 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500293 * README: Mention LLVM/GCC x86_64 issue.
294 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500295
2962013-02-07 Anthony Green <green@moxielogic.com>
297
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500298 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
299 comments with /* */ for xlc compiler.
300 * testsuite/libffi.call/stret_large.c (main): Ditto.
301 * testsuite/libffi.call/stret_large2.c (main): Ditto.
302 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
303 * testsuite/libffi.call/huge_struct.c (main): Ditto.
304 * testsuite/libffi.call/float_va.c (main): Ditto.
305 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
306 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
307 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
308 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
309
Anthony Greenf7cd61e2013-02-06 17:38:04 -05003102013-02-06 Anthony Green <green@moxielogic.com>
311
Anthony Green522f8fe2013-02-06 20:31:31 -0500312 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
313
3142013-02-06 Anthony Green <green@moxielogic.com>
315
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500316 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
317 * Makefile.in: Rebuild.
318
Anthony Green6a790122013-02-06 17:37:15 -05003192013-02-02 Mark H Weaver <mhw@netris.org>
320
321 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
322 via general purpose registers.
323
Anthony Greenaeb87192013-01-21 07:37:30 -05003242013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
325
326 * README: Add MicroBlaze details.
327 * Makefile.am: Add MicroBlaze support.
328 * configure.ac: Likewise.
329 * src/microblaze/ffi.c: New.
330 * src/microblaze/ffitarget.h: Likewise.
331 * src/microblaze/sysv.S: Likewise.
332
3332013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
334 * testsuite/libffi.call/return_uc.c: Fixed issue.
335
Anthony Green20cae322013-01-21 07:07:38 -05003362013-01-21 Chris Zankel <chris@zankel.net>
337
338 * README: Add Xtensa support.
339 * Makefile.am: Likewise.
340 * configure.ac: Likewise.
341 * Makefile.in Regenerate.
342 * configure: Likewise.
343 * src/prep_cif.c: Handle Xtensa.
344 * src/xtensa: New directory.
345 * src/xtensa/ffi.c: New file.
346 * src/xtensa/ffitarget.h: Ditto.
347 * src/xtensa/sysv.S: Ditto.
348
Anthony Greenbff052d2013-01-11 10:24:32 -05003492013-01-11 Anthony Green <green@moxielogic.com>
350
Anthony Green05fbe1f2013-01-11 16:54:40 -0500351 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
352 comments with /* */ for xlc compiler.
353 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500354 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
355 deprecated inline function.
356 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500357 * README: Add update for AIX support.
358
3592013-01-11 Anthony Green <green@moxielogic.com>
360
Anthony Greenbff052d2013-01-11 10:24:32 -0500361 * configure.ac: Robustify pc relative reloc check.
362 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
363 changing option for 32-bit x86.
364 * aclocal.m4, configure: Rebuilt.
365 * README: Update supported target list.
366
Anthony Green2d9b3932013-01-09 21:14:54 -05003672013-01-10 Anthony Green <green@moxielogic.com>
368
Anthony Greencd41aea2013-01-10 17:25:45 -0500369 * README (tested): Add Compiler column to table.
370
3712013-01-10 Anthony Green <green@moxielogic.com>
372
Anthony Green8bf987d2013-01-10 17:24:51 -0500373 * src/x86/ffi64.c (struct register_args): Make sse array and array
374 of unions for sunpro compiler compatibility.
375
3762013-01-10 Anthony Green <green@moxielogic.com>
377
Anthony Green13e2d7b2013-01-10 10:52:02 -0500378 * configure.ac: Test target platform size_t size. Handle both 32
379 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
380 CFLAG option to change default settings).
381 * configure, aclocal.m4: Rebuilt.
382
3832013-01-10 Anthony Green <green@moxielogic.com>
384
Anthony Green51415432013-01-10 07:35:53 -0500385 * testsuite/libffi.special/special.exp: Only run exception
386 handling tests when using GNU compiler.
387
Anthony Green56ba8d82013-01-10 07:25:10 -0500388 * m4/ax_compiler_vendor.m4: New file.
389 * configure.ac: Test for compiler vendor and don't use
390 AX_CFLAGS_WARN_ALL with the sun compiler.
391 * aclocal.m4, configure: Rebuilt.
392
3932013-01-10 Anthony Green <green@moxielogic.com>
394
Anthony Green6a028ca2013-01-10 01:19:43 -0500395 * include/ffi_common.h: Don't use GCCisms to define types when
396 building with the SUNPRO compiler.
397
3982013-01-10 Anthony Green <green@moxielogic.com>
399
Anthony Green2d9b3932013-01-09 21:14:54 -0500400 * configure.ac: Put local.exp in the right place.
401 * configure: Rebuilt.
402
403 * src/x86/ffi.c: Update comment about regparm function attributes.
404 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
405 that all function arguments be passed on the stack (no regparm
406 support).
407
Anthony Greenf7879bc2013-01-08 07:30:28 -05004082013-01-08 Anthony Green <green@moxielogic.com>
409
Anthony Green83089842013-01-08 15:14:21 -0500410 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
411 when we are using the vendor compiler.
412 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
413 ../local.exp.
414 * configure, testsuite/Makefile.in: Rebuilt.
415
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500416 * testsuite/libffi.call/call.exp: Run tests with different
417 options, depending on whether or not we are using gcc or the
418 vendor compiler.
419 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
420 whether or not we are building/testing with gcc.
421
4222013-01-08 Anthony Green <green@moxielogic.com>
423
Anthony Green74c776e2013-01-08 12:25:54 -0500424 * configure.ac: Switch x86 solaris target to X86 by default.
425 * configure: Rebuilt.
426
4272013-01-08 Anthony Green <green@moxielogic.com>
428
Anthony Green8962c8c2013-01-08 12:22:24 -0500429 * configure.ac: Fix test for read-only eh_frame.
430 * configure: Rebuilt.
431
4322013-01-08 Anthony Green <green@moxielogic.com>
433
Anthony Green35ddb692013-01-08 07:53:37 -0500434 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
435 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500436 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
437 compiler.
438
Anthony Green8f4772f2013-01-07 06:14:53 -05004392013-01-07 Thorsten Glaser <tg@mirbsd.org>
440
Anthony Green67cea902013-01-07 06:30:24 -0500441 * testsuite/libffi.call/cls_uchar_va.c,
442 testsuite/libffi.call/cls_ushort_va.c,
443 testsuite/libffi.call/va_1.c: Testsuite fixes.
444
4452013-01-07 Thorsten Glaser <tg@mirbsd.org>
446
Anthony Green8f4772f2013-01-07 06:14:53 -0500447 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
448 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
449 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
450
Anthony Greenea7f8442013-01-04 09:09:32 -05004512013-01-04 Anthony Green <green@moxielogic.com>
452
453 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
454 and -Wall. This is set in the configure script after testing for
455 GCC.
456 * Makefile.in: Rebuilt.
457
Anthony Greenf06c0f12013-01-02 09:39:17 -05004582013-01-02 rofl0r <https://github.com/rofl0r>
459
460 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
461 when long double == double.
462
4632013-01-02 Reini Urban <rurban@x-ray.at>
464
465 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
466 (required for shared libs on cygwin/mingw).
467 * Makefile.in: Rebuilt.
468
Anthony Greend3d099b2013-07-02 16:11:38 -04004692012-10-31 Alan Modra <amodra@gmail.co>
Anthony Greendfadfb12012-10-31 06:46:41 -0400470
471 * src/powerpc/linux64_closure.S: Add new ABI support.
472 * src/powerpc/linux64.S: Likewise.
473
Anthony Greene944b8c2012-10-30 14:06:09 -04004742012-10-30 Magnus Granberg <zorry@gentoo.org>
475 Pavel Labushev <pavel.labushev@runbox.ru>
476
477 * configure.ac: New options pax_emutramp
478 * configure, fficonfig.h.in: Regenerated
479 * src/closures.c: New function emutramp_enabled_check() and
480 checks.
481
Anthony Greenf3429962012-10-30 07:42:27 -04004822012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
483
484 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
485 lion) and future version.
486 * configure: Rebuild.
487
Anthony Green58e8b662012-10-30 07:07:19 -04004882012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
489 Marcus Shawcroft <marcus.shawcroft at arm.com>
490
491 * README: Add details of aarch64 port.
492 * src/aarch64/ffi.c: New.
493 * src/aarch64/ffitarget.h: Likewise.
494 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500495 * Makefile.am: Support aarch64.
496 * configure.ac: Support aarch64.
497 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400498
4992012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
500 Marcus Shawcroft <marcus.shawcroft at arm.com>
501
502 * testsuite/lib/libffi.exp: Add support for aarch64.
503 * testsuite/libffi.call/cls_struct_va1.c: New.
504 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
505 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500506 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400507 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
508 * testsuite/libffi.call/nested_struct11.c: Likewise.
509 * testsuite/libffi.call/uninitialized.c: Likewise.
510 * testsuite/libffi.call/va_1.c: Likewise.
511 * testsuite/libffi.call/va_struct1.c: Likewise.
512 * testsuite/libffi.call/va_struct2.c: Likewise.
513 * testsuite/libffi.call/va_struct3.c: Likewise.
514
Anthony Green9c00a3f2012-10-12 16:46:06 -04005152012-10-12 Walter Lee <walt@tilera.com>
516
517 * Makefile.am: Add TILE-Gx/TILEPro support.
518 * configure.ac: Likewise.
519 * Makefile.in: Regenerate.
520 * configure: Likewise.
521 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
522 * src/tile: New directory.
523 * src/tile/ffi.c: New file.
524 * src/tile/ffitarget.h: Ditto.
525 * src/tile/tile.S: Ditto.
526
5272012-10-12 Matthias Klose <doko@ubuntu.com>
528
529 * generate-osx-source-and-headers.py: Normalize whitespace.
530
Anthony Green048d2f42012-10-11 10:55:25 -04005312012-09-14 David Edelsohn <dje.gcc@gmail.com>
532
533 * configure: Regenerated.
534
5352012-08-26 Andrew Pinski <apinski@cavium.com>
536
537 PR libffi/53014
538 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
539 soft-float.
540
5412012-08-08 Uros Bizjak <ubizjak@gmail.com>
542
543 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
544 just return FFI_BAD_ABI when things are wrong.
545
5462012-07-18 H.J. Lu <hongjiu.lu@intel.com>
547
548 PR libffi/53982
549 PR libffi/53973
550 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
551 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
552
5532012-05-16 H.J. Lu <hongjiu.lu@intel.com>
554
555 * configure: Regenerated.
556
Nicolas Lelongd330f192012-05-05 09:37:02 -04005572012-05-05 Nicolas Lelong
558
559 * libffi.xcodeproj/project.pbxproj: Fixes.
560 * README: Update for iOS builds.
561
Anthony Green213ed152012-04-27 01:34:15 -04005622012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
563
564 * configure.ac: Add Blackfin/sysv support
565 * Makefile.am: Add Blackfin/sysv support
566 * src/bfin/ffi.c: Add Blackfin/sysv support
567 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400568
Anthony Green7e0a4122012-04-11 22:47:44 -04005692012-04-11 Anthony Green <green@moxielogic.com>
570
571 * Makefile.am (EXTRA_DIST): Add new script.
572 * Makefile.in: Rebuilt.
573
Zachary Waldowski39e6a582012-04-11 22:39:46 -04005742012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
575
576 * generate-ios-source-and-headers.py,
577 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
578 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
579 generation into an Xcode "run script" phase. Include both as
580 Xcode build scripts. Don't always regenerate config files.
581
Anthony Green853cc722012-04-10 06:33:33 -04005822012-04-10 Anthony Green <green@moxielogic.com>
583
584 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
585
Anthony Green3f502302012-04-06 20:34:51 -04005862012-04-06 Anthony Green <green@moxielogic.com>
587
588 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
589 * Makefile.in: Rebuilt.
590
Mike Lewisebb8e892012-04-06 20:02:08 -04005912012-04-06 Mike Lewis <mikelikespie@gmail.com>
592
593 * generate-ios-source-and-headers.py: New file.
594 * libffi.xcodeproj/project.pbxproj: New file.
595 * README: Update instructions on building iOS binary.
596 * build-ios.sh: Delete.
597
Anthony Greena044a562012-04-06 10:39:10 -04005982012-04-06 Anthony Green <green@moxielogic.com>
599
600 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
601 compilers, then use it.
602
Anthony Green048d2f42012-10-11 10:55:25 -04006032012-04-06 H.J. Lu <hongjiu.lu@intel.com>
604
605 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
606
Anthony Green59bb61a2012-04-06 08:26:14 -04006072012-04-06 Anthony Green <green@moxielogic.com>
608
609 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
610 * testsuite/Makefile.in: Rebuilt.
611
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04006122012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
613
614 * include/ffi.h.in: Add missing trampoline table fields.
615 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
616 in CNAME.
617 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
618
Anthony Green089dbce2013-01-02 08:37:35 -05006192012-04-02 Peter Bergner <bergner@vnet.ibm.com>
620
621 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
622 Silence casting pointer to integer of different size warning.
623 Delete goto to previously deleted label.
624 (ffi_call): Silence possibly undefined warning.
625 (ffi_closure_helper_SYSV): Declare variable type.
626
6272012-04-02 Peter Rosin <peda@lysator.liu.se>
628
629 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
630 value in the Intel version as is already done for the AT&T version.
631 (ffi_closure_SYSV): Likewise.
632 (ffi_closure_raw_SYSV): Likewise.
633 (ffi_closure_STDCALL): Likewise.
634
Peter Rosin0a1ab122012-03-30 08:14:08 -04006352012-03-29 Peter Rosin <peda@lysator.liu.se>
636
637 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
638 generation, fix the ENDP label and remove the surplus third arg
639 from the 'lea' insn.
640
6412012-03-29 Peter Rosin <peda@lysator.liu.se>
642
643 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
644 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
645 it. Also instruct the assembler to add a frame to the function.
646
6472012-03-23 Peter Rosin <peda@lysator.liu.se>
648
649 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
650 * Makefile.in: Rebuilt.
651 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
652 to all data exports, when compiling libffi clients using MSVC.
653
6542012-03-29 Peter Rosin <peda@lysator.liu.se>
655
656 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
657 make it the default for MSVC.
658 (FFI_TYPE_MS_STRUCT): New structure return convention.
659 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
660 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
661 instead of an ordinary FFI_TYPE_STRUCT.
662 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
663 (ffi_call): Likewise.
664 (ffi_prep_incoming_args_SYSV): Likewise.
665 (ffi_raw_call): Likewise.
666 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
667 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
668 return a pointer to the result structure in eax and don't pop
669 that pointer from the stack, the caller takes care of it.
670 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
671 (ffi_closure_raw_SYSV): Likewise.
672
6732012-03-22 Peter Rosin <peda@lysator.liu.se>
674
675 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
676 assembly version with Intel syntax.
677 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
678
6792012-03-23 Peter Rosin <peda@lysator.liu.se>
680
681 * testsuite/libffi.call/ffitest.h: Provide abstration of
682 __attribute__((fastcall)) in the form of a __FASTCALL__
683 define. Define it to __fastcall for MSVC.
684 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
685 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
686 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
687 * testsuite/libffi.call/strlen2_win32.c: Likewise.
688 * testsuite/libffi.call/struct1_win32.c: Likewise.
689 * testsuite/libffi.call/struct2_win32.c: Likewise.
690
6912012-03-22 Peter Rosin <peda@lysator.liu.se>
692
693 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
694 frame on function entry, MASM adds one automatically.
695
6962012-03-22 Peter Rosin <peda@lysator.liu.se>
697
698 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
699 bits in the MSVC headers.
700
7012012-03-22 Peter Rosin <peda@lysator.liu.se>
702
703 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
704 with no declarations after statements.
705 * testsuite/libffi.call/cls_16byte.c: Likewise.
706 * testsuite/libffi.call/cls_18byte.c: Likewise.
707 * testsuite/libffi.call/cls_19byte.c: Likewise.
708 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
709 * testsuite/libffi.call/cls_20byte.c: Likewise.
710 * testsuite/libffi.call/cls_20byte1.c: Likewise.
711 * testsuite/libffi.call/cls_24byte.c: Likewise.
712 * testsuite/libffi.call/cls_2byte.c: Likewise.
713 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
714 * testsuite/libffi.call/cls_3byte1.c: Likewise.
715 * testsuite/libffi.call/cls_3byte2.c: Likewise.
716 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
717 * testsuite/libffi.call/cls_4byte.c: Likewise.
718 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
719 * testsuite/libffi.call/cls_5byte.c: Likewise.
720 * testsuite/libffi.call/cls_64byte.c: Likewise.
721 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
722 * testsuite/libffi.call/cls_6byte.c: Likewise.
723 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
724 * testsuite/libffi.call/cls_7byte.c: Likewise.
725 * testsuite/libffi.call/cls_8byte.c: Likewise.
726 * testsuite/libffi.call/cls_9byte1.c: Likewise.
727 * testsuite/libffi.call/cls_9byte2.c: Likewise.
728 * testsuite/libffi.call/cls_align_double.c: Likewise.
729 * testsuite/libffi.call/cls_align_float.c: Likewise.
730 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
731 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
732 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
733 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
734 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
735 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
736 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
737 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
738 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
739 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
740 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
741 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
742 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
743 * testsuite/libffi.call/huge_struct.c: Likewise.
744 * testsuite/libffi.call/nested_struct.c: Likewise.
745 * testsuite/libffi.call/nested_struct1.c: Likewise.
746 * testsuite/libffi.call/nested_struct10.c: Likewise.
747 * testsuite/libffi.call/nested_struct2.c: Likewise.
748 * testsuite/libffi.call/nested_struct3.c: Likewise.
749 * testsuite/libffi.call/nested_struct4.c: Likewise.
750 * testsuite/libffi.call/nested_struct5.c: Likewise.
751 * testsuite/libffi.call/nested_struct6.c: Likewise.
752 * testsuite/libffi.call/nested_struct7.c: Likewise.
753 * testsuite/libffi.call/nested_struct8.c: Likewise.
754 * testsuite/libffi.call/nested_struct9.c: Likewise.
755 * testsuite/libffi.call/stret_large.c: Likewise.
756 * testsuite/libffi.call/stret_large2.c: Likewise.
757 * testsuite/libffi.call/stret_medium.c: Likewise.
758 * testsuite/libffi.call/stret_medium2.c: Likewise.
759 * testsuite/libffi.call/struct1.c: Likewise.
760 * testsuite/libffi.call/struct1_win32.c: Likewise.
761 * testsuite/libffi.call/struct2.c: Likewise.
762 * testsuite/libffi.call/struct2_win32.c: Likewise.
763 * testsuite/libffi.call/struct3.c: Likewise.
764 * testsuite/libffi.call/struct4.c: Likewise.
765 * testsuite/libffi.call/struct5.c: Likewise.
766 * testsuite/libffi.call/struct6.c: Likewise.
767 * testsuite/libffi.call/struct7.c: Likewise.
768 * testsuite/libffi.call/struct8.c: Likewise.
769 * testsuite/libffi.call/struct9.c: Likewise.
770 * testsuite/libffi.call/testclosure.c: Likewise.
771
Anthony Greene72ed5e2012-03-21 09:52:28 -04007722012-03-21 Peter Rosin <peda@lysator.liu.se>
773
774 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
775 printing doubles (%lf is for long doubles).
776 (main): Likewise.
777
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007782012-03-21 Peter Rosin <peda@lysator.liu.se>
779
780 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
781 (set_ld_library_path_env_vars): Add the library search dir to PATH
782 (and save PATH for later).
783 (restore_ld_library_path_env_vars): Restore PATH.
784
Anthony Greenccee09a2013-01-02 08:41:55 -05007852012-03-21 Peter Rosin <peda@lysator.liu.se>
786
787 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
788 (set_ld_library_path_env_vars): Add the library search dir to PATH
789 (and save PATH for later).
790 (restore_ld_library_path_env_vars): Restore PATH.
791
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007922012-03-20 Peter Rosin <peda@lysator.liu.se>
793
794 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
795 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
796 visible outside the PROC, so that ffi_closure_THISCALL can see it.
797
Anthony Green048d2f42012-10-11 10:55:25 -04007982012-03-20 Peter Rosin <peda@lysator.liu.se>
799
800 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
801 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
802 visible outside the PROC, so that ffi_closure_THISCALL can see it.
803
Anthony Greenbd78c9c2012-03-21 08:09:30 -04008042012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
805
806 * src/m68k/ffi.c: Add MINT support.
807 * src/m68k/sysv.S: Ditto.
808
Anthony Green048d2f42012-10-11 10:55:25 -04008092012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
810
811 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
812 ffi_call_VFP().
813 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
814 ffi_closure_VFP.
815 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
816
Anthony Green089dbce2013-01-02 08:37:35 -05008172012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400818
Anthony Green089dbce2013-01-02 08:37:35 -0500819 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
820 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400821
Anthony Green84d32532012-03-19 23:07:35 -04008222012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
823
824 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
825 just return FFI_BAD_ABI when things are wrong.
826 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
827
8282012-03-09 David Edelsohn <dje.gcc@gmail.com>
829
830 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
831 change to return value of ffi_closure_helper_DARWIN and load type
832 from return type.
833
Anthony Green964c5b92012-03-03 14:46:20 -05008342012-03-03 H.J. Lu <hongjiu.lu@intel.com>
835
836 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
837 long.
838 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
839 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
840 first.
841
842 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
843 (ffi_arg): Set to unsigned long long for x32.
844 (ffi_sarg): Set to long long for x32.
845
8462012-03-03 H.J. Lu <hongjiu.lu@intel.com>
847
848 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
849
Anthony Green6c194232012-03-03 14:17:54 -05008502012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
851
852 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
853 windows-like hosts.
854 * configure: Rebuilt.
855
Anthony Green7c5e60b2012-03-29 08:48:22 -04008562012-02-27 Mikael Pettersson <mikpe@it.uu.se>
857
858 PR libffi/52223
859 * Makefile.am (FLAGS_TO_PASS): Define.
860 * Makefile.in: Regenerate.
861
Anthony Green8360bf12012-02-23 07:01:13 -05008622012-02-23 Anthony Green <green@moxielogic.com>
863
864 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
865 directly.
866
Anthony Green7c5e60b2012-03-29 08:48:22 -04008672012-02-23 Kai Tietz <ktietz@redhat.com>
868
869 PR libffi/52221
870 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
871 prototype.
872 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
873 thiscall-convention.
874 (ffi_raw_call): Use ffi_prep_args_raw.
875 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
876 implementation for stub.
877
Anthony Greendee20f82012-02-10 13:06:46 -05008782012-02-10 Kai Tietz <ktietz@redhat.com>
879
880 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
881 windows target.
882 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500883
Anthony Greendee20f82012-02-10 13:06:46 -05008842012-02-08 Kai Tietz <ktietz@redhat.com>
885
886 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
887 also FFI_THISCALL.
888 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
889 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
890 (ffi_prep_closure_loc): Add FFI_THISCALL support.
891 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
892 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
893 for thiscall-calling convention.
894 * testsuite/libffi.call/closure_thiscall.c: New test.
895
Anthony Green1ff9c602012-02-01 16:34:30 -06008962012-01-28 Kai Tietz <ktietz@redhat.com>
897
898 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
899 argument to prototype for specify calling-convention.
900 (ffi_call): Add support for stdcall/thiscall convention.
901 (ffi_prep_args): Likewise.
902 (ffi_raw_call): Likewise.
903 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
904 FFI_FASTCALL.
905 * src/x86/win32.S (_ffi_call_win32): Add support for
906 fastcall/thiscall calling-convention calls.
907 * testsuite/libffi.call/fastthis1_win32.c: New test.
908 * testsuite/libffi.call/fastthis2_win32.c: New test.
909 * testsuite/libffi.call/fastthis3_win32.c: New test.
910 * testsuite/libffi.call/strlen2_win32.c: New test.
911 * testsuite/libffi.call/many2_win32.c: New test.
912 * testsuite/libffi.call/struct1_win32.c: New test.
913 * testsuite/libffi.call/struct2_win32.c: New test.
914
Anthony Green211060e2012-01-23 14:24:01 -05009152012-01-23 Uros Bizjak <ubizjak@gmail.com>
916
917 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
918
Anthony Green1ff9c602012-02-01 16:34:30 -06009192012-01-23 Anthony Green <green@moxielogic.com>
920 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500921
922 * configure.ac: Add Amiga support.
923 * configure: Rebuilt.
924
9252012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500926
927 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
928
Anthony Green1ff9c602012-02-01 16:34:30 -06009292012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500930
931 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
932 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
933
Anthony Greenc365ee72012-01-23 11:13:18 -05009342012-01-19 Jakub Jelinek <jakub@redhat.com>
935
936 PR rtl-optimization/48496
937 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
938
9392012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
940
941 * configure.ac (i?86-*-*): Set TARGET to X86_64.
942 * configure: Regenerate.
943
9442011-12-07 Andrew Pinski <apinski@cavium.com>
945
946 PR libffi/50051
947 * src/mips/n32.S: Add ".set mips4".
948
9492011-11-21 Andreas Tobler <andreast@fgznet.ch>
950
951 * configure: Regenerate.
952
Anthony Greenff9454d2011-11-12 17:18:51 -05009532011-11-12 David Gilbert <david.gilbert@linaro.org>
954
955 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
956 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
957 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
958 src/cris/ffi.c, src/prep_cif.c,
959 testsuite/libffi.call/cls_double_va.c,
960 testsuite/libffi.call/cls_longdouble_va.c,
961 testsuite/libffi.call/float_va.c: Many changes to support variadic
962 function calls.
963
Anthony Green52891f82011-11-12 16:35:55 -05009642011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
965
966 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
967 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
968 softfloat powerpc variants.
969
Anthony Green6a6e7f82011-11-12 16:20:42 -05009702011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
971
972 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
973 * configure: Rebuilt.
974
Anthony Greend52fbed2011-11-12 16:13:41 -05009752011-11-12 Timothy Wall <twall@users.sf.net>
976
977 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
978 alignment of 4 for wince on ARM.
979
Anthony Greenaf18df22011-11-12 15:52:08 -05009802011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
981 Anthony Green <green@moxielogic.com>
982
983 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
984 instructions (not available on some cores, like the PPC440).
985
Anthony Greenc411f142011-11-12 07:32:36 -05009862011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400987
Anthony Greenc411f142011-11-12 07:32:36 -0500988 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500989 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500990 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
991 X 10.7.
992 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400993
Anthony Green6a6e7f82011-11-12 16:20:42 -05009942011-11-12 Anthony Green <green@moxielogic.com>
995
996 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
997 files with debug info.
998 * Makefile.in: Rebuilt.
999
10002011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1001
1002 * README: Update list of supported OpenBSD systems.
1003
10042011-11-12 Anthony Green <green@moxielogic.com>
1005
1006 * libtool-version: Update.
1007 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1008 FFI_DEBUG.
1009 (libffi_la_SOURCES): Remove src/debug.c
1010 (EXTRA_DIST): Add src/debug.c
1011 * Makefile.in: Rebuilt.
1012 * README: Update for 3.0.11.
1013
Anthony Green3d561062011-11-12 07:20:24 -050010142011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -04001015
Anthony Green3d561062011-11-12 07:20:24 -05001016 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1017 * configure, aclocal.m4: Rebuild.
1018
10192011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1020
1021 PR libffi/49594
1022 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1023 helper reference track the architecture pointer size.
1024
10252011-08-25 Andrew Haley <aph@redhat.com>
1026
1027 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1028 instructions.
1029 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -04001030
Anthony Greend992ac52011-07-29 17:32:53 -040010312011-07-11 Andrew Haley <aph@redhat.com>
1032
1033 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1034
10352011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1036
1037 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1038 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1039
10402011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1041
1042 PR libffi/46660
1043 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1044 mips-sgi-irix6*.
1045 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1046
10472011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1048
1049 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1050 PRId8 instead of %hhu, %hhd.
1051 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1052 PRIu8): Define.
1053 [__sgi__] (PRId8, PRIu8): Define.
1054
10552011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1056
1057 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1058 Define.
1059 Use them to handle ELF vs. ECOFF differences.
1060 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1061
Anthony Green2d3fb362011-03-30 16:54:42 -040010622011-03-30 Timothy Wall <twall@users.sf.net>
1063
1064 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1065 * src/powerpc/darwin_closure.S: ditto.
1066
Anthony Green25416792011-02-25 15:09:13 -050010672011-02-25 Anthony Green <green@moxielogic.com>
1068
Anthony Green74ee6ea2011-02-25 15:52:14 -05001069 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1070 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05001071
Anthony Green8cf88782011-02-15 15:19:49 -050010722011-02-15 Anthony Green <green@moxielogic.com>
1073
1074 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1075 * configure: Rebuilt.
1076
Anthony Greend992ac52011-07-29 17:32:53 -040010772011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1078
1079 * configure: Regenerate.
1080
Anthony Green1fbf9dc2011-02-13 08:06:39 -050010812011-02-13 Anthony Green <green@moxielogic.com>
1082
1083 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1084 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1085 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1086
1087 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1088 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1089
1090 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1091 just return FFI_BAD_ABI when things are wrong.
1092 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1093 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1094 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1095 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1096 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1097
Anthony Green1833aa02011-02-11 07:11:04 -050010982011-02-11 Anthony Green <green@moxielogic.com>
1099
1100 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1101 just return FFI_BAD_ABI when things are wrong.
1102
Anthony Green7c5e60b2012-03-29 08:48:22 -040011032012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1104
1105 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1106
Anthony Green42695e72011-02-09 15:12:35 -050011072011-02-09 Stuart Shelton <srcshelton@gmail.com>
1108
1109 http://bugs.gentoo.org/show_bug.cgi?id=286911
1110 * src/mips/ffitarget.h: Clean up error messages.
1111 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1112 ffi_raw*.
1113 * include/ffi.h.in: Add pragma for SGI compiler.
1114
Anthony Greena6e56b92011-02-09 15:00:42 -050011152011-02-09 Anthony Green <green@moxielogic.com>
1116
1117 * configure.ac: Add powerpc64-*-darwin* support.
1118
Anthony Green0cad4382011-02-09 06:11:46 -050011192011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05001120
Anthony Green747d6c32011-02-09 14:56:23 -05001121 * README: Mention Interix.
1122
11232011-02-09 Jonathan Callen <abcd@gentoo.org>
1124
1125 * configure.ac: Add Interix to win32/cygwin/mingw case.
1126 * configure: Ditto.
1127 * src/closures.c: Treat Interix like Cygwin, instead of as a
1128 generic win32.
1129
11302011-02-09 Anthony Green <green@moxielogic.com>
1131
Anthony Green69dbe842011-02-09 07:38:43 -05001132 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1133 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1134 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1135 (ffi_prep_closure_loc): Check for bad ABI.
1136 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1137 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -05001138
Anthony Green90af15e2011-02-12 12:29:36 -050011392011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -05001140
1141 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1142 src/arm/trampoline.S.
1143 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1144 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1145 * src/arm/ffi.c (ffi_trampoline_table)
1146 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1147 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1148 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1149 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1150 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1151 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1152 separately.
1153 * src/arm/sysv.S: Handle Apple iOS host.
1154 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001155 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001156 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001157 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001158
Anthony Greendc411e82011-02-08 10:49:29 -050011592011-02-08 Oren Held <orenhe@il.ibm.com>
1160
1161 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1162 redefinition of mallinfo on HP-UX.
1163
Anthony Green404585d2011-02-08 10:44:36 -050011642011-02-08 Ginn Chen <ginn.chen@oracle.com>
1165
1166 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001167 aggregate return ABI. Flush cache.
1168 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001169
Anthony Green6972a4f2011-02-11 07:32:51 -050011702011-02-11 Anthony Green <green@moxielogic.com>
1171
1172 From Tom Honermann <tom.honermann@oracle.com>:
1173 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1174 AIX. Declare .ffi_prep_args. Insert nops after branch
1175 instructions so that the AIX linker can insert TOC reload
1176 instructions.
1177 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1178
Anthony Greend992ac52011-07-29 17:32:53 -040011792011-02-08 Ed <ed@kdtc.net>
1180
1181 * src/powerpc/asm.h: Fix grammar nit in comment.
1182
Anthony Green89284fe2011-02-08 10:19:19 -050011832011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1184
1185 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1186
Anthony Greend992ac52011-07-29 17:32:53 -040011872011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1188
1189 PR libffi/46661
1190 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1191 uintptr_t first.
1192 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1193
Anthony Greened2c5182011-02-08 10:10:07 -050011942011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1195
1196 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001197 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001198
Anthony Green3b836242011-02-08 14:28:59 -050011992011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1200
1201 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1202 Handle case when CPU variant does not have long double support.
1203 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1204 and cores with soft floating point.
1205
12062011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1207
1208 * configure.ac: Add mips*-*-rtems* support.
1209 * configure: Regenerate.
1210 * src/mips/ffitarget.h: Ensure needed constants are available
1211 for targets which do not have sgidefs.h.
1212
Anthony Green0e584392011-02-08 07:52:40 -050012132011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1214
1215 PR target/40125
1216 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1217 * configure: Regenerate.
1218
12192010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1220
1221 PR libffi/29152
1222 PR libffi/42378
1223 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1224 update comments.
1225 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1226 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1227 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1228 update comments.
1229 * src/powerpc/ffi_darwin.c: Likewise.
1230
12312010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1232
1233 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1234 backslashes.
1235 (libffi_cv_as_string_pseudo_op): Likewise.
1236 * configure: Regenerate.
1237
12382010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1239
1240 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1241 (ffi_closure_VFP): Same.
1242 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1243 directive.
1244
12452010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1246
1247 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1248 (PRIuPTR): Define.
1249
12502010-11-29 Richard Henderson <rth@redhat.com>
1251 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1252
1253 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1254 (.eh_frame): Use FDE_ENCODING.
1255 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1256
Anthony Green5b9cd522010-11-22 15:19:57 -050012572010-11-22 Jacek Caban <jacek@codeweavers.com>
1258
1259 * configure.ac: Check for symbol underscores on mingw-w64.
1260 * configure: Rebuilt.
1261 * src/x86/win64.S: Correctly access extern symbols in respect to
1262 underscores.
1263
Anthony Green2db72612010-11-21 10:50:56 -050012642010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1265
1266 * testsuite/lib/libffi-dg.exp: Rename ...
1267 * testsuite/lib/libffi.exp: ... to this.
1268 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1269 * libffi/testsuite/libffi.special/special.exp: Likewise.
1270
12712010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1272
1273 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1274 code, new parameter, and return value. Update comments.
1275 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1276 call to layout_vfp_args().
1277 (ffi_call_SYSV): Update declaration.
1278 (ffi_call_VFP): New declaration.
1279 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1280 when ABI is FFI_VFP.
1281 (ffi_closure_VFP): New declaration.
1282 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1283 ffi_prep_incoming_args_SYSV().
1284 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1285 case handling.
1286 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1287 construction under VFP hard-float.
1288 (rec_vfp_type_p): New function.
1289 (vfp_type_p): Same.
1290 (place_vfp_arg): Same.
1291 (layout_vfp_args): Same.
1292 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1293 based on __ARM_PCS_VFP.
1294 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1295 fields.
1296 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1297 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1298 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1299 direct call. Move function pointer load upwards.
1300 (ffi_call_VFP): New function.
1301 (ffi_closure_VFP): Same.
1302
1303 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1304 (dg-skip-if): New function.
1305 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1306 and compiler options include -mfloat-abi=hard.
1307 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1308
13092010-10-01 Jakub Jelinek <jakub@redhat.com>
1310
1311 PR libffi/45677
1312 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1313 a multiple of 8.
1314 * testsuite/libffi.call/many2.c: New test.
1315
13162010-08-20 Mark Wielaard <mjw@redhat.com>
1317
1318 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1319 returns NULL.
1320
13212010-08-09 Andreas Tobler <andreast@fgznet.ch>
1322
1323 * configure.ac: Add target powerpc64-*-freebsd*.
1324 * configure: Regenerate.
1325 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1326 -mlong-double-128 only to linux targets.
1327 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1328 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1329 * testsuite/libffi.call/huge_struct.c: Likewise.
1330
Anthony Green00d0b592010-08-05 14:56:53 -040013312010-08-05 Dan Witte <dwitte@mozilla.com>
1332
1333 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1334 debug CRT when --enable-debug is given.
1335 * configure.ac: Define it.
1336 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1337
Anthony Greenc1d28ba2010-08-05 08:48:16 -040013382010-08-04 Dan Witte <dwitte@mozilla.com>
1339
1340 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1341 platforms.
1342 * src/x86/ffi.c: Remove redundant ifdef checks.
1343 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1344 for X86_ANY so return value space doesn't get added twice.
1345
Anthony Greenbda487e2010-08-05 09:02:41 -040013462010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1347
1348 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1349
Anthony Greend14178b2010-07-23 09:14:00 -040013502010-07-22 Dan Witte <dwitte@mozilla.com>
1351
1352 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1353 * src/prep_cif.c: Fix ABI assertion.
1354 * src/cris/ffi.c: Ditto.
1355
Anthony Greeneaf444e2010-07-10 08:59:09 -040013562010-07-10 Evan Phoenix <evan@fallingsnow.net>
1357
1358 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1359
Anthony Green5feacad2010-08-05 08:30:04 -040013602010-07-07 Dan Horák <dan@danny.cz>
1361
1362 * include/ffi.h.in: Protect #define with #ifndef.
1363 * src/powerpc/ffitarget.h: Ditto.
1364 * src/s390/ffitarget.h: Ditto.
1365 * src/sparc/ffitarget.h: Ditto.
1366
Anthony Green2db72612010-11-21 10:50:56 -050013672010-07-07 Neil Roberts <neil@linux.intel.com>
1368
1369 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1370 16-bytes.
1371
13722010-07-02 Jakub Jelinek <jakub@redhat.com>
1373
1374 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1375 * Makefile.in: Regenerated.
1376
13772010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1378
1379 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1380 output, too.
1381 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1382 (libffi_cv_as_string_pseudo_op): Check for .string.
1383 * configure: Regenerate.
1384 * fficonfig.h.in: Regenerate.
1385 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1386
Anthony Green10ea8482010-08-05 08:24:27 -040013872010-05-11 Dan Witte <dwitte@mozilla.com>
1388
1389 * doc/libffi.tex: Document previous change.
1390
13912010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1392
1393 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1394
Anthony Green63097412010-05-05 20:14:56 -040013952010-05-05 Michael Kohler <michaelkohler@live.com>
1396
1397 * src/dlmalloc.c (dlfree): Fix spelling.
1398 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1399 * configure.ac: Ditto.
1400 * configure: Rebuilt.
1401
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040014022010-04-13 Dan Witte <dwitte@mozilla.com>
1403
1404 * msvcc.sh: Build with -W3 instead of -Wall.
1405 * src/powerpc/ffi_darwin.c: Remove build warnings.
1406 * src/x86/ffi.c: Ditto.
1407 * src/x86/ffitarget.h: Ditto.
1408
Anthony Green2db72612010-11-21 10:50:56 -050014092010-04-12 Dan Witte <dwitte@mozilla.com>
1410 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001411
Anthony Green2db72612010-11-21 10:50:56 -05001412 * configure.ac: Add OS/2 support.
1413 * configure: Rebuilt.
1414 * src/closures.c: Ditto.
1415 * src/dlmalloc.c: Ditto.
1416 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001417
14182010-04-07 Jakub Jelinek <jakub@redhat.com>
1419
Anthony Green2db72612010-11-21 10:50:56 -05001420 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001421
14222010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1423
1424 * Makefile.in: Regenerate.
1425 * aclocal.m4: Regenerate.
1426 * include/Makefile.in: Regenerate.
1427 * man/Makefile.in: Regenerate.
1428 * testsuite/Makefile.in: Regenerate.
1429
Anthony Green2db72612010-11-21 10:50:56 -050014302010-03-30 Dan Witte <dwitte@mozilla.com>
1431
1432 * msvcc.sh: Disable build warnings.
1433 * README (tested): Clarify windows build procedure.
1434
Anthony Green3f5b1372010-07-12 14:39:18 -040014352010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1436
1437 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1438 * configure: Regenerate.
1439 * fficonfig.h.in: Regenerate.
1440 * libffi/src/x86/unix64.S (.eh_frame)
1441 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1442
Anthony Green2db72612010-11-21 10:50:56 -050014432010-03-14 Matthias Klose <doko@ubuntu.com>
1444
1445 * src/x86/ffi64.c: Fix typo in comment.
1446 * src/x86/ffi.c: Use /* ... */ comment style.
1447
Anthony Green9dc9a292010-04-13 10:33:52 -040014482010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1449
1450 * doc/libffi.texi (The Closure API): Fix typo.
1451 * doc/libffi.info: Remove.
1452
14532010-02-15 Matthias Klose <doko@ubuntu.com>
1454
1455 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1456 __ARM_ARCH_7EM__.
1457
Anthony Green2db72612010-11-21 10:50:56 -050014582010-01-15 Anthony Green <green@redhat.com>
1459
1460 * README: Add notes on building with Microsoft Visual C++.
1461
14622010-01-15 Daniel Witte <dwitte@mozilla.com>
1463
1464 * msvcc.sh: New file.
1465
1466 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1467 * src/x86/ffi.c: Tweak function declaration and remove excess
1468 parens.
1469 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1470 ffi_closure.
1471
1472 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1473 function ffi_call_win32 on X86_WIN32.
1474 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1475 (ffi_call_STDCALL): Remove.
1476
1477 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1478 to ffi_prep_cif_machdep for x86.
1479 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1480
14812010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1482
1483 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001484 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001485
14862010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1487
1488 * doc/libffi.texi: Add closure example.
1489
Anthony Green7b7a42f2010-01-12 09:14:14 -050014902010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1491
1492 PR libffi/40701
1493 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1494 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1495 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1496 alpha*-dec-osf*.
1497 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1498 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1499 * testsuite/libffi.call/return_ll1.c: Likewise.
1500 * testsuite/libffi.call/stret_medium2.c: Likewise.
1501 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1502 MAP_FAILED to char *.
1503
15042010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1505
1506 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1507
Anthony Greenc3042af2010-01-01 08:08:02 -050015082009-12-31 Anthony Green <green@redhat.com>
1509
1510 * README: Update for libffi 3.0.9.
1511
15122009-12-27 Matthias Klose <doko@ubuntu.com>
1513
1514 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1515 appropriate.
1516 * configure: Rebuilt.
1517
15182009-12-26 Anthony Green <green@redhat.com>
1519
1520 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1521 avr32*-*-*.
1522 * testsuite/libffi.call/cls_double_va.c: Ditto.
1523
15242009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1525
1526 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1527 and inttypes.h.
1528 * testsuite/libffi.special/unwindtest.cc: Ditto.
1529
15302009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1531
1532 * configure.ac: Add amd64-*-openbsd*.
1533 * configure: Rebuilt.
1534 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1535 openbsd programs with -lpthread.
1536
15372009-12-26 Anthony Green <green@redhat.com>
1538
1539 * testsuite/libffi.call/cls_double_va.c,
1540 testsuite/libffi.call/cls_longdouble.c,
1541 testsuite/libffi.call/cls_longdouble_va.c,
1542 testsuite/libffi.call/cls_pointer.c,
1543 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1544 mips*-*-* and arm*-*-*.
1545 * testsuite/libffi.call/cls_align_longdouble_split.c,
1546 testsuite/libffi.call/cls_align_longdouble_split2.c,
1547 testsuite/libffi.call/stret_medium2.c,
1548 testsuite/libffi.call/stret_medium.c,
1549 testsuite/libffi.call/stret_large.c,
1550 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1551
15522009-12-31 Kay Tietz <ktietz70@googlemail.com>
1553
1554 * testsuite/libffi.call/ffitest.h,
1555 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1556 definitions.
1557
15582009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1559
1560 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1561 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1562 * configure: Rebuilt.
1563 * Makefile.in: Rebuilt.
1564
15652009-12-31 Anthony Green <green@redhat.com>
1566 Blake Chaffin.
1567
1568 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1569 Chaffin @ Apple.
1570
Anthony Green0cfe60e2009-12-29 10:06:04 -050015712009-12-28 David Edelsohn <edelsohn@gnu.org>
1572
1573 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1574 local variables.
1575 (aix_adjust_aggregate_sizes): New function.
1576 (ffi_prep_cif_machdep): Call it.
1577
15782009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1579
1580 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1581 * configure: Regenerate.
1582 * fficonfig.h.in: Likewise.
1583 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1584 Solaris/x86.
1585
15862009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1587
1588 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1589 when a float arguments is passed in memory.
1590 (ffi_closure_helper_SYSV): Mark general registers as used up when
1591 a 64bit or soft-float long double argument is passed in memory.
1592
Anthony Green9458d882009-12-26 07:02:27 -050015932009-12-25 Matthias Klose <doko@ubuntu.com>
1594
1595 * man/ffi_call.3: Fix #include in examples.
1596 * doc/libffi.texi: Add dircategory.
1597
15982009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1599
1600 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1601 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1602 IRIX MIPSPro c99.
1603 * include/ffi_common.h: Added '__sgi' define to non
1604 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001605 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001606 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1607 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1608 FFI_LONGDOUBLE support and alignment(N32 only).
1609 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1610 fixed non '__attribute__((__mode__()))' integer typedefs.
1611 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1612 since they are Linux/GNU Assembler specific.
1613
16142009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1615
1616 * configure.ac, Makefile.am, src/avr32/ffi.c,
1617 src/avr32/ffitarget.h,
1618 src/avr32/sysv.S: Add AVR32 port.
1619 * configure, Makefile.in: Rebuilt.
1620
Anthony Green115ab362009-12-24 00:22:00 -050016212009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1622
1623 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1624 * configure: Regenerate.
1625
16262009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1627
1628 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1629
16302009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1631
1632 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1633 type on HP-UX.
1634
Anthony Green7c5e60b2012-03-29 08:48:22 -040016352012-02-13 Kai Tietz <ktietz@redhat.com>
1636
1637 PR libffi/52221
1638 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1639 support for X86_WIN32.
1640 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1641
Anthony Green115ab362009-12-24 00:22:00 -050016422009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1643
1644 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1645 double' arguments.
1646
16472009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1648
1649 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1650
16512009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1652
1653 PR libffi/40700
1654 * src/closures.c [X86_64 && __sun__ && __svr4__]
1655 (FFI_MMAP_EXEC_WRIT): Define.
1656
16572009-12-08 David Daney <ddaney@caviumnetworks.com>
1658
1659 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1660 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1661 * testsuite/libffi.call/stret_large.c: Same.
1662 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1663 * testsuite/libffi.call/stret_large2.c: Same.
1664 * testsuite/libffi.call/stret_medium2.c: Same.
1665
16662009-12-07 David Edelsohn <edelsohn@gnu.org>
1667
1668 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1669 typo.
1670
16712009-12-05 David Edelsohn <edelsohn@gnu.org>
1672
1673 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1674 code.
1675 * src/powerpc/aix_closure.S: Same.
1676
16772009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1678
1679 * Makefile.in: Regenerate.
1680 * configure: Regenerate.
1681 * include/Makefile.in: Regenerate.
1682 * man/Makefile.in: Regenerate.
1683 * testsuite/Makefile.in: Regenerate.
1684
16852009-12-04 David Edelsohn <edelsohn@gnu.org>
1686
1687 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001688 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001689
16902009-12-04 Uros Bizjak <ubizjak@gmail.com>
1691
1692 PR libffi/41908
1693 * src/x86/ffi64.c (classify_argument): Update from
1694 gcc/config/i386/i386.c.
1695 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1696 SSE registers directly.
1697 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1698 for x86_64 linux targets.
1699
17002009-12-04 David Edelsohn <edelsohn@gnu.org>
1701
1702 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1703 pfr for long double split between fpr13 and stack.
1704
17052009-12-03 David Edelsohn <edelsohn@gnu.org>
1706
1707 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1708 fparg_count twice for long double.
1709
17102009-12-03 David Edelsohn <edelsohn@gnu.org>
1711
1712 PR libffi/42243
1713 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1714
17152009-12-03 Uros Bizjak <ubizjak@gmail.com>
1716
1717 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1718 Remove xfails for x86 linux targets.
1719
17202009-12-02 David Edelsohn <edelsohn@gnu.org>
1721
1722 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1723 case.
1724
17252009-12-01 David Edelsohn <edelsohn@gnu.org>
1726
1727 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1728 register usage. Call ffi_prep_args directly. Add long double
1729 return value support.
1730 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1731 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1732 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1733 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1734 mode.
1735 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1736 into case.
1737 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1738 Allocate result area between params and FPRs.
1739
17402009-11-30 David Edelsohn <edelsohn@gnu.org>
1741
1742 PR target/35484
1743 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1744 AIX64.
1745 * src/powerpc/aix.S: Implement AIX64 version.
1746 * src/powerpc/aix_closure.S: Implement AIX64 version.
1747 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1748 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1749 support.
1750 (ffi_prep_cif_machdep): Same.
1751 (ffi_call): Same.
1752 (ffi_closure_helper_DARWIN): Same.
1753
17542009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1755
1756 PR libffi/41908
1757 * testsuite/libffi.call/testclosure.c: New test.
1758
Anthony Greenc6dddbd2009-10-04 08:11:33 -040017592009-09-28 Kai Tietz <kai.tietz@onevision.com>
1760
1761 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1762 assembly version use of ___chkstk.
1763
17642009-09-23 Matthias Klose <doko@ubuntu.com>
1765
1766 PR libffi/40242, PR libffi/41443
1767 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1768 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1769 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1770 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1771 for -mfloat-abi=softfp to work.
1772
17732009-09-17 Loren J. Rittle <ljrittle@acm.org>
1774
1775 PR testsuite/32843 (strikes again)
1776 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1777 enable proper extension on char and short.
1778
17792009-09-15 David Daney <ddaney@caviumnetworks.com>
1780
1781 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1782 handling for FFI_TYPE_POINTER.
1783 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1784 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1785 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1786 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1787 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1788 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1789 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1790 structure and pointer returns.
1791 (ffi_closure_N32): Add handling for pointer returns.
1792 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1793 calc_n32_return_struct_flags): Handle soft-float.
1794 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1795 (ffi_call_N32): Declare proper argument types.
1796 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1797 soft-float.
1798
17992009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1800
1801 * configure.ac (AC_PREREQ): Bump to 2.64.
1802
18032009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1804
1805 * Makefile.am (install-html, install-pdf): Remove.
1806 * Makefile.in: Regenerate.
1807
1808 * Makefile.in: Regenerate.
1809 * aclocal.m4: Regenerate.
1810 * configure: Regenerate.
1811 * fficonfig.h.in: Regenerate.
1812 * include/Makefile.in: Regenerate.
1813 * man/Makefile.in: Regenerate.
1814 * testsuite/Makefile.in: Regenerate.
1815
Anthony Green3d561062011-11-12 07:20:24 -050018162011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1817
1818 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1819 * configure: Rebuilt.
1820
Anthony Greenc6dddbd2009-10-04 08:11:33 -040018212009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1822
1823 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1824
18252009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1826
1827 PR libffi/40807
1828 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1829 return types for X86_WIN32.
1830 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1831 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1832 _ffi_closure_STDCALL): Likewise.
1833
1834 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1835 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1836
18372009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1838
1839 PR testsuite/40699
1840 PR testsuite/40707
1841 PR testsuite/40709
1842 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1843 2009-06-30 commits.
1844
18452009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1846
1847 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1848 to "" before adding paths. (This reinstates an assignment that
1849 was removed by my 2009-06-30 commit, but changes the initial
1850 value from "." to "".)
1851
18522009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1853
1854 PR testsuite/40601
1855 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1856 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1857 empty.
1858
18592009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1860
1861 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1862 to ld_library_path. Use add_path. Add just find_libgcc_s
1863 to ld_library_path, not every libgcc multilib directory.
1864
18652009-06-16 Wim Lewis <wiml@hhhh.org>
1866
1867 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1868 supposed to be callee-saved.
1869 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1870 return buffer for odd-size structs.
1871
18722009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1873
1874 PR libffi/40444
1875 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1876 allow_stack_execute for Darwin.
1877
18782009-06-16 Andrew Haley <aph@redhat.com>
1879
1880 * configure.ac (TARGETDIR): Add missing blank lines.
1881 * configure: Regenerate.
1882
18832009-06-16 Andrew Haley <aph@redhat.com>
1884
1885 * testsuite/libffi.call/cls_align_sint64.c,
1886 testsuite/libffi.call/cls_align_uint64.c,
1887 testsuite/libffi.call/cls_longdouble_va.c,
1888 testsuite/libffi.call/cls_ulonglong.c,
1889 testsuite/libffi.call/return_ll1.c,
1890 testsuite/libffi.call/stret_medium2.c: Fix printf format
1891 specifiers.
1892 * testsuite/libffi.call/ffitest.h,
1893 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1894
18952009-06-15 Andrew Haley <aph@redhat.com>
1896
1897 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1898 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001899
Anthony Greenc6dddbd2009-10-04 08:11:33 -040019002009-06-12 Andrew Haley <aph@redhat.com>
1901
1902 * Makefile.am: Remove info_TEXINFOS.
1903
19042009-06-12 Andrew Haley <aph@redhat.com>
1905
1906 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1907 testsuite/libffi.call/cls_align_uint64.c,
1908 testsuite/libffi.call/cls_ulonglong.c,
1909 testsuite/libffi.call/return_ll1.c,
1910 testsuite/libffi.call/stret_medium2.c: Fix printf format
1911 specifiers.
1912 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1913
19142009-06-11 Timothy Wall <twall@users.sf.net>
1915
1916 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001917 configure.ac,
1918 include/ffi.h.in,
1919 include/ffi_common.h,
1920 src/closures.c,
1921 src/dlmalloc.c,
1922 src/x86/ffi.c,
1923 src/x86/ffitarget.h,
1924 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001925 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001926 * Makefile.in,
1927 include/Makefile.in,
1928 man/Makefile.in,
1929 testsuite/Makefile.in,
1930 configure,
1931 aclocal.m4: Regenerated
1932 * ltcf-c.sh: properly escape cygwin/w32 path
1933 * man/ffi_call.3: Clarify size requirements for return value.
1934 * src/x86/ffi64.c: Fix filename in comment.
1935 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001936
Anthony Green0cfe60e2009-12-29 10:06:04 -05001937 * testsuite/libffi.call/closure_fn0.c,
1938 testsuite/libffi.call/closure_fn1.c,
1939 testsuite/libffi.call/closure_fn2.c,
1940 testsuite/libffi.call/closure_fn3.c,
1941 testsuite/libffi.call/closure_fn4.c,
1942 testsuite/libffi.call/closure_fn5.c,
1943 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001944 testsuite/libffi.call/closure_stdcall.c,
1945 testsuite/libffi.call/cls_12byte.c,
1946 testsuite/libffi.call/cls_16byte.c,
1947 testsuite/libffi.call/cls_18byte.c,
1948 testsuite/libffi.call/cls_19byte.c,
1949 testsuite/libffi.call/cls_1_1byte.c,
1950 testsuite/libffi.call/cls_20byte.c,
1951 testsuite/libffi.call/cls_20byte1.c,
1952 testsuite/libffi.call/cls_24byte.c,
1953 testsuite/libffi.call/cls_2byte.c,
1954 testsuite/libffi.call/cls_3_1byte.c,
1955 testsuite/libffi.call/cls_3byte1.c,
1956 testsuite/libffi.call/cls_3byte2.c,
1957 testsuite/libffi.call/cls_4_1byte.c,
1958 testsuite/libffi.call/cls_4byte.c,
1959 testsuite/libffi.call/cls_5_1_byte.c,
1960 testsuite/libffi.call/cls_5byte.c,
1961 testsuite/libffi.call/cls_64byte.c,
1962 testsuite/libffi.call/cls_6_1_byte.c,
1963 testsuite/libffi.call/cls_6byte.c,
1964 testsuite/libffi.call/cls_7_1_byte.c,
1965 testsuite/libffi.call/cls_7byte.c,
1966 testsuite/libffi.call/cls_8byte.c,
1967 testsuite/libffi.call/cls_9byte1.c,
1968 testsuite/libffi.call/cls_9byte2.c,
1969 testsuite/libffi.call/cls_align_double.c,
1970 testsuite/libffi.call/cls_align_float.c,
1971 testsuite/libffi.call/cls_align_longdouble.c,
1972 testsuite/libffi.call/cls_align_longdouble_split.c,
1973 testsuite/libffi.call/cls_align_longdouble_split2.c,
1974 testsuite/libffi.call/cls_align_pointer.c,
1975 testsuite/libffi.call/cls_align_sint16.c,
1976 testsuite/libffi.call/cls_align_sint32.c,
1977 testsuite/libffi.call/cls_align_sint64.c,
1978 testsuite/libffi.call/cls_align_uint16.c,
1979 testsuite/libffi.call/cls_align_uint32.c,
1980 testsuite/libffi.call/cls_align_uint64.c,
1981 testsuite/libffi.call/cls_dbls_struct.c,
1982 testsuite/libffi.call/cls_double.c,
1983 testsuite/libffi.call/cls_double_va.c,
1984 testsuite/libffi.call/cls_float.c,
1985 testsuite/libffi.call/cls_longdouble.c,
1986 testsuite/libffi.call/cls_longdouble_va.c,
1987 testsuite/libffi.call/cls_multi_schar.c,
1988 testsuite/libffi.call/cls_multi_sshort.c,
1989 testsuite/libffi.call/cls_multi_sshortchar.c,
1990 testsuite/libffi.call/cls_multi_uchar.c,
1991 testsuite/libffi.call/cls_multi_ushort.c,
1992 testsuite/libffi.call/cls_multi_ushortchar.c,
1993 testsuite/libffi.call/cls_pointer.c,
1994 testsuite/libffi.call/cls_pointer_stack.c,
1995 testsuite/libffi.call/cls_schar.c,
1996 testsuite/libffi.call/cls_sint.c,
1997 testsuite/libffi.call/cls_sshort.c,
1998 testsuite/libffi.call/cls_uchar.c,
1999 testsuite/libffi.call/cls_uint.c,
2000 testsuite/libffi.call/cls_ulonglong.c,
2001 testsuite/libffi.call/cls_ushort.c,
2002 testsuite/libffi.call/err_bad_abi.c,
2003 testsuite/libffi.call/err_bad_typedef.c,
2004 testsuite/libffi.call/float2.c,
2005 testsuite/libffi.call/huge_struct.c,
2006 testsuite/libffi.call/nested_struct.c,
2007 testsuite/libffi.call/nested_struct1.c,
2008 testsuite/libffi.call/nested_struct10.c,
2009 testsuite/libffi.call/nested_struct2.c,
2010 testsuite/libffi.call/nested_struct3.c,
2011 testsuite/libffi.call/nested_struct4.c,
2012 testsuite/libffi.call/nested_struct5.c,
2013 testsuite/libffi.call/nested_struct6.c,
2014 testsuite/libffi.call/nested_struct7.c,
2015 testsuite/libffi.call/nested_struct8.c,
2016 testsuite/libffi.call/nested_struct9.c,
2017 testsuite/libffi.call/problem1.c,
2018 testsuite/libffi.call/return_ldl.c,
2019 testsuite/libffi.call/return_ll1.c,
2020 testsuite/libffi.call/stret_large.c,
2021 testsuite/libffi.call/stret_large2.c,
2022 testsuite/libffi.call/stret_medium.c,
2023 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002024 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2025 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002026
20272009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2028
2029 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2030 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2031 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2032
20332009-06-09 Andrew Haley <aph@redhat.com>
2034
2035 * src/x86/freebsd.S: Add missing file.
2036
20372009-06-08 Andrew Haley <aph@redhat.com>
2038
2039 Import from libffi 3.0.8:
2040
2041 * doc/libffi.texi: New file.
2042 * doc/libffi.info: Likewise.
2043 * doc/stamp-vti: Likewise.
2044 * man/Makefile.am: New file.
2045 * man/ffi_call.3: New file.
2046
2047 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2048 src/dlmalloc.c.
2049 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2050
2051 * configure.ac: Bump version to 3.0.8.
2052 parisc*-*-linux*: Add.
2053 i386-*-freebsd* | i386-*-openbsd*: Add.
2054 powerpc-*-beos*: Add.
2055 AM_CONDITIONAL X86_FREEBSD: Add.
2056 AC_CONFIG_FILES: Add man/Makefile.
2057
2058 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2059
20602009-06-08 Andrew Haley <aph@redhat.com>
2061
2062 * README: Import from libffi 3.0.8.
2063
20642009-06-08 Andrew Haley <aph@redhat.com>
2065
2066 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2067 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2068 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2069 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2070
2071 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2072 * testsuite/libffi.call/stret_medium.c: Likewise.
2073 * testsuite/libffi.call/stret_large2.c: Likewise.
2074 * testsuite/libffi.call/stret_large.c: Likewise.
2075
20762008-12-26 Timothy Wall <twall@users.sf.net>
2077
Anthony Green0cfe60e2009-12-29 10:06:04 -05002078 * testsuite/libffi.call/cls_longdouble.c,
2079 testsuite/libffi.call/cls_longdouble_va.c,
2080 testsuite/libffi.call/cls_align_longdouble.c,
2081 testsuite/libffi.call/cls_align_longdouble_split.c,
2082 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2083 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002084
20852008-12-22 Timothy Wall <twall@users.sf.net>
2086
Anthony Green0cfe60e2009-12-29 10:06:04 -05002087 * testsuite/libffi.call/closure_fn0.c,
2088 testsuite/libffi.call/closure_fn1.c,
2089 testsuite/libffi.call/closure_fn2.c,
2090 testsuite/libffi.call/closure_fn3.c,
2091 testsuite/libffi.call/closure_fn4.c,
2092 testsuite/libffi.call/closure_fn5.c,
2093 testsuite/libffi.call/closure_fn6.c,
2094 testsuite/libffi.call/closure_loc_fn0.c,
2095 testsuite/libffi.call/closure_stdcall.c,
2096 testsuite/libffi.call/cls_align_pointer.c,
2097 testsuite/libffi.call/cls_pointer.c,
2098 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2099 pointer to integer (intptr_t).
2100 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002101
21022008-07-24 Anthony Green <green@redhat.com>
2103
Anthony Green0cfe60e2009-12-29 10:06:04 -05002104 * testsuite/libffi.call/cls_dbls_struct.c,
2105 testsuite/libffi.call/cls_double_va.c,
2106 testsuite/libffi.call/cls_longdouble.c,
2107 testsuite/libffi.call/cls_longdouble_va.c,
2108 testsuite/libffi.call/cls_pointer.c,
2109 testsuite/libffi.call/cls_pointer_stack.c,
2110 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2111 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002112
21132008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002114 Blake Chaffin
2115 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002116
Anthony Green0cfe60e2009-12-29 10:06:04 -05002117 * testsuite/libffi.call/cls_align_longdouble_split2.c
2118 testsuite/libffi.call/cls_align_longdouble_split.c
2119 testsuite/libffi.call/cls_dbls_struct.c
2120 testsuite/libffi.call/cls_double_va.c
2121 testsuite/libffi.call/cls_longdouble.c
2122 testsuite/libffi.call/cls_longdouble_va.c
2123 testsuite/libffi.call/cls_pointer.c
2124 testsuite/libffi.call/cls_pointer_stack.c
2125 testsuite/libffi.call/err_bad_abi.c
2126 testsuite/libffi.call/err_bad_typedef.c
2127 testsuite/libffi.call/stret_large2.c
2128 testsuite/libffi.call/stret_large.c
2129 testsuite/libffi.call/stret_medium2.c
2130 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002131
21322009-06-05 Andrew Haley <aph@redhat.com>
2133
2134 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2135 libffi.
2136
21372009-06-04 Andrew Haley <aph@redhat.com>
2138
2139 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2140 stdcall changes.
2141
21422008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002143 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002144
Anthony Green0cfe60e2009-12-29 10:06:04 -05002145 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2146 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002147
21482008-02-03 Timothy Wall <twall@users.sf.net>
2149
Anthony Green0cfe60e2009-12-29 10:06:04 -05002150 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2151 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002152
21532008-01-31 Timothy Wall <twall@users.sf.net>
2154
Anthony Green0cfe60e2009-12-29 10:06:04 -05002155 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2156 closures.
2157 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2158 closures.
2159 * src/x86/win32.S: Add assembly for stdcall closure.
2160 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002161
21622009-06-04 Andrew Haley <aph@redhat.com>
2163
2164 * include/ffi.h.in: Change void (*)() to void (*)(void).
2165 * src/x86/ffi.c: Likewise.
2166
21672009-06-04 Andrew Haley <aph@redhat.com>
2168
2169 * src/powerpc/ppc_closure.S: Insert licence header.
2170 * src/powerpc/linux64_closure.S: Likewise.
2171 * src/m68k/sysv.S: Likewise.
2172
2173 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2174 * src/powerpc/ffi.c: Likewise.
2175 * src/powerpc/ffi_darwin.c: Likewise.
2176 * src/m32r/ffi.c: Likewise.
2177 * src/sh64/ffi.c: Likewise.
2178 * src/x86/ffi64.c: Likewise.
2179 * src/alpha/ffi.c: Likewise.
2180 * src/alpha/osf.S: Likewise.
2181 * src/frv/ffi.c: Likewise.
2182 * src/s390/ffi.c: Likewise.
2183 * src/pa/ffi.c: Likewise.
2184 * src/pa/hpux32.S: Likewise.
2185 * src/ia64/unix.S: Likewise.
2186 * src/ia64/ffi.c: Likewise.
2187 * src/sparc/ffi.c: Likewise.
2188 * src/mips/ffi.c: Likewise.
2189 * src/sh/ffi.c: Likewise.
2190
21912008-02-15 David Daney <ddaney@avtrex.com>
2192
Anthony Green0cfe60e2009-12-29 10:06:04 -05002193 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2194 Define (conditionally), and use it to include cachectl.h.
2195 (ffi_prep_closure_loc): Fix cache flushing.
2196 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002197
21982009-06-04 Andrew Haley <aph@redhat.com>
2199
2200 include/ffi.h.in,
2201 src/arm/ffitarget.h,
2202 src/arm/ffi.c,
2203 src/arm/sysv.S,
2204 src/powerpc/ffitarget.h,
2205 src/closures.c,
2206 src/sh64/ffitarget.h,
2207 src/sh64/ffi.c,
2208 src/sh64/sysv.S,
2209 src/types.c,
2210 src/x86/ffi64.c,
2211 src/x86/ffitarget.h,
2212 src/x86/win32.S,
2213 src/x86/darwin.S,
2214 src/x86/ffi.c,
2215 src/x86/sysv.S,
2216 src/x86/unix64.S,
2217 src/alpha/ffitarget.h,
2218 src/alpha/ffi.c,
2219 src/alpha/osf.S,
2220 src/m68k/ffitarget.h,
2221 src/frv/ffitarget.h,
2222 src/frv/ffi.c,
2223 src/s390/ffitarget.h,
2224 src/s390/sysv.S,
2225 src/cris/ffitarget.h,
2226 src/pa/linux.S,
2227 src/pa/ffitarget.h,
2228 src/pa/ffi.c,
2229 src/raw_api.c,
2230 src/ia64/ffitarget.h,
2231 src/ia64/unix.S,
2232 src/ia64/ffi.c,
2233 src/ia64/ia64_flags.h,
2234 src/java_raw_api.c,
2235 src/debug.c,
2236 src/sparc/v9.S,
2237 src/sparc/ffitarget.h,
2238 src/sparc/ffi.c,
2239 src/sparc/v8.S,
2240 src/mips/ffitarget.h,
2241 src/mips/n32.S,
2242 src/mips/o32.S,
2243 src/mips/ffi.c,
2244 src/prep_cif.c,
2245 src/sh/ffitarget.h,
2246 src/sh/ffi.c,
2247 src/sh/sysv.S: Update license text.
2248
22492009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2250
2251 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2252 (.eh_frame): Add FDE for it.
2253
22542009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2255
2256 * configure.ac: Also check if assembler supports pc-relative
2257 relocs on X86_WIN32 targets.
2258 * configure: Regenerate.
2259 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2260 (_ffi_call_SYSV): Add missing function type symbol .def and
2261 add EH markup labels.
2262 (_ffi_call_STDCALL): Likewise.
2263 (_ffi_closure_SYSV): Likewise.
2264 (_ffi_closure_raw_SYSV): Likewise.
2265 (.eh_frame): Add hand-crafted EH data.
2266
22672009-04-09 Jakub Jelinek <jakub@redhat.com>
2268
2269 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2270 version 3 of the GNU General Public License and to point readers
2271 at the COPYING3 file and the FSF's license web page.
2272 * testsuite/libffi.call/call.exp: Likewise.
2273 * testsuite/libffi.special/special.exp: Likewise.
2274
22752009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2276
2277 * configure: Regenerate.
2278
22792008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2280
2281 PR libffi/26048
2282 * configure.ac (HAVE_AS_X86_PCREL): New test.
2283 * configure: Regenerate.
2284 * fficonfig.h.in: Regenerate.
2285 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2286 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2287 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2288 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2289 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2290 (.Lload_table): Likewise.
2291 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2292
22932008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2294
2295 * configure: Regenerate.
2296
22972008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2298
2299 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2300 signed/unsigned int8/16 return values.
2301 * src/sparc/v8.S (ffi_call_v8): Likewise.
2302 (ffi_closure_v8): Likewise.
2303
23042008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002305 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002306
2307 * configure: Regenerate for new libtool.
2308 * Makefile.in: Ditto.
2309 * include/Makefile.in: Ditto.
2310 * aclocal.m4: Ditto.
2311
23122008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2313
2314 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2315 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2316 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2317 Adjust copyright notice.
2318 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2319 register or two register to use for FFI_SYSV structs.
2320 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2321 (ffi_closure_helper_SYSV): Fix the return type for
2322 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2323 Adjust copyright notice.
2324
23252008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2326
2327 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2328 int.
2329
23302008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2331
2332 * configure: Regenerate.
2333 * include/Makefile.in: Regenerate.
2334 * testsuite/Makefile.in: Regenerate.
2335
23362008-06-07 Joseph Myers <joseph@codesourcery.com>
2337
2338 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2339 powerpc-*-beos*): Remove.
2340 * configure: Regenerate.
2341
23422008-05-09 Julian Brown <julian@codesourcery.com>
2343
2344 * Makefile.am (LTLDFLAGS): New.
2345 (libffi_la_LDFLAGS): Use above.
2346 * Makefile.in: Regenerate.
2347
23482008-04-18 Paolo Bonzini <bonzini@gnu.org>
2349
2350 PR bootstrap/35457
2351 * aclocal.m4: Regenerate.
2352 * configure: Regenerate.
2353
23542008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2355
2356 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2357 * src/sh64/sysv.S: Likewise.
2358
23592008-03-26 Daniel Jacobowitz <dan@debian.org>
2360
2361 * src/arm/sysv.S: Fix ARM comment marker.
2362
23632008-03-26 Jakub Jelinek <jakub@redhat.com>
2364
2365 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2366 * src/s390/sysv.S: Likewise.
2367 * src/powerpc/ppc_closure.S: Likewise.
2368 * src/powerpc/sysv.S: Likewise.
2369 * src/x86/unix64.S: Likewise.
2370 * src/x86/sysv.S: Likewise.
2371 * src/sparc/v8.S: Likewise.
2372 * src/sparc/v9.S: Likewise.
2373 * src/m68k/sysv.S: Likewise.
2374 * src/arm/sysv.S: Likewise.
2375
23762008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2377
2378 * aclocal.m4: Regenerate.
2379 * configure: Likewise.
2380 * Makefile.in: Likewise.
2381 * include/Makefile.in: Likewise.
2382 * testsuite/Makefile.in: Likewise.
2383
23842008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2385 Andreas Tobler <a.tobler@schweiz.org>
2386
2387 * configure.ac: Add amd64-*-freebsd* target.
2388 * configure: Regenerate.
2389
23902008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2391
2392 PR libffi/34612
2393 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2394 returning struct.
2395
2396 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2397 tests.
2398
23992008-01-24 David Edelsohn <edelsohn@gnu.org>
2400
2401 * configure: Regenerate.
2402
24032008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2404
2405 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2406
24072008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2408
2409 PR testsuite/32843
2410 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2411 signed/unsigned int8/16 for X86_DARWIN.
2412 Updated copyright info.
2413 Handle one and two byte structs with special cif->flags.
2414 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2415 Updated copyright info.
2416 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2417 sysv.S
2418 Remove code to pop args from the stack after call.
2419 Special-case signed/unsigned for int8/16, one and two byte structs.
2420 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2421 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2422 FFI_TYPE_SINT32.
2423 Updated copyright info.
2424
24252007-12-08 David Daney <ddaney@avtrex.com>
2426
Anthony Green0cfe60e2009-12-29 10:06:04 -05002427 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002428 SUBU, add with ADDU and use smaller code sequences.
2429
24302007-12-07 David Daney <ddaney@avtrex.com>
2431
2432 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2433 type.
2434
24352007-12-06 David Daney <ddaney@avtrex.com>
2436
2437 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2438 defined.
2439 (ffi_java_raw): New typedef.
2440 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2441 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2442 ffi_java_raw.
2443 (ffi_java_raw_closure) : Same.
2444 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2445 parameter types.
2446 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2447 FFI_SIZEOF_JAVA_RAW.
2448 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2449 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2450 sizeof(ffi_java_raw) for alignment calculations.
2451 (ffi_java_ptrarray_to_raw): Same.
2452 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002453 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002454 (ffi_java_raw_to_rvalue): Same.
2455 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2456 (ffi_java_translate_args): Same.
2457 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2458 parameter types.
2459 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2460
24612007-12-06 David Daney <ddaney@avtrex.com>
2462
Anthony Green0cfe60e2009-12-29 10:06:04 -05002463 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002464 pointer values.
2465
24662007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2467
2468 PR libffi/31937
2469 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2470 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2471 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2472 set the NUM_FPR_ARG_REGISTERS according to.
2473 Add support for potential soft-float support under hard-float
2474 architecture.
2475 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2476 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2477 to the FFI_LINUX_SOFT_FLOAT ABI.
2478 (ffi_prep_cif_machdep): Likewise.
2479 (ffi_closure_helper_SYSV): Likewise.
2480 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2481 on archs where __NO_FPRS__ is true.
2482 Add FFI_TYPE_UINT128 support.
2483 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2484 Adjust copyright notice.
2485
24862007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2487
2488 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2489 * include/ffi_common.h: ... here.
2490 Update copyright.
2491
24922007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2493
2494 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2495 * src/powerpc/linux64.S: Likewise.
2496 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2497 * testsuite/libffi.call/return_ldl.c: New test.
2498
24992007-09-04 <aph@redhat.com>
2500
2501 * src/arm/sysv.S (UNWIND): New.
2502 (Whole file): Conditionally compile unwinder directives.
2503 * src/arm/sysv.S: Add unwinder directives.
2504
2505 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2506 Only treat r0 as a struct address if we're actually returning a
2507 struct by address.
2508 Only copy the bytes that are actually within a struct.
2509 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2510 is returned in r0, not passed by address.
2511 (ffi_call): Allocate a word-sized temporary for the case where
2512 a composite is returned in r0.
2513 (ffi_prep_incoming_args_SYSV): Align as necessary.
2514
25152007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2516
Anthony Green0cfe60e2009-12-29 10:06:04 -05002517 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002518 directly using the sys_cacheflush syscall.
2519
25202007-07-27 Andrew Haley <aph@redhat.com>
2521
2522 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2523
25242007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2525
2526 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2527 * configure.ac: Likewise.
2528 * Makefile.in: Regenerate.
2529 * include/Makefile.in: Likewise.
2530 * testsuite/Makefile.in: Likewise.
2531 * configure: Likewise.
2532
25332007-08-24 David Daney <ddaney@avtrex.com>
2534
2535 * testsuite/libffi.call/return_sl.c: New test.
2536
25372007-08-10 David Daney <ddaney@avtrex.com>
2538
2539 * testsuite/libffi.call/cls_multi_ushort.c,
2540 testsuite/libffi.call/cls_align_uint16.c,
2541 testsuite/libffi.call/nested_struct1.c,
2542 testsuite/libffi.call/nested_struct3.c,
2543 testsuite/libffi.call/cls_7_1_byte.c,
2544 testsuite/libffi.call/nested_struct5.c,
2545 testsuite/libffi.call/cls_double.c,
2546 testsuite/libffi.call/nested_struct7.c,
2547 testsuite/libffi.call/cls_sint.c,
2548 testsuite/libffi.call/nested_struct9.c,
2549 testsuite/libffi.call/cls_20byte1.c,
2550 testsuite/libffi.call/cls_multi_sshortchar.c,
2551 testsuite/libffi.call/cls_align_sint64.c,
2552 testsuite/libffi.call/cls_3byte2.c,
2553 testsuite/libffi.call/cls_multi_schar.c,
2554 testsuite/libffi.call/cls_multi_uchar.c,
2555 testsuite/libffi.call/cls_19byte.c,
2556 testsuite/libffi.call/cls_9byte1.c,
2557 testsuite/libffi.call/cls_align_float.c,
2558 testsuite/libffi.call/closure_fn1.c,
2559 testsuite/libffi.call/problem1.c,
2560 testsuite/libffi.call/closure_fn3.c,
2561 testsuite/libffi.call/cls_sshort.c,
2562 testsuite/libffi.call/closure_fn5.c,
2563 testsuite/libffi.call/cls_align_double.c,
2564 testsuite/libffi.call/nested_struct.c,
2565 testsuite/libffi.call/cls_2byte.c,
2566 testsuite/libffi.call/nested_struct10.c,
2567 testsuite/libffi.call/cls_4byte.c,
2568 testsuite/libffi.call/cls_6byte.c,
2569 testsuite/libffi.call/cls_8byte.c,
2570 testsuite/libffi.call/cls_multi_sshort.c,
2571 testsuite/libffi.call/cls_align_sint16.c,
2572 testsuite/libffi.call/cls_align_uint32.c,
2573 testsuite/libffi.call/cls_20byte.c,
2574 testsuite/libffi.call/cls_float.c,
2575 testsuite/libffi.call/nested_struct2.c,
2576 testsuite/libffi.call/cls_5_1_byte.c,
2577 testsuite/libffi.call/nested_struct4.c,
2578 testsuite/libffi.call/cls_24byte.c,
2579 testsuite/libffi.call/nested_struct6.c,
2580 testsuite/libffi.call/cls_64byte.c,
2581 testsuite/libffi.call/nested_struct8.c,
2582 testsuite/libffi.call/cls_uint.c,
2583 testsuite/libffi.call/cls_multi_ushortchar.c,
2584 testsuite/libffi.call/cls_schar.c,
2585 testsuite/libffi.call/cls_uchar.c,
2586 testsuite/libffi.call/cls_align_uint64.c,
2587 testsuite/libffi.call/cls_ulonglong.c,
2588 testsuite/libffi.call/cls_align_longdouble.c,
2589 testsuite/libffi.call/cls_1_1byte.c,
2590 testsuite/libffi.call/cls_12byte.c,
2591 testsuite/libffi.call/cls_3_1byte.c,
2592 testsuite/libffi.call/cls_3byte1.c,
2593 testsuite/libffi.call/cls_4_1byte.c,
2594 testsuite/libffi.call/cls_6_1_byte.c,
2595 testsuite/libffi.call/cls_16byte.c,
2596 testsuite/libffi.call/cls_18byte.c,
2597 testsuite/libffi.call/closure_fn0.c,
2598 testsuite/libffi.call/cls_9byte2.c,
2599 testsuite/libffi.call/closure_fn2.c,
2600 testsuite/libffi.call/closure_fn4.c,
2601 testsuite/libffi.call/cls_ushort.c,
2602 testsuite/libffi.call/closure_fn6.c,
2603 testsuite/libffi.call/cls_5byte.c,
2604 testsuite/libffi.call/cls_align_pointer.c,
2605 testsuite/libffi.call/cls_7byte.c,
2606 testsuite/libffi.call/cls_align_sint32.c,
2607 testsuite/libffi.special/unwindtest_ffi_call.cc,
2608 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2609
26102007-08-10 David Daney <ddaney@avtrex.com>
2611
2612 PR libffi/28313
2613 * configure.ac: Don't treat mips64 as a special case.
2614 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2615 * configure: Regenerate
2616 * Makefile.in: Ditto.
2617 * fficonfig.h.in: Ditto.
2618 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2619 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2620 (FFI_DEFAULT_ABI): Set for n64 case.
2621 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2622 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2623 (ffi_closure_N32): New function.
2624 (.eh_frame): New section
2625 * src/mips/o32.S: Clean up comments.
2626 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2627 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2628 _MIPS_SIM == _ABIN32 throughout.
2629 (FFI_MIPS_STOP_HERE): New, use in place of
2630 ffi_stop_here.
2631 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2632 to support n32/n64 ABIs.
2633 (calc_n32_struct_flags): Rewrite.
2634 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2635 position of flag bits.
2636 (ffi_prep_cif_machdep): Rewrite n32 portion.
2637 (ffi_call): Enable for n64. Add special handling for small structure
2638 return values.
2639 (ffi_prep_closure_loc): Add n32 and n64 support.
2640 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2641 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2642
26432007-08-08 David Daney <ddaney@avtrex.com>
2644
2645 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2646 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2647 specifiers.
2648 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2649 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2650 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2651 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2652 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2653 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2654 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2655 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2656 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2657 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2658 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2659 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2660 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2661 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2662 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2663 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2664 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2665 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2666 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2667 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2668 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2669 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2670 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2671 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2672 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2673 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2674 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2675 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2676 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2677 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2678 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2679
26802007-08-07 Andrew Haley <aph@redhat.com>
2681
2682 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2683 checkin.
2684
26852007-08-06 Andrew Haley <aph@redhat.com>
2686
2687 PR testsuite/32843
2688 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2689 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2690 FFI_TYPE_SINT32.
2691
26922007-08-02 David Daney <ddaney@avtrex.com>
2693
2694 * testsuite/libffi.call/return_ul.c (main): Define return type as
2695 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002696
Anthony Greenc6dddbd2009-10-04 08:11:33 -040026972007-07-30 Andrew Haley <aph@redhat.com>
2698
2699 PR testsuite/32843
2700 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2701 signed/unsigned int8/16.
2702 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2703 Use a jump table.
2704 Remove code to pop args from the stack after call.
2705 Special-case signed/unsigned int8/16.
2706 * testsuite/libffi.call/return_sc.c (main): Revert.
2707
27082007-07-26 Richard Guenther <rguenther@suse.de>
2709
2710 PR testsuite/32843
2711 * testsuite/libffi.call/return_sc.c (main): Verify call
2712 result as signed char, not ffi_arg.
2713
27142007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2715
2716 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2717 * configure: Regenerate.
2718
27192007-07-11 David Daney <ddaney@avtrex.com>
2720
2721 * src/mips/ffi.c: Don't include sys/cachectl.h.
2722 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2723 cacheflush().
2724
27252007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2726
2727 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2728 from (ffi_prep_closure): ... this.
2729 (FFI_INIT_TRAMPOLINE): Adjust.
2730
27312005-12-31 Phil Blundell <pb@reciva.com>
2732
Anthony Green0cfe60e2009-12-29 10:06:04 -05002733 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2734 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002735 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2736 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2737 (FFI_CLOSURES): Enable closure support.
2738
27392007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2740
Anthony Green0cfe60e2009-12-29 10:06:04 -05002741 * testsuite/libffi.call/cls_multi_ushort.c,
2742 testsuite/libffi.call/cls_align_uint16.c,
2743 testsuite/libffi.call/nested_struct1.c,
2744 testsuite/libffi.call/nested_struct3.c,
2745 testsuite/libffi.call/cls_7_1_byte.c,
2746 testsuite/libffi.call/cls_double.c,
2747 testsuite/libffi.call/nested_struct5.c,
2748 testsuite/libffi.call/nested_struct7.c,
2749 testsuite/libffi.call/cls_sint.c,
2750 testsuite/libffi.call/nested_struct9.c,
2751 testsuite/libffi.call/cls_20byte1.c,
2752 testsuite/libffi.call/cls_multi_sshortchar.c,
2753 testsuite/libffi.call/cls_align_sint64.c,
2754 testsuite/libffi.call/cls_3byte2.c,
2755 testsuite/libffi.call/cls_multi_schar.c,
2756 testsuite/libffi.call/cls_multi_uchar.c,
2757 testsuite/libffi.call/cls_19byte.c,
2758 testsuite/libffi.call/cls_9byte1.c,
2759 testsuite/libffi.call/cls_align_float.c,
2760 testsuite/libffi.call/closure_fn1.c,
2761 testsuite/libffi.call/problem1.c,
2762 testsuite/libffi.call/closure_fn3.c,
2763 testsuite/libffi.call/cls_sshort.c,
2764 testsuite/libffi.call/closure_fn5.c,
2765 testsuite/libffi.call/cls_align_double.c,
2766 testsuite/libffi.call/cls_2byte.c,
2767 testsuite/libffi.call/nested_struct.c,
2768 testsuite/libffi.call/nested_struct10.c,
2769 testsuite/libffi.call/cls_4byte.c,
2770 testsuite/libffi.call/cls_6byte.c,
2771 testsuite/libffi.call/cls_8byte.c,
2772 testsuite/libffi.call/cls_multi_sshort.c,
2773 testsuite/libffi.call/cls_align_uint32.c,
2774 testsuite/libffi.call/cls_align_sint16.c,
2775 testsuite/libffi.call/cls_float.c,
2776 testsuite/libffi.call/cls_20byte.c,
2777 testsuite/libffi.call/cls_5_1_byte.c,
2778 testsuite/libffi.call/nested_struct2.c,
2779 testsuite/libffi.call/cls_24byte.c,
2780 testsuite/libffi.call/nested_struct4.c,
2781 testsuite/libffi.call/nested_struct6.c,
2782 testsuite/libffi.call/cls_64byte.c,
2783 testsuite/libffi.call/nested_struct8.c,
2784 testsuite/libffi.call/cls_uint.c,
2785 testsuite/libffi.call/cls_multi_ushortchar.c,
2786 testsuite/libffi.call/cls_schar.c,
2787 testsuite/libffi.call/cls_uchar.c,
2788 testsuite/libffi.call/cls_align_uint64.c,
2789 testsuite/libffi.call/cls_ulonglong.c,
2790 testsuite/libffi.call/cls_align_longdouble.c,
2791 testsuite/libffi.call/cls_1_1byte.c,
2792 testsuite/libffi.call/cls_12byte.c,
2793 testsuite/libffi.call/cls_3_1byte.c,
2794 testsuite/libffi.call/cls_3byte1.c,
2795 testsuite/libffi.call/cls_4_1byte.c,
2796 testsuite/libffi.call/cls_6_1_byte.c,
2797 testsuite/libffi.call/cls_16byte.c,
2798 testsuite/libffi.call/cls_18byte.c,
2799 testsuite/libffi.call/closure_fn0.c,
2800 testsuite/libffi.call/cls_9byte2.c,
2801 testsuite/libffi.call/closure_fn2.c,
2802 testsuite/libffi.call/closure_fn4.c,
2803 testsuite/libffi.call/cls_ushort.c,
2804 testsuite/libffi.call/closure_fn6.c,
2805 testsuite/libffi.call/cls_5byte.c,
2806 testsuite/libffi.call/cls_align_pointer.c,
2807 testsuite/libffi.call/cls_7byte.c,
2808 testsuite/libffi.call/cls_align_sint32.c,
2809 testsuite/libffi.special/unwindtest_ffi_call.cc,
2810 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002811
28122007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2813
2814 * aclocal.m4: Regenerated.
2815
28162007-06-02 Paolo Bonzini <bonzini@gnu.org>
2817
2818 * configure: Regenerate.
2819
28202007-05-23 Steve Ellcey <sje@cup.hp.com>
2821
2822 * Makefile.in: Regenerate.
2823 * configure: Regenerate.
2824 * aclocal.m4: Regenerate.
2825 * include/Makefile.in: Regenerate.
2826 * testsuite/Makefile.in: Regenerate.
2827
28282007-05-10 Roman Zippel <zippel@linux-m68k.org>
2829
2830 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2831 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2832 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2833 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2834 (FFI_CLOSURES): Enable closure support.
2835
28362007-05-10 Roman Zippel <zippel@linux-m68k.org>
2837
2838 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2839 * configure: Regenerate.
2840 * fficonfig.h.in: Regenerate.
2841 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2842 CFI_OFFSET,CFI_DEF_CFA): New macros.
2843 (ffi_call_SYSV): Add callframe annotation.
2844
28452007-05-10 Roman Zippel <zippel@linux-m68k.org>
2846
2847 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2848 numerous test suite failures.
2849 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2850
28512007-04-11 Paolo Bonzini <bonzini@gnu.org>
2852
2853 * Makefile.am (EXTRA_DIST): Bring up to date.
2854 * Makefile.in: Regenerate.
2855 * src/frv/eabi.S: Remove RCS keyword.
2856
28572007-04-06 Richard Henderson <rth@redhat.com>
2858
2859 * configure.ac: Tidy target case.
2860 (HAVE_LONG_DOUBLE): Allow the target to override.
2861 * configure: Regenerate.
2862 * include/ffi.h.in: Don't define ffi_type_foo if
2863 LIBFFI_HIDE_BASIC_TYPES is defined.
2864 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2865 to ffi_type_double.
2866 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2867 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2868 (ffi_type_longdouble): Special case for Alpha. Don't define
2869 if long double == double.
2870
2871 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2872 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2873 (ffi_call, ffi_closure_osf_inner): Likewise.
2874 (ffi_closure_osf_inner): Likewise. Mark hidden.
2875 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2876 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2877 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2878 (load_table): Handle 128-bit long double.
2879
2880 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2881
28822007-04-06 Tom Tromey <tromey@redhat.com>
2883
2884 PR libffi/31491:
2885 * README: Fixed bug in example.
2886
28872007-04-03 Jakub Jelinek <jakub@redhat.com>
2888
2889 * src/closures.c: Include sys/statfs.h.
2890 (_GNU_SOURCE): Define on Linux.
2891 (FFI_MMAP_EXEC_SELINUX): Define.
2892 (selinux_enabled): New variable.
2893 (selinux_enabled_check): New function.
2894 (is_selinux_enabled): Define.
2895 (dlmmap): Use it.
2896
28972007-03-24 Uros Bizjak <ubizjak@gmail.com>
2898
2899 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2900 Use 'volatile float sum' to create sum of floats to avoid false
2901 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002902 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002903
29042007-03-08 Alexandre Oliva <aoliva@redhat.com>
2905
2906 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2907 patch.
2908 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2909
29102007-03-07 Alexandre Oliva <aoliva@redhat.com>
2911
2912 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2913 (ffi_prep_closure_loc): New.
2914 (ffi_prep_raw_closure_loc): New.
2915 (ffi_prep_java_raw_closure_loc): New.
2916 * src/closures.c: New file.
2917 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2918 Replace sflags with exec_offset.
2919 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2920 sub_segment_exec_offset): New macros.
2921 (get_segment_flags, set_segment_flags, check_segment_merge): New
2922 macros.
2923 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2924 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2925 destroy_mspace): Use new macros.
2926 (sys_alloc): Silence warning.
2927 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2928 * Makefile.in: Rebuilt.
2929 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2930 terms of ffi_prep_closure_loc.
2931 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2932 from...
2933 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2934 renamed version.
2935 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2936 adjusted from...
2937 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2938 the renamed version.
2939 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2940 (ffi_prep_closure): ... this.
2941 * src/pa/ffi.c: Likewise.
2942 * src/cris/ffi.c: Likewise. Adjust.
2943 * src/frv/ffi.c: Likewise.
2944 * src/ia64/ffi.c: Likewise.
2945 * src/mips/ffi.c: Likewise.
2946 * src/powerpc/ffi_darwin.c: Likewise.
2947 * src/s390/ffi.c: Likewise.
2948 * src/sh/ffi.c: Likewise.
2949 * src/sh64/ffi.c: Likewise.
2950 * src/sparc/ffi.c: Likewise.
2951 * src/x86/ffi64.c: Likewise.
2952 * src/x86/ffi.c: Likewise.
2953 (FFI_INIT_TRAMPOLINE): Adjust.
2954 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2955 (ffi_prep_raw_closure): ... this.
2956 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2957 (ffi_prep_closure): ... this.
2958 (flush_icache): Adjust.
2959
29602007-03-07 Alexandre Oliva <aoliva@redhat.com>
2961
2962 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2963 Lea's malloc.
2964
29652007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2966
2967 * Makefile.am: Add dummy install-pdf target.
2968 * Makefile.in: Regenerate
2969
29702007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2971
2972 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2973 ffi_closure_helper_SYSV): Add long double handling.
2974
29752007-02-02 Jakub Jelinek <jakub@redhat.com>
2976
2977 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2978 immediately after bctrl instruction.
2979
29802007-01-18 Alexandre Oliva <aoliva@redhat.com>
2981
2982 * Makefile.am (all-recursive, install-recursive,
2983 mostlyclean-recursive, clean-recursive, distclean-recursive,
2984 maintainer-clean-recursive): Add missing targets.
2985 * Makefile.in: Rebuilt.
2986
29872006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2988
2989 * configure.ac: Add TARGET for x86_64-*-darwin*.
2990 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2991 for X86_DARWIN.
2992 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2993 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2994 * configure: Regenerate.
2995 * Makefile.in: Regenerate.
2996 * include/Makefile.in: Regenerate.
2997 * testsuite/Makefile.in: Regenerate.
2998 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2999 ffi_call only.
3000
30012006-12-13 Andreas Tobler <a.tobler@schweiz.org>
3002
3003 * aclocal.m4: Regenerate with aclocal -I .. as written in the
3004 Makefile.am.
3005
30062006-10-31 Geoffrey Keating <geoffk@apple.com>
3007
3008 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3009 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3010 Darwin.
3011 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3012 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3013
30142006-10-10 Paolo Bonzini <bonzini@gnu.org>
3015 Sandro Tolaini <tolaini@libero.it>
3016
Anthony Green0cfe60e2009-12-29 10:06:04 -05003017 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003018 conditional.
3019 * configure: Regenerated.
3020 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3021 (EXTRA_DIST): Add src/x86/darwin.S.
3022 * Makefile.in: Regenerated.
3023 * include/Makefile.in: Regenerated.
3024 * testsuite/Makefile.in: Regenerated.
3025
3026 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3027 X86_WIN32, and additionally align stack to 16 bytes.
3028 * src/x86/darwin.S: New, based on sysv.S.
3029 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3030
30312006-09-12 David Daney <ddaney@avtrex.com>
3032
3033 PR libffi/23935
3034 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3035 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3036 * aclocal.m4: Regenerated for automake 1.9.6.
3037 * Makefile.in: Regenerated.
3038 * include/Makefile.in: Regenerated.
3039 * testsuite/Makefile.in: Regenerated.
3040
30412006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3042
3043 * include/ffi_common.h (struct): Revert accidental commit.
3044
30452006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3046
3047 * include/ffi_common.h: Remove lint directives.
3048 * include/ffi.h.in: Likewise.
3049
30502006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3051
3052 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3053 for 32-bit architectures.
3054 * testsuite/libffi.call/return_ul.c: New test case.
3055
30562006-07-19 David Daney <ddaney@avtrex.com>
3057
3058 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3059 xfail remains for mips64.
3060
30612006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3062
3063 * Makefile.am: Add install-html target. Add install-html to .PHONY
3064 * Makefile.in: Regenerate.
3065 * aclocal.m4: Regenerate.
3066 * include/Makefile.in: Regenerate.
3067 * testsuite/Makefile.in: Regenerate.
3068
30692006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3070
3071 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3072 stack slot.
3073
30742006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3075
3076 * README: Remove notice about 'Crazy Comments'.
3077 * src/debug.c: Remove lint directives. Cleanup white spaces.
3078 * src/java_raw_api.c: Likewise.
3079 * src/prep_cif.c: Likewise.
3080 * src/raw_api.c: Likewise.
3081 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3082 to the testsuite.
3083 * src/arm/ffi.c: Remove lint directives.
3084 * src/m32r/ffi.c: Likewise.
3085 * src/pa/ffi.c: Likewise.
3086 * src/powerpc/ffi.c: Likewise.
3087 * src/powerpc/ffi_darwin.c: Likewise.
3088 * src/sh/ffi.c: Likewise.
3089 * src/sh64/ffi.c: Likewise.
3090 * src/x86/ffi.c: Likewise.
3091 * testsuite/libffi.call/float2.c: Likewise.
3092 * testsuite/libffi.call/promotion.c: Likewise.
3093 * testsuite/libffi.call/struct1.c: Likewise.
3094
30952006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3096
3097 * src/pa/hpux32.S: Correct unwind offset calculation for
3098 ffi_closure_pa32.
3099 * src/pa/linux.S: Likewise.
3100
31012006-04-12 James E Wilson <wilson@specifix.com>
3102
3103 PR libgcj/26483
3104 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3105 (hfa_type_load): Call stf_spill.
3106 (hfa_type_store): Call ldf_fill.
3107 (ffi_call): Adjust calls to above routines. Add local temps for
3108 macro result.
3109
31102006-04-10 Matthias Klose <doko@debian.org>
3111
3112 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3113 directory names containing underscores.
3114
31152006-04-07 James E Wilson <wilson@specifix.com>
3116
3117 * testsuite/libffi.call/float4.c: New testcase.
3118
31192006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3120 Andreas Tobler <a.tobler@schweiz.ch>
3121
3122 * Makefile.am: Add PA_HPUX port.
3123 * Makefile.in: Regenerate.
3124 * include/Makefile.in: Likewise.
3125 * testsuite/Makefile.in: Likewise.
3126 * configure.ac: Add PA_HPUX rules.
3127 * configure: Regenerate.
3128 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3129 Add PA_HPUX and PA64_HPUX.
3130 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3131 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3132 (FFI_TYPE_SMALL_STRUCT2): Define.
3133 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3134 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3135 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3136 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3137 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3138 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3139 * src/pa/ffi.c (ROUND_DOWN): Delete.
3140 (fldw, fstw, fldd, fstd): Use '__asm__'.
3141 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3142 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3143 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3144 Simplify incrementing of stack slot variable. Change type of local
3145 'n' to unsigned int.
3146 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3147 double on PA_HPUX.
3148 (ffi_prep_cif_machdep): Likewise.
3149 (ffi_call): Likewise.
3150 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3151 return type to ffi_status. Simplify incrementing of stack slot
3152 variable. Only copy floating point argument registers when PA_LINUX
3153 is true. Reformat debug statement.
3154 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3155 FFI_TYPE_SMALL_STRUCT8.
3156 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3157 declaration.
3158 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3159 Add nops to cache flush. Add trampoline for PA_HPUX.
3160 * src/pa/hpux32.S: New file.
3161 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3162 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3163 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3164 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3165 argument type checks so that common argument types appear first.
3166 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3167 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3168
31692006-03-24 Alan Modra <amodra@bigpond.net.au>
3170
3171 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3172 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3173 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3174 FFI_TYPE_LONGDOUBLE.
3175 (ffi_prep_args64): Assert using IBM extended double.
3176 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3177 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3178 (ffi_call): Handle FFI_LINUX.
3179 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3180 gpr3 return pointer as for struct return. Handle FFI_LINUX
3181 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3182 unnecessarily.
3183 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3184 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3185 Don't use r6 as pointer to results, instead use sp offset. Don't
3186 make a special call to load lr with case table address, instead
3187 use offset from previous call.
3188 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3189 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3190 return.
3191
31922006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3193
3194 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3195 passed with FP registers correctly.
3196 (ffi_closure_helper_SYSV): Likewise.
3197 * src/sh64/sysv.S: Likewise.
3198
31992006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3200
3201 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3202 args and userdata unused.
3203 (closure_test_fn1): Mark cif and userdata unused.
3204 (main): Remove unused res.
3205
32062006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3207
3208 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3209 -O2, -O3, -Os and the warning flags -W -Wall.
3210 * testsuite/libffi.special/special.exp: Likewise.
3211 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3212 unused parameter unused for gcc or else do nothing.
3213 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3214 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3215 and userdata unused.
3216 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3217 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3218 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3219 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3220 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3221 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3222 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3223 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3224 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3225 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3226 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3227 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3228 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3229 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3230 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3231 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3232 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3233 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3234 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3235 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3236 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3237 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3238 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3239 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3240 Likewise.
3241 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3242 Likewise.
3243 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3244 Likewise.
3245 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3246 void* to avoid compiler warning.
3247 (main): Likewise.
3248 (cls_struct_align_gn): Mark cif and userdata unused.
3249 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3250 Likewise.
3251 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3252 Likewise.
3253 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3254 Likewise.
3255 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3256 Likewise.
3257 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3258 Likewise.
3259 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3260 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3261 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3262 data unused.
3263 (main): Cast res_call to silence gcc.
3264 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3265 data unused.
3266 (main): Cast res_call to silence gcc.
3267 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3268 and data unused.
3269 (main): Cast res_call to silence gcc.
3270 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3271 data unused.
3272 (main): Cast res_call to silence gcc.
3273 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3274 data unused.
3275 (main): Cast res_call to silence gcc.
3276 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3277 and data unused.
3278 (main): Cast res_call to silence gcc.
3279 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3280 userdata unused.
3281 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3282 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3283 userdata unused.
3284 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3285 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3286 userdata unused.
3287 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3288 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3289 userdata unused.
3290 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3291 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3292 userdata unused.
3293 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3294 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3295 and userdata unused.
3296 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3297 userdata unused.
3298 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3299 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3300 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3301 Cleanup white spaces.
3302 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3303 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3304 cif and userdata unused.
3305 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3306 Likewise.
3307 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3308 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3309 formatters to silence gcc.
3310 (B_gn): Mark cif and userdata unused.
3311 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3312 unused.
3313 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3314 (B_gn): Mark cif and userdata unused.
3315 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3316 unused.
3317 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3318 (B_gn): Mark cif and userdata unused.
3319 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3320 unused.
3321 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3322 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3323 * testsuite/libffi.call/problem1.c (stub): Likewise.
3324 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3325 gcc.
3326 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3327 in the last commit for this test case in the test case itself.
3328 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3329 unused.
3330 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3331 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3332 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3333 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3334 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3335 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3336
33372006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3338
3339 * src/sh/sysv.S: Fix register numbers in the FDE for
3340 ffi_closure_SYSV.
3341
33422006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3343
3344 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3345 declaration to avoid a false negative on ix86. See PR323.
3346
33472006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3348
3349 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3350 and cast integer to void * if needed. Update the pointer to
3351 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003352
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033532006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3354
3355 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3356 is fixed.
3357 * testsuite/libffi.call/nested_struct4.c: Likewise.
3358
33592006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3360
3361 * testsuite/libffi.call/return_dbl.c: New test case.
3362 * testsuite/libffi.call/return_dbl1.c: Likewise.
3363 * testsuite/libffi.call/return_dbl2.c: Likewise.
3364 * testsuite/libffi.call/return_fl.c: Likewise.
3365 * testsuite/libffi.call/return_fl1.c: Likewise.
3366 * testsuite/libffi.call/return_fl2.c: Likewise.
3367 * testsuite/libffi.call/return_fl3.c: Likewise.
3368 * testsuite/libffi.call/closure_fn6.c: Likewise.
3369
3370 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3371 definition.
3372 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3373 here to be used by other test cases too.
3374
3375 * testsuite/libffi.call/nested_struct10.c: New test case.
3376 * testsuite/libffi.call/nested_struct9.c: Likewise.
3377 * testsuite/libffi.call/nested_struct8.c: Likewise.
3378 * testsuite/libffi.call/nested_struct7.c: Likewise.
3379 * testsuite/libffi.call/nested_struct6.c: Likewise.
3380 * testsuite/libffi.call/nested_struct5.c: Likewise.
3381 * testsuite/libffi.call/nested_struct4.c: Likewise.
3382
33832006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3384
3385 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3386 * configure: Rebuilt.
3387
33882006-01-18 Jakub Jelinek <jakub@redhat.com>
3389
3390 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3391 instead do the shifting inline.
3392 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3393 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3394 and 8 byte structs, for the remaining struct sizes don't call
3395 __lshrdi3, instead do the shifting inline.
3396
33972005-12-07 Thiemo Seufer <ths@networkno.de>
3398
3399 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3400 missing parentheses.
3401 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3402 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3403 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3404 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3405 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3406 FA_0_0_OFF2.
3407 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3408 endianness bugs.
3409 (ffi_prep_closure): Improve trampoline instruction scheduling.
3410 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3411
34122005-12-03 Alan Modra <amodra@bigpond.net.au>
3413
3414 * src/powerpc/ffi.c: Formatting.
3415 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3416 (ffi_prep_args64): Likewise.
3417
34182005-09-30 Geoffrey Keating <geoffk@apple.com>
3419
3420 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3421 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3422
34232005-09-26 Tom Tromey <tromey@redhat.com>
3424
3425 * testsuite/libffi.call/float1.c (value_type): New typedef.
3426 (CANARY): New define.
3427 (main): Check for result buffer overflow.
3428 * src/powerpc/linux64.S: Handle linux64 long double returns.
3429 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3430 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3431
34322005-08-25 Alan Modra <amodra@bigpond.net.au>
3433
3434 PR target/23404
3435 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3436 homed fp args.
3437 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3438
34392005-08-11 Jakub Jelinek <jakub@redhat.com>
3440
3441 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3442 (AH_BOTTOM): Add FFI_HIDDEN definition.
3443 * configure: Rebuilt.
3444 * fficonfig.h.in: Rebuilt.
3445 * src/powerpc/ffi.c (hidden): Remove.
3446 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3447 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3448 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3449 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3450 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3451 add FFI_HIDDEN to its prototype.
3452 (ffi_closure_SYSV_inner): New.
3453 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3454 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3455
34562005-08-10 Alfred M. Szmidt <ams@gnu.org>
3457
3458 PR libffi/21819:
3459 * configure: Rebuilt.
3460 * configure.ac: Handle i*86-*-gnu*.
3461
34622005-08-09 Jakub Jelinek <jakub@redhat.com>
3463
3464 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3465 DW_CFA_offset_extended_sf rather than
3466 DW_CFA_GNU_negative_offset_extended.
3467 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3468
34692005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3470
3471 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3472 on sh3.
3473 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3474 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3475 partially on register.
3476 (ffi_closure_helper_SYSV): Likewise.
3477 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3478
34792005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3480
3481 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3482 Remove empty line.
3483 * src/sh64/ffi.c (simple_type): Remove.
3484 (return_type): Handle small structures correctly.
3485 (ffi_prep_args): Likewise.
3486 (ffi_call): Likewise.
3487 (ffi_closure_helper_SYSV): Likewise.
3488 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3489 Emit position independent code if PIC and remove wrong datalabel
3490 prefixes from EH data.
3491
34922005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3493
3494 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3495 * Makefile.in: Regenerate.
3496 * include/Makefile.in: Likewise.
3497 * testsuite/Makefile.in: Likewise.
3498 * configure.ac: Add POWERPC_FREEBSD rules.
3499 * configure: Regenerate.
3500 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3501 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3502 * src/powerpc/ffi.c: Add flags to handle small structure returns
3503 in ffi_call_SYSV.
3504 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3505 Aka FFI_SYSV.
3506 (ffi_closure_helper_SYSV): Likewise.
3507 * src/powerpc/ppc_closure.S: Add return types for small structures.
3508 * src/powerpc/sysv.S: Add bits to handle small structures for
3509 final SYSV 4 ABI.
3510
35112005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3512
3513 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3514 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3515 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3516
35172005-07-05 Randolph Chung <tausq@debian.org>
3518
3519 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3520 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3521 structures. Kill compilation warnings.
3522 (ffi_closure_inner_LINUX): Print return values as hex in debug
3523 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3524 Properly handle 5-7 byte structure returns.
3525 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3526 (FFI_TYPE_SMALL_STRUCT2): Remove.
3527 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3528 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3529 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3530 (checksmst1, checksmst2): Remove.
3531 (checksmst3): Optimize handling of 3-byte struct returns.
3532 (checksmst567): Properly handle 5-7 byte struct returns.
3533
35342005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3535
3536 PR libgcj/21943
3537 * src/mips/n32.S: Enforce PIC code.
3538 * src/mips/o32.S: Likewise.
3539
35402005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3541
3542 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3543 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003544
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035452005-06-01 Alan Modra <amodra@bigpond.net.au>
3546
3547 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3548 to call ffi_closure_helper_SYSV. Append @local instead.
3549 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3550
35512005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3552
3553 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3554 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3555 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3556 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3557 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003558
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035592005-05-09 Mike Stump <mrs@apple.com>
3560
3561 * configure: Regenerate.
3562
35632005-05-08 Richard Henderson <rth@redhat.com>
3564
3565 PR libffi/21285
3566 * src/alpha/osf.S: Update unwind into to match code.
3567
35682005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3569 Richard Henderson <rth@redhat.com>
3570
3571 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3572 bit 11 of flags.
3573 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3574 (ffi_prep_closure): Set carry bit if sse-used flag set.
3575 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3576 Only load sse registers if ssecount non-zero.
3577 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3578
35792005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3580
3581 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3582 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3583 * configure: Regenerate.
3584
35852005-04-20 Hans-Peter Nilsson <hp@axis.com>
3586
3587 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3588 have Tcl8.3-compatible intermediate variable.
3589
Anthony Green0cfe60e2009-12-29 10:06:04 -050035902005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003591 Hans-Peter Nilsson <hp@axis.com>
3592
3593 * Makefile.am: Add CRIS support.
3594 * configure.ac: Likewise.
3595 * Makefile.in, configure, testsuite/Makefile.in,
3596 include/Makefile.in: Regenerate.
3597 * src/cris: New directory.
3598 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3599 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3600
3601 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3602 \r?\n in output tests.
3603
36042005-04-12 Mike Stump <mrs@apple.com>
3605
3606 * configure: Regenerate.
3607
36082005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3609
3610 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003611
Anthony Greenc6dddbd2009-10-04 08:11:33 -040036122005-03-30 Steve Ellcey <sje@cup.hp.com>
3613
3614 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3615 (ffi_sarg) Ditto.
3616 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3617 to 64 bits in ILP32 mode.
3618 Load 64 bits even for short data.
3619
36202005-03-23 Mike Stump <mrs@apple.com>
3621
3622 * src/powerpc/darwin.S: Update for -m64 multilib.
3623 * src/powerpc/darwin_closure.S: Likewise.
3624
36252005-03-21 Zack Weinberg <zack@codesourcery.com>
3626
3627 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3628 Do not set tool_include_dir.
3629 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3630 Regenerate.
3631 * include/Makefile.am: Set gcc_version and toollibffidir.
3632 * include/Makefile.in: Regenerate.
3633
36342005-02-22 Andrew Haley <aph@redhat.com>
3635
3636 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3637 odd-numbered register pairs for 64-bit integer types.
3638
36392005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3640
3641 PR libffi/20104
3642 * testsuite/libffi.call/return_ll1.c: New test case.
3643
36442005-02-11 Janis Johnson <janis187@us.ibm.com>
3645
3646 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3647 * testsuite/libffi.call/float.c: Ditto.
3648 * testsuite/libffi.call/float2.c: Ditto.
3649 * testsuite/libffi.call/float3.c: Ditto.
3650
36512005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3652
3653 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3654
36552005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3656
3657 * testsuite/libffi.special/special.exp (cxx_options): Add
3658 -shared-libgcc.
3659
36602004-12-31 Richard Henderson <rth@redhat.com>
3661
3662 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3663 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3664 offset parameters with a type parameter; deduce size and structure
3665 alignment. Update all users.
3666
36672004-12-31 Richard Henderson <rth@redhat.com>
3668
3669 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3670 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3671 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3672 into ffi_prep_closure.
3673 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3674 from scratch.
3675
36762004-12-27 Richard Henderson <rth@redhat.com>
3677
3678 * src/x86/unix64.S: Fix typo in unwind info.
3679
36802004-12-25 Richard Henderson <rth@redhat.com>
3681
3682 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3683 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3684 (merge_classes): Check for it.
3685 (SSE_CLASS_P): New.
3686 (classify_argument): Pass byte_offset by value; perform all updates
3687 inside struct case.
3688 (examine_argument): Add classes argument; handle
3689 X86_64_COMPLEX_X87_CLASS.
3690 (ffi_prep_args): Merge into ...
3691 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3692 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3693 (ffi_fill_return_value): Remove.
3694 (ffi_prep_closure): Remove dead assert.
3695 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3696 Rewrite to use struct register_args instead of va_list. Create
3697 flags for handling structure returns.
3698 * src/x86/unix64.S: Remove dead strings.
3699 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3700 stack frame with ffi_call. Handle structure returns properly.
3701 (float2sse, floatfloat2sse, double2sse): Remove.
3702 (sse2float, sse2double, sse2floatfloat): Remove.
3703 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3704 to handle structure returns properly.
3705
37062004-12-08 David Edelsohn <edelsohn@gnu.org>
3707
3708 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3709 PICFLAG.
3710 * Makefile.in: Regenerated.
3711
37122004-12-02 Richard Sandiford <rsandifo@redhat.com>
3713
3714 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3715 * configure, aclocal.m4, Makefile.in: Regenerate.
3716 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3717
37182004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3719
3720 * configure: Regenerate for libtool change.
3721
37222004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3723
3724 * configure: Regenerate for libtool reversion.
3725
37262004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3727
3728 * configure: Regenerate for libtool change.
3729
37302004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3731
3732 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3733
37342004-11-23 Richard Sandiford <rsandifo@redhat.com>
3735
3736 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3737 of jal. Use an absolute encoding for the frame information.
3738
37392004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3740
3741 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3742 * acinclude.m4: Delete logic for sincludes.
3743 * aclocal.m4, Makefile.in, configure: Regenerate.
3744 * include/Makefile: Likewise.
3745 * testsuite/Makefile: Likewise.
3746
37472004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3748
3749 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3750 on a 8-byte boundary.
3751 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3752
37532004-10-27 Richard Earnshaw <rearnsha@arm.com>
3754
3755 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3756 long long values. Round stack allocation to a multiple of 8 bytes
3757 for ATPCS compatibility.
3758 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3759 names. Handle returning long long types. Add Thumb and interworking
3760 support. Improve soft-float code.
3761
37622004-10-27 Richard Earnshaw <rearnsha@arm.com>
3763
3764 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3765 (libffi_exit): New function.
3766 (libffi_init): Build the testglue wrapper if needed.
3767
37682004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3769
3770 PR other/18138
3771 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3772
37732004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3774
3775 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3776
37772004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3778
3779 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3780 * testsuite/libffi.call/float3.c: New test case.
3781
37822004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3783
3784 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3785 the function returning a structure pointed with R2.
3786 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3787 the structure return value if T bit set. Emit position
3788 independent code and EH data if PIC.
3789
37902004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3791
3792 * Makefile.am: Add m32r support.
3793 * configure.ac: Likewise.
3794 * Makefile.in: Regenerate.
3795 * confiugre: Regenerate.
3796 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3797 (uint64, sint64, double, longdouble)
3798 * src/m32r: New directory.
3799 * src/m32r/ffi.c: New file.
3800 * src/m32r/sysv.S: Likewise.
3801 * src/m32r/ffitarget.h: Likewise.
3802
38032004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3804
3805 * testsuite/libffi.call/negint.c: New test case.
3806
38072004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3808
3809 PR libgcj/17465
3810 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3811 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3812 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3813 DYLD_LIBRARY_PATH.
3814
38152004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3816
3817 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3818 * testsuite/libffi.call/promotion.c: Likewise.
3819 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3820 whitespaces.
3821 * testsuite/libffi.call/return_sc.c: Likewise.
3822 * testsuite/libffi.call/return_uc.c: Likewise.
3823
38242004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3825
3826 * src/powerpc/darwin.S: Fix comments and identation.
3827 * src/powerpc/darwin_closure.S: Likewise.
3828
38292004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3830
3831 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3832 (ffi_prep_args): Handle longdouble arguments.
3833 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3834 longdouble.
3835 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3836 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3837 values.
3838 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3839 * src/types.c: Defined longdouble size and alignment for darwin.
3840
38412004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3842
3843 * src/powerpc/aix.S: Remove whitespaces.
3844 * src/powerpc/aix_closure.S: Likewise.
3845 * src/powerpc/asm.h: Likewise.
3846 * src/powerpc/ffi.c: Likewise.
3847 * src/powerpc/ffitarget.h: Likewise.
3848 * src/powerpc/linux64.S: Likewise.
3849 * src/powerpc/linux64_closure.S: Likewise.
3850 * src/powerpc/ppc_closure.S: Likewise.
3851 * src/powerpc/sysv.S: Likewise.
3852
38532004-08-30 Anthony Green <green@redhat.com>
3854
3855 * Makefile.am: Add frv support.
3856 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3857 * configure.ac: Read configure.host.
3858 * configure.in: Read configure.host.
3859 * configure.host: New file. frv-elf needs libgloss.
3860 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3861 alignment. This is needed to frv and shouldn't harm the others.
3862 * include/ffi_common.h (ALIGN_DOWN): New macro.
3863 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3864
38652004-08-24 David Daney <daney@avtrex.com>
3866
3867 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3868 * testsuite/libffi.call/closure_fn1.c: Likewise.
3869 * testsuite/libffi.call/closure_fn2.c Likewise.
3870 * testsuite/libffi.call/closure_fn3.c: Likewise.
3871 * testsuite/libffi.call/closure_fn4.c: Likewise.
3872 * testsuite/libffi.call/closure_fn5.c: Likewise.
3873 * testsuite/libffi.call/cls_18byte.c: Likewise.
3874 * testsuite/libffi.call/cls_19byte.c: Likewise.
3875 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3876 * testsuite/libffi.call/cls_20byte.c: Likewise.
3877 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3878 * testsuite/libffi.call/cls_24byte.c: Likewise.
3879 * testsuite/libffi.call/cls_2byte.c: Likewise.
3880 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3881 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3882 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3883 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3884 * testsuite/libffi.call/cls_4byte.c: Likewise.
3885 * testsuite/libffi.call/cls_64byte.c: Likewise.
3886 * testsuite/libffi.call/cls_6byte.c: Likewise.
3887 * testsuite/libffi.call/cls_7byte.c: Likewise.
3888 * testsuite/libffi.call/cls_8byte.c: Likewise.
3889 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3890 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3891 * testsuite/libffi.call/cls_align_double.c: Likewise.
3892 * testsuite/libffi.call/cls_align_float.c: Likewise.
3893 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3894 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3895 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3896 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3897 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3898 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3899 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3900 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3901 * testsuite/libffi.call/cls_double.c: Likewise.
3902 * testsuite/libffi.call/cls_float.c: Likewise.
3903 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3904 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3905 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3906 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3907 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3908 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3909 * testsuite/libffi.call/cls_schar.c: Likewise.
3910 * testsuite/libffi.call/cls_sint.c: Likewise.
3911 * testsuite/libffi.call/cls_sshort.c: Likewise.
3912 * testsuite/libffi.call/cls_uchar.c: Likewise.
3913 * testsuite/libffi.call/cls_uint.c: Likewise.
3914 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3915 * testsuite/libffi.call/cls_ushort.c: Likewise.
3916 * testsuite/libffi.call/nested_struct.c: Likewise.
3917 * testsuite/libffi.call/nested_struct1.c: Likewise.
3918 * testsuite/libffi.call/nested_struct2.c: Likewise.
3919 * testsuite/libffi.call/nested_struct3.c: Likewise.
3920 * testsuite/libffi.call/problem1.c: Likewise.
3921 * testsuite/libffi.special/unwindtest.cc: Likewise.
3922 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3923 to zero.
3924 * testsuite/libffi.call/cls_16byte.c: Likewise.
3925 * testsuite/libffi.call/cls_5byte.c: Likewise.
3926
39272004-08-23 David Daney <daney@avtrex.com>
3928
3929 PR libgcj/13141
3930 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3931 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3932 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3933 parameters and return types.
3934 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3935 (ffi_prep_closure): Ditto.
3936 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3937 alignment calculations.
3938 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3939 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3940
39412004-08-14 Casey Marshall <csm@gnu.org>
3942
3943 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3944 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3945 integer (O32 ABI only).
3946 (ffi_prep_closure): new function.
3947 (ffi_closure_mips_inner_O32): new function.
3948 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3949 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3950 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3951 64 bit integers correctly.
3952 (ffi_closure_O32): new function.
3953 Added DWARF-2 unwind info for both functions.
3954
39552004-08-10 Andrew Haley <aph@redhat.com>
3956
3957 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3958
39592004-08-01 Robert Millan <robertmh@gnu.org>
3960
3961 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3962 * configure: Regenerate.
3963
39642004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3965
3966 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3967 and mmap() explicitly instead of relying on preset autoconf cache
3968 variables.
3969 * aclocal.m4: Regenerate.
3970 * configure: Regenerate.
3971
39722004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3973
3974 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3975 (ffi_check_float_struct): Remove unused prototype.
3976
39772004-06-30 Geoffrey Keating <geoffk@apple.com>
3978
3979 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3980 character on Darwin, use '\n\t' instead.
3981
39822004-06-26 Matthias Klose <doko@debian.org>
3983
3984 * libtool-version: Fix typo in revision/age.
3985
39862004-06-17 Matthias Klose <doko@debian.org>
3987
3988 * libtool-version: New.
3989 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3990 * Makefile.in: Regenerate.
3991
39922004-06-15 Paolo Bonzini <bonzini@gnu.org>
3993
3994 * Makefile.am: Remove useless multilib rules.
3995 * Makefile.in: Regenerate.
3996 * aclocal.m4: Regenerate with automake 1.8.5.
3997 * configure.ac: Remove useless multilib configury.
3998 * configure: Regenerate.
3999
40002004-06-15 Paolo Bonzini <bonzini@gnu.org>
4001
4002 * .cvsignore: New file.
4003
40042004-06-10 Jakub Jelinek <jakub@redhat.com>
4005
4006 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4007 fp_done.
4008 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4009 changed from 8.
4010
40112004-06-06 Sean McNeil <sean@mcneil.com>
4012
4013 * configure.ac: Add x86_64-*-freebsd* support.
4014 * configure: Regenerate.
4015
40162004-04-26 Joe Buck <jbuck@welsh-buck.org>
4017
4018 Bug 15093
4019 * configure.ac: Test for existence of mmap and sys/mman.h before
4020 checking blacklist. Fix suggested by Jim Wilson.
4021 * configure: Regenerate.
4022
40232004-04-26 Matt Austern <austern@apple.com>
4024
4025 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4026 FDE location.
4027 * src/powerpc/darwin_closure.S: Likewise.
4028
40292004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4030
4031 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4032 error. Reported by Thomas Heller <theller@python.net>.
4033 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4034 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4035
40362004-03-20 Matthias Klose <doko@debian.org>
4037
4038 * src/pa/linux.S: Fix typo.
4039
40402004-03-19 Matthias Klose <doko@debian.org>
4041
4042 * Makefile.am: Update.
4043 * Makefile.in: Regenerate.
4044 * src/pa/ffi.h.in: Remove.
4045 * src/pa/ffitarget.h: New file.
4046
40472004-02-10 Randolph Chung <tausq@debian.org>
4048
4049 * Makefile.am: Add PA support.
4050 * Makefile.in: Regenerate.
4051 * include/Makefile.in: Regenerate.
4052 * configure.ac: Add PA target.
4053 * configure: Regenerate.
4054 * src/pa/ffi.c: New file.
4055 * src/pa/ffi.h.in: Add PA support.
4056 * src/pa/linux.S: New file.
4057 * prep_cif.c: Add PA support.
4058
40592004-03-16 Hosaka Yuji <hos@tamanegi.org>
4060
4061 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4062 double.
4063 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4064 with ecif->cif->flags.
4065 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4066 with cif->flags.
4067 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4068 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4069 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4070 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4071
40722004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4073
4074 * configure.in: Rename file to ...
4075 * configure.ac: ... this.
4076 * fficonfig.h.in: Regenerate.
4077 * Makefile.in: Regenerate.
4078 * include/Makefile.in: Regenerate.
4079 * testsuite/Makefile.in: Regenerate.
4080
40812004-03-12 Matt Austern <austern@apple.com>
4082
4083 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4084 changes in EH format resulting from addition of linkonce support.
4085 * src/powerpc/darwin_closure.S: Likewise.
4086
40872004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4088 Paolo Bonzini <bonzini@gnu.org>
4089
4090 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4091 Remove VPATH. Remove rules for object files. Remove multilib support.
4092 (AM_CCASFLAGS): Add.
4093 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4094 (AC_PREREQ): Bump version to 2.59.
4095 (AC_INIT): Fill with version info and bug address.
4096 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4097 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4098 De-precious CC so that the right flags are passed down to multilibs.
4099 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4100 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4101 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4102 * configure: Rebuilt.
4103 * aclocal.m4: Likewise.
4104 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4105 * fficonfig.h.in: Likewise.
4106
41072004-03-11 Andreas Schwab <schwab@suse.de>
4108
4109 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4110 arguments from fp registers only for the first 8 parameter slots.
4111 Don't convert a float parameter when passed in memory.
4112
41132004-03-09 Hans-Peter Nilsson <hp@axis.com>
4114
4115 * configure: Regenerate for config/accross.m4 correction.
4116
41172004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4118
4119 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4120 ecif->cif->bytes to bytes.
4121 (ffi_prep_cif_machdep): Add braces around nested if statement.
4122
41232004-02-09 Alan Modra <amodra@bigpond.net.au>
4124
4125 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4126
4127 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4128 (ffi_closure_helper_LINUX64): Fix typo.
4129 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4130 for powerpc64-*-*.
4131 * testsuite/libffi.call/float.c: Likewise.
4132 * testsuite/libffi.call/float2.c: Likewise.
4133
41342004-02-08 Alan Modra <amodra@bigpond.net.au>
4135
4136 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4137 long double function return and long double arg handling.
4138 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4139 Use "end_pfr" instead of "nf". Correct long double handling.
4140 Localise "temp".
4141 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4142 return value.
4143 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4144 space for long double return value. Adjust stack frame and offsets.
4145 Load f2 long double return.
4146
41472004-02-07 Alan Modra <amodra@bigpond.net.au>
4148
4149 * src/types.c: Use 16 byte long double for POWERPC64.
4150
41512004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4152
4153 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4154 when the structure return address is passed in %o0.
4155 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4156 (ffi_v9_layout_struct): Align the field following a nested structure
4157 on a word boundary. Use memmove instead of memcpy.
4158 (ffi_call): Update call to ffi_V9_return_struct.
4159 (ffi_prep_closure): Define 'ctx' only for V8.
4160 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4161 and ffi_closure_sparc_inner_v9.
4162 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4163 Always skip the structure return address. For structures and long
4164 doubles, copy the argument directly.
4165 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4166 if required. Shift the maximum floating-point slot accordingly. For
4167 big structures, copy the argument directly; otherwise, left-justify the
4168 argument and call ffi_v9_layout_struct to lay out the structure on
4169 the stack.
4170 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4171 (ffi_closure_v8): Pass the structure return address. Update call to
4172 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4173 Skip the 'unimp' insn when returning long doubles and structures.
4174 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4175 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4176 FFI_TYPE_INT handling. Load structures both in integers and
4177 floating-point registers on return.
4178 * README: Update status of the SPARC port.
4179
41802004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4181
4182 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4183 as of type ffi_arg.
4184 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4185
41862004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4187
4188 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4189 value as of type ffi_arg, not unsigned int.
4190
41912004-01-21 Michael Ritzert <ritzert@t-online.de>
4192
4193 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4194 of the LHS.
4195
41962004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4197
4198 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4199 Solaris.
4200
42012004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4202
4203 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4204 to void *.
4205
42062003-12-10 Richard Henderson <rth@redhat.com>
4207
4208 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4209 size_t instead of int.
4210
42112003-12-04 Hosaka Yuji <hos@tamanegi.org>
4212
4213 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4214 * testsuite/libffi.call/many_win32.c (main): Replace variable
4215 int i with unsigned long ul.
4216
4217 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4218 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4219 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4220 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4221 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4222 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4223 * testsuite/libffi.call/cls_align_float.c: Likewise.
4224 * testsuite/libffi.call/cls_align_double.c: Likewise.
4225 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4226 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4227
42282003-12-02 Hosaka Yuji <hos@tamanegi.org>
4229
4230 PR other/13221
4231 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4232 Align arguments to 32 bits.
4233
42342003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4235
4236 PR other/13221
4237 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4238 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4239 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4240 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4241 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4242 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4243
4244 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4245
42462003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4247
4248 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4249 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4250
42512003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4252
4253 * Makefile.in: Rebuilt.
4254 * configure: Likewise.
4255 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4256 the right type.
4257
42582003-11-21 Andreas Jaeger <aj@suse.de>
4259 Andreas Tobler <a.tobler@schweiz.ch>
4260
4261 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4262 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4263 * Makefile.in: Rebuilt.
4264 * aclocal.m4: Likewise.
4265 * configure: Likewise.
4266 * fficonfig.h.in: Likewise.
4267 * testsuite/lib/libffi-dg.exp: Add include dir.
4268 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4269 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4270 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4271 for ffi_closure if available.
4272 * testsuite/libffi.call/closure_fn1.c: Likewise.
4273 * testsuite/libffi.call/closure_fn2.c: Likewise.
4274 * testsuite/libffi.call/closure_fn3.c: Likewise.
4275 * testsuite/libffi.call/closure_fn4.c: Likewise.
4276 * testsuite/libffi.call/closure_fn5.c: Likewise.
4277 * testsuite/libffi.call/cls_12byte.c: Likewise.
4278 * testsuite/libffi.call/cls_16byte.c: Likewise.
4279 * testsuite/libffi.call/cls_18byte.c: Likewise.
4280 * testsuite/libffi.call/cls_19byte.c: Likewise.
4281 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4282 * testsuite/libffi.call/cls_20byte.c: Likewise.
4283 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4284 * testsuite/libffi.call/cls_24byte.c: Likewise.
4285 * testsuite/libffi.call/cls_2byte.c: Likewise.
4286 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4287 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4288 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4289 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4290 * testsuite/libffi.call/cls_4byte.c: Likewise.
4291 * testsuite/libffi.call/cls_5byte.c: Likewise.
4292 * testsuite/libffi.call/cls_64byte.c: Likewise.
4293 * testsuite/libffi.call/cls_6byte.c: Likewise.
4294 * testsuite/libffi.call/cls_7byte.c: Likewise.
4295 * testsuite/libffi.call/cls_8byte.c: Likewise.
4296 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4297 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4298 * testsuite/libffi.call/cls_double.c: Likewise.
4299 * testsuite/libffi.call/cls_float.c: Likewise.
4300 * testsuite/libffi.call/cls_schar.c: Likewise.
4301 * testsuite/libffi.call/cls_sint.c: Likewise.
4302 * testsuite/libffi.call/cls_sshort.c: Likewise.
4303 * testsuite/libffi.call/cls_uchar.c: Likewise.
4304 * testsuite/libffi.call/cls_uint.c: Likewise.
4305 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4306 * testsuite/libffi.call/cls_ushort.c: Likewise.
4307 * testsuite/libffi.call/nested_struct.c: Likewise.
4308 * testsuite/libffi.call/nested_struct1.c: Likewise.
4309 * testsuite/libffi.call/nested_struct2.c: Likewise.
4310 * testsuite/libffi.call/nested_struct3.c: Likewise.
4311 * testsuite/libffi.call/problem1.c: Likewise.
4312 * testsuite/libffi.special/unwindtest.cc: Likewise.
4313
43142003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4315
4316 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4317
43182003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4319
4320 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4321 Add -lgcc_s to additional flags.
4322
43232003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4324
4325 * configure.in, include/Makefile.am: PR libgcj/11147, install
4326 the ffitarget.h header file in a gcc versioned and target
4327 dependent place.
4328 * configure: Regenerated.
4329 * Makefile.in, include/Makefile.in: Likewise.
4330 * testsuite/Makefile.in: Likewise.
4331
43322003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4333
4334 * testsuite/libffi.call/closure_fn0.c: Print result and check
4335 with dg-output to make debugging easier.
4336 * testsuite/libffi.call/closure_fn1.c: Likewise.
4337 * testsuite/libffi.call/closure_fn2.c: Likewise.
4338 * testsuite/libffi.call/closure_fn3.c: Likewise.
4339 * testsuite/libffi.call/closure_fn4.c: Likewise.
4340 * testsuite/libffi.call/closure_fn5.c: Likewise.
4341 * testsuite/libffi.call/cls_12byte.c: Likewise.
4342 * testsuite/libffi.call/cls_16byte.c: Likewise.
4343 * testsuite/libffi.call/cls_18byte.c: Likewise.
4344 * testsuite/libffi.call/cls_19byte.c: Likewise.
4345 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4346 * testsuite/libffi.call/cls_20byte.c: Likewise.
4347 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4348 * testsuite/libffi.call/cls_24byte.c: Likewise.
4349 * testsuite/libffi.call/cls_2byte.c: Likewise.
4350 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4351 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4352 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4353 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4354 * testsuite/libffi.call/cls_4byte.c: Likewise.
4355 * testsuite/libffi.call/cls_5byte.c: Likewise.
4356 * testsuite/libffi.call/cls_64byte.c: Likewise.
4357 * testsuite/libffi.call/cls_6byte.c: Likewise.
4358 * testsuite/libffi.call/cls_7byte.c: Likewise.
4359 * testsuite/libffi.call/cls_8byte.c: Likewise.
4360 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4361 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4362 * testsuite/libffi.call/cls_double.c: Likewise.
4363 * testsuite/libffi.call/cls_float.c: Likewise.
4364 * testsuite/libffi.call/cls_schar.c: Likewise.
4365 * testsuite/libffi.call/cls_sint.c: Likewise.
4366 * testsuite/libffi.call/cls_sshort.c: Likewise.
4367 * testsuite/libffi.call/cls_uchar.c: Likewise.
4368 * testsuite/libffi.call/cls_uint.c: Likewise.
4369 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4370 * testsuite/libffi.call/cls_ushort.c: Likewise.
4371 * testsuite/libffi.call/problem1.c: Likewise.
4372
4373 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4374 static.
4375
43762003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4377
4378 * testsuite/libffi.call/cls_9byte2.c: New test case.
4379 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4380 * testsuite/libffi.call/cls_64byte.c: Likewise.
4381 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4382 * testsuite/libffi.call/cls_19byte.c: Likewise.
4383 * testsuite/libffi.call/cls_18byte.c: Likewise.
4384 * testsuite/libffi.call/closure_fn4.c: Likewise.
4385 * testsuite/libffi.call/closure_fn5.c: Likewise.
4386 * testsuite/libffi.call/cls_schar.c: Likewise.
4387 * testsuite/libffi.call/cls_sint.c: Likewise.
4388 * testsuite/libffi.call/cls_sshort.c: Likewise.
4389 * testsuite/libffi.call/nested_struct2.c: Likewise.
4390 * testsuite/libffi.call/nested_struct3.c: Likewise.
4391
43922003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4393
4394 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4395 * testsuite/libffi.call/cls_uchar.c: Likewise.
4396 * testsuite/libffi.call/cls_uint.c: Likewise.
4397 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4398 * testsuite/libffi.call/cls_ushort.c: Likewise.
4399 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4400
44012003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4402
4403 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4404 the initialization.
4405
44062003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4407
4408 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4409 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4410
44112003-10-22 David Daney <ddaney@avtrex.com>
4412
4413 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4414 __attribute__((__mode__(__SI__))) and friends.
4415
44162003-10-22 Andreas Schwab <schwab@suse.de>
4417
4418 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4419
44202003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4421
4422 * configure.in: AC_LINK_FILES(ffitarget.h).
4423 * configure: Regenerate.
4424 * Makefile.in: Likewise.
4425 * include/Makefile.in: Likewise.
4426 * testsuite/Makefile.in: Likewise.
4427 * fficonfig.h.in: Likewise.
4428
44292003-10-21 Paolo Bonzini <bonzini@gnu.org>
4430 Richard Henderson <rth@redhat.com>
4431
4432 Avoid that ffi.h includes fficonfig.h.
4433
4434 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4435 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4436 (TARGET_SRC_MIPS_SGI): Removed.
4437 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4438 (MIPS_SGI): Removed.
4439 (CLEANFILES): Removed.
4440 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4441 targets.
4442 * acconfig.h: Removed.
4443 * configure.in: Compute sizeofs only for double and long double.
4444 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4445 into AC_DEFINE instead of using acconfig.h. Create
4446 include/ffitarget.h instead of include/fficonfig.h. Rename
4447 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4448 AC_DEFINE EH_FRAME_FLAGS.
4449 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4450 (hack_DATA): Add ffitarget.h.
4451 * include/ffi.h.in: Remove all system specific definitions.
4452 Declare raw API even if it is not installed, why bother?
4453 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4454 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4455 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4456 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4457 * include/ffi_common.h (bool): Do not define.
4458 (ffi_assert): Accept failed assertion.
4459 (ffi_type_test): Return void and accept file/line.
4460 (FFI_ASSERT): Pass stringized failed assertion.
4461 (FFI_ASSERT_AT): New macro.
4462 (FFI_ASSERT_VALID_TYPE): New macro.
4463 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4464 UINT64, SINT64): Define here with gcc's __attribute__ macro
4465 instead of in ffi.h
4466 (FLOAT32, ALIGN): Define here instead of in ffi.h
4467 * include/ffi-mips.h: Removed. Its content moved to
4468 src/mips/ffitarget.h after separating assembly and C sections.
4469 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4470 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4471 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4472 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4473 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4474 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4475 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4476 (ffi_type_test): Rewritten.
4477 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4478 FFI_ASSERT_VALID_TYPE.
4479 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4480 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4481 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4482 src/s390/ffitarget.h, src/sh/ffitarget.h,
4483 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4484 src/x86/ffitarget.h: New files.
4485 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4486 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4487 src/powerpc/aix.S, src/powerpc/darwin.S,
4488 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4489 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4490 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4491 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4492 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4493 include fficonfig.h
4494
44952003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4496
4497 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4498 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4499
45002003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4501
4502 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4503 Used when FFI_DEBUG = 1.
4504
45052003-10-14 Alan Modra <amodra@bigpond.net.au>
4506
4507 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4508 and align.
4509
45102003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4511
4512 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4513 FFI_MIPS_O32 for O32 ABI.
4514
45152003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4516
4517 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4518 SPARC64. Cleanup whitespaces.
4519
45202003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4521
4522 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4523 strongarm, xscale. Cleanup whitespaces.
4524 * testsuite/libffi.call/closure_fn1.c: Likewise.
4525 * testsuite/libffi.call/closure_fn2.c: Likewise.
4526 * testsuite/libffi.call/closure_fn3.c: Likewise.
4527 * testsuite/libffi.call/cls_12byte.c: Likewise.
4528 * testsuite/libffi.call/cls_16byte.c: Likewise.
4529 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4530 * testsuite/libffi.call/cls_20byte.c: Likewise.
4531 * testsuite/libffi.call/cls_24byte.c: Likewise.
4532 * testsuite/libffi.call/cls_2byte.c: Likewise.
4533 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4534 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4535 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4536 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4537 * testsuite/libffi.call/cls_4byte.c: Likewise.
4538 * testsuite/libffi.call/cls_5byte.c: Likewise.
4539 * testsuite/libffi.call/cls_6byte.c: Likewise.
4540 * testsuite/libffi.call/cls_7byte.c: Likewise.
4541 * testsuite/libffi.call/cls_8byte.c: Likewise.
4542 * testsuite/libffi.call/cls_double.c: Likewise.
4543 * testsuite/libffi.call/cls_float.c: Likewise.
4544 * testsuite/libffi.call/cls_uchar.c: Likewise.
4545 * testsuite/libffi.call/cls_uint.c: Likewise.
4546 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4547 * testsuite/libffi.call/cls_ushort.c: Likewise.
4548 * testsuite/libffi.call/nested_struct.c: Likewise.
4549 * testsuite/libffi.call/nested_struct1.c: Likewise.
4550 * testsuite/libffi.call/problem1.c: Likewise.
4551 * testsuite/libffi.special/unwindtest.cc: Likewise.
4552 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4553
45542003-09-18 David Edelsohn <edelsohn@gnu.org>
4555
4556 * src/powerpc/aix.S: Cleanup whitespaces.
4557 * src/powerpc/aix_closure.S: Likewise.
4558
45592003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4560
4561 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4562 * src/powerpc/darwin_closure.S: Likewise.
4563 * src/powerpc/ffi_darwin.c: Likewise.
4564
45652003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4566 David Edelsohn <edelsohn@gnu.org>
4567
4568 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4569 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4570 parameter stack.
4571 * src/powerpc/darwin_closure.S: Likewise.
4572 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4573 according to the Darwin/AIX ABI.
4574 (ffi_prep_cif_machdep): Likewise.
4575 (ffi_closure_helper_DARWIN): Likewise.
4576 Remove the outgoing parameter stack logic. Simplify the evaluation
4577 of the different CASE types.
4578 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4579 statement in the trampoline code.
4580
45812003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4582
4583 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4584 for the register size.
4585 (ffi_closure_helper_SYSV): Handle the structure return value
4586 address correctly.
4587 (ffi_closure_helper_SYSV): Return the appropriate type when
4588 the registers are used for the structure return value.
4589 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4590 the 64-bit return value. Update copyright years.
4591
45922003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4593
4594 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4595 srcdir for ffi_mips.h.
4596
45972003-09-12 Alan Modra <amodra@bigpond.net.au>
4598
4599 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4600 structure size.
4601 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4602 placement of float result.
4603 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4604 cast of "resp" for big-endian 64 bit machines.
4605
46062003-09-11 Alan Modra <amodra@bigpond.net.au>
4607
4608 * src/types.c (double, longdouble): Merge identical SH and ARM
4609 typedefs, and add POWERPC64.
4610 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4611 struct split over gpr and rest.
4612 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4613 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4614
46152003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4616
4617 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4618 passing correctly.
4619
46202003-09-09 Alan Modra <amodra@bigpond.net.au>
4621
4622 * configure: Regenerate.
4623
46242003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4625
4626 * Makefile.am: Remove build rules for ffitest.
4627 * Makefile.in: Rebuilt.
4628
46292003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4630
4631 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4632 about implicit declaration of abort().
4633
46342003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4635
4636 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4637 * Makefile.in: Rebuilt.
4638 * configure.in: Add dejagnu test framework.
4639 * configure: Rebuilt.
4640
4641 * testsuite/Makefile.am: New file.
4642 * testsuite/Makefile.in: Built
4643 * testsuite/lib/libffi-dg.exp: New file.
4644 * testsuite/config/default.exp: Likewise.
4645 * testsuite/libffi.call/call.exp: Likewise.
4646 * testsuite/libffi.call/ffitest.h: Likewise.
4647 * testsuite/libffi.call/closure_fn0.c: Likewise.
4648 * testsuite/libffi.call/closure_fn1.c: Likewise.
4649 * testsuite/libffi.call/closure_fn2.c: Likewise.
4650 * testsuite/libffi.call/closure_fn3.c: Likewise.
4651 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4652 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4653 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4654 * testsuite/libffi.call/cls_2byte.c: Likewise.
4655 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4656 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4657 * testsuite/libffi.call/cls_4byte.c: Likewise.
4658 * testsuite/libffi.call/cls_5byte.c: Likewise.
4659 * testsuite/libffi.call/cls_6byte.c: Likewise.
4660 * testsuite/libffi.call/cls_7byte.c: Likewise.
4661 * testsuite/libffi.call/cls_8byte.c: Likewise.
4662 * testsuite/libffi.call/cls_12byte.c: Likewise.
4663 * testsuite/libffi.call/cls_16byte.c: Likewise.
4664 * testsuite/libffi.call/cls_20byte.c: Likewise.
4665 * testsuite/libffi.call/cls_24byte.c: Likewise.
4666 * testsuite/libffi.call/cls_double.c: Likewise.
4667 * testsuite/libffi.call/cls_float.c: Likewise.
4668 * testsuite/libffi.call/cls_uchar.c: Likewise.
4669 * testsuite/libffi.call/cls_uint.c: Likewise.
4670 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4671 * testsuite/libffi.call/cls_ushort.c: Likewise.
4672 * testsuite/libffi.call/float.c: Likewise.
4673 * testsuite/libffi.call/float1.c: Likewise.
4674 * testsuite/libffi.call/float2.c: Likewise.
4675 * testsuite/libffi.call/many.c: Likewise.
4676 * testsuite/libffi.call/many_win32.c: Likewise.
4677 * testsuite/libffi.call/nested_struct.c: Likewise.
4678 * testsuite/libffi.call/nested_struct1.c: Likewise.
4679 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4680 * testsuite/libffi.call/problem1.c: Likewise.
4681 * testsuite/libffi.call/promotion.c: Likewise.
4682 * testsuite/libffi.call/return_ll.c: Likewise.
4683 * testsuite/libffi.call/return_sc.c: Likewise.
4684 * testsuite/libffi.call/return_uc.c: Likewise.
4685 * testsuite/libffi.call/strlen.c: Likewise.
4686 * testsuite/libffi.call/strlen_win32.c: Likewise.
4687 * testsuite/libffi.call/struct1.c: Likewise.
4688 * testsuite/libffi.call/struct2.c: Likewise.
4689 * testsuite/libffi.call/struct3.c: Likewise.
4690 * testsuite/libffi.call/struct4.c: Likewise.
4691 * testsuite/libffi.call/struct5.c: Likewise.
4692 * testsuite/libffi.call/struct6.c: Likewise.
4693 * testsuite/libffi.call/struct7.c: Likewise.
4694 * testsuite/libffi.call/struct8.c: Likewise.
4695 * testsuite/libffi.call/struct9.c: Likewise.
4696 * testsuite/libffi.special/special.exp: New file.
4697 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4698 * testsuite/libffi.special/unwindtest.cc: Likewise.
4699
4700
47012003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4702
4703 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4704 copyright years.
4705
47062003-08-02 Alan Modra <amodra@bigpond.net.au>
4707
4708 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4709 structure passing.
4710 (ffi_closure_helper_LINUX64): Likewise.
4711 * src/powerpc/linux64.S: Remove code writing to parm save area.
4712 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4713 address in lr from ffi_closure_helper_LINUX64 call to calculate
4714 table address. Optimize function tail.
4715
47162003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4717
4718 * src/sparc/ffi.c: Handle all floating point registers.
4719 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4720
47212003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4722
4723 * README: Note that libffi is not part of GCC. Update the project
4724 URL and status.
4725
47262003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4727
4728 * src/powerpc/ppc_closure.S: Include ffi.h.
4729
47302003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4731
4732 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4733 Use C style comments.
4734
47352003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4736
4737 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4738 * Makefile.in: Regenerate.
4739 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4740 * configure: Regenerate.
4741 * include/ffi.h.in: Add SHmedia support.
4742 * src/sh64/ffi.c: New file.
4743 * src/sh64/sysv.S: New file.
4744
47452003-05-16 Jakub Jelinek <jakub@redhat.com>
4746
4747 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4748 should be read-only.
4749 * configure: Rebuilt.
4750 * fficonfig.h.in: Rebuilt.
4751 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4752 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4753 * src/powerpc/linux64.S: Likewise.
4754 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4755 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4756 if -fpic/-fPIC/-mrelocatable.
4757 * src/powerpc/powerpc_closure.S: Likewise.
4758 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4759 #write in .eh_frame flags.
4760 * src/sparc/v9.S: Likewise.
4761 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4762 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4763 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4764
47652003-05-07 Jeff Sturm <jsturm@one-point.com>
4766
4767 Fixes PR bootstrap/10656
4768 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4769 support for .register pseudo-op.
4770 * src/sparc/v8.S: Use it.
4771 * fficonfig.h.in: Rebuilt.
4772 * configure: Rebuilt.
4773
47742003-04-18 Jakub Jelinek <jakub@redhat.com>
4775
4776 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4777 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4778 Make it the default on POWERPC64.
4779 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4780 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4781 * configure: Rebuilt.
4782 * src/powerpc/ffi.c (hidden): Define.
4783 (ffi_prep_args_SYSV): Renamed from
4784 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4785 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4786 ASM_NEEDS_REGISTERS64): New.
4787 (ffi_prep_args64): New function.
4788 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4789 (ffi_call): Likewise.
4790 (ffi_prep_closure): Likewise.
4791 (flush_icache): Surround by #ifndef POWERPC64.
4792 (ffi_dblfl): New union type.
4793 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4794 (ffi_closure_helper_LINUX64): New function.
4795 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4796 __powerpc64__.
4797 * src/powerpc/sysv.S: Likewise.
4798 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4799 * src/powerpc/linux64.S: New file.
4800 * src/powerpc/linux64_closure.S: New file.
4801 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4802 src/powerpc/linux64_closure.S.
4803 (TARGET_SRC_POWERPC): Likewise.
4804
4805 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4806 closure_test_fn3): Fix result printing on big-endian 64-bit
4807 machines.
4808 (main): Print tst2_arg instead of uninitialized tst2_result.
4809
4810 * src/ffitest.c (main): Hide what closure pointer really points to
4811 from the compiler.
4812
48132003-04-16 Richard Earnshaw <rearnsha@arm.com>
4814
4815 * configure.in (arm-*-netbsdelf*): Add configuration.
4816 (configure): Regenerated.
4817
48182003-04-04 Loren J. Rittle <ljrittle@acm.org>
4819
4820 * include/Makefile.in: Regenerate.
4821
48222003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4823
4824 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4825 bit mode.
4826 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4827 Receive closure pointer through parameter, read args using
4828 __builtin_dwarf_cfa.
4829 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4830
48312003-03-12 Andreas Schwab <schwab@suse.de>
4832
4833 * configure.in: Avoid trailing /. in toolexeclibdir.
4834 * configure: Rebuilt.
4835
48362003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4837
4838 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4839
48402003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4841
4842 * libffi/src/powerpc/darwin_closure.S:
4843 Fix alignement bug, allocate 8 bytes for the result.
4844 * libffi/src/powerpc/aix_closure.S:
4845 Likewise.
4846 * libffi/src/powerpc/ffi_darwin.c:
4847 Update stackframe description for aix/darwin_closure.S.
4848
48492003-02-06 Jakub Jelinek <jakub@redhat.com>
4850
4851 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4852 attribute.
4853
48542003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4855 Andreas Schwab <schwab@suse.de>
4856
4857 * configure.in: Adjust command to source config-ml.in to account
4858 for changes to the libffi_basedir definition.
4859 (libffi_basedir): Remove ${srcdir} from value and include trailing
4860 slash if nonempty.
4861
4862 * configure: Regenerate.
4863
48642003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4865
4866 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4867
48682003-01-28 Andrew Haley <aph@redhat.com>
4869
4870 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4871 * src/x86/ffi64.c (ffi_prep_closure): New.
4872 (ffi_closure_UNIX64_inner): New.
4873 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4874
48752003-01-27 Alexandre Oliva <aoliva@redhat.com>
4876
4877 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4878 Remove USE_LIBDIR conditional.
4879 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4880 * Makefile.in, configure: Rebuilt.
4881
48822003-01027 David Edelsohn <edelsohn@gnu.org>
4883
4884 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4885 * Makefile.in: Regenerate.
4886
48872003-01-22 Andrew Haley <aph@redhat.com>
4888
4889 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4890 unwind info.
4891
48922003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4893
4894 * src/powerpc/darwin.S: Add unwind info.
4895 * src/powerpc/darwin_closure.S: Likewise.
4896
48972003-01-14 Andrew Haley <aph@redhat.com>
4898
4899 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4900 (ffi_prep_cif_machdep): Likewise.
4901 * src/x86/unix64.S: Add unwind info.
4902
49032003-01-14 Andreas Jaeger <aj@suse.de>
4904
4905 * src/ffitest.c (main): Only use ffi_closures if those are
4906 supported.
4907
49082003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4909
4910 * libffi/src/ffitest.c
4911 add closure testcases
4912
49132003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4914
4915 * libffi/src/powerpc/ffi.c
4916 fix alignment bug for float (4 byte aligned iso 8 byte)
4917
49182003-01-09 Geoffrey Keating <geoffk@apple.com>
4919
4920 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4921 * src/powerpc/darwin.S: Remove RCS version string.
4922
49232003-01-03 Jeff Sturm <jsturm@one-point.com>
4924
4925 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4926 * src/ffitest.c (main): Use static storage for closure.
4927 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4928 * src/sparc/v8.S (ffi_closure_v8): New.
4929 * src/sparc/v9.S (ffi_closure_v9): New.
4930
49312002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4932
4933 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4934 enumeration for X86_WIN32.
4935 * src/x86/win32.S: Added ffi_call_STDCALL function
4936 definition.
4937 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4938 switch cases for recognising FFI_STDCALL and
4939 calling ffi_call_STDCALL if target is X86_WIN32.
4940 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4941 stdcall versions of the "my_strlen" and "many"
4942 test functions (for X86_WIN32).
4943 Added test cases to test stdcall invocation using
4944 these functions.
4945
49462002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4947
4948 * src/sh/sysv.S: Add DWARF2 unwind info.
4949
49502002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4951
4952 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4953
49542002-11-26 Jim Wilson <wilson@redhat.com>
4955
4956 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4957
49582002-11-23 H.J. Lu <hjl@gnu.org>
4959
4960 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4961 Include ../config/accross.m4.
4962 * aclocal.m4; Rebuild.
4963 * configure: Likewise.
4964
49652002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4966
4967 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4968
49692002-11-11 DJ Delorie <dj@redhat.com>
4970
4971 * configure.in: Look for common files in the right place.
4972
49732002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4974
4975 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4976 raw data as _Jv_word values, not ffi_raw.
4977 (ffi_java_ptrarray_to_raw): Likewise.
4978 (ffi_java_rvalue_to_raw): New function.
4979 (ffi_java_raw_call): Call it.
4980 (ffi_java_raw_to_rvalue): New function.
4981 (ffi_java_translate_args): Call it.
4982 * src/ffitest.c (closure_test_fn): Interpret return value
4983 as ffi_arg, not int.
4984 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4985 FFI_TYPE_POINTER case.
4986 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4987 values extended to word size.
4988
49892002-10-02 Andreas Jaeger <aj@suse.de>
4990
4991 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4992
49932002-10-01 Bo Thorsen <bo@smetana.suse.de>
4994
4995 * include/ffi.h.in: Fix i386 win32 compilation.
4996
49972002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4998
4999 * configure.in: Add s390x-*-linux-* target.
5000 * configure: Regenerate.
5001 * include/ffi.h.in: Define S390X for s390x targets.
5002 (FFI_CLOSURES): Define for s390/s390x.
5003 (FFI_TRAMPOLINE_SIZE): Likewise.
5004 (FFI_NATIVE_RAW_API): Likewise.
5005 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5006 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5007 * src/s390/ffi.c: Major rework of existing code. Add support for
5008 s390x targets. Add closure support.
5009 * src/s390/sysv.S: Likewise.
5010
50112002-09-29 Richard Earnshaw <rearnsha@arm.com>
5012
5013 * src/arm/sysv.S: Fix typo.
5014
50152002-09-28 Richard Earnshaw <rearnsha@arm.com>
5016
5017 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5018 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5019 (ffi_call_SYSV): Handle soft-float.
5020
50212002-09-27 Bo Thorsen <bo@suse.de>
5022
5023 * include/ffi.h.in: Fix multilib x86-64 support.
5024
50252002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5026
5027 * Makefile.am (all-multi): Fix multilib parallel build.
5028
50292002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5030
5031 * configure.in (sh[34]*-*-linux*): Add brackets.
5032 * configure: Regenerate.
5033
50342002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5035
5036 * Makefile.am: Add SH support.
5037 * Makefile.in: Regenerate.
5038 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5039 * configure: Regenerate.
5040 * include/ffi.h.in: Add SH support.
5041 * src/sh/ffi.c: New file.
5042 * src/sh/sysv.S: New file.
5043 * src/types.c: Add SH support.
5044
50452002-07-16 Bo Thorsen <bo@suse.de>
5046
5047 * src/x86/ffi64.c: New file that adds x86-64 support.
5048 * src/x86/unix64.S: New file that handles argument setup for
5049 x86-64.
5050 * src/x86/sysv.S: Don't use this on x86-64.
5051 * src/x86/ffi.c: Don't use this on x86-64.
5052 Remove unused vars.
5053 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5054 for x86-64.
5055 * src/ffitest.c (struct6): New test that tests a special case in
5056 the x86-64 ABI.
5057 (struct7): Likewise.
5058 (struct8): Likewise.
5059 (struct9): Likewise.
5060 (closure_test_fn): Silence warning about this when it's not used.
5061 (main): Add the new tests.
5062 (main): Fix a couple of wrong casts and silence some compiler warnings.
5063 * include/ffi.h.in: Add x86-64 ABI definition.
5064 * fficonfig.h.in: Regenerate.
5065 * Makefile.am: Add x86-64 support.
5066 * configure.in: Likewise.
5067 * Makefile.in: Regenerate.
5068 * configure: Likewise.
5069
50702002-06-24 Bo Thorsen <bo@suse.de>
5071
5072 * src/types.c: Merge settings for similar architectures.
5073 Add x86-64 sizes and alignments.
5074
50752002-06-23 Bo Thorsen <bo@suse.de>
5076
5077 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5078 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5079 * src/mips/ffi.c (ffi_prep_args): Likewise.
5080 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5081
50822002-07-18 H.J. Lu (hjl@gnu.org)
5083
5084 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5085 (libffi_la_SOURCES): Support MIPS_LINUX.
5086 (libffi_convenience_la_SOURCES): Likewise.
5087 * Makefile.in: Regenerated.
5088
5089 * configure.in (mips64*-*): Skip.
5090 (mips*-*-linux*): New.
5091 * configure: Regenerated.
5092
5093 * src/mips/ffi.c: Include <sgidefs.h>.
5094
50952002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5096
5097 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5098
50992002-05-27 Roger Sayle <roger@eyesopen.com>
5100
5101 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5102
51032002-05-27 Bo Thorsen <bo@suse.de>
5104
5105 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5106 fix formatting.
5107
51082002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5109
5110 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5111 beginning of function (for older apple cc).
5112
51132002-05-08 Alexandre Oliva <aoliva@redhat.com>
5114
5115 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5116 script entry, and set LD to it when configuring multilibs.
5117 * configure: Rebuilt.
5118
51192002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5120
5121 * configure.in (sparc64-*-netbsd*): Add target.
5122 (sparc-*-netbsdelf*): Likewise.
5123 * configure: Regenerate.
5124
51252002-04-28 David S. Miller <davem@redhat.com>
5126
5127 * configure.in, configure: Fix SPARC test in previous change.
5128
51292002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5130
5131 * Makefile.am: Add Linux for S/390 support.
5132 * Makefile.in: Regenerate.
5133 * configure.in: Add Linux for S/390 support.
5134 * configure: Regenerate.
5135 * include/ffi.h.in: Add Linux for S/390 support.
5136 * src/s390/ffi.c: New file from libffi CVS tree.
5137 * src/s390/sysv.S: New file from libffi CVS tree.
5138
51392002-04-28 Jakub Jelinek <jakub@redhat.com>
5140
5141 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5142 %r_disp32().
5143 * src/sparc/v8.S: Use it.
5144 * src/sparc/v9.S: Likewise.
5145 * fficonfig.h.in: Rebuilt.
5146 * configure: Rebuilt.
5147
51482002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5149
5150 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5151 correctly.
5152 * src/ia64/unix.S: Add unwind information. Fix comments.
5153 Save sp in a way that's compatible with unwind info.
5154 (ffi_call_unix): Correctly restore sp in all cases.
5155 * src/ia64/ffi.c: Add, fix comments.
5156
51572002-04-08 Jakub Jelinek <jakub@redhat.com>
5158
5159 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5160
51612002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5162
5163 * configure.in (alpha*-*-netbsd*): Add target.
5164 * configure: Regenerate.
5165
51662002-04-04 Jeff Sturm <jsturm@one-point.com>
5167
5168 * src/sparc/v8.S: Add unwind info.
5169 * src/sparc/v9.S: Likewise.
5170
51712002-03-30 Krister Walfridsson <cato@df.lth.se>
5172
5173 * configure.in: Enable i*86-*-netbsdelf*.
5174 * configure: Rebuilt.
5175
51762002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5177
5178 PR other/2620
5179 * src/mips/n32.s: Delete
5180 * src/mips/o32.s: Delete
5181
51822002-03-21 Loren J. Rittle <ljrittle@acm.org>
5183
5184 * configure.in: Enable alpha*-*-freebsd*.
5185 * configure: Rebuilt.
5186
51872002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5188
5189 * Makefile.am: libfficonvenience -> libffi_convenience.
5190 * Makefile.in: Rebuilt.
5191
5192 * Makefile.am: Define ffitest_OBJECTS.
5193 * Makefile.in: Rebuilt.
5194
51952002-03-07 Andreas Tobler <toa@pop.agri.ch>
5196 David Edelsohn <edelsohn@gnu.org>
5197
5198 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5199 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5200 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5201 * Makefile.in: Regenerate.
5202 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5203 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5204 (flush_icache, flush_range): New functions.
5205 (ffi_closure_helper_DARWIN): New function.
5206 * src/powerpc/aix_closure.S: New file.
5207 * src/powerpc/darwin_closure.S: New file.
5208
52092002-02-24 Jeff Sturm <jsturm@one-point.com>
5210
5211 * include/ffi.h.in: Add typedef for ffi_arg.
5212 * src/ffitest.c (main): Declare rint with ffi_arg.
5213
52142002-02-21 Andreas Tobler <toa@pop.agri.ch>
5215
5216 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5217 number of GPRs for floating-point arguments.
5218
52192002-01-31 Anthony Green <green@redhat.com>
5220
5221 * configure: Rebuilt.
5222 * configure.in: Replace CHECK_SIZEOF and endian tests with
5223 cross-compiler friendly macros.
5224 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5225 macros.
5226
52272002-01-18 David Edelsohn <edelsohn@gnu.org>
5228
5229 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5230 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5231
52322002-01-17 David Edelsohn <edelsohn@gnu.org>
5233
5234 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5235 (TARGET_SRC_POWERPC_AIX): New.
5236 (POWERPC_AIX): New stanza.
5237 * Makefile.in: Regenerate.
5238 * configure.in: Add AIX case.
5239 * configure: Regenerate.
5240 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5241 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5242 size. Fix "long double" support.
5243 (ffi_call): Add FFI_AIX case.
5244 * src/powerpc/aix.S: New.
5245
52462001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5247
5248 Implement Darwin PowerPC ABI.
5249 * configure.in: Handle powerpc-*-darwin*.
5250 * Makefile.am: Set source files for POWERPC_DARWIN.
5251 * configure: Rebuilt.
5252 * Makefile.in: Rebuilt.
5253 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5254 POWERPC_DARWIN.
5255 * src/powerpc/darwin.S: New file.
5256 * src/powerpc/ffi_darwin.c: New file.
5257
52582001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5259
5260 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5261
52622001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5263
5264 * src/x86/sysv.S: Avoid gas-only .balign directive.
5265 Use C style comments.
5266
52672001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5268
5269 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5270 Fixes PR bootstrap/3563.
5271
52722001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5273
5274 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5275
52762001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5277
5278 * configure.in: Recognize sparc*-sun-* host.
5279 * configure: Regenerate.
5280
52812001-06-06 Andrew Haley <aph@redhat.com>
5282
5283 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5284
52852001-06-03 Andrew Haley <aph@redhat.com>
5286
5287 * src/alpha/osf.S: Add unwind info.
5288 * src/powerpc/sysv.S: Add unwind info.
5289 * src/powerpc/ppc_closure.S: Likewise.
5290
52912000-05-31 Jeff Sturm <jsturm@one-point.com>
5292
5293 * configure.in: Fix AC_ARG_ENABLE usage.
5294 * configure: Rebuilt.
5295
52962001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5297
5298 * configure.in: Remove warning about beta code.
5299 * configure: Rebuilt.
5300
53012001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5302
5303 * src/ia64/unix.S: Restore stack pointer when returning from
5304 ffi_closure_UNIX.
5305 * src/ia64/ffi.c: Fix typo in comment.
5306
53072001-04-18 Jim Wilson <wilson@redhat.com>
5308
5309 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5310 to eliminate RAW DV.
5311
53122001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5313
5314 * Makefile.am: Make a libtool convenience library.
5315 * Makefile.in: Rebuilt.
5316
53172001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5318
5319 * configure.in: Use different syntax for subdirectory creation.
5320 * configure: Rebuilt.
5321
53222001-03-27 Jon Beniston <jon@beniston.com>
5323
5324 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5325 * configure: Rebuilt.
5326 * Makefile.am: Added X86_WIN32 target support.
5327 * Makefile.in: Rebuilt.
5328
5329 * include/ffi.h.in: Added X86_WIN32 target support.
5330
5331 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5332 * src/types.c: Added X86_WIN32 target support.
5333
5334 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5335 stuff removed and made to work with CygWin's gas.
5336
53372001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5338
5339 * configure.in: Make target subdirectory in build dir.
5340 * Makefile.am: Override suffix based rules to specify correct output
5341 subdirectory.
5342 * Makefile.in: Rebuilt.
5343 * configure: Rebuilt.
5344
53452001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5346
5347 * src/powerpc/ppc_closure.S: New file.
5348 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5349 involving long long and register pairs.
5350 (ffi_prep_closure): New function.
5351 (flush_icache): Likewise.
5352 (ffi_closure_helper_SYSV): Likewise.
5353 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5354 (FFI_TRAMPOLINE_SIZE): Likewise.
5355 (FFI_NATIVE_RAW_API): Likewise.
5356 * Makefile.in: Rebuilt.
5357 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5358 (TARGET_SRC_POWERPC): Likewise.
5359
53602001-03-19 Tom Tromey <tromey@redhat.com>
5361
5362 * Makefile.in: Rebuilt.
5363 * Makefile.am (ffitest_LDFLAGS): New macro.
5364
53652001-03-02 Nick Clifton <nickc@redhat.com>
5366
5367 * include/ffi.h.in: Remove RCS ident string.
5368 * include/ffi_mips.h: Remove RCS ident string.
5369 * src/debug.c: Remove RCS ident string.
5370 * src/ffitest.c: Remove RCS ident string.
5371 * src/prep_cif.c: Remove RCS ident string.
5372 * src/types.c: Remove RCS ident string.
5373 * src/alpha/ffi.c: Remove RCS ident string.
5374 * src/alpha/osf.S: Remove RCS ident string.
5375 * src/arm/ffi.c: Remove RCS ident string.
5376 * src/arm/sysv.S: Remove RCS ident string.
5377 * src/mips/ffi.c: Remove RCS ident string.
5378 * src/mips/n32.S: Remove RCS ident string.
5379 * src/mips/o32.S: Remove RCS ident string.
5380 * src/sparc/ffi.c: Remove RCS ident string.
5381 * src/sparc/v8.S: Remove RCS ident string.
5382 * src/sparc/v9.S: Remove RCS ident string.
5383 * src/x86/ffi.c: Remove RCS ident string.
5384 * src/x86/sysv.S: Remove RCS ident string.
5385
53862001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5387
5388 * include/ffi.h.in: Change sourceware.cygnus.com references to
5389 gcc.gnu.org.
5390
53912000-12-09 Richard Henderson <rth@redhat.com>
5392
5393 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5394 (ffi_closure_osf_inner): Index rather than increment avalue
5395 and arg_types. Give ffi_closure_osf the raw return value type.
5396 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5397 promotion.
5398
53992000-12-07 Richard Henderson <rth@redhat.com>
5400
5401 * src/raw_api.c (ffi_translate_args): Fix typo.
5402 (ffi_prep_closure): Likewise.
5403
5404 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5405 FFI_TRAMPOLINE_SIZE.
5406 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5407 cif->bytes for new ffi_call_osf implementation.
5408 (ffi_prep_args): Absorb into ...
5409 (ffi_call): ... here. Do all stack allocation here and
5410 avoid a callback function.
5411 (ffi_prep_closure, ffi_closure_osf_inner): New.
5412 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5413 (ffi_closure_osf): New.
5414
54152000-09-10 Alexandre Oliva <aoliva@redhat.com>
5416
5417 * config.guess, config.sub, install-sh: Removed.
5418 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5419 * Makefile.in: Rebuilt.
5420
5421 * acinclude.m4: Include libtool macros from the top level.
5422 * aclocal.m4, configure: Rebuilt.
5423
54242000-08-22 Alexandre Oliva <aoliva@redhat.com>
5425
5426 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5427 * configure: Rebuilt.
5428
54292000-05-11 Scott Bambrough <scottb@netwinder.org>
5430
5431 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5432 memory correctly. Use conditional instructions, not branches where
5433 possible.
5434
54352000-05-04 Tom Tromey <tromey@cygnus.com>
5436
5437 * configure: Rebuilt.
5438 * configure.in: Match `arm*-*-linux-*'.
5439 From Chris Dornan <cdornan@arm.com>.
5440
54412000-04-28 Jakub Jelinek <jakub@redhat.com>
5442
5443 * Makefile.am (SUBDIRS): Define.
5444 (AM_MAKEFLAGS): Likewise.
5445 (Multilib support.): Add section.
5446 * Makefile.in: Rebuilt.
5447 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5448 New variables. Set for gcc using -print-multi-lib. Export them
5449 to libtool.
5450 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5451 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5452 for -shared links.
5453 (extra_compiler_flags_value, extra_compiler_flags): Check these
5454 for extra compiler options which need to be passed down in
5455 compiler_flags.
5456
54572000-04-16 Anthony Green <green@redhat.com>
5458
5459 * configure: Rebuilt.
5460 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5461
54622000-04-14 Jakub Jelinek <jakub@redhat.com>
5463
5464 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5465 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5466 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5467 Replace all void * sizeofs with sizeof(int).
5468 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5469 different than DOUBLE.
5470 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5471 (ffi_prep_args_v9): New function.
5472 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5473 (ffi_V9_return_struct): New function.
5474 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5475 32bit code (not yet cross-arch calls).
5476 * src/sparc/v8.S: Add struct return delay nop.
5477 Handle long long.
5478 * src/sparc/v9.S: New file.
5479 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5480 is used on sparc64 only for structures larger than 32 bytes.
5481 Pass by reference for structures is done for structure arguments
5482 larger than 16 bytes.
5483 * src/ffitest.c (main): Use 64bit rint on sparc64.
5484 Run long long tests on sparc.
5485 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5486 sparc64.
5487 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5488 on sparc64.
5489 * configure.in (sparc-*-linux*): New supported target.
5490 (sparc64-*-linux*): Likewise.
5491 * configure: Rebuilt.
5492 * Makefile.am: Add v9.S to SPARC files.
5493 * Makefile.in: Likewise.
5494 (LINK): Surround $(CCLD) into double quotes, so that multilib
5495 compiles work correctly.
5496
54972000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5498
5499 * configure: Rebuilt.
5500 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5501 proposed by Bryce McKinlay.
5502
55032000-03-20 Tom Tromey <tromey@cygnus.com>
5504
5505 * Makefile.in: Hand edit for java_raw_api.lo.
5506
55072000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5508
5509 * config.guess, config.sub: Update from the gcc tree.
5510 Fix for PR libgcj/168.
5511
55122000-03-03 Tom Tromey <tromey@cygnus.com>
5513
5514 * Makefile.in: Fixed ia64 by hand.
5515
5516 * configure: Rebuilt.
5517 * configure.in (--enable-multilib): New option.
5518 (libffi_basedir): New subst.
5519 (AC_OUTPUT): Added multilib code.
5520
55212000-03-02 Tom Tromey <tromey@cygnus.com>
5522
5523 * Makefile.in: Rebuilt.
5524 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5525 directory name.
5526
55272000-02-25 Hans Boehm <boehm@acm.org>
5528
5529 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5530 files.
5531 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5532 list.
5533 (ffi_prep_raw_closure): Use ffi_translate_args, not
5534 ffi_closure_translate.
5535 * src/java_raw_api.c: New file.
5536 * src/ffitest.c (closure_test_fn): New function.
5537 (main): Define `rint' as long long on IA64. Added new test when
5538 FFI_CLOSURES is defined.
5539 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5540 (ffi_abi): Recognize IA64.
5541 (ffi_raw): Added `flt' field.
5542 Added "Java raw API" code.
5543 * configure.in: Recognize ia64.
5544 * Makefile.am (TARGET_SRC_IA64): New macro.
5545 (libffi_la_common_SOURCES): Added java_raw_api.c.
5546 (libffi_la_SOURCES): Define in IA64 case.
5547
55482000-01-04 Tom Tromey <tromey@cygnus.com>
5549
5550 * Makefile.in: Rebuilt with newer automake.
5551
55521999-12-31 Tom Tromey <tromey@cygnus.com>
5553
5554 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5555
55561999-09-01 Tom Tromey <tromey@cygnus.com>
5557
5558 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5559 undefs.
5560 * fficonfig.h.in: Rebuilt.
5561 * configure: Rebuilt.
5562 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5563 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5564 * acconfig.h: Don't #undef PACKAGE or VERSION.
5565
55661999-08-09 Anthony Green <green@cygnus.com>
5567
5568 * include/ffi.h.in: Try to work around messy header problem
5569 with PACKAGE and VERSION.
5570
5571 * configure: Rebuilt.
5572 * configure.in: Change version to 2.00-beta.
5573
5574 * fficonfig.h.in: Rebuilt.
5575 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5576
5577 * src/x86/ffi.c (ffi_raw_call): Rename.
5578
55791999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5580
5581 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5582 (ffi_prep_incoming_args_SYSV): Ditto.
5583 (ffi_prep_closure): Ditto.
5584 (ffi_closure_raw_SYSV): Ditto.
5585 (ffi_prep_raw_closure): More ditto.
5586 (ffi_call_raw): Final ditto.
5587
5588 * include/ffi.h.in: Add definitions for closure and raw API.
5589
5590 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5591 FFI_TYPE_UINT64.
5592
5593 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5594
5595 * src/raw_api.c: New file.
5596
5597 * include/ffi.h.in (ffi_raw): New type.
5598 (UINT_ARG, SINT_ARG): New defines.
5599 (ffi_closure, ffi_raw_closure): New types.
5600 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5601
5602 * configure.in: Add check for endianness and sizeof void*.
5603
5604 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5605 instead of directly.
5606
5607 * configure: Rebuilt.
5608
5609Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5610
5611 * configure.in: Add x86 and powerpc BeOS configurations.
5612 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5613
56141999-05-09 Anthony Green <green@cygnus.com>
5615
5616 * configure.in: Add warning about this being beta code.
5617 Remove src/Makefile.am from the picture.
5618 * configure: Rebuilt.
5619
5620 * Makefile.am: Move logic from src/Makefile.am. Add changes
5621 to support libffi as a target library.
5622 * Makefile.in: Rebuilt.
5623
5624 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5625 Upgraded to new autoconf, automake, libtool.
5626
5627 * README: Tweaks.
5628
5629 * LICENSE: Update copyright date.
5630
5631 * src/Makefile.am, src/Makefile.in: Removed.
5632
56331998-11-29 Anthony Green <green@cygnus.com>
5634
5635 * include/ChangeLog: Removed.
5636 * src/ChangeLog: Removed.
5637 * src/mips/ChangeLog: Removed.
5638 * src/sparc/ChangeLog: Remboved.
5639 * src/x86/ChangeLog: Removed.
5640
5641 * ChangeLog.v1: Created.