blob: 3cb6188d4b446dac1f3126d714f4f1abc324d1f4 [file] [log] [blame]
Anthony Green8af42f92013-11-13 16:40:28 -050012013-11-13 Anthony Green <green@moxielogic.com>
2
3 * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
4 based build. (Thanks to tmr111116 on github)
5
Anthony Green2f5b7ce2013-11-09 06:16:32 -050062013-11-09 Anthony Green <green@moxielogic.com>
7
8 * m4/libtool.m4: Refresh.
9 * configure, Makefile.in: Rebuilt.
10 * README: Add more notes about next release.
11
122013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp>
13
14 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
15 UltraSPARC-IIi as ultrasparc3.
16
Mark Kettenisbecd7542013-11-06 06:43:49 -0500172013-11-06 Mark Kettenis <kettenis@gnu.org>
18
19 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
20 16-bytes.
21
Konstantin Belousov05c31092013-11-06 06:40:58 -0500222013-11-06 Konstantin Belousov <kib@freebsd.org>
23
24 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
25 source as not requiring executable stack.
26
Anthony Greencf6bf982013-11-02 17:23:59 -0400272013-11-02 Anthony Green <green@moxielogic.com>
28
29 * doc/libffi.texi (The Basics): Clarify return value buffer size
30 requirements. Also, NULL result buffer pointers are no longer
31 supported.
32 * doc/libffi.info: Rebuilt.
33
Anthony Greenc2422172013-11-02 14:08:23 -0700342013-11-02 Mischa Jonker <mjonker@synopsys.com>
35
36 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
37 * Makefile.in: Rebuilt.
38
392013-11-02 David Schneider <david.schneider@bivab.de>
40
41 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
42 * testsuite/libffi.call/many_mixed.c: New file.
43 * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
44
Anthony Greenf4b843f2013-11-02 17:01:15 -0400452013-11-02 Vitaly Budovski
46
47 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
48
Mark H Weaverd3372c52013-10-26 08:30:06 -0400492013-10-23 Mark H Weaver <mhw@netris.org>
50
51 * src/mips/ffi.c: Fix handling of uint32_t arguments on the
52 MIPS N32 ABI.
53
Sandra Loosemore16b93a22013-10-15 15:33:59 -0400542013-10-13 Sandra Loosemore <sandra@codesourcery.com>
55
56 * README: Add Nios II to table of supported platforms.
57 * Makefile.am (EXTRA_DIST): Add nios2 files.
58 (nodist_libffi_la_SOURCES): Likewise.
59 * Makefile.in: Regenerated.
60 * configure.ac (nios2*-linux*): New host.
61 (NIOS2): Add AM_CONDITIONAL.
62 * configure: Regenerated.
63 * src/nios2/ffi.c: New.
64 * src/nios2/ffitarget.h: New.
65 * src/nios2/sysv.S: New.
66 * src/prep_cif.c (initialize_aggregate): Handle extra structure
67 alignment via FFI_AGGREGATE_ALIGNMENT.
68 (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
69
Sandra Loosemore2f5626c2013-10-15 15:32:16 -0400702013-10-10 Sandra Loosemore <sandra@codesourcery.com>
71
72 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
73 Fix uninitialized variable.
74
Marcus Shawcroftf64e4a82013-10-15 15:20:14 -0400752013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
76
77 * testsuite/libffi.call/many.c (many): Replace * with +.
78
Anthony Green128cd1d2013-10-08 06:45:51 -0400792013-10-08 Ondřej Bílka <neleai@seznam.cz>
80
81 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
82 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
83 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
84 src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
85 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
86 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
87 spelling errors.
88
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400892013-10-08 Anthony Green <green@moxielogic.com>
90
91 * aclocal.m4, compile, config.guess, config.sub, depcomp,
92 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
93 * configure.ac: Update version to 3.0.14-rc0.
94 * Makefile.in, configure, Makefile.in, include/Makefile.in,
95 man/Makefile.in, testsuite/Makefile.in: Rebuilt.
Anthony Green128cd1d2013-10-08 06:45:51 -040096 * README: Mention M88K and VAX.
Anthony Greend2fcbcd2013-10-08 06:27:46 -040097
982013-07-15 Miod Vallat <miod@openbsd.org>
99
100 * Makefile.am,
101 configure.ac,
102 src/m88k/ffi.c,
103 src/m88k/ffitarget.h,
104 src/m88k/obsd.S,
105 src/vax/elfbsd.S,
106 src/vax/ffi.c,
107 src/vax/ffitarget.h: Add m88k and vax support.
108
Anthony Greend3d099b2013-07-02 16:11:38 -04001092013-06-24 Alan Modra <amodra@gmail.com>
110
111 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
112 before statements.
113 (ffi_prep_args64): Support little-endian.
114 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
115 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
116 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
117
Mischa Jonkerb082e152013-06-10 16:19:33 +02001182013-06-12 Mischa Jonker <mjonker@synopsys.com>
119
120 * configure.ac: Add support for ARC.
121 * Makefile.am: Likewise.
122 * README: Add ARC details.
123 * src/arc/arcompact.S: New.
124 * src/arc/ffi.c: Likewise.
125 * src/arc/ffitarget.h: Likewise.
126
David Schneider4750e3c2013-03-28 16:56:36 +01001272013-03-28 David Schneider <david.schneider@bivab.de>
128
129 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
130 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
131 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
132 mixed arguments, many doubles.
133 * testsuite/libffi.call/many_double.c: testcase for calling a function using
134 more than 8 doubles.
135 * testcase/libffi.call/many.c: use absolute value to check result against an
136 epsilon
137
Anthony Greencb32c812013-03-17 09:27:55 -04001382013-03-17 Anthony Green <green@moxielogic.com>
139
Anthony Green12b18862013-03-17 18:32:12 -0400140 * README: Update for 3.0.13.
141 * configure.ac: Ditto.
142 * configure: Rebuilt.
143 * doc/*: Update version.
144
1452013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
146
147 * src/closures.c (is_emutramp_enabled
148 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
149 enclosing #if scope.
150
1512013-03-17 Anthony Green <green@moxielogic.com>
152
Anthony Greencb32c812013-03-17 09:27:55 -0400153 * configure.ac: Only modify toolexecdir in certain cases.
154 * configure: Rebuilt.
155
Anthony Green4acf0052013-03-16 08:18:45 -04001562013-03-16 Gilles Talis <gilles.talis@gmail.com>
157
158 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
159 fparg_count,etc on __NO_FPRS__ targets.
160
Anthony Green8a286f52013-03-16 08:01:19 -04001612013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
162
Anthony Green4acf0052013-03-16 08:18:45 -0400163 * src/m68k/sysv.S (epilogue): Don't use extb instruction on
Anthony Green8a286f52013-03-16 08:01:19 -0400164 m680000 machines.
165
Anthony Green211a9eb2013-03-16 04:24:40 -07001662013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
167
168 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
169
Anthony Green2fb527a2013-03-16 07:46:38 -04001702013-03-13 Markos Chandras <markos.chandras@imgtec.com>
171
172 * configure.ac: Add support for Imagination Technologies Meta.
173 * Makefile.am: Likewise.
174 * README: Add Imagination Technologies Meta details.
175 * src/metag/ffi.c: New.
176 * src/metag/ffitarget.h: Likewise.
177 * src/metag/sysv.S: Likewise.
178
Anthony Green675c9832013-03-16 08:12:38 -04001792013-02-24 Andreas Schwab <schwab@linux-m68k.org>
180
181 * doc/libffi.texi (Structures): Fix missing category argument of
182 @deftp.
183
Anthony Greenf308faf2013-02-11 14:25:13 -05001842013-02-11 Anthony Green <green@moxielogic.com>
185
186 * configure.ac: Update release number to 3.0.12.
187 * configure: Rebuilt.
188 * README: Update release info.
189
1902013-02-10 Anthony Green <green@moxielogic.com>
191
192 * README: Add Moxie.
193 * src/moxie/ffi.c: Created.
194 * src/moxie/eabi.S: Created.
195 * src/moxie/ffitarget.h: Created.
196 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
197 * Makefile.in: Rebuilt.
198 * configure.ac: Add Moxie.
199 * configure: Rebuilt.
200 * testsuite/libffi.call/huge_struct.c: Disable format string
201 warnings for moxie*-*-elf tests.
202
2032013-02-10 Anthony Green <green@moxielogic.com>
204
205 * Makefile.am (LTLDFLAGS): Fix reference.
206 * Makefile.in: Rebuilt.
207
Anthony Green4ea22e52013-02-10 08:48:38 -05002082013-02-10 Anthony Green <green@moxielogic.com>
209
210 * README: Update supported platforms. Update test results link.
211
Anthony Green10e77222013-02-10 08:47:26 -05002122013-02-09 Anthony Green <green@moxielogic.com>
213
214 * testsuite/libffi.call/negint.c: Remove forced -O2.
215 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
216 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
217
218 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
219 closure return type fix developed by Martin v. Löwis for cpython
220 fork.
221
Anthony Green70b11b42013-02-08 16:12:19 -05002222013-02-08 Andreas Tobler <andreast@fgznet.ch>
223
224 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
225 support.
226 * src/powerpc/sysv.S: Ditto.
227
Anthony Green63ba1fa2013-02-08 15:18:19 -05002282013-02-08 Anthony Green <green@moxielogic.com>
229
230 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
231 arm*-*-*.
232
2332013-02-08 Anthony Green <green@moxielogic.com>
234
235 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
236
Anthony Green24fbca42013-02-08 14:19:56 -05002372013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -0500238
239 * man/ffi_prep_cif.3: Clean up for debian linter.
240
Anthony Green24fbca42013-02-08 14:19:56 -05002412013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -0500242
243 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
244 on the stack.
245
Anthony Greencb03ea82013-02-08 12:25:18 -05002462013-02-08 Anthony Green <green@moxielogic.com>
247
Anthony Green7aab8252013-02-08 13:26:21 -0500248 * Makefile.am (EXTRA_DIST): Add missing files.
249 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
250 * Makefile.in: Rebuilt.
251
2522013-02-08 Anthony Green <green@moxielogic.com>
253
Anthony Greencb03ea82013-02-08 12:25:18 -0500254 * configure.ac: Move sparc asm config checks to within functions
255 for compatibility with sun tools.
256 * configure: Rebuilt.
257 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
258 systems.
259 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
260 flusher.
261
Anthony Green35ee8d42013-02-08 07:12:41 -05002622013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
263
264 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
265 small big-endian structures.
266 (ffi_prep_args): Ditto.
267
Anthony Greened6ae952013-02-07 16:43:36 -05002682013-02-07 Anthony Green <green@moxielogic.com>
269
Anthony Green9db7e1a2013-02-07 21:06:08 -0500270 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
271 (effectively hiding ffi_call_v8).
272
2732013-02-07 Anthony Green <green@moxielogic.com>
274
Anthony Greence0138e2013-02-07 18:04:01 -0500275 * configure.ac: Update bug reporting address.
276 * configure.in: Rebuild.
277
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500278 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
279 Sun compiler.
280 * src/sparc/ffi.c (ffi_call): Remove warning.
281 Call ffi_flush_icache for non-GCC builds.
282 (ffi_prep_closure_loc): Use ffi_flush_icache.
283
Anthony Greened6ae952013-02-07 16:43:36 -0500284 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
285 * Makefile.in: Rebuilt.
286 * libtool-ldflags: New file.
287
Anthony Greenffef2e02013-02-07 15:47:01 -05002882013-02-07 Daniel Schepler <dschepler@gmail.com>
289
290 * configure.ac: Correctly identify x32 systems as 64-bit.
291 * m4/libtool.m4: Remove libtool expr error.
292 * aclocal.m4, configure: Rebuilt.
293
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05002942013-02-07 Anthony Green <green@moxielogic.com>
295
Anthony Green176aa9d2013-02-07 15:29:22 -0500296 * configure.ac: Fix GCC usage test.
297 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500298 * README: Mention LLVM/GCC x86_64 issue.
299 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500300
3012013-02-07 Anthony Green <green@moxielogic.com>
302
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500303 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
304 comments with /* */ for xlc compiler.
305 * testsuite/libffi.call/stret_large.c (main): Ditto.
306 * testsuite/libffi.call/stret_large2.c (main): Ditto.
307 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
308 * testsuite/libffi.call/huge_struct.c (main): Ditto.
309 * testsuite/libffi.call/float_va.c (main): Ditto.
310 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
311 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
312 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
313 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
314
Anthony Greenf7cd61e2013-02-06 17:38:04 -05003152013-02-06 Anthony Green <green@moxielogic.com>
316
Anthony Green522f8fe2013-02-06 20:31:31 -0500317 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
318
3192013-02-06 Anthony Green <green@moxielogic.com>
320
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500321 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
322 * Makefile.in: Rebuild.
323
Anthony Green6a790122013-02-06 17:37:15 -05003242013-02-02 Mark H Weaver <mhw@netris.org>
325
326 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
327 via general purpose registers.
328
Anthony Greenaeb87192013-01-21 07:37:30 -05003292013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
330
331 * README: Add MicroBlaze details.
332 * Makefile.am: Add MicroBlaze support.
333 * configure.ac: Likewise.
334 * src/microblaze/ffi.c: New.
335 * src/microblaze/ffitarget.h: Likewise.
336 * src/microblaze/sysv.S: Likewise.
337
3382013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
339 * testsuite/libffi.call/return_uc.c: Fixed issue.
340
Anthony Green20cae322013-01-21 07:07:38 -05003412013-01-21 Chris Zankel <chris@zankel.net>
342
343 * README: Add Xtensa support.
344 * Makefile.am: Likewise.
345 * configure.ac: Likewise.
346 * Makefile.in Regenerate.
347 * configure: Likewise.
348 * src/prep_cif.c: Handle Xtensa.
349 * src/xtensa: New directory.
350 * src/xtensa/ffi.c: New file.
351 * src/xtensa/ffitarget.h: Ditto.
352 * src/xtensa/sysv.S: Ditto.
353
Anthony Greenbff052d2013-01-11 10:24:32 -05003542013-01-11 Anthony Green <green@moxielogic.com>
355
Anthony Green05fbe1f2013-01-11 16:54:40 -0500356 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
357 comments with /* */ for xlc compiler.
358 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500359 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
360 deprecated inline function.
361 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500362 * README: Add update for AIX support.
363
3642013-01-11 Anthony Green <green@moxielogic.com>
365
Anthony Greenbff052d2013-01-11 10:24:32 -0500366 * configure.ac: Robustify pc relative reloc check.
367 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
368 changing option for 32-bit x86.
369 * aclocal.m4, configure: Rebuilt.
370 * README: Update supported target list.
371
Anthony Green2d9b3932013-01-09 21:14:54 -05003722013-01-10 Anthony Green <green@moxielogic.com>
373
Anthony Greencd41aea2013-01-10 17:25:45 -0500374 * README (tested): Add Compiler column to table.
375
3762013-01-10 Anthony Green <green@moxielogic.com>
377
Anthony Green8bf987d2013-01-10 17:24:51 -0500378 * src/x86/ffi64.c (struct register_args): Make sse array and array
379 of unions for sunpro compiler compatibility.
380
3812013-01-10 Anthony Green <green@moxielogic.com>
382
Anthony Green13e2d7b2013-01-10 10:52:02 -0500383 * configure.ac: Test target platform size_t size. Handle both 32
384 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
385 CFLAG option to change default settings).
386 * configure, aclocal.m4: Rebuilt.
387
3882013-01-10 Anthony Green <green@moxielogic.com>
389
Anthony Green51415432013-01-10 07:35:53 -0500390 * testsuite/libffi.special/special.exp: Only run exception
391 handling tests when using GNU compiler.
392
Anthony Green56ba8d82013-01-10 07:25:10 -0500393 * m4/ax_compiler_vendor.m4: New file.
394 * configure.ac: Test for compiler vendor and don't use
395 AX_CFLAGS_WARN_ALL with the sun compiler.
396 * aclocal.m4, configure: Rebuilt.
397
3982013-01-10 Anthony Green <green@moxielogic.com>
399
Anthony Green6a028ca2013-01-10 01:19:43 -0500400 * include/ffi_common.h: Don't use GCCisms to define types when
401 building with the SUNPRO compiler.
402
4032013-01-10 Anthony Green <green@moxielogic.com>
404
Anthony Green2d9b3932013-01-09 21:14:54 -0500405 * configure.ac: Put local.exp in the right place.
406 * configure: Rebuilt.
407
408 * src/x86/ffi.c: Update comment about regparm function attributes.
409 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
410 that all function arguments be passed on the stack (no regparm
411 support).
412
Anthony Greenf7879bc2013-01-08 07:30:28 -05004132013-01-08 Anthony Green <green@moxielogic.com>
414
Anthony Green83089842013-01-08 15:14:21 -0500415 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
416 when we are using the vendor compiler.
417 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
418 ../local.exp.
419 * configure, testsuite/Makefile.in: Rebuilt.
420
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500421 * testsuite/libffi.call/call.exp: Run tests with different
422 options, depending on whether or not we are using gcc or the
423 vendor compiler.
424 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
425 whether or not we are building/testing with gcc.
426
4272013-01-08 Anthony Green <green@moxielogic.com>
428
Anthony Green74c776e2013-01-08 12:25:54 -0500429 * configure.ac: Switch x86 solaris target to X86 by default.
430 * configure: Rebuilt.
431
4322013-01-08 Anthony Green <green@moxielogic.com>
433
Anthony Green8962c8c2013-01-08 12:22:24 -0500434 * configure.ac: Fix test for read-only eh_frame.
435 * configure: Rebuilt.
436
4372013-01-08 Anthony Green <green@moxielogic.com>
438
Anthony Green35ddb692013-01-08 07:53:37 -0500439 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
440 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500441 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
442 compiler.
443
Anthony Green8f4772f2013-01-07 06:14:53 -05004442013-01-07 Thorsten Glaser <tg@mirbsd.org>
445
Anthony Green67cea902013-01-07 06:30:24 -0500446 * testsuite/libffi.call/cls_uchar_va.c,
447 testsuite/libffi.call/cls_ushort_va.c,
448 testsuite/libffi.call/va_1.c: Testsuite fixes.
449
4502013-01-07 Thorsten Glaser <tg@mirbsd.org>
451
Anthony Green8f4772f2013-01-07 06:14:53 -0500452 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
453 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
454 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
455
Anthony Greenea7f8442013-01-04 09:09:32 -05004562013-01-04 Anthony Green <green@moxielogic.com>
457
458 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
459 and -Wall. This is set in the configure script after testing for
460 GCC.
461 * Makefile.in: Rebuilt.
462
Anthony Greenf06c0f12013-01-02 09:39:17 -05004632013-01-02 rofl0r <https://github.com/rofl0r>
464
465 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
466 when long double == double.
467
4682013-01-02 Reini Urban <rurban@x-ray.at>
469
470 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
471 (required for shared libs on cygwin/mingw).
472 * Makefile.in: Rebuilt.
473
Anthony Greend3d099b2013-07-02 16:11:38 -04004742012-10-31 Alan Modra <amodra@gmail.co>
Anthony Greendfadfb12012-10-31 06:46:41 -0400475
476 * src/powerpc/linux64_closure.S: Add new ABI support.
477 * src/powerpc/linux64.S: Likewise.
478
Anthony Greene944b8c2012-10-30 14:06:09 -04004792012-10-30 Magnus Granberg <zorry@gentoo.org>
480 Pavel Labushev <pavel.labushev@runbox.ru>
481
482 * configure.ac: New options pax_emutramp
483 * configure, fficonfig.h.in: Regenerated
484 * src/closures.c: New function emutramp_enabled_check() and
485 checks.
486
Anthony Greenf3429962012-10-30 07:42:27 -04004872012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
488
489 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
490 lion) and future version.
491 * configure: Rebuild.
492
Anthony Green58e8b662012-10-30 07:07:19 -04004932012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
494 Marcus Shawcroft <marcus.shawcroft at arm.com>
495
496 * README: Add details of aarch64 port.
497 * src/aarch64/ffi.c: New.
498 * src/aarch64/ffitarget.h: Likewise.
499 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500500 * Makefile.am: Support aarch64.
501 * configure.ac: Support aarch64.
502 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400503
5042012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
505 Marcus Shawcroft <marcus.shawcroft at arm.com>
506
507 * testsuite/lib/libffi.exp: Add support for aarch64.
508 * testsuite/libffi.call/cls_struct_va1.c: New.
509 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
510 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500511 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400512 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
513 * testsuite/libffi.call/nested_struct11.c: Likewise.
514 * testsuite/libffi.call/uninitialized.c: Likewise.
515 * testsuite/libffi.call/va_1.c: Likewise.
516 * testsuite/libffi.call/va_struct1.c: Likewise.
517 * testsuite/libffi.call/va_struct2.c: Likewise.
518 * testsuite/libffi.call/va_struct3.c: Likewise.
519
Anthony Green9c00a3f2012-10-12 16:46:06 -04005202012-10-12 Walter Lee <walt@tilera.com>
521
522 * Makefile.am: Add TILE-Gx/TILEPro support.
523 * configure.ac: Likewise.
524 * Makefile.in: Regenerate.
525 * configure: Likewise.
526 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
527 * src/tile: New directory.
528 * src/tile/ffi.c: New file.
529 * src/tile/ffitarget.h: Ditto.
530 * src/tile/tile.S: Ditto.
531
5322012-10-12 Matthias Klose <doko@ubuntu.com>
533
534 * generate-osx-source-and-headers.py: Normalize whitespace.
535
Anthony Green048d2f42012-10-11 10:55:25 -04005362012-09-14 David Edelsohn <dje.gcc@gmail.com>
537
538 * configure: Regenerated.
539
5402012-08-26 Andrew Pinski <apinski@cavium.com>
541
542 PR libffi/53014
543 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
544 soft-float.
545
5462012-08-08 Uros Bizjak <ubizjak@gmail.com>
547
548 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
549 just return FFI_BAD_ABI when things are wrong.
550
5512012-07-18 H.J. Lu <hongjiu.lu@intel.com>
552
553 PR libffi/53982
554 PR libffi/53973
555 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
556 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
557
5582012-05-16 H.J. Lu <hongjiu.lu@intel.com>
559
560 * configure: Regenerated.
561
Nicolas Lelongd330f192012-05-05 09:37:02 -04005622012-05-05 Nicolas Lelong
563
564 * libffi.xcodeproj/project.pbxproj: Fixes.
565 * README: Update for iOS builds.
566
Anthony Green213ed152012-04-27 01:34:15 -04005672012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
568
569 * configure.ac: Add Blackfin/sysv support
570 * Makefile.am: Add Blackfin/sysv support
571 * src/bfin/ffi.c: Add Blackfin/sysv support
572 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400573
Anthony Green7e0a4122012-04-11 22:47:44 -04005742012-04-11 Anthony Green <green@moxielogic.com>
575
576 * Makefile.am (EXTRA_DIST): Add new script.
577 * Makefile.in: Rebuilt.
578
Zachary Waldowski39e6a582012-04-11 22:39:46 -04005792012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
580
581 * generate-ios-source-and-headers.py,
582 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
583 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
584 generation into an Xcode "run script" phase. Include both as
585 Xcode build scripts. Don't always regenerate config files.
586
Anthony Green853cc722012-04-10 06:33:33 -04005872012-04-10 Anthony Green <green@moxielogic.com>
588
589 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
590
Anthony Green3f502302012-04-06 20:34:51 -04005912012-04-06 Anthony Green <green@moxielogic.com>
592
593 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
594 * Makefile.in: Rebuilt.
595
Mike Lewisebb8e892012-04-06 20:02:08 -04005962012-04-06 Mike Lewis <mikelikespie@gmail.com>
597
598 * generate-ios-source-and-headers.py: New file.
599 * libffi.xcodeproj/project.pbxproj: New file.
600 * README: Update instructions on building iOS binary.
601 * build-ios.sh: Delete.
602
Anthony Greena044a562012-04-06 10:39:10 -04006032012-04-06 Anthony Green <green@moxielogic.com>
604
605 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
606 compilers, then use it.
607
Anthony Green048d2f42012-10-11 10:55:25 -04006082012-04-06 H.J. Lu <hongjiu.lu@intel.com>
609
610 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
611
Anthony Green59bb61a2012-04-06 08:26:14 -04006122012-04-06 Anthony Green <green@moxielogic.com>
613
614 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
615 * testsuite/Makefile.in: Rebuilt.
616
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04006172012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
618
619 * include/ffi.h.in: Add missing trampoline table fields.
620 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
621 in CNAME.
622 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
623
Anthony Green089dbce2013-01-02 08:37:35 -05006242012-04-02 Peter Bergner <bergner@vnet.ibm.com>
625
626 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
627 Silence casting pointer to integer of different size warning.
628 Delete goto to previously deleted label.
629 (ffi_call): Silence possibly undefined warning.
630 (ffi_closure_helper_SYSV): Declare variable type.
631
6322012-04-02 Peter Rosin <peda@lysator.liu.se>
633
634 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
635 value in the Intel version as is already done for the AT&T version.
636 (ffi_closure_SYSV): Likewise.
637 (ffi_closure_raw_SYSV): Likewise.
638 (ffi_closure_STDCALL): Likewise.
639
Peter Rosin0a1ab122012-03-30 08:14:08 -04006402012-03-29 Peter Rosin <peda@lysator.liu.se>
641
642 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
643 generation, fix the ENDP label and remove the surplus third arg
644 from the 'lea' insn.
645
6462012-03-29 Peter Rosin <peda@lysator.liu.se>
647
648 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
649 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
650 it. Also instruct the assembler to add a frame to the function.
651
6522012-03-23 Peter Rosin <peda@lysator.liu.se>
653
654 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
655 * Makefile.in: Rebuilt.
656 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
657 to all data exports, when compiling libffi clients using MSVC.
658
6592012-03-29 Peter Rosin <peda@lysator.liu.se>
660
661 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
662 make it the default for MSVC.
663 (FFI_TYPE_MS_STRUCT): New structure return convention.
664 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
665 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
666 instead of an ordinary FFI_TYPE_STRUCT.
667 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
668 (ffi_call): Likewise.
669 (ffi_prep_incoming_args_SYSV): Likewise.
670 (ffi_raw_call): Likewise.
671 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
672 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
673 return a pointer to the result structure in eax and don't pop
674 that pointer from the stack, the caller takes care of it.
675 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
676 (ffi_closure_raw_SYSV): Likewise.
677
6782012-03-22 Peter Rosin <peda@lysator.liu.se>
679
680 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
681 assembly version with Intel syntax.
682 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
683
6842012-03-23 Peter Rosin <peda@lysator.liu.se>
685
686 * testsuite/libffi.call/ffitest.h: Provide abstration of
687 __attribute__((fastcall)) in the form of a __FASTCALL__
688 define. Define it to __fastcall for MSVC.
689 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
690 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
691 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
692 * testsuite/libffi.call/strlen2_win32.c: Likewise.
693 * testsuite/libffi.call/struct1_win32.c: Likewise.
694 * testsuite/libffi.call/struct2_win32.c: Likewise.
695
6962012-03-22 Peter Rosin <peda@lysator.liu.se>
697
698 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
699 frame on function entry, MASM adds one automatically.
700
7012012-03-22 Peter Rosin <peda@lysator.liu.se>
702
703 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
704 bits in the MSVC headers.
705
7062012-03-22 Peter Rosin <peda@lysator.liu.se>
707
708 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
709 with no declarations after statements.
710 * testsuite/libffi.call/cls_16byte.c: Likewise.
711 * testsuite/libffi.call/cls_18byte.c: Likewise.
712 * testsuite/libffi.call/cls_19byte.c: Likewise.
713 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
714 * testsuite/libffi.call/cls_20byte.c: Likewise.
715 * testsuite/libffi.call/cls_20byte1.c: Likewise.
716 * testsuite/libffi.call/cls_24byte.c: Likewise.
717 * testsuite/libffi.call/cls_2byte.c: Likewise.
718 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
719 * testsuite/libffi.call/cls_3byte1.c: Likewise.
720 * testsuite/libffi.call/cls_3byte2.c: Likewise.
721 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
722 * testsuite/libffi.call/cls_4byte.c: Likewise.
723 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
724 * testsuite/libffi.call/cls_5byte.c: Likewise.
725 * testsuite/libffi.call/cls_64byte.c: Likewise.
726 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
727 * testsuite/libffi.call/cls_6byte.c: Likewise.
728 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
729 * testsuite/libffi.call/cls_7byte.c: Likewise.
730 * testsuite/libffi.call/cls_8byte.c: Likewise.
731 * testsuite/libffi.call/cls_9byte1.c: Likewise.
732 * testsuite/libffi.call/cls_9byte2.c: Likewise.
733 * testsuite/libffi.call/cls_align_double.c: Likewise.
734 * testsuite/libffi.call/cls_align_float.c: Likewise.
735 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
736 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
737 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
738 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
739 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
740 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
741 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
742 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
743 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
744 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
745 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
746 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
747 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
748 * testsuite/libffi.call/huge_struct.c: Likewise.
749 * testsuite/libffi.call/nested_struct.c: Likewise.
750 * testsuite/libffi.call/nested_struct1.c: Likewise.
751 * testsuite/libffi.call/nested_struct10.c: Likewise.
752 * testsuite/libffi.call/nested_struct2.c: Likewise.
753 * testsuite/libffi.call/nested_struct3.c: Likewise.
754 * testsuite/libffi.call/nested_struct4.c: Likewise.
755 * testsuite/libffi.call/nested_struct5.c: Likewise.
756 * testsuite/libffi.call/nested_struct6.c: Likewise.
757 * testsuite/libffi.call/nested_struct7.c: Likewise.
758 * testsuite/libffi.call/nested_struct8.c: Likewise.
759 * testsuite/libffi.call/nested_struct9.c: Likewise.
760 * testsuite/libffi.call/stret_large.c: Likewise.
761 * testsuite/libffi.call/stret_large2.c: Likewise.
762 * testsuite/libffi.call/stret_medium.c: Likewise.
763 * testsuite/libffi.call/stret_medium2.c: Likewise.
764 * testsuite/libffi.call/struct1.c: Likewise.
765 * testsuite/libffi.call/struct1_win32.c: Likewise.
766 * testsuite/libffi.call/struct2.c: Likewise.
767 * testsuite/libffi.call/struct2_win32.c: Likewise.
768 * testsuite/libffi.call/struct3.c: Likewise.
769 * testsuite/libffi.call/struct4.c: Likewise.
770 * testsuite/libffi.call/struct5.c: Likewise.
771 * testsuite/libffi.call/struct6.c: Likewise.
772 * testsuite/libffi.call/struct7.c: Likewise.
773 * testsuite/libffi.call/struct8.c: Likewise.
774 * testsuite/libffi.call/struct9.c: Likewise.
775 * testsuite/libffi.call/testclosure.c: Likewise.
776
Anthony Greene72ed5e2012-03-21 09:52:28 -04007772012-03-21 Peter Rosin <peda@lysator.liu.se>
778
779 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
780 printing doubles (%lf is for long doubles).
781 (main): Likewise.
782
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007832012-03-21 Peter Rosin <peda@lysator.liu.se>
784
785 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
786 (set_ld_library_path_env_vars): Add the library search dir to PATH
787 (and save PATH for later).
788 (restore_ld_library_path_env_vars): Restore PATH.
789
Anthony Greenccee09a2013-01-02 08:41:55 -05007902012-03-21 Peter Rosin <peda@lysator.liu.se>
791
792 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
793 (set_ld_library_path_env_vars): Add the library search dir to PATH
794 (and save PATH for later).
795 (restore_ld_library_path_env_vars): Restore PATH.
796
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007972012-03-20 Peter Rosin <peda@lysator.liu.se>
798
799 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
800 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
801 visible outside the PROC, so that ffi_closure_THISCALL can see it.
802
Anthony Green048d2f42012-10-11 10:55:25 -04008032012-03-20 Peter Rosin <peda@lysator.liu.se>
804
805 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
806 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
807 visible outside the PROC, so that ffi_closure_THISCALL can see it.
808
Anthony Greenbd78c9c2012-03-21 08:09:30 -04008092012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
810
811 * src/m68k/ffi.c: Add MINT support.
812 * src/m68k/sysv.S: Ditto.
813
Anthony Green048d2f42012-10-11 10:55:25 -04008142012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
815
816 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
817 ffi_call_VFP().
818 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
819 ffi_closure_VFP.
820 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
821
Anthony Green089dbce2013-01-02 08:37:35 -05008222012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400823
Anthony Green089dbce2013-01-02 08:37:35 -0500824 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
825 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400826
Anthony Green84d32532012-03-19 23:07:35 -04008272012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
828
829 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
830 just return FFI_BAD_ABI when things are wrong.
831 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
832
8332012-03-09 David Edelsohn <dje.gcc@gmail.com>
834
835 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
836 change to return value of ffi_closure_helper_DARWIN and load type
837 from return type.
838
Anthony Green964c5b92012-03-03 14:46:20 -05008392012-03-03 H.J. Lu <hongjiu.lu@intel.com>
840
841 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
842 long.
843 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
844 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
845 first.
846
847 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
848 (ffi_arg): Set to unsigned long long for x32.
849 (ffi_sarg): Set to long long for x32.
850
8512012-03-03 H.J. Lu <hongjiu.lu@intel.com>
852
853 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
854
Anthony Green6c194232012-03-03 14:17:54 -05008552012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
856
857 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
858 windows-like hosts.
859 * configure: Rebuilt.
860
Anthony Green7c5e60b2012-03-29 08:48:22 -04008612012-02-27 Mikael Pettersson <mikpe@it.uu.se>
862
863 PR libffi/52223
864 * Makefile.am (FLAGS_TO_PASS): Define.
865 * Makefile.in: Regenerate.
866
Anthony Green8360bf12012-02-23 07:01:13 -05008672012-02-23 Anthony Green <green@moxielogic.com>
868
869 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
870 directly.
871
Anthony Green7c5e60b2012-03-29 08:48:22 -04008722012-02-23 Kai Tietz <ktietz@redhat.com>
873
874 PR libffi/52221
875 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
876 prototype.
877 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
878 thiscall-convention.
879 (ffi_raw_call): Use ffi_prep_args_raw.
880 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
881 implementation for stub.
882
Anthony Greendee20f82012-02-10 13:06:46 -05008832012-02-10 Kai Tietz <ktietz@redhat.com>
884
885 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
886 windows target.
887 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500888
Anthony Greendee20f82012-02-10 13:06:46 -05008892012-02-08 Kai Tietz <ktietz@redhat.com>
890
891 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
892 also FFI_THISCALL.
893 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
894 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
895 (ffi_prep_closure_loc): Add FFI_THISCALL support.
896 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
897 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
898 for thiscall-calling convention.
899 * testsuite/libffi.call/closure_thiscall.c: New test.
900
Anthony Green1ff9c602012-02-01 16:34:30 -06009012012-01-28 Kai Tietz <ktietz@redhat.com>
902
903 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
904 argument to prototype for specify calling-convention.
905 (ffi_call): Add support for stdcall/thiscall convention.
906 (ffi_prep_args): Likewise.
907 (ffi_raw_call): Likewise.
908 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
909 FFI_FASTCALL.
910 * src/x86/win32.S (_ffi_call_win32): Add support for
911 fastcall/thiscall calling-convention calls.
912 * testsuite/libffi.call/fastthis1_win32.c: New test.
913 * testsuite/libffi.call/fastthis2_win32.c: New test.
914 * testsuite/libffi.call/fastthis3_win32.c: New test.
915 * testsuite/libffi.call/strlen2_win32.c: New test.
916 * testsuite/libffi.call/many2_win32.c: New test.
917 * testsuite/libffi.call/struct1_win32.c: New test.
918 * testsuite/libffi.call/struct2_win32.c: New test.
919
Anthony Green211060e2012-01-23 14:24:01 -05009202012-01-23 Uros Bizjak <ubizjak@gmail.com>
921
922 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
923
Anthony Green1ff9c602012-02-01 16:34:30 -06009242012-01-23 Anthony Green <green@moxielogic.com>
925 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500926
927 * configure.ac: Add Amiga support.
928 * configure: Rebuilt.
929
9302012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500931
932 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
933
Anthony Green1ff9c602012-02-01 16:34:30 -06009342012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500935
936 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
937 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
938
Anthony Greenc365ee72012-01-23 11:13:18 -05009392012-01-19 Jakub Jelinek <jakub@redhat.com>
940
941 PR rtl-optimization/48496
942 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
943
9442012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
945
946 * configure.ac (i?86-*-*): Set TARGET to X86_64.
947 * configure: Regenerate.
948
9492011-12-07 Andrew Pinski <apinski@cavium.com>
950
951 PR libffi/50051
952 * src/mips/n32.S: Add ".set mips4".
953
9542011-11-21 Andreas Tobler <andreast@fgznet.ch>
955
956 * configure: Regenerate.
957
Anthony Greenff9454d2011-11-12 17:18:51 -05009582011-11-12 David Gilbert <david.gilbert@linaro.org>
959
960 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
961 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
962 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
963 src/cris/ffi.c, src/prep_cif.c,
964 testsuite/libffi.call/cls_double_va.c,
965 testsuite/libffi.call/cls_longdouble_va.c,
966 testsuite/libffi.call/float_va.c: Many changes to support variadic
967 function calls.
968
Anthony Green52891f82011-11-12 16:35:55 -05009692011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
970
971 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
972 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
973 softfloat powerpc variants.
974
Anthony Green6a6e7f82011-11-12 16:20:42 -05009752011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
976
977 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
978 * configure: Rebuilt.
979
Anthony Greend52fbed2011-11-12 16:13:41 -05009802011-11-12 Timothy Wall <twall@users.sf.net>
981
982 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
983 alignment of 4 for wince on ARM.
984
Anthony Greenaf18df22011-11-12 15:52:08 -05009852011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
986 Anthony Green <green@moxielogic.com>
987
988 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
989 instructions (not available on some cores, like the PPC440).
990
Anthony Greenc411f142011-11-12 07:32:36 -05009912011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400992
Anthony Greenc411f142011-11-12 07:32:36 -0500993 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500994 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500995 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
996 X 10.7.
997 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400998
Anthony Green6a6e7f82011-11-12 16:20:42 -05009992011-11-12 Anthony Green <green@moxielogic.com>
1000
1001 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1002 files with debug info.
1003 * Makefile.in: Rebuilt.
1004
10052011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1006
1007 * README: Update list of supported OpenBSD systems.
1008
10092011-11-12 Anthony Green <green@moxielogic.com>
1010
1011 * libtool-version: Update.
1012 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1013 FFI_DEBUG.
1014 (libffi_la_SOURCES): Remove src/debug.c
1015 (EXTRA_DIST): Add src/debug.c
1016 * Makefile.in: Rebuilt.
1017 * README: Update for 3.0.11.
1018
Anthony Green3d561062011-11-12 07:20:24 -050010192011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -04001020
Anthony Green3d561062011-11-12 07:20:24 -05001021 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1022 * configure, aclocal.m4: Rebuild.
1023
10242011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1025
1026 PR libffi/49594
1027 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1028 helper reference track the architecture pointer size.
1029
10302011-08-25 Andrew Haley <aph@redhat.com>
1031
1032 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1033 instructions.
1034 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -04001035
Anthony Greend992ac52011-07-29 17:32:53 -040010362011-07-11 Andrew Haley <aph@redhat.com>
1037
1038 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1039
10402011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1041
1042 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1043 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1044
10452011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1046
1047 PR libffi/46660
1048 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1049 mips-sgi-irix6*.
1050 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1051
10522011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1053
1054 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1055 PRId8 instead of %hhu, %hhd.
1056 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1057 PRIu8): Define.
1058 [__sgi__] (PRId8, PRIu8): Define.
1059
10602011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1061
1062 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1063 Define.
1064 Use them to handle ELF vs. ECOFF differences.
1065 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1066
Anthony Green2d3fb362011-03-30 16:54:42 -040010672011-03-30 Timothy Wall <twall@users.sf.net>
1068
1069 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1070 * src/powerpc/darwin_closure.S: ditto.
1071
Anthony Green25416792011-02-25 15:09:13 -050010722011-02-25 Anthony Green <green@moxielogic.com>
1073
Anthony Green74ee6ea2011-02-25 15:52:14 -05001074 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1075 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05001076
Anthony Green8cf88782011-02-15 15:19:49 -050010772011-02-15 Anthony Green <green@moxielogic.com>
1078
1079 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1080 * configure: Rebuilt.
1081
Anthony Greend992ac52011-07-29 17:32:53 -040010822011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1083
1084 * configure: Regenerate.
1085
Anthony Green1fbf9dc2011-02-13 08:06:39 -050010862011-02-13 Anthony Green <green@moxielogic.com>
1087
1088 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1089 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1090 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1091
1092 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1093 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1094
1095 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1096 just return FFI_BAD_ABI when things are wrong.
1097 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1098 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1099 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1100 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1101 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1102
Anthony Green1833aa02011-02-11 07:11:04 -050011032011-02-11 Anthony Green <green@moxielogic.com>
1104
1105 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1106 just return FFI_BAD_ABI when things are wrong.
1107
Anthony Green7c5e60b2012-03-29 08:48:22 -040011082012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1109
1110 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1111
Anthony Green42695e72011-02-09 15:12:35 -050011122011-02-09 Stuart Shelton <srcshelton@gmail.com>
1113
1114 http://bugs.gentoo.org/show_bug.cgi?id=286911
1115 * src/mips/ffitarget.h: Clean up error messages.
1116 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1117 ffi_raw*.
1118 * include/ffi.h.in: Add pragma for SGI compiler.
1119
Anthony Greena6e56b92011-02-09 15:00:42 -050011202011-02-09 Anthony Green <green@moxielogic.com>
1121
1122 * configure.ac: Add powerpc64-*-darwin* support.
1123
Anthony Green0cad4382011-02-09 06:11:46 -050011242011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05001125
Anthony Green747d6c32011-02-09 14:56:23 -05001126 * README: Mention Interix.
1127
11282011-02-09 Jonathan Callen <abcd@gentoo.org>
1129
1130 * configure.ac: Add Interix to win32/cygwin/mingw case.
1131 * configure: Ditto.
1132 * src/closures.c: Treat Interix like Cygwin, instead of as a
1133 generic win32.
1134
11352011-02-09 Anthony Green <green@moxielogic.com>
1136
Anthony Green69dbe842011-02-09 07:38:43 -05001137 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1138 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1139 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1140 (ffi_prep_closure_loc): Check for bad ABI.
1141 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1142 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -05001143
Anthony Green90af15e2011-02-12 12:29:36 -050011442011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -05001145
1146 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1147 src/arm/trampoline.S.
1148 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1149 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1150 * src/arm/ffi.c (ffi_trampoline_table)
1151 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1152 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1153 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1154 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1155 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1156 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1157 separately.
1158 * src/arm/sysv.S: Handle Apple iOS host.
1159 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001160 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001161 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001162 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001163
Anthony Greendc411e82011-02-08 10:49:29 -050011642011-02-08 Oren Held <orenhe@il.ibm.com>
1165
1166 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1167 redefinition of mallinfo on HP-UX.
1168
Anthony Green404585d2011-02-08 10:44:36 -050011692011-02-08 Ginn Chen <ginn.chen@oracle.com>
1170
1171 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001172 aggregate return ABI. Flush cache.
1173 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001174
Anthony Green6972a4f2011-02-11 07:32:51 -050011752011-02-11 Anthony Green <green@moxielogic.com>
1176
1177 From Tom Honermann <tom.honermann@oracle.com>:
1178 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1179 AIX. Declare .ffi_prep_args. Insert nops after branch
1180 instructions so that the AIX linker can insert TOC reload
1181 instructions.
1182 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1183
Anthony Greend992ac52011-07-29 17:32:53 -040011842011-02-08 Ed <ed@kdtc.net>
1185
1186 * src/powerpc/asm.h: Fix grammar nit in comment.
1187
Anthony Green89284fe2011-02-08 10:19:19 -050011882011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1189
1190 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1191
Anthony Greend992ac52011-07-29 17:32:53 -040011922011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1193
1194 PR libffi/46661
1195 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1196 uintptr_t first.
1197 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1198
Anthony Greened2c5182011-02-08 10:10:07 -050011992011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1200
1201 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001202 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001203
Anthony Green3b836242011-02-08 14:28:59 -050012042011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1205
1206 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1207 Handle case when CPU variant does not have long double support.
1208 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1209 and cores with soft floating point.
1210
12112011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1212
1213 * configure.ac: Add mips*-*-rtems* support.
1214 * configure: Regenerate.
1215 * src/mips/ffitarget.h: Ensure needed constants are available
1216 for targets which do not have sgidefs.h.
1217
Anthony Green0e584392011-02-08 07:52:40 -050012182011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1219
1220 PR target/40125
1221 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1222 * configure: Regenerate.
1223
12242010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1225
1226 PR libffi/29152
1227 PR libffi/42378
1228 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1229 update comments.
1230 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1231 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1232 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1233 update comments.
1234 * src/powerpc/ffi_darwin.c: Likewise.
1235
12362010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1237
1238 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1239 backslashes.
1240 (libffi_cv_as_string_pseudo_op): Likewise.
1241 * configure: Regenerate.
1242
12432010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1244
1245 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1246 (ffi_closure_VFP): Same.
1247 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1248 directive.
1249
12502010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1251
1252 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1253 (PRIuPTR): Define.
1254
12552010-11-29 Richard Henderson <rth@redhat.com>
1256 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1257
1258 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1259 (.eh_frame): Use FDE_ENCODING.
1260 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1261
Anthony Green5b9cd522010-11-22 15:19:57 -050012622010-11-22 Jacek Caban <jacek@codeweavers.com>
1263
1264 * configure.ac: Check for symbol underscores on mingw-w64.
1265 * configure: Rebuilt.
1266 * src/x86/win64.S: Correctly access extern symbols in respect to
1267 underscores.
1268
Anthony Green2db72612010-11-21 10:50:56 -050012692010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1270
1271 * testsuite/lib/libffi-dg.exp: Rename ...
1272 * testsuite/lib/libffi.exp: ... to this.
1273 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1274 * libffi/testsuite/libffi.special/special.exp: Likewise.
1275
12762010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1277
1278 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1279 code, new parameter, and return value. Update comments.
1280 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1281 call to layout_vfp_args().
1282 (ffi_call_SYSV): Update declaration.
1283 (ffi_call_VFP): New declaration.
1284 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1285 when ABI is FFI_VFP.
1286 (ffi_closure_VFP): New declaration.
1287 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1288 ffi_prep_incoming_args_SYSV().
1289 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1290 case handling.
1291 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1292 construction under VFP hard-float.
1293 (rec_vfp_type_p): New function.
1294 (vfp_type_p): Same.
1295 (place_vfp_arg): Same.
1296 (layout_vfp_args): Same.
1297 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1298 based on __ARM_PCS_VFP.
1299 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1300 fields.
1301 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1302 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1303 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1304 direct call. Move function pointer load upwards.
1305 (ffi_call_VFP): New function.
1306 (ffi_closure_VFP): Same.
1307
1308 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1309 (dg-skip-if): New function.
1310 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1311 and compiler options include -mfloat-abi=hard.
1312 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1313
13142010-10-01 Jakub Jelinek <jakub@redhat.com>
1315
1316 PR libffi/45677
1317 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1318 a multiple of 8.
1319 * testsuite/libffi.call/many2.c: New test.
1320
13212010-08-20 Mark Wielaard <mjw@redhat.com>
1322
1323 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1324 returns NULL.
1325
13262010-08-09 Andreas Tobler <andreast@fgznet.ch>
1327
1328 * configure.ac: Add target powerpc64-*-freebsd*.
1329 * configure: Regenerate.
1330 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1331 -mlong-double-128 only to linux targets.
1332 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1333 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1334 * testsuite/libffi.call/huge_struct.c: Likewise.
1335
Anthony Green00d0b592010-08-05 14:56:53 -040013362010-08-05 Dan Witte <dwitte@mozilla.com>
1337
1338 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1339 debug CRT when --enable-debug is given.
1340 * configure.ac: Define it.
1341 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1342
Anthony Greenc1d28ba2010-08-05 08:48:16 -040013432010-08-04 Dan Witte <dwitte@mozilla.com>
1344
1345 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1346 platforms.
1347 * src/x86/ffi.c: Remove redundant ifdef checks.
1348 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1349 for X86_ANY so return value space doesn't get added twice.
1350
Anthony Greenbda487e2010-08-05 09:02:41 -040013512010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1352
1353 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1354
Anthony Greend14178b2010-07-23 09:14:00 -040013552010-07-22 Dan Witte <dwitte@mozilla.com>
1356
1357 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1358 * src/prep_cif.c: Fix ABI assertion.
1359 * src/cris/ffi.c: Ditto.
1360
Anthony Greeneaf444e2010-07-10 08:59:09 -040013612010-07-10 Evan Phoenix <evan@fallingsnow.net>
1362
1363 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1364
Anthony Green5feacad2010-08-05 08:30:04 -040013652010-07-07 Dan Horák <dan@danny.cz>
1366
1367 * include/ffi.h.in: Protect #define with #ifndef.
1368 * src/powerpc/ffitarget.h: Ditto.
1369 * src/s390/ffitarget.h: Ditto.
1370 * src/sparc/ffitarget.h: Ditto.
1371
Anthony Green2db72612010-11-21 10:50:56 -050013722010-07-07 Neil Roberts <neil@linux.intel.com>
1373
1374 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1375 16-bytes.
1376
13772010-07-02 Jakub Jelinek <jakub@redhat.com>
1378
1379 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1380 * Makefile.in: Regenerated.
1381
13822010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1383
1384 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1385 output, too.
1386 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1387 (libffi_cv_as_string_pseudo_op): Check for .string.
1388 * configure: Regenerate.
1389 * fficonfig.h.in: Regenerate.
1390 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1391
Anthony Green10ea8482010-08-05 08:24:27 -040013922010-05-11 Dan Witte <dwitte@mozilla.com>
1393
1394 * doc/libffi.tex: Document previous change.
1395
13962010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1397
1398 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1399
Anthony Green63097412010-05-05 20:14:56 -040014002010-05-05 Michael Kohler <michaelkohler@live.com>
1401
1402 * src/dlmalloc.c (dlfree): Fix spelling.
1403 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1404 * configure.ac: Ditto.
1405 * configure: Rebuilt.
1406
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040014072010-04-13 Dan Witte <dwitte@mozilla.com>
1408
1409 * msvcc.sh: Build with -W3 instead of -Wall.
1410 * src/powerpc/ffi_darwin.c: Remove build warnings.
1411 * src/x86/ffi.c: Ditto.
1412 * src/x86/ffitarget.h: Ditto.
1413
Anthony Green2db72612010-11-21 10:50:56 -050014142010-04-12 Dan Witte <dwitte@mozilla.com>
1415 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001416
Anthony Green2db72612010-11-21 10:50:56 -05001417 * configure.ac: Add OS/2 support.
1418 * configure: Rebuilt.
1419 * src/closures.c: Ditto.
1420 * src/dlmalloc.c: Ditto.
1421 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001422
14232010-04-07 Jakub Jelinek <jakub@redhat.com>
1424
Anthony Green2db72612010-11-21 10:50:56 -05001425 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001426
14272010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1428
1429 * Makefile.in: Regenerate.
1430 * aclocal.m4: Regenerate.
1431 * include/Makefile.in: Regenerate.
1432 * man/Makefile.in: Regenerate.
1433 * testsuite/Makefile.in: Regenerate.
1434
Anthony Green2db72612010-11-21 10:50:56 -050014352010-03-30 Dan Witte <dwitte@mozilla.com>
1436
1437 * msvcc.sh: Disable build warnings.
1438 * README (tested): Clarify windows build procedure.
1439
Anthony Green3f5b1372010-07-12 14:39:18 -040014402010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1441
1442 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1443 * configure: Regenerate.
1444 * fficonfig.h.in: Regenerate.
1445 * libffi/src/x86/unix64.S (.eh_frame)
1446 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1447
Anthony Green2db72612010-11-21 10:50:56 -050014482010-03-14 Matthias Klose <doko@ubuntu.com>
1449
1450 * src/x86/ffi64.c: Fix typo in comment.
1451 * src/x86/ffi.c: Use /* ... */ comment style.
1452
Anthony Green9dc9a292010-04-13 10:33:52 -040014532010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1454
1455 * doc/libffi.texi (The Closure API): Fix typo.
1456 * doc/libffi.info: Remove.
1457
14582010-02-15 Matthias Klose <doko@ubuntu.com>
1459
1460 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1461 __ARM_ARCH_7EM__.
1462
Anthony Green2db72612010-11-21 10:50:56 -050014632010-01-15 Anthony Green <green@redhat.com>
1464
1465 * README: Add notes on building with Microsoft Visual C++.
1466
14672010-01-15 Daniel Witte <dwitte@mozilla.com>
1468
1469 * msvcc.sh: New file.
1470
1471 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1472 * src/x86/ffi.c: Tweak function declaration and remove excess
1473 parens.
1474 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1475 ffi_closure.
1476
1477 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1478 function ffi_call_win32 on X86_WIN32.
1479 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1480 (ffi_call_STDCALL): Remove.
1481
1482 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1483 to ffi_prep_cif_machdep for x86.
1484 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1485
14862010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1487
1488 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001489 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001490
14912010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1492
1493 * doc/libffi.texi: Add closure example.
1494
Anthony Green7b7a42f2010-01-12 09:14:14 -050014952010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1496
1497 PR libffi/40701
1498 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1499 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1500 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1501 alpha*-dec-osf*.
1502 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1503 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1504 * testsuite/libffi.call/return_ll1.c: Likewise.
1505 * testsuite/libffi.call/stret_medium2.c: Likewise.
1506 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1507 MAP_FAILED to char *.
1508
15092010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1510
1511 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1512
Anthony Greenc3042af2010-01-01 08:08:02 -050015132009-12-31 Anthony Green <green@redhat.com>
1514
1515 * README: Update for libffi 3.0.9.
1516
15172009-12-27 Matthias Klose <doko@ubuntu.com>
1518
1519 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1520 appropriate.
1521 * configure: Rebuilt.
1522
15232009-12-26 Anthony Green <green@redhat.com>
1524
1525 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1526 avr32*-*-*.
1527 * testsuite/libffi.call/cls_double_va.c: Ditto.
1528
15292009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1530
1531 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1532 and inttypes.h.
1533 * testsuite/libffi.special/unwindtest.cc: Ditto.
1534
15352009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1536
1537 * configure.ac: Add amd64-*-openbsd*.
1538 * configure: Rebuilt.
1539 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1540 openbsd programs with -lpthread.
1541
15422009-12-26 Anthony Green <green@redhat.com>
1543
1544 * testsuite/libffi.call/cls_double_va.c,
1545 testsuite/libffi.call/cls_longdouble.c,
1546 testsuite/libffi.call/cls_longdouble_va.c,
1547 testsuite/libffi.call/cls_pointer.c,
1548 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1549 mips*-*-* and arm*-*-*.
1550 * testsuite/libffi.call/cls_align_longdouble_split.c,
1551 testsuite/libffi.call/cls_align_longdouble_split2.c,
1552 testsuite/libffi.call/stret_medium2.c,
1553 testsuite/libffi.call/stret_medium.c,
1554 testsuite/libffi.call/stret_large.c,
1555 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1556
15572009-12-31 Kay Tietz <ktietz70@googlemail.com>
1558
1559 * testsuite/libffi.call/ffitest.h,
1560 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1561 definitions.
1562
15632009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1564
1565 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1566 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1567 * configure: Rebuilt.
1568 * Makefile.in: Rebuilt.
1569
15702009-12-31 Anthony Green <green@redhat.com>
1571 Blake Chaffin.
1572
1573 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1574 Chaffin @ Apple.
1575
Anthony Green0cfe60e2009-12-29 10:06:04 -050015762009-12-28 David Edelsohn <edelsohn@gnu.org>
1577
1578 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1579 local variables.
1580 (aix_adjust_aggregate_sizes): New function.
1581 (ffi_prep_cif_machdep): Call it.
1582
15832009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1584
1585 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1586 * configure: Regenerate.
1587 * fficonfig.h.in: Likewise.
1588 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1589 Solaris/x86.
1590
15912009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1592
1593 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1594 when a float arguments is passed in memory.
1595 (ffi_closure_helper_SYSV): Mark general registers as used up when
1596 a 64bit or soft-float long double argument is passed in memory.
1597
Anthony Green9458d882009-12-26 07:02:27 -050015982009-12-25 Matthias Klose <doko@ubuntu.com>
1599
1600 * man/ffi_call.3: Fix #include in examples.
1601 * doc/libffi.texi: Add dircategory.
1602
16032009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1604
1605 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1606 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1607 IRIX MIPSPro c99.
1608 * include/ffi_common.h: Added '__sgi' define to non
1609 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001610 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001611 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1612 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1613 FFI_LONGDOUBLE support and alignment(N32 only).
1614 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1615 fixed non '__attribute__((__mode__()))' integer typedefs.
1616 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1617 since they are Linux/GNU Assembler specific.
1618
16192009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1620
1621 * configure.ac, Makefile.am, src/avr32/ffi.c,
1622 src/avr32/ffitarget.h,
1623 src/avr32/sysv.S: Add AVR32 port.
1624 * configure, Makefile.in: Rebuilt.
1625
Anthony Green115ab362009-12-24 00:22:00 -050016262009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1627
1628 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1629 * configure: Regenerate.
1630
16312009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1632
1633 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1634
16352009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1636
1637 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1638 type on HP-UX.
1639
Anthony Green7c5e60b2012-03-29 08:48:22 -040016402012-02-13 Kai Tietz <ktietz@redhat.com>
1641
1642 PR libffi/52221
1643 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1644 support for X86_WIN32.
1645 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1646
Anthony Green115ab362009-12-24 00:22:00 -050016472009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1648
1649 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1650 double' arguments.
1651
16522009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1653
1654 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1655
16562009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1657
1658 PR libffi/40700
1659 * src/closures.c [X86_64 && __sun__ && __svr4__]
1660 (FFI_MMAP_EXEC_WRIT): Define.
1661
16622009-12-08 David Daney <ddaney@caviumnetworks.com>
1663
1664 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1665 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1666 * testsuite/libffi.call/stret_large.c: Same.
1667 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1668 * testsuite/libffi.call/stret_large2.c: Same.
1669 * testsuite/libffi.call/stret_medium2.c: Same.
1670
16712009-12-07 David Edelsohn <edelsohn@gnu.org>
1672
1673 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1674 typo.
1675
16762009-12-05 David Edelsohn <edelsohn@gnu.org>
1677
1678 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1679 code.
1680 * src/powerpc/aix_closure.S: Same.
1681
16822009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1683
1684 * Makefile.in: Regenerate.
1685 * configure: Regenerate.
1686 * include/Makefile.in: Regenerate.
1687 * man/Makefile.in: Regenerate.
1688 * testsuite/Makefile.in: Regenerate.
1689
16902009-12-04 David Edelsohn <edelsohn@gnu.org>
1691
1692 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001693 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001694
16952009-12-04 Uros Bizjak <ubizjak@gmail.com>
1696
1697 PR libffi/41908
1698 * src/x86/ffi64.c (classify_argument): Update from
1699 gcc/config/i386/i386.c.
1700 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1701 SSE registers directly.
1702 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1703 for x86_64 linux targets.
1704
17052009-12-04 David Edelsohn <edelsohn@gnu.org>
1706
1707 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1708 pfr for long double split between fpr13 and stack.
1709
17102009-12-03 David Edelsohn <edelsohn@gnu.org>
1711
1712 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1713 fparg_count twice for long double.
1714
17152009-12-03 David Edelsohn <edelsohn@gnu.org>
1716
1717 PR libffi/42243
1718 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1719
17202009-12-03 Uros Bizjak <ubizjak@gmail.com>
1721
1722 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1723 Remove xfails for x86 linux targets.
1724
17252009-12-02 David Edelsohn <edelsohn@gnu.org>
1726
1727 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1728 case.
1729
17302009-12-01 David Edelsohn <edelsohn@gnu.org>
1731
1732 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1733 register usage. Call ffi_prep_args directly. Add long double
1734 return value support.
1735 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1736 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1737 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1738 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1739 mode.
1740 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1741 into case.
1742 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1743 Allocate result area between params and FPRs.
1744
17452009-11-30 David Edelsohn <edelsohn@gnu.org>
1746
1747 PR target/35484
1748 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1749 AIX64.
1750 * src/powerpc/aix.S: Implement AIX64 version.
1751 * src/powerpc/aix_closure.S: Implement AIX64 version.
1752 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1753 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1754 support.
1755 (ffi_prep_cif_machdep): Same.
1756 (ffi_call): Same.
1757 (ffi_closure_helper_DARWIN): Same.
1758
17592009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1760
1761 PR libffi/41908
1762 * testsuite/libffi.call/testclosure.c: New test.
1763
Anthony Greenc6dddbd2009-10-04 08:11:33 -040017642009-09-28 Kai Tietz <kai.tietz@onevision.com>
1765
1766 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1767 assembly version use of ___chkstk.
1768
17692009-09-23 Matthias Klose <doko@ubuntu.com>
1770
1771 PR libffi/40242, PR libffi/41443
1772 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1773 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1774 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1775 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1776 for -mfloat-abi=softfp to work.
1777
17782009-09-17 Loren J. Rittle <ljrittle@acm.org>
1779
1780 PR testsuite/32843 (strikes again)
1781 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1782 enable proper extension on char and short.
1783
17842009-09-15 David Daney <ddaney@caviumnetworks.com>
1785
1786 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1787 handling for FFI_TYPE_POINTER.
1788 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1789 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1790 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1791 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1792 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1793 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1794 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1795 structure and pointer returns.
1796 (ffi_closure_N32): Add handling for pointer returns.
1797 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1798 calc_n32_return_struct_flags): Handle soft-float.
1799 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1800 (ffi_call_N32): Declare proper argument types.
1801 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1802 soft-float.
1803
18042009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1805
1806 * configure.ac (AC_PREREQ): Bump to 2.64.
1807
18082009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1809
1810 * Makefile.am (install-html, install-pdf): Remove.
1811 * Makefile.in: Regenerate.
1812
1813 * Makefile.in: Regenerate.
1814 * aclocal.m4: Regenerate.
1815 * configure: Regenerate.
1816 * fficonfig.h.in: Regenerate.
1817 * include/Makefile.in: Regenerate.
1818 * man/Makefile.in: Regenerate.
1819 * testsuite/Makefile.in: Regenerate.
1820
Anthony Green3d561062011-11-12 07:20:24 -050018212011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1822
1823 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1824 * configure: Rebuilt.
1825
Anthony Greenc6dddbd2009-10-04 08:11:33 -040018262009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1827
1828 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1829
18302009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1831
1832 PR libffi/40807
1833 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1834 return types for X86_WIN32.
1835 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1836 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1837 _ffi_closure_STDCALL): Likewise.
1838
1839 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1840 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1841
18422009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1843
1844 PR testsuite/40699
1845 PR testsuite/40707
1846 PR testsuite/40709
1847 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1848 2009-06-30 commits.
1849
18502009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1851
1852 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1853 to "" before adding paths. (This reinstates an assignment that
1854 was removed by my 2009-06-30 commit, but changes the initial
1855 value from "." to "".)
1856
18572009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1858
1859 PR testsuite/40601
1860 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1861 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1862 empty.
1863
18642009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1865
1866 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1867 to ld_library_path. Use add_path. Add just find_libgcc_s
1868 to ld_library_path, not every libgcc multilib directory.
1869
18702009-06-16 Wim Lewis <wiml@hhhh.org>
1871
1872 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1873 supposed to be callee-saved.
1874 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1875 return buffer for odd-size structs.
1876
18772009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1878
1879 PR libffi/40444
1880 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1881 allow_stack_execute for Darwin.
1882
18832009-06-16 Andrew Haley <aph@redhat.com>
1884
1885 * configure.ac (TARGETDIR): Add missing blank lines.
1886 * configure: Regenerate.
1887
18882009-06-16 Andrew Haley <aph@redhat.com>
1889
1890 * testsuite/libffi.call/cls_align_sint64.c,
1891 testsuite/libffi.call/cls_align_uint64.c,
1892 testsuite/libffi.call/cls_longdouble_va.c,
1893 testsuite/libffi.call/cls_ulonglong.c,
1894 testsuite/libffi.call/return_ll1.c,
1895 testsuite/libffi.call/stret_medium2.c: Fix printf format
1896 specifiers.
1897 * testsuite/libffi.call/ffitest.h,
1898 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1899
19002009-06-15 Andrew Haley <aph@redhat.com>
1901
1902 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1903 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001904
Anthony Greenc6dddbd2009-10-04 08:11:33 -040019052009-06-12 Andrew Haley <aph@redhat.com>
1906
1907 * Makefile.am: Remove info_TEXINFOS.
1908
19092009-06-12 Andrew Haley <aph@redhat.com>
1910
1911 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1912 testsuite/libffi.call/cls_align_uint64.c,
1913 testsuite/libffi.call/cls_ulonglong.c,
1914 testsuite/libffi.call/return_ll1.c,
1915 testsuite/libffi.call/stret_medium2.c: Fix printf format
1916 specifiers.
1917 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1918
19192009-06-11 Timothy Wall <twall@users.sf.net>
1920
1921 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001922 configure.ac,
1923 include/ffi.h.in,
1924 include/ffi_common.h,
1925 src/closures.c,
1926 src/dlmalloc.c,
1927 src/x86/ffi.c,
1928 src/x86/ffitarget.h,
1929 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001930 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001931 * Makefile.in,
1932 include/Makefile.in,
1933 man/Makefile.in,
1934 testsuite/Makefile.in,
1935 configure,
1936 aclocal.m4: Regenerated
1937 * ltcf-c.sh: properly escape cygwin/w32 path
1938 * man/ffi_call.3: Clarify size requirements for return value.
1939 * src/x86/ffi64.c: Fix filename in comment.
1940 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001941
Anthony Green0cfe60e2009-12-29 10:06:04 -05001942 * testsuite/libffi.call/closure_fn0.c,
1943 testsuite/libffi.call/closure_fn1.c,
1944 testsuite/libffi.call/closure_fn2.c,
1945 testsuite/libffi.call/closure_fn3.c,
1946 testsuite/libffi.call/closure_fn4.c,
1947 testsuite/libffi.call/closure_fn5.c,
1948 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001949 testsuite/libffi.call/closure_stdcall.c,
1950 testsuite/libffi.call/cls_12byte.c,
1951 testsuite/libffi.call/cls_16byte.c,
1952 testsuite/libffi.call/cls_18byte.c,
1953 testsuite/libffi.call/cls_19byte.c,
1954 testsuite/libffi.call/cls_1_1byte.c,
1955 testsuite/libffi.call/cls_20byte.c,
1956 testsuite/libffi.call/cls_20byte1.c,
1957 testsuite/libffi.call/cls_24byte.c,
1958 testsuite/libffi.call/cls_2byte.c,
1959 testsuite/libffi.call/cls_3_1byte.c,
1960 testsuite/libffi.call/cls_3byte1.c,
1961 testsuite/libffi.call/cls_3byte2.c,
1962 testsuite/libffi.call/cls_4_1byte.c,
1963 testsuite/libffi.call/cls_4byte.c,
1964 testsuite/libffi.call/cls_5_1_byte.c,
1965 testsuite/libffi.call/cls_5byte.c,
1966 testsuite/libffi.call/cls_64byte.c,
1967 testsuite/libffi.call/cls_6_1_byte.c,
1968 testsuite/libffi.call/cls_6byte.c,
1969 testsuite/libffi.call/cls_7_1_byte.c,
1970 testsuite/libffi.call/cls_7byte.c,
1971 testsuite/libffi.call/cls_8byte.c,
1972 testsuite/libffi.call/cls_9byte1.c,
1973 testsuite/libffi.call/cls_9byte2.c,
1974 testsuite/libffi.call/cls_align_double.c,
1975 testsuite/libffi.call/cls_align_float.c,
1976 testsuite/libffi.call/cls_align_longdouble.c,
1977 testsuite/libffi.call/cls_align_longdouble_split.c,
1978 testsuite/libffi.call/cls_align_longdouble_split2.c,
1979 testsuite/libffi.call/cls_align_pointer.c,
1980 testsuite/libffi.call/cls_align_sint16.c,
1981 testsuite/libffi.call/cls_align_sint32.c,
1982 testsuite/libffi.call/cls_align_sint64.c,
1983 testsuite/libffi.call/cls_align_uint16.c,
1984 testsuite/libffi.call/cls_align_uint32.c,
1985 testsuite/libffi.call/cls_align_uint64.c,
1986 testsuite/libffi.call/cls_dbls_struct.c,
1987 testsuite/libffi.call/cls_double.c,
1988 testsuite/libffi.call/cls_double_va.c,
1989 testsuite/libffi.call/cls_float.c,
1990 testsuite/libffi.call/cls_longdouble.c,
1991 testsuite/libffi.call/cls_longdouble_va.c,
1992 testsuite/libffi.call/cls_multi_schar.c,
1993 testsuite/libffi.call/cls_multi_sshort.c,
1994 testsuite/libffi.call/cls_multi_sshortchar.c,
1995 testsuite/libffi.call/cls_multi_uchar.c,
1996 testsuite/libffi.call/cls_multi_ushort.c,
1997 testsuite/libffi.call/cls_multi_ushortchar.c,
1998 testsuite/libffi.call/cls_pointer.c,
1999 testsuite/libffi.call/cls_pointer_stack.c,
2000 testsuite/libffi.call/cls_schar.c,
2001 testsuite/libffi.call/cls_sint.c,
2002 testsuite/libffi.call/cls_sshort.c,
2003 testsuite/libffi.call/cls_uchar.c,
2004 testsuite/libffi.call/cls_uint.c,
2005 testsuite/libffi.call/cls_ulonglong.c,
2006 testsuite/libffi.call/cls_ushort.c,
2007 testsuite/libffi.call/err_bad_abi.c,
2008 testsuite/libffi.call/err_bad_typedef.c,
2009 testsuite/libffi.call/float2.c,
2010 testsuite/libffi.call/huge_struct.c,
2011 testsuite/libffi.call/nested_struct.c,
2012 testsuite/libffi.call/nested_struct1.c,
2013 testsuite/libffi.call/nested_struct10.c,
2014 testsuite/libffi.call/nested_struct2.c,
2015 testsuite/libffi.call/nested_struct3.c,
2016 testsuite/libffi.call/nested_struct4.c,
2017 testsuite/libffi.call/nested_struct5.c,
2018 testsuite/libffi.call/nested_struct6.c,
2019 testsuite/libffi.call/nested_struct7.c,
2020 testsuite/libffi.call/nested_struct8.c,
2021 testsuite/libffi.call/nested_struct9.c,
2022 testsuite/libffi.call/problem1.c,
2023 testsuite/libffi.call/return_ldl.c,
2024 testsuite/libffi.call/return_ll1.c,
2025 testsuite/libffi.call/stret_large.c,
2026 testsuite/libffi.call/stret_large2.c,
2027 testsuite/libffi.call/stret_medium.c,
2028 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002029 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2030 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002031
20322009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2033
2034 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2035 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2036 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2037
20382009-06-09 Andrew Haley <aph@redhat.com>
2039
2040 * src/x86/freebsd.S: Add missing file.
2041
20422009-06-08 Andrew Haley <aph@redhat.com>
2043
2044 Import from libffi 3.0.8:
2045
2046 * doc/libffi.texi: New file.
2047 * doc/libffi.info: Likewise.
2048 * doc/stamp-vti: Likewise.
2049 * man/Makefile.am: New file.
2050 * man/ffi_call.3: New file.
2051
2052 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2053 src/dlmalloc.c.
2054 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2055
2056 * configure.ac: Bump version to 3.0.8.
2057 parisc*-*-linux*: Add.
2058 i386-*-freebsd* | i386-*-openbsd*: Add.
2059 powerpc-*-beos*: Add.
2060 AM_CONDITIONAL X86_FREEBSD: Add.
2061 AC_CONFIG_FILES: Add man/Makefile.
2062
2063 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2064
20652009-06-08 Andrew Haley <aph@redhat.com>
2066
2067 * README: Import from libffi 3.0.8.
2068
20692009-06-08 Andrew Haley <aph@redhat.com>
2070
2071 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2072 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2073 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2074 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2075
2076 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2077 * testsuite/libffi.call/stret_medium.c: Likewise.
2078 * testsuite/libffi.call/stret_large2.c: Likewise.
2079 * testsuite/libffi.call/stret_large.c: Likewise.
2080
20812008-12-26 Timothy Wall <twall@users.sf.net>
2082
Anthony Green0cfe60e2009-12-29 10:06:04 -05002083 * testsuite/libffi.call/cls_longdouble.c,
2084 testsuite/libffi.call/cls_longdouble_va.c,
2085 testsuite/libffi.call/cls_align_longdouble.c,
2086 testsuite/libffi.call/cls_align_longdouble_split.c,
2087 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2088 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002089
20902008-12-22 Timothy Wall <twall@users.sf.net>
2091
Anthony Green0cfe60e2009-12-29 10:06:04 -05002092 * testsuite/libffi.call/closure_fn0.c,
2093 testsuite/libffi.call/closure_fn1.c,
2094 testsuite/libffi.call/closure_fn2.c,
2095 testsuite/libffi.call/closure_fn3.c,
2096 testsuite/libffi.call/closure_fn4.c,
2097 testsuite/libffi.call/closure_fn5.c,
2098 testsuite/libffi.call/closure_fn6.c,
2099 testsuite/libffi.call/closure_loc_fn0.c,
2100 testsuite/libffi.call/closure_stdcall.c,
2101 testsuite/libffi.call/cls_align_pointer.c,
2102 testsuite/libffi.call/cls_pointer.c,
2103 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2104 pointer to integer (intptr_t).
2105 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002106
21072008-07-24 Anthony Green <green@redhat.com>
2108
Anthony Green0cfe60e2009-12-29 10:06:04 -05002109 * testsuite/libffi.call/cls_dbls_struct.c,
2110 testsuite/libffi.call/cls_double_va.c,
2111 testsuite/libffi.call/cls_longdouble.c,
2112 testsuite/libffi.call/cls_longdouble_va.c,
2113 testsuite/libffi.call/cls_pointer.c,
2114 testsuite/libffi.call/cls_pointer_stack.c,
2115 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2116 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002117
21182008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002119 Blake Chaffin
2120 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002121
Anthony Green0cfe60e2009-12-29 10:06:04 -05002122 * testsuite/libffi.call/cls_align_longdouble_split2.c
2123 testsuite/libffi.call/cls_align_longdouble_split.c
2124 testsuite/libffi.call/cls_dbls_struct.c
2125 testsuite/libffi.call/cls_double_va.c
2126 testsuite/libffi.call/cls_longdouble.c
2127 testsuite/libffi.call/cls_longdouble_va.c
2128 testsuite/libffi.call/cls_pointer.c
2129 testsuite/libffi.call/cls_pointer_stack.c
2130 testsuite/libffi.call/err_bad_abi.c
2131 testsuite/libffi.call/err_bad_typedef.c
2132 testsuite/libffi.call/stret_large2.c
2133 testsuite/libffi.call/stret_large.c
2134 testsuite/libffi.call/stret_medium2.c
2135 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002136
21372009-06-05 Andrew Haley <aph@redhat.com>
2138
2139 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2140 libffi.
2141
21422009-06-04 Andrew Haley <aph@redhat.com>
2143
2144 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2145 stdcall changes.
2146
21472008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002148 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002149
Anthony Green0cfe60e2009-12-29 10:06:04 -05002150 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2151 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002152
21532008-02-03 Timothy Wall <twall@users.sf.net>
2154
Anthony Green0cfe60e2009-12-29 10:06:04 -05002155 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2156 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002157
21582008-01-31 Timothy Wall <twall@users.sf.net>
2159
Anthony Green0cfe60e2009-12-29 10:06:04 -05002160 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2161 closures.
2162 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2163 closures.
2164 * src/x86/win32.S: Add assembly for stdcall closure.
2165 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002166
21672009-06-04 Andrew Haley <aph@redhat.com>
2168
2169 * include/ffi.h.in: Change void (*)() to void (*)(void).
2170 * src/x86/ffi.c: Likewise.
2171
21722009-06-04 Andrew Haley <aph@redhat.com>
2173
2174 * src/powerpc/ppc_closure.S: Insert licence header.
2175 * src/powerpc/linux64_closure.S: Likewise.
2176 * src/m68k/sysv.S: Likewise.
2177
2178 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2179 * src/powerpc/ffi.c: Likewise.
2180 * src/powerpc/ffi_darwin.c: Likewise.
2181 * src/m32r/ffi.c: Likewise.
2182 * src/sh64/ffi.c: Likewise.
2183 * src/x86/ffi64.c: Likewise.
2184 * src/alpha/ffi.c: Likewise.
2185 * src/alpha/osf.S: Likewise.
2186 * src/frv/ffi.c: Likewise.
2187 * src/s390/ffi.c: Likewise.
2188 * src/pa/ffi.c: Likewise.
2189 * src/pa/hpux32.S: Likewise.
2190 * src/ia64/unix.S: Likewise.
2191 * src/ia64/ffi.c: Likewise.
2192 * src/sparc/ffi.c: Likewise.
2193 * src/mips/ffi.c: Likewise.
2194 * src/sh/ffi.c: Likewise.
2195
21962008-02-15 David Daney <ddaney@avtrex.com>
2197
Anthony Green0cfe60e2009-12-29 10:06:04 -05002198 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2199 Define (conditionally), and use it to include cachectl.h.
2200 (ffi_prep_closure_loc): Fix cache flushing.
2201 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002202
22032009-06-04 Andrew Haley <aph@redhat.com>
2204
2205 include/ffi.h.in,
2206 src/arm/ffitarget.h,
2207 src/arm/ffi.c,
2208 src/arm/sysv.S,
2209 src/powerpc/ffitarget.h,
2210 src/closures.c,
2211 src/sh64/ffitarget.h,
2212 src/sh64/ffi.c,
2213 src/sh64/sysv.S,
2214 src/types.c,
2215 src/x86/ffi64.c,
2216 src/x86/ffitarget.h,
2217 src/x86/win32.S,
2218 src/x86/darwin.S,
2219 src/x86/ffi.c,
2220 src/x86/sysv.S,
2221 src/x86/unix64.S,
2222 src/alpha/ffitarget.h,
2223 src/alpha/ffi.c,
2224 src/alpha/osf.S,
2225 src/m68k/ffitarget.h,
2226 src/frv/ffitarget.h,
2227 src/frv/ffi.c,
2228 src/s390/ffitarget.h,
2229 src/s390/sysv.S,
2230 src/cris/ffitarget.h,
2231 src/pa/linux.S,
2232 src/pa/ffitarget.h,
2233 src/pa/ffi.c,
2234 src/raw_api.c,
2235 src/ia64/ffitarget.h,
2236 src/ia64/unix.S,
2237 src/ia64/ffi.c,
2238 src/ia64/ia64_flags.h,
2239 src/java_raw_api.c,
2240 src/debug.c,
2241 src/sparc/v9.S,
2242 src/sparc/ffitarget.h,
2243 src/sparc/ffi.c,
2244 src/sparc/v8.S,
2245 src/mips/ffitarget.h,
2246 src/mips/n32.S,
2247 src/mips/o32.S,
2248 src/mips/ffi.c,
2249 src/prep_cif.c,
2250 src/sh/ffitarget.h,
2251 src/sh/ffi.c,
2252 src/sh/sysv.S: Update license text.
2253
22542009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2255
2256 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2257 (.eh_frame): Add FDE for it.
2258
22592009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2260
2261 * configure.ac: Also check if assembler supports pc-relative
2262 relocs on X86_WIN32 targets.
2263 * configure: Regenerate.
2264 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2265 (_ffi_call_SYSV): Add missing function type symbol .def and
2266 add EH markup labels.
2267 (_ffi_call_STDCALL): Likewise.
2268 (_ffi_closure_SYSV): Likewise.
2269 (_ffi_closure_raw_SYSV): Likewise.
2270 (.eh_frame): Add hand-crafted EH data.
2271
22722009-04-09 Jakub Jelinek <jakub@redhat.com>
2273
2274 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2275 version 3 of the GNU General Public License and to point readers
2276 at the COPYING3 file and the FSF's license web page.
2277 * testsuite/libffi.call/call.exp: Likewise.
2278 * testsuite/libffi.special/special.exp: Likewise.
2279
22802009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2281
2282 * configure: Regenerate.
2283
22842008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2285
2286 PR libffi/26048
2287 * configure.ac (HAVE_AS_X86_PCREL): New test.
2288 * configure: Regenerate.
2289 * fficonfig.h.in: Regenerate.
2290 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2291 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2292 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2293 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2294 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2295 (.Lload_table): Likewise.
2296 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2297
22982008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2299
2300 * configure: Regenerate.
2301
23022008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2303
2304 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2305 signed/unsigned int8/16 return values.
2306 * src/sparc/v8.S (ffi_call_v8): Likewise.
2307 (ffi_closure_v8): Likewise.
2308
23092008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002310 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002311
2312 * configure: Regenerate for new libtool.
2313 * Makefile.in: Ditto.
2314 * include/Makefile.in: Ditto.
2315 * aclocal.m4: Ditto.
2316
23172008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2318
2319 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2320 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2321 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2322 Adjust copyright notice.
2323 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2324 register or two register to use for FFI_SYSV structs.
2325 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2326 (ffi_closure_helper_SYSV): Fix the return type for
2327 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2328 Adjust copyright notice.
2329
23302008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2331
2332 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2333 int.
2334
23352008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2336
2337 * configure: Regenerate.
2338 * include/Makefile.in: Regenerate.
2339 * testsuite/Makefile.in: Regenerate.
2340
23412008-06-07 Joseph Myers <joseph@codesourcery.com>
2342
2343 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2344 powerpc-*-beos*): Remove.
2345 * configure: Regenerate.
2346
23472008-05-09 Julian Brown <julian@codesourcery.com>
2348
2349 * Makefile.am (LTLDFLAGS): New.
2350 (libffi_la_LDFLAGS): Use above.
2351 * Makefile.in: Regenerate.
2352
23532008-04-18 Paolo Bonzini <bonzini@gnu.org>
2354
2355 PR bootstrap/35457
2356 * aclocal.m4: Regenerate.
2357 * configure: Regenerate.
2358
23592008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2360
2361 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2362 * src/sh64/sysv.S: Likewise.
2363
23642008-03-26 Daniel Jacobowitz <dan@debian.org>
2365
2366 * src/arm/sysv.S: Fix ARM comment marker.
2367
23682008-03-26 Jakub Jelinek <jakub@redhat.com>
2369
2370 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2371 * src/s390/sysv.S: Likewise.
2372 * src/powerpc/ppc_closure.S: Likewise.
2373 * src/powerpc/sysv.S: Likewise.
2374 * src/x86/unix64.S: Likewise.
2375 * src/x86/sysv.S: Likewise.
2376 * src/sparc/v8.S: Likewise.
2377 * src/sparc/v9.S: Likewise.
2378 * src/m68k/sysv.S: Likewise.
2379 * src/arm/sysv.S: Likewise.
2380
23812008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2382
2383 * aclocal.m4: Regenerate.
2384 * configure: Likewise.
2385 * Makefile.in: Likewise.
2386 * include/Makefile.in: Likewise.
2387 * testsuite/Makefile.in: Likewise.
2388
23892008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2390 Andreas Tobler <a.tobler@schweiz.org>
2391
2392 * configure.ac: Add amd64-*-freebsd* target.
2393 * configure: Regenerate.
2394
23952008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2396
2397 PR libffi/34612
2398 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2399 returning struct.
2400
2401 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2402 tests.
2403
24042008-01-24 David Edelsohn <edelsohn@gnu.org>
2405
2406 * configure: Regenerate.
2407
24082008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2409
2410 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2411
24122008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2413
2414 PR testsuite/32843
2415 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2416 signed/unsigned int8/16 for X86_DARWIN.
2417 Updated copyright info.
2418 Handle one and two byte structs with special cif->flags.
2419 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2420 Updated copyright info.
2421 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2422 sysv.S
2423 Remove code to pop args from the stack after call.
2424 Special-case signed/unsigned for int8/16, one and two byte structs.
2425 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2426 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2427 FFI_TYPE_SINT32.
2428 Updated copyright info.
2429
24302007-12-08 David Daney <ddaney@avtrex.com>
2431
Anthony Green0cfe60e2009-12-29 10:06:04 -05002432 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002433 SUBU, add with ADDU and use smaller code sequences.
2434
24352007-12-07 David Daney <ddaney@avtrex.com>
2436
2437 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2438 type.
2439
24402007-12-06 David Daney <ddaney@avtrex.com>
2441
2442 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2443 defined.
2444 (ffi_java_raw): New typedef.
2445 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2446 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2447 ffi_java_raw.
2448 (ffi_java_raw_closure) : Same.
2449 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2450 parameter types.
2451 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2452 FFI_SIZEOF_JAVA_RAW.
2453 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2454 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2455 sizeof(ffi_java_raw) for alignment calculations.
2456 (ffi_java_ptrarray_to_raw): Same.
2457 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002458 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002459 (ffi_java_raw_to_rvalue): Same.
2460 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2461 (ffi_java_translate_args): Same.
2462 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2463 parameter types.
2464 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2465
24662007-12-06 David Daney <ddaney@avtrex.com>
2467
Anthony Green0cfe60e2009-12-29 10:06:04 -05002468 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002469 pointer values.
2470
24712007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2472
2473 PR libffi/31937
2474 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2475 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2476 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2477 set the NUM_FPR_ARG_REGISTERS according to.
2478 Add support for potential soft-float support under hard-float
2479 architecture.
2480 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2481 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2482 to the FFI_LINUX_SOFT_FLOAT ABI.
2483 (ffi_prep_cif_machdep): Likewise.
2484 (ffi_closure_helper_SYSV): Likewise.
2485 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2486 on archs where __NO_FPRS__ is true.
2487 Add FFI_TYPE_UINT128 support.
2488 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2489 Adjust copyright notice.
2490
24912007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2492
2493 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2494 * include/ffi_common.h: ... here.
2495 Update copyright.
2496
24972007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2498
2499 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2500 * src/powerpc/linux64.S: Likewise.
2501 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2502 * testsuite/libffi.call/return_ldl.c: New test.
2503
25042007-09-04 <aph@redhat.com>
2505
2506 * src/arm/sysv.S (UNWIND): New.
2507 (Whole file): Conditionally compile unwinder directives.
2508 * src/arm/sysv.S: Add unwinder directives.
2509
2510 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2511 Only treat r0 as a struct address if we're actually returning a
2512 struct by address.
2513 Only copy the bytes that are actually within a struct.
2514 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2515 is returned in r0, not passed by address.
2516 (ffi_call): Allocate a word-sized temporary for the case where
2517 a composite is returned in r0.
2518 (ffi_prep_incoming_args_SYSV): Align as necessary.
2519
25202007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2521
Anthony Green0cfe60e2009-12-29 10:06:04 -05002522 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002523 directly using the sys_cacheflush syscall.
2524
25252007-07-27 Andrew Haley <aph@redhat.com>
2526
2527 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2528
25292007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2530
2531 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2532 * configure.ac: Likewise.
2533 * Makefile.in: Regenerate.
2534 * include/Makefile.in: Likewise.
2535 * testsuite/Makefile.in: Likewise.
2536 * configure: Likewise.
2537
25382007-08-24 David Daney <ddaney@avtrex.com>
2539
2540 * testsuite/libffi.call/return_sl.c: New test.
2541
25422007-08-10 David Daney <ddaney@avtrex.com>
2543
2544 * testsuite/libffi.call/cls_multi_ushort.c,
2545 testsuite/libffi.call/cls_align_uint16.c,
2546 testsuite/libffi.call/nested_struct1.c,
2547 testsuite/libffi.call/nested_struct3.c,
2548 testsuite/libffi.call/cls_7_1_byte.c,
2549 testsuite/libffi.call/nested_struct5.c,
2550 testsuite/libffi.call/cls_double.c,
2551 testsuite/libffi.call/nested_struct7.c,
2552 testsuite/libffi.call/cls_sint.c,
2553 testsuite/libffi.call/nested_struct9.c,
2554 testsuite/libffi.call/cls_20byte1.c,
2555 testsuite/libffi.call/cls_multi_sshortchar.c,
2556 testsuite/libffi.call/cls_align_sint64.c,
2557 testsuite/libffi.call/cls_3byte2.c,
2558 testsuite/libffi.call/cls_multi_schar.c,
2559 testsuite/libffi.call/cls_multi_uchar.c,
2560 testsuite/libffi.call/cls_19byte.c,
2561 testsuite/libffi.call/cls_9byte1.c,
2562 testsuite/libffi.call/cls_align_float.c,
2563 testsuite/libffi.call/closure_fn1.c,
2564 testsuite/libffi.call/problem1.c,
2565 testsuite/libffi.call/closure_fn3.c,
2566 testsuite/libffi.call/cls_sshort.c,
2567 testsuite/libffi.call/closure_fn5.c,
2568 testsuite/libffi.call/cls_align_double.c,
2569 testsuite/libffi.call/nested_struct.c,
2570 testsuite/libffi.call/cls_2byte.c,
2571 testsuite/libffi.call/nested_struct10.c,
2572 testsuite/libffi.call/cls_4byte.c,
2573 testsuite/libffi.call/cls_6byte.c,
2574 testsuite/libffi.call/cls_8byte.c,
2575 testsuite/libffi.call/cls_multi_sshort.c,
2576 testsuite/libffi.call/cls_align_sint16.c,
2577 testsuite/libffi.call/cls_align_uint32.c,
2578 testsuite/libffi.call/cls_20byte.c,
2579 testsuite/libffi.call/cls_float.c,
2580 testsuite/libffi.call/nested_struct2.c,
2581 testsuite/libffi.call/cls_5_1_byte.c,
2582 testsuite/libffi.call/nested_struct4.c,
2583 testsuite/libffi.call/cls_24byte.c,
2584 testsuite/libffi.call/nested_struct6.c,
2585 testsuite/libffi.call/cls_64byte.c,
2586 testsuite/libffi.call/nested_struct8.c,
2587 testsuite/libffi.call/cls_uint.c,
2588 testsuite/libffi.call/cls_multi_ushortchar.c,
2589 testsuite/libffi.call/cls_schar.c,
2590 testsuite/libffi.call/cls_uchar.c,
2591 testsuite/libffi.call/cls_align_uint64.c,
2592 testsuite/libffi.call/cls_ulonglong.c,
2593 testsuite/libffi.call/cls_align_longdouble.c,
2594 testsuite/libffi.call/cls_1_1byte.c,
2595 testsuite/libffi.call/cls_12byte.c,
2596 testsuite/libffi.call/cls_3_1byte.c,
2597 testsuite/libffi.call/cls_3byte1.c,
2598 testsuite/libffi.call/cls_4_1byte.c,
2599 testsuite/libffi.call/cls_6_1_byte.c,
2600 testsuite/libffi.call/cls_16byte.c,
2601 testsuite/libffi.call/cls_18byte.c,
2602 testsuite/libffi.call/closure_fn0.c,
2603 testsuite/libffi.call/cls_9byte2.c,
2604 testsuite/libffi.call/closure_fn2.c,
2605 testsuite/libffi.call/closure_fn4.c,
2606 testsuite/libffi.call/cls_ushort.c,
2607 testsuite/libffi.call/closure_fn6.c,
2608 testsuite/libffi.call/cls_5byte.c,
2609 testsuite/libffi.call/cls_align_pointer.c,
2610 testsuite/libffi.call/cls_7byte.c,
2611 testsuite/libffi.call/cls_align_sint32.c,
2612 testsuite/libffi.special/unwindtest_ffi_call.cc,
2613 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2614
26152007-08-10 David Daney <ddaney@avtrex.com>
2616
2617 PR libffi/28313
2618 * configure.ac: Don't treat mips64 as a special case.
2619 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2620 * configure: Regenerate
2621 * Makefile.in: Ditto.
2622 * fficonfig.h.in: Ditto.
2623 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2624 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2625 (FFI_DEFAULT_ABI): Set for n64 case.
2626 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2627 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2628 (ffi_closure_N32): New function.
2629 (.eh_frame): New section
2630 * src/mips/o32.S: Clean up comments.
2631 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2632 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2633 _MIPS_SIM == _ABIN32 throughout.
2634 (FFI_MIPS_STOP_HERE): New, use in place of
2635 ffi_stop_here.
2636 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2637 to support n32/n64 ABIs.
2638 (calc_n32_struct_flags): Rewrite.
2639 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2640 position of flag bits.
2641 (ffi_prep_cif_machdep): Rewrite n32 portion.
2642 (ffi_call): Enable for n64. Add special handling for small structure
2643 return values.
2644 (ffi_prep_closure_loc): Add n32 and n64 support.
2645 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2646 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2647
26482007-08-08 David Daney <ddaney@avtrex.com>
2649
2650 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2651 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2652 specifiers.
2653 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2654 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2655 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2656 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2657 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2658 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2659 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2660 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2661 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2662 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2663 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2664 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2665 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2666 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2667 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2668 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2669 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2670 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2671 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2672 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2673 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2674 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2675 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2676 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2677 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2678 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2679 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2680 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2681 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2682 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2683 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2684
26852007-08-07 Andrew Haley <aph@redhat.com>
2686
2687 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2688 checkin.
2689
26902007-08-06 Andrew Haley <aph@redhat.com>
2691
2692 PR testsuite/32843
2693 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2694 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2695 FFI_TYPE_SINT32.
2696
26972007-08-02 David Daney <ddaney@avtrex.com>
2698
2699 * testsuite/libffi.call/return_ul.c (main): Define return type as
2700 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002701
Anthony Greenc6dddbd2009-10-04 08:11:33 -040027022007-07-30 Andrew Haley <aph@redhat.com>
2703
2704 PR testsuite/32843
2705 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2706 signed/unsigned int8/16.
2707 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2708 Use a jump table.
2709 Remove code to pop args from the stack after call.
2710 Special-case signed/unsigned int8/16.
2711 * testsuite/libffi.call/return_sc.c (main): Revert.
2712
27132007-07-26 Richard Guenther <rguenther@suse.de>
2714
2715 PR testsuite/32843
2716 * testsuite/libffi.call/return_sc.c (main): Verify call
2717 result as signed char, not ffi_arg.
2718
27192007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2720
2721 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2722 * configure: Regenerate.
2723
27242007-07-11 David Daney <ddaney@avtrex.com>
2725
2726 * src/mips/ffi.c: Don't include sys/cachectl.h.
2727 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2728 cacheflush().
2729
27302007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2731
2732 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2733 from (ffi_prep_closure): ... this.
2734 (FFI_INIT_TRAMPOLINE): Adjust.
2735
27362005-12-31 Phil Blundell <pb@reciva.com>
2737
Anthony Green0cfe60e2009-12-29 10:06:04 -05002738 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2739 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002740 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2741 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2742 (FFI_CLOSURES): Enable closure support.
2743
27442007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2745
Anthony Green0cfe60e2009-12-29 10:06:04 -05002746 * testsuite/libffi.call/cls_multi_ushort.c,
2747 testsuite/libffi.call/cls_align_uint16.c,
2748 testsuite/libffi.call/nested_struct1.c,
2749 testsuite/libffi.call/nested_struct3.c,
2750 testsuite/libffi.call/cls_7_1_byte.c,
2751 testsuite/libffi.call/cls_double.c,
2752 testsuite/libffi.call/nested_struct5.c,
2753 testsuite/libffi.call/nested_struct7.c,
2754 testsuite/libffi.call/cls_sint.c,
2755 testsuite/libffi.call/nested_struct9.c,
2756 testsuite/libffi.call/cls_20byte1.c,
2757 testsuite/libffi.call/cls_multi_sshortchar.c,
2758 testsuite/libffi.call/cls_align_sint64.c,
2759 testsuite/libffi.call/cls_3byte2.c,
2760 testsuite/libffi.call/cls_multi_schar.c,
2761 testsuite/libffi.call/cls_multi_uchar.c,
2762 testsuite/libffi.call/cls_19byte.c,
2763 testsuite/libffi.call/cls_9byte1.c,
2764 testsuite/libffi.call/cls_align_float.c,
2765 testsuite/libffi.call/closure_fn1.c,
2766 testsuite/libffi.call/problem1.c,
2767 testsuite/libffi.call/closure_fn3.c,
2768 testsuite/libffi.call/cls_sshort.c,
2769 testsuite/libffi.call/closure_fn5.c,
2770 testsuite/libffi.call/cls_align_double.c,
2771 testsuite/libffi.call/cls_2byte.c,
2772 testsuite/libffi.call/nested_struct.c,
2773 testsuite/libffi.call/nested_struct10.c,
2774 testsuite/libffi.call/cls_4byte.c,
2775 testsuite/libffi.call/cls_6byte.c,
2776 testsuite/libffi.call/cls_8byte.c,
2777 testsuite/libffi.call/cls_multi_sshort.c,
2778 testsuite/libffi.call/cls_align_uint32.c,
2779 testsuite/libffi.call/cls_align_sint16.c,
2780 testsuite/libffi.call/cls_float.c,
2781 testsuite/libffi.call/cls_20byte.c,
2782 testsuite/libffi.call/cls_5_1_byte.c,
2783 testsuite/libffi.call/nested_struct2.c,
2784 testsuite/libffi.call/cls_24byte.c,
2785 testsuite/libffi.call/nested_struct4.c,
2786 testsuite/libffi.call/nested_struct6.c,
2787 testsuite/libffi.call/cls_64byte.c,
2788 testsuite/libffi.call/nested_struct8.c,
2789 testsuite/libffi.call/cls_uint.c,
2790 testsuite/libffi.call/cls_multi_ushortchar.c,
2791 testsuite/libffi.call/cls_schar.c,
2792 testsuite/libffi.call/cls_uchar.c,
2793 testsuite/libffi.call/cls_align_uint64.c,
2794 testsuite/libffi.call/cls_ulonglong.c,
2795 testsuite/libffi.call/cls_align_longdouble.c,
2796 testsuite/libffi.call/cls_1_1byte.c,
2797 testsuite/libffi.call/cls_12byte.c,
2798 testsuite/libffi.call/cls_3_1byte.c,
2799 testsuite/libffi.call/cls_3byte1.c,
2800 testsuite/libffi.call/cls_4_1byte.c,
2801 testsuite/libffi.call/cls_6_1_byte.c,
2802 testsuite/libffi.call/cls_16byte.c,
2803 testsuite/libffi.call/cls_18byte.c,
2804 testsuite/libffi.call/closure_fn0.c,
2805 testsuite/libffi.call/cls_9byte2.c,
2806 testsuite/libffi.call/closure_fn2.c,
2807 testsuite/libffi.call/closure_fn4.c,
2808 testsuite/libffi.call/cls_ushort.c,
2809 testsuite/libffi.call/closure_fn6.c,
2810 testsuite/libffi.call/cls_5byte.c,
2811 testsuite/libffi.call/cls_align_pointer.c,
2812 testsuite/libffi.call/cls_7byte.c,
2813 testsuite/libffi.call/cls_align_sint32.c,
2814 testsuite/libffi.special/unwindtest_ffi_call.cc,
2815 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002816
28172007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2818
2819 * aclocal.m4: Regenerated.
2820
28212007-06-02 Paolo Bonzini <bonzini@gnu.org>
2822
2823 * configure: Regenerate.
2824
28252007-05-23 Steve Ellcey <sje@cup.hp.com>
2826
2827 * Makefile.in: Regenerate.
2828 * configure: Regenerate.
2829 * aclocal.m4: Regenerate.
2830 * include/Makefile.in: Regenerate.
2831 * testsuite/Makefile.in: Regenerate.
2832
28332007-05-10 Roman Zippel <zippel@linux-m68k.org>
2834
2835 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2836 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2837 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2838 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2839 (FFI_CLOSURES): Enable closure support.
2840
28412007-05-10 Roman Zippel <zippel@linux-m68k.org>
2842
2843 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2844 * configure: Regenerate.
2845 * fficonfig.h.in: Regenerate.
2846 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2847 CFI_OFFSET,CFI_DEF_CFA): New macros.
2848 (ffi_call_SYSV): Add callframe annotation.
2849
28502007-05-10 Roman Zippel <zippel@linux-m68k.org>
2851
2852 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2853 numerous test suite failures.
2854 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2855
28562007-04-11 Paolo Bonzini <bonzini@gnu.org>
2857
2858 * Makefile.am (EXTRA_DIST): Bring up to date.
2859 * Makefile.in: Regenerate.
2860 * src/frv/eabi.S: Remove RCS keyword.
2861
28622007-04-06 Richard Henderson <rth@redhat.com>
2863
2864 * configure.ac: Tidy target case.
2865 (HAVE_LONG_DOUBLE): Allow the target to override.
2866 * configure: Regenerate.
2867 * include/ffi.h.in: Don't define ffi_type_foo if
2868 LIBFFI_HIDE_BASIC_TYPES is defined.
2869 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2870 to ffi_type_double.
2871 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2872 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2873 (ffi_type_longdouble): Special case for Alpha. Don't define
2874 if long double == double.
2875
2876 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2877 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2878 (ffi_call, ffi_closure_osf_inner): Likewise.
2879 (ffi_closure_osf_inner): Likewise. Mark hidden.
2880 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2881 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2882 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2883 (load_table): Handle 128-bit long double.
2884
2885 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2886
28872007-04-06 Tom Tromey <tromey@redhat.com>
2888
2889 PR libffi/31491:
2890 * README: Fixed bug in example.
2891
28922007-04-03 Jakub Jelinek <jakub@redhat.com>
2893
2894 * src/closures.c: Include sys/statfs.h.
2895 (_GNU_SOURCE): Define on Linux.
2896 (FFI_MMAP_EXEC_SELINUX): Define.
2897 (selinux_enabled): New variable.
2898 (selinux_enabled_check): New function.
2899 (is_selinux_enabled): Define.
2900 (dlmmap): Use it.
2901
29022007-03-24 Uros Bizjak <ubizjak@gmail.com>
2903
2904 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2905 Use 'volatile float sum' to create sum of floats to avoid false
2906 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002907 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002908
29092007-03-08 Alexandre Oliva <aoliva@redhat.com>
2910
2911 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2912 patch.
2913 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2914
29152007-03-07 Alexandre Oliva <aoliva@redhat.com>
2916
2917 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2918 (ffi_prep_closure_loc): New.
2919 (ffi_prep_raw_closure_loc): New.
2920 (ffi_prep_java_raw_closure_loc): New.
2921 * src/closures.c: New file.
2922 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2923 Replace sflags with exec_offset.
2924 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2925 sub_segment_exec_offset): New macros.
2926 (get_segment_flags, set_segment_flags, check_segment_merge): New
2927 macros.
2928 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2929 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2930 destroy_mspace): Use new macros.
2931 (sys_alloc): Silence warning.
2932 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2933 * Makefile.in: Rebuilt.
2934 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2935 terms of ffi_prep_closure_loc.
2936 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2937 from...
2938 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2939 renamed version.
2940 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2941 adjusted from...
2942 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2943 the renamed version.
2944 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2945 (ffi_prep_closure): ... this.
2946 * src/pa/ffi.c: Likewise.
2947 * src/cris/ffi.c: Likewise. Adjust.
2948 * src/frv/ffi.c: Likewise.
2949 * src/ia64/ffi.c: Likewise.
2950 * src/mips/ffi.c: Likewise.
2951 * src/powerpc/ffi_darwin.c: Likewise.
2952 * src/s390/ffi.c: Likewise.
2953 * src/sh/ffi.c: Likewise.
2954 * src/sh64/ffi.c: Likewise.
2955 * src/sparc/ffi.c: Likewise.
2956 * src/x86/ffi64.c: Likewise.
2957 * src/x86/ffi.c: Likewise.
2958 (FFI_INIT_TRAMPOLINE): Adjust.
2959 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2960 (ffi_prep_raw_closure): ... this.
2961 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2962 (ffi_prep_closure): ... this.
2963 (flush_icache): Adjust.
2964
29652007-03-07 Alexandre Oliva <aoliva@redhat.com>
2966
2967 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2968 Lea's malloc.
2969
29702007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2971
2972 * Makefile.am: Add dummy install-pdf target.
2973 * Makefile.in: Regenerate
2974
29752007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2976
2977 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2978 ffi_closure_helper_SYSV): Add long double handling.
2979
29802007-02-02 Jakub Jelinek <jakub@redhat.com>
2981
2982 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2983 immediately after bctrl instruction.
2984
29852007-01-18 Alexandre Oliva <aoliva@redhat.com>
2986
2987 * Makefile.am (all-recursive, install-recursive,
2988 mostlyclean-recursive, clean-recursive, distclean-recursive,
2989 maintainer-clean-recursive): Add missing targets.
2990 * Makefile.in: Rebuilt.
2991
29922006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2993
2994 * configure.ac: Add TARGET for x86_64-*-darwin*.
2995 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2996 for X86_DARWIN.
2997 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2998 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2999 * configure: Regenerate.
3000 * Makefile.in: Regenerate.
3001 * include/Makefile.in: Regenerate.
3002 * testsuite/Makefile.in: Regenerate.
3003 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
3004 ffi_call only.
3005
30062006-12-13 Andreas Tobler <a.tobler@schweiz.org>
3007
3008 * aclocal.m4: Regenerate with aclocal -I .. as written in the
3009 Makefile.am.
3010
30112006-10-31 Geoffrey Keating <geoffk@apple.com>
3012
3013 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3014 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3015 Darwin.
3016 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3017 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3018
30192006-10-10 Paolo Bonzini <bonzini@gnu.org>
3020 Sandro Tolaini <tolaini@libero.it>
3021
Anthony Green0cfe60e2009-12-29 10:06:04 -05003022 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003023 conditional.
3024 * configure: Regenerated.
3025 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3026 (EXTRA_DIST): Add src/x86/darwin.S.
3027 * Makefile.in: Regenerated.
3028 * include/Makefile.in: Regenerated.
3029 * testsuite/Makefile.in: Regenerated.
3030
3031 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3032 X86_WIN32, and additionally align stack to 16 bytes.
3033 * src/x86/darwin.S: New, based on sysv.S.
3034 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3035
30362006-09-12 David Daney <ddaney@avtrex.com>
3037
3038 PR libffi/23935
3039 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3040 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3041 * aclocal.m4: Regenerated for automake 1.9.6.
3042 * Makefile.in: Regenerated.
3043 * include/Makefile.in: Regenerated.
3044 * testsuite/Makefile.in: Regenerated.
3045
30462006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3047
3048 * include/ffi_common.h (struct): Revert accidental commit.
3049
30502006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3051
3052 * include/ffi_common.h: Remove lint directives.
3053 * include/ffi.h.in: Likewise.
3054
30552006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3056
3057 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3058 for 32-bit architectures.
3059 * testsuite/libffi.call/return_ul.c: New test case.
3060
30612006-07-19 David Daney <ddaney@avtrex.com>
3062
3063 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3064 xfail remains for mips64.
3065
30662006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3067
3068 * Makefile.am: Add install-html target. Add install-html to .PHONY
3069 * Makefile.in: Regenerate.
3070 * aclocal.m4: Regenerate.
3071 * include/Makefile.in: Regenerate.
3072 * testsuite/Makefile.in: Regenerate.
3073
30742006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3075
3076 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3077 stack slot.
3078
30792006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3080
3081 * README: Remove notice about 'Crazy Comments'.
3082 * src/debug.c: Remove lint directives. Cleanup white spaces.
3083 * src/java_raw_api.c: Likewise.
3084 * src/prep_cif.c: Likewise.
3085 * src/raw_api.c: Likewise.
3086 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3087 to the testsuite.
3088 * src/arm/ffi.c: Remove lint directives.
3089 * src/m32r/ffi.c: Likewise.
3090 * src/pa/ffi.c: Likewise.
3091 * src/powerpc/ffi.c: Likewise.
3092 * src/powerpc/ffi_darwin.c: Likewise.
3093 * src/sh/ffi.c: Likewise.
3094 * src/sh64/ffi.c: Likewise.
3095 * src/x86/ffi.c: Likewise.
3096 * testsuite/libffi.call/float2.c: Likewise.
3097 * testsuite/libffi.call/promotion.c: Likewise.
3098 * testsuite/libffi.call/struct1.c: Likewise.
3099
31002006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3101
3102 * src/pa/hpux32.S: Correct unwind offset calculation for
3103 ffi_closure_pa32.
3104 * src/pa/linux.S: Likewise.
3105
31062006-04-12 James E Wilson <wilson@specifix.com>
3107
3108 PR libgcj/26483
3109 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3110 (hfa_type_load): Call stf_spill.
3111 (hfa_type_store): Call ldf_fill.
3112 (ffi_call): Adjust calls to above routines. Add local temps for
3113 macro result.
3114
31152006-04-10 Matthias Klose <doko@debian.org>
3116
3117 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3118 directory names containing underscores.
3119
31202006-04-07 James E Wilson <wilson@specifix.com>
3121
3122 * testsuite/libffi.call/float4.c: New testcase.
3123
31242006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3125 Andreas Tobler <a.tobler@schweiz.ch>
3126
3127 * Makefile.am: Add PA_HPUX port.
3128 * Makefile.in: Regenerate.
3129 * include/Makefile.in: Likewise.
3130 * testsuite/Makefile.in: Likewise.
3131 * configure.ac: Add PA_HPUX rules.
3132 * configure: Regenerate.
3133 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3134 Add PA_HPUX and PA64_HPUX.
3135 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3136 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3137 (FFI_TYPE_SMALL_STRUCT2): Define.
3138 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3139 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3140 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3141 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3142 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3143 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3144 * src/pa/ffi.c (ROUND_DOWN): Delete.
3145 (fldw, fstw, fldd, fstd): Use '__asm__'.
3146 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3147 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3148 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3149 Simplify incrementing of stack slot variable. Change type of local
3150 'n' to unsigned int.
3151 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3152 double on PA_HPUX.
3153 (ffi_prep_cif_machdep): Likewise.
3154 (ffi_call): Likewise.
3155 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3156 return type to ffi_status. Simplify incrementing of stack slot
3157 variable. Only copy floating point argument registers when PA_LINUX
3158 is true. Reformat debug statement.
3159 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3160 FFI_TYPE_SMALL_STRUCT8.
3161 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3162 declaration.
3163 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3164 Add nops to cache flush. Add trampoline for PA_HPUX.
3165 * src/pa/hpux32.S: New file.
3166 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3167 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3168 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3169 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3170 argument type checks so that common argument types appear first.
3171 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3172 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3173
31742006-03-24 Alan Modra <amodra@bigpond.net.au>
3175
3176 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3177 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3178 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3179 FFI_TYPE_LONGDOUBLE.
3180 (ffi_prep_args64): Assert using IBM extended double.
3181 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3182 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3183 (ffi_call): Handle FFI_LINUX.
3184 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3185 gpr3 return pointer as for struct return. Handle FFI_LINUX
3186 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3187 unnecessarily.
3188 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3189 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3190 Don't use r6 as pointer to results, instead use sp offset. Don't
3191 make a special call to load lr with case table address, instead
3192 use offset from previous call.
3193 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3194 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3195 return.
3196
31972006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3198
3199 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3200 passed with FP registers correctly.
3201 (ffi_closure_helper_SYSV): Likewise.
3202 * src/sh64/sysv.S: Likewise.
3203
32042006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3205
3206 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3207 args and userdata unused.
3208 (closure_test_fn1): Mark cif and userdata unused.
3209 (main): Remove unused res.
3210
32112006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3212
3213 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3214 -O2, -O3, -Os and the warning flags -W -Wall.
3215 * testsuite/libffi.special/special.exp: Likewise.
3216 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3217 unused parameter unused for gcc or else do nothing.
3218 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3219 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3220 and userdata unused.
3221 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3222 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3223 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3224 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3225 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3226 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3227 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3228 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3229 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3230 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3231 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3232 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3233 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3234 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3235 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3236 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3237 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3238 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3239 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3240 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3241 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3242 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3243 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3244 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3245 Likewise.
3246 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3247 Likewise.
3248 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3249 Likewise.
3250 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3251 void* to avoid compiler warning.
3252 (main): Likewise.
3253 (cls_struct_align_gn): Mark cif and userdata unused.
3254 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3255 Likewise.
3256 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3257 Likewise.
3258 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3259 Likewise.
3260 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3261 Likewise.
3262 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3263 Likewise.
3264 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3265 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3266 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3267 data unused.
3268 (main): Cast res_call to silence gcc.
3269 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3270 data unused.
3271 (main): Cast res_call to silence gcc.
3272 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3273 and data unused.
3274 (main): Cast res_call to silence gcc.
3275 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3276 data unused.
3277 (main): Cast res_call to silence gcc.
3278 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3279 data unused.
3280 (main): Cast res_call to silence gcc.
3281 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3282 and data unused.
3283 (main): Cast res_call to silence gcc.
3284 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3285 userdata unused.
3286 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3287 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3288 userdata unused.
3289 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3290 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3291 userdata unused.
3292 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3293 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3294 userdata unused.
3295 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3296 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3297 userdata unused.
3298 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3299 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3300 and userdata unused.
3301 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3302 userdata unused.
3303 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3304 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3305 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3306 Cleanup white spaces.
3307 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3308 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3309 cif and userdata unused.
3310 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3311 Likewise.
3312 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3313 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3314 formatters to silence gcc.
3315 (B_gn): Mark cif and userdata unused.
3316 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3317 unused.
3318 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3319 (B_gn): Mark cif and userdata unused.
3320 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3321 unused.
3322 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3323 (B_gn): Mark cif and userdata unused.
3324 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3325 unused.
3326 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3327 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3328 * testsuite/libffi.call/problem1.c (stub): Likewise.
3329 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3330 gcc.
3331 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3332 in the last commit for this test case in the test case itself.
3333 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3334 unused.
3335 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3336 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3337 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3338 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3339 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3340 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3341
33422006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3343
3344 * src/sh/sysv.S: Fix register numbers in the FDE for
3345 ffi_closure_SYSV.
3346
33472006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3348
3349 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3350 declaration to avoid a false negative on ix86. See PR323.
3351
33522006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3353
3354 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3355 and cast integer to void * if needed. Update the pointer to
3356 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003357
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033582006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3359
3360 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3361 is fixed.
3362 * testsuite/libffi.call/nested_struct4.c: Likewise.
3363
33642006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3365
3366 * testsuite/libffi.call/return_dbl.c: New test case.
3367 * testsuite/libffi.call/return_dbl1.c: Likewise.
3368 * testsuite/libffi.call/return_dbl2.c: Likewise.
3369 * testsuite/libffi.call/return_fl.c: Likewise.
3370 * testsuite/libffi.call/return_fl1.c: Likewise.
3371 * testsuite/libffi.call/return_fl2.c: Likewise.
3372 * testsuite/libffi.call/return_fl3.c: Likewise.
3373 * testsuite/libffi.call/closure_fn6.c: Likewise.
3374
3375 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3376 definition.
3377 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3378 here to be used by other test cases too.
3379
3380 * testsuite/libffi.call/nested_struct10.c: New test case.
3381 * testsuite/libffi.call/nested_struct9.c: Likewise.
3382 * testsuite/libffi.call/nested_struct8.c: Likewise.
3383 * testsuite/libffi.call/nested_struct7.c: Likewise.
3384 * testsuite/libffi.call/nested_struct6.c: Likewise.
3385 * testsuite/libffi.call/nested_struct5.c: Likewise.
3386 * testsuite/libffi.call/nested_struct4.c: Likewise.
3387
33882006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3389
3390 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3391 * configure: Rebuilt.
3392
33932006-01-18 Jakub Jelinek <jakub@redhat.com>
3394
3395 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3396 instead do the shifting inline.
3397 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3398 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3399 and 8 byte structs, for the remaining struct sizes don't call
3400 __lshrdi3, instead do the shifting inline.
3401
34022005-12-07 Thiemo Seufer <ths@networkno.de>
3403
3404 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3405 missing parentheses.
3406 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3407 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3408 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3409 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3410 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3411 FA_0_0_OFF2.
3412 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3413 endianness bugs.
3414 (ffi_prep_closure): Improve trampoline instruction scheduling.
3415 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3416
34172005-12-03 Alan Modra <amodra@bigpond.net.au>
3418
3419 * src/powerpc/ffi.c: Formatting.
3420 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3421 (ffi_prep_args64): Likewise.
3422
34232005-09-30 Geoffrey Keating <geoffk@apple.com>
3424
3425 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3426 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3427
34282005-09-26 Tom Tromey <tromey@redhat.com>
3429
3430 * testsuite/libffi.call/float1.c (value_type): New typedef.
3431 (CANARY): New define.
3432 (main): Check for result buffer overflow.
3433 * src/powerpc/linux64.S: Handle linux64 long double returns.
3434 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3435 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3436
34372005-08-25 Alan Modra <amodra@bigpond.net.au>
3438
3439 PR target/23404
3440 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3441 homed fp args.
3442 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3443
34442005-08-11 Jakub Jelinek <jakub@redhat.com>
3445
3446 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3447 (AH_BOTTOM): Add FFI_HIDDEN definition.
3448 * configure: Rebuilt.
3449 * fficonfig.h.in: Rebuilt.
3450 * src/powerpc/ffi.c (hidden): Remove.
3451 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3452 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3453 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3454 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3455 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3456 add FFI_HIDDEN to its prototype.
3457 (ffi_closure_SYSV_inner): New.
3458 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3459 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3460
34612005-08-10 Alfred M. Szmidt <ams@gnu.org>
3462
3463 PR libffi/21819:
3464 * configure: Rebuilt.
3465 * configure.ac: Handle i*86-*-gnu*.
3466
34672005-08-09 Jakub Jelinek <jakub@redhat.com>
3468
3469 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3470 DW_CFA_offset_extended_sf rather than
3471 DW_CFA_GNU_negative_offset_extended.
3472 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3473
34742005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3475
3476 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3477 on sh3.
3478 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3479 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3480 partially on register.
3481 (ffi_closure_helper_SYSV): Likewise.
3482 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3483
34842005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3485
3486 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3487 Remove empty line.
3488 * src/sh64/ffi.c (simple_type): Remove.
3489 (return_type): Handle small structures correctly.
3490 (ffi_prep_args): Likewise.
3491 (ffi_call): Likewise.
3492 (ffi_closure_helper_SYSV): Likewise.
3493 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3494 Emit position independent code if PIC and remove wrong datalabel
3495 prefixes from EH data.
3496
34972005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3498
3499 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3500 * Makefile.in: Regenerate.
3501 * include/Makefile.in: Likewise.
3502 * testsuite/Makefile.in: Likewise.
3503 * configure.ac: Add POWERPC_FREEBSD rules.
3504 * configure: Regenerate.
3505 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3506 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3507 * src/powerpc/ffi.c: Add flags to handle small structure returns
3508 in ffi_call_SYSV.
3509 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3510 Aka FFI_SYSV.
3511 (ffi_closure_helper_SYSV): Likewise.
3512 * src/powerpc/ppc_closure.S: Add return types for small structures.
3513 * src/powerpc/sysv.S: Add bits to handle small structures for
3514 final SYSV 4 ABI.
3515
35162005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3517
3518 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3519 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3520 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3521
35222005-07-05 Randolph Chung <tausq@debian.org>
3523
3524 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3525 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3526 structures. Kill compilation warnings.
3527 (ffi_closure_inner_LINUX): Print return values as hex in debug
3528 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3529 Properly handle 5-7 byte structure returns.
3530 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3531 (FFI_TYPE_SMALL_STRUCT2): Remove.
3532 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3533 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3534 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3535 (checksmst1, checksmst2): Remove.
3536 (checksmst3): Optimize handling of 3-byte struct returns.
3537 (checksmst567): Properly handle 5-7 byte struct returns.
3538
35392005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3540
3541 PR libgcj/21943
3542 * src/mips/n32.S: Enforce PIC code.
3543 * src/mips/o32.S: Likewise.
3544
35452005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3546
3547 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3548 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003549
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035502005-06-01 Alan Modra <amodra@bigpond.net.au>
3551
3552 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3553 to call ffi_closure_helper_SYSV. Append @local instead.
3554 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3555
35562005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3557
3558 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3559 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3560 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3561 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3562 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003563
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035642005-05-09 Mike Stump <mrs@apple.com>
3565
3566 * configure: Regenerate.
3567
35682005-05-08 Richard Henderson <rth@redhat.com>
3569
3570 PR libffi/21285
3571 * src/alpha/osf.S: Update unwind into to match code.
3572
35732005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3574 Richard Henderson <rth@redhat.com>
3575
3576 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3577 bit 11 of flags.
3578 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3579 (ffi_prep_closure): Set carry bit if sse-used flag set.
3580 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3581 Only load sse registers if ssecount non-zero.
3582 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3583
35842005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3585
3586 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3587 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3588 * configure: Regenerate.
3589
35902005-04-20 Hans-Peter Nilsson <hp@axis.com>
3591
3592 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3593 have Tcl8.3-compatible intermediate variable.
3594
Anthony Green0cfe60e2009-12-29 10:06:04 -050035952005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003596 Hans-Peter Nilsson <hp@axis.com>
3597
3598 * Makefile.am: Add CRIS support.
3599 * configure.ac: Likewise.
3600 * Makefile.in, configure, testsuite/Makefile.in,
3601 include/Makefile.in: Regenerate.
3602 * src/cris: New directory.
3603 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3604 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3605
3606 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3607 \r?\n in output tests.
3608
36092005-04-12 Mike Stump <mrs@apple.com>
3610
3611 * configure: Regenerate.
3612
36132005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3614
3615 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003616
Anthony Greenc6dddbd2009-10-04 08:11:33 -040036172005-03-30 Steve Ellcey <sje@cup.hp.com>
3618
3619 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3620 (ffi_sarg) Ditto.
3621 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3622 to 64 bits in ILP32 mode.
3623 Load 64 bits even for short data.
3624
36252005-03-23 Mike Stump <mrs@apple.com>
3626
3627 * src/powerpc/darwin.S: Update for -m64 multilib.
3628 * src/powerpc/darwin_closure.S: Likewise.
3629
36302005-03-21 Zack Weinberg <zack@codesourcery.com>
3631
3632 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3633 Do not set tool_include_dir.
3634 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3635 Regenerate.
3636 * include/Makefile.am: Set gcc_version and toollibffidir.
3637 * include/Makefile.in: Regenerate.
3638
36392005-02-22 Andrew Haley <aph@redhat.com>
3640
3641 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3642 odd-numbered register pairs for 64-bit integer types.
3643
36442005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3645
3646 PR libffi/20104
3647 * testsuite/libffi.call/return_ll1.c: New test case.
3648
36492005-02-11 Janis Johnson <janis187@us.ibm.com>
3650
3651 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3652 * testsuite/libffi.call/float.c: Ditto.
3653 * testsuite/libffi.call/float2.c: Ditto.
3654 * testsuite/libffi.call/float3.c: Ditto.
3655
36562005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3657
3658 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3659
36602005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3661
3662 * testsuite/libffi.special/special.exp (cxx_options): Add
3663 -shared-libgcc.
3664
36652004-12-31 Richard Henderson <rth@redhat.com>
3666
3667 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3668 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3669 offset parameters with a type parameter; deduce size and structure
3670 alignment. Update all users.
3671
36722004-12-31 Richard Henderson <rth@redhat.com>
3673
3674 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3675 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3676 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3677 into ffi_prep_closure.
3678 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3679 from scratch.
3680
36812004-12-27 Richard Henderson <rth@redhat.com>
3682
3683 * src/x86/unix64.S: Fix typo in unwind info.
3684
36852004-12-25 Richard Henderson <rth@redhat.com>
3686
3687 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3688 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3689 (merge_classes): Check for it.
3690 (SSE_CLASS_P): New.
3691 (classify_argument): Pass byte_offset by value; perform all updates
3692 inside struct case.
3693 (examine_argument): Add classes argument; handle
3694 X86_64_COMPLEX_X87_CLASS.
3695 (ffi_prep_args): Merge into ...
3696 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3697 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3698 (ffi_fill_return_value): Remove.
3699 (ffi_prep_closure): Remove dead assert.
3700 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3701 Rewrite to use struct register_args instead of va_list. Create
3702 flags for handling structure returns.
3703 * src/x86/unix64.S: Remove dead strings.
3704 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3705 stack frame with ffi_call. Handle structure returns properly.
3706 (float2sse, floatfloat2sse, double2sse): Remove.
3707 (sse2float, sse2double, sse2floatfloat): Remove.
3708 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3709 to handle structure returns properly.
3710
37112004-12-08 David Edelsohn <edelsohn@gnu.org>
3712
3713 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3714 PICFLAG.
3715 * Makefile.in: Regenerated.
3716
37172004-12-02 Richard Sandiford <rsandifo@redhat.com>
3718
3719 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3720 * configure, aclocal.m4, Makefile.in: Regenerate.
3721 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3722
37232004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3724
3725 * configure: Regenerate for libtool change.
3726
37272004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3728
3729 * configure: Regenerate for libtool reversion.
3730
37312004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3732
3733 * configure: Regenerate for libtool change.
3734
37352004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3736
3737 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3738
37392004-11-23 Richard Sandiford <rsandifo@redhat.com>
3740
3741 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3742 of jal. Use an absolute encoding for the frame information.
3743
37442004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3745
3746 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3747 * acinclude.m4: Delete logic for sincludes.
3748 * aclocal.m4, Makefile.in, configure: Regenerate.
3749 * include/Makefile: Likewise.
3750 * testsuite/Makefile: Likewise.
3751
37522004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3753
3754 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3755 on a 8-byte boundary.
3756 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3757
37582004-10-27 Richard Earnshaw <rearnsha@arm.com>
3759
3760 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3761 long long values. Round stack allocation to a multiple of 8 bytes
3762 for ATPCS compatibility.
3763 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3764 names. Handle returning long long types. Add Thumb and interworking
3765 support. Improve soft-float code.
3766
37672004-10-27 Richard Earnshaw <rearnsha@arm.com>
3768
3769 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3770 (libffi_exit): New function.
3771 (libffi_init): Build the testglue wrapper if needed.
3772
37732004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3774
3775 PR other/18138
3776 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3777
37782004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3779
3780 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3781
37822004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3783
3784 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3785 * testsuite/libffi.call/float3.c: New test case.
3786
37872004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3788
3789 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3790 the function returning a structure pointed with R2.
3791 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3792 the structure return value if T bit set. Emit position
3793 independent code and EH data if PIC.
3794
37952004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3796
3797 * Makefile.am: Add m32r support.
3798 * configure.ac: Likewise.
3799 * Makefile.in: Regenerate.
3800 * confiugre: Regenerate.
3801 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3802 (uint64, sint64, double, longdouble)
3803 * src/m32r: New directory.
3804 * src/m32r/ffi.c: New file.
3805 * src/m32r/sysv.S: Likewise.
3806 * src/m32r/ffitarget.h: Likewise.
3807
38082004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3809
3810 * testsuite/libffi.call/negint.c: New test case.
3811
38122004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3813
3814 PR libgcj/17465
3815 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3816 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3817 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3818 DYLD_LIBRARY_PATH.
3819
38202004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3821
3822 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3823 * testsuite/libffi.call/promotion.c: Likewise.
3824 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3825 whitespaces.
3826 * testsuite/libffi.call/return_sc.c: Likewise.
3827 * testsuite/libffi.call/return_uc.c: Likewise.
3828
38292004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3830
3831 * src/powerpc/darwin.S: Fix comments and identation.
3832 * src/powerpc/darwin_closure.S: Likewise.
3833
38342004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3835
3836 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3837 (ffi_prep_args): Handle longdouble arguments.
3838 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3839 longdouble.
3840 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3841 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3842 values.
3843 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3844 * src/types.c: Defined longdouble size and alignment for darwin.
3845
38462004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3847
3848 * src/powerpc/aix.S: Remove whitespaces.
3849 * src/powerpc/aix_closure.S: Likewise.
3850 * src/powerpc/asm.h: Likewise.
3851 * src/powerpc/ffi.c: Likewise.
3852 * src/powerpc/ffitarget.h: Likewise.
3853 * src/powerpc/linux64.S: Likewise.
3854 * src/powerpc/linux64_closure.S: Likewise.
3855 * src/powerpc/ppc_closure.S: Likewise.
3856 * src/powerpc/sysv.S: Likewise.
3857
38582004-08-30 Anthony Green <green@redhat.com>
3859
3860 * Makefile.am: Add frv support.
3861 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3862 * configure.ac: Read configure.host.
3863 * configure.in: Read configure.host.
3864 * configure.host: New file. frv-elf needs libgloss.
3865 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3866 alignment. This is needed to frv and shouldn't harm the others.
3867 * include/ffi_common.h (ALIGN_DOWN): New macro.
3868 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3869
38702004-08-24 David Daney <daney@avtrex.com>
3871
3872 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3873 * testsuite/libffi.call/closure_fn1.c: Likewise.
3874 * testsuite/libffi.call/closure_fn2.c Likewise.
3875 * testsuite/libffi.call/closure_fn3.c: Likewise.
3876 * testsuite/libffi.call/closure_fn4.c: Likewise.
3877 * testsuite/libffi.call/closure_fn5.c: Likewise.
3878 * testsuite/libffi.call/cls_18byte.c: Likewise.
3879 * testsuite/libffi.call/cls_19byte.c: Likewise.
3880 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3881 * testsuite/libffi.call/cls_20byte.c: Likewise.
3882 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3883 * testsuite/libffi.call/cls_24byte.c: Likewise.
3884 * testsuite/libffi.call/cls_2byte.c: Likewise.
3885 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3886 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3887 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3888 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3889 * testsuite/libffi.call/cls_4byte.c: Likewise.
3890 * testsuite/libffi.call/cls_64byte.c: Likewise.
3891 * testsuite/libffi.call/cls_6byte.c: Likewise.
3892 * testsuite/libffi.call/cls_7byte.c: Likewise.
3893 * testsuite/libffi.call/cls_8byte.c: Likewise.
3894 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3895 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3896 * testsuite/libffi.call/cls_align_double.c: Likewise.
3897 * testsuite/libffi.call/cls_align_float.c: Likewise.
3898 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3899 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3900 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3901 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3902 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3903 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3904 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3905 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3906 * testsuite/libffi.call/cls_double.c: Likewise.
3907 * testsuite/libffi.call/cls_float.c: Likewise.
3908 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3909 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3910 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3911 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3912 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3913 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3914 * testsuite/libffi.call/cls_schar.c: Likewise.
3915 * testsuite/libffi.call/cls_sint.c: Likewise.
3916 * testsuite/libffi.call/cls_sshort.c: Likewise.
3917 * testsuite/libffi.call/cls_uchar.c: Likewise.
3918 * testsuite/libffi.call/cls_uint.c: Likewise.
3919 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3920 * testsuite/libffi.call/cls_ushort.c: Likewise.
3921 * testsuite/libffi.call/nested_struct.c: Likewise.
3922 * testsuite/libffi.call/nested_struct1.c: Likewise.
3923 * testsuite/libffi.call/nested_struct2.c: Likewise.
3924 * testsuite/libffi.call/nested_struct3.c: Likewise.
3925 * testsuite/libffi.call/problem1.c: Likewise.
3926 * testsuite/libffi.special/unwindtest.cc: Likewise.
3927 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3928 to zero.
3929 * testsuite/libffi.call/cls_16byte.c: Likewise.
3930 * testsuite/libffi.call/cls_5byte.c: Likewise.
3931
39322004-08-23 David Daney <daney@avtrex.com>
3933
3934 PR libgcj/13141
3935 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3936 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3937 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3938 parameters and return types.
3939 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3940 (ffi_prep_closure): Ditto.
3941 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3942 alignment calculations.
3943 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3944 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3945
39462004-08-14 Casey Marshall <csm@gnu.org>
3947
3948 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3949 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3950 integer (O32 ABI only).
3951 (ffi_prep_closure): new function.
3952 (ffi_closure_mips_inner_O32): new function.
3953 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3954 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3955 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3956 64 bit integers correctly.
3957 (ffi_closure_O32): new function.
3958 Added DWARF-2 unwind info for both functions.
3959
39602004-08-10 Andrew Haley <aph@redhat.com>
3961
3962 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3963
39642004-08-01 Robert Millan <robertmh@gnu.org>
3965
3966 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3967 * configure: Regenerate.
3968
39692004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3970
3971 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3972 and mmap() explicitly instead of relying on preset autoconf cache
3973 variables.
3974 * aclocal.m4: Regenerate.
3975 * configure: Regenerate.
3976
39772004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3978
3979 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3980 (ffi_check_float_struct): Remove unused prototype.
3981
39822004-06-30 Geoffrey Keating <geoffk@apple.com>
3983
3984 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3985 character on Darwin, use '\n\t' instead.
3986
39872004-06-26 Matthias Klose <doko@debian.org>
3988
3989 * libtool-version: Fix typo in revision/age.
3990
39912004-06-17 Matthias Klose <doko@debian.org>
3992
3993 * libtool-version: New.
3994 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3995 * Makefile.in: Regenerate.
3996
39972004-06-15 Paolo Bonzini <bonzini@gnu.org>
3998
3999 * Makefile.am: Remove useless multilib rules.
4000 * Makefile.in: Regenerate.
4001 * aclocal.m4: Regenerate with automake 1.8.5.
4002 * configure.ac: Remove useless multilib configury.
4003 * configure: Regenerate.
4004
40052004-06-15 Paolo Bonzini <bonzini@gnu.org>
4006
4007 * .cvsignore: New file.
4008
40092004-06-10 Jakub Jelinek <jakub@redhat.com>
4010
4011 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4012 fp_done.
4013 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4014 changed from 8.
4015
40162004-06-06 Sean McNeil <sean@mcneil.com>
4017
4018 * configure.ac: Add x86_64-*-freebsd* support.
4019 * configure: Regenerate.
4020
40212004-04-26 Joe Buck <jbuck@welsh-buck.org>
4022
4023 Bug 15093
4024 * configure.ac: Test for existence of mmap and sys/mman.h before
4025 checking blacklist. Fix suggested by Jim Wilson.
4026 * configure: Regenerate.
4027
40282004-04-26 Matt Austern <austern@apple.com>
4029
4030 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4031 FDE location.
4032 * src/powerpc/darwin_closure.S: Likewise.
4033
40342004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4035
4036 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4037 error. Reported by Thomas Heller <theller@python.net>.
4038 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4039 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4040
40412004-03-20 Matthias Klose <doko@debian.org>
4042
4043 * src/pa/linux.S: Fix typo.
4044
40452004-03-19 Matthias Klose <doko@debian.org>
4046
4047 * Makefile.am: Update.
4048 * Makefile.in: Regenerate.
4049 * src/pa/ffi.h.in: Remove.
4050 * src/pa/ffitarget.h: New file.
4051
40522004-02-10 Randolph Chung <tausq@debian.org>
4053
4054 * Makefile.am: Add PA support.
4055 * Makefile.in: Regenerate.
4056 * include/Makefile.in: Regenerate.
4057 * configure.ac: Add PA target.
4058 * configure: Regenerate.
4059 * src/pa/ffi.c: New file.
4060 * src/pa/ffi.h.in: Add PA support.
4061 * src/pa/linux.S: New file.
4062 * prep_cif.c: Add PA support.
4063
40642004-03-16 Hosaka Yuji <hos@tamanegi.org>
4065
4066 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4067 double.
4068 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4069 with ecif->cif->flags.
4070 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4071 with cif->flags.
4072 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4073 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4074 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4075 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4076
40772004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4078
4079 * configure.in: Rename file to ...
4080 * configure.ac: ... this.
4081 * fficonfig.h.in: Regenerate.
4082 * Makefile.in: Regenerate.
4083 * include/Makefile.in: Regenerate.
4084 * testsuite/Makefile.in: Regenerate.
4085
40862004-03-12 Matt Austern <austern@apple.com>
4087
4088 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4089 changes in EH format resulting from addition of linkonce support.
4090 * src/powerpc/darwin_closure.S: Likewise.
4091
40922004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4093 Paolo Bonzini <bonzini@gnu.org>
4094
4095 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4096 Remove VPATH. Remove rules for object files. Remove multilib support.
4097 (AM_CCASFLAGS): Add.
4098 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4099 (AC_PREREQ): Bump version to 2.59.
4100 (AC_INIT): Fill with version info and bug address.
4101 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4102 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4103 De-precious CC so that the right flags are passed down to multilibs.
4104 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4105 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4106 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4107 * configure: Rebuilt.
4108 * aclocal.m4: Likewise.
4109 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4110 * fficonfig.h.in: Likewise.
4111
41122004-03-11 Andreas Schwab <schwab@suse.de>
4113
4114 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4115 arguments from fp registers only for the first 8 parameter slots.
4116 Don't convert a float parameter when passed in memory.
4117
41182004-03-09 Hans-Peter Nilsson <hp@axis.com>
4119
4120 * configure: Regenerate for config/accross.m4 correction.
4121
41222004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4123
4124 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4125 ecif->cif->bytes to bytes.
4126 (ffi_prep_cif_machdep): Add braces around nested if statement.
4127
41282004-02-09 Alan Modra <amodra@bigpond.net.au>
4129
4130 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4131
4132 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4133 (ffi_closure_helper_LINUX64): Fix typo.
4134 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4135 for powerpc64-*-*.
4136 * testsuite/libffi.call/float.c: Likewise.
4137 * testsuite/libffi.call/float2.c: Likewise.
4138
41392004-02-08 Alan Modra <amodra@bigpond.net.au>
4140
4141 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4142 long double function return and long double arg handling.
4143 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4144 Use "end_pfr" instead of "nf". Correct long double handling.
4145 Localise "temp".
4146 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4147 return value.
4148 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4149 space for long double return value. Adjust stack frame and offsets.
4150 Load f2 long double return.
4151
41522004-02-07 Alan Modra <amodra@bigpond.net.au>
4153
4154 * src/types.c: Use 16 byte long double for POWERPC64.
4155
41562004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4157
4158 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4159 when the structure return address is passed in %o0.
4160 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4161 (ffi_v9_layout_struct): Align the field following a nested structure
4162 on a word boundary. Use memmove instead of memcpy.
4163 (ffi_call): Update call to ffi_V9_return_struct.
4164 (ffi_prep_closure): Define 'ctx' only for V8.
4165 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4166 and ffi_closure_sparc_inner_v9.
4167 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4168 Always skip the structure return address. For structures and long
4169 doubles, copy the argument directly.
4170 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4171 if required. Shift the maximum floating-point slot accordingly. For
4172 big structures, copy the argument directly; otherwise, left-justify the
4173 argument and call ffi_v9_layout_struct to lay out the structure on
4174 the stack.
4175 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4176 (ffi_closure_v8): Pass the structure return address. Update call to
4177 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4178 Skip the 'unimp' insn when returning long doubles and structures.
4179 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4180 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4181 FFI_TYPE_INT handling. Load structures both in integers and
4182 floating-point registers on return.
4183 * README: Update status of the SPARC port.
4184
41852004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4186
4187 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4188 as of type ffi_arg.
4189 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4190
41912004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4192
4193 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4194 value as of type ffi_arg, not unsigned int.
4195
41962004-01-21 Michael Ritzert <ritzert@t-online.de>
4197
4198 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4199 of the LHS.
4200
42012004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4202
4203 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4204 Solaris.
4205
42062004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4207
4208 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4209 to void *.
4210
42112003-12-10 Richard Henderson <rth@redhat.com>
4212
4213 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4214 size_t instead of int.
4215
42162003-12-04 Hosaka Yuji <hos@tamanegi.org>
4217
4218 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4219 * testsuite/libffi.call/many_win32.c (main): Replace variable
4220 int i with unsigned long ul.
4221
4222 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4223 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4224 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4225 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4226 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4227 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4228 * testsuite/libffi.call/cls_align_float.c: Likewise.
4229 * testsuite/libffi.call/cls_align_double.c: Likewise.
4230 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4231 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4232
42332003-12-02 Hosaka Yuji <hos@tamanegi.org>
4234
4235 PR other/13221
4236 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4237 Align arguments to 32 bits.
4238
42392003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4240
4241 PR other/13221
4242 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4243 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4244 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4245 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4246 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4247 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4248
4249 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4250
42512003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4252
4253 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4254 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4255
42562003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4257
4258 * Makefile.in: Rebuilt.
4259 * configure: Likewise.
4260 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4261 the right type.
4262
42632003-11-21 Andreas Jaeger <aj@suse.de>
4264 Andreas Tobler <a.tobler@schweiz.ch>
4265
4266 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4267 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4268 * Makefile.in: Rebuilt.
4269 * aclocal.m4: Likewise.
4270 * configure: Likewise.
4271 * fficonfig.h.in: Likewise.
4272 * testsuite/lib/libffi-dg.exp: Add include dir.
4273 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4274 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4275 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4276 for ffi_closure if available.
4277 * testsuite/libffi.call/closure_fn1.c: Likewise.
4278 * testsuite/libffi.call/closure_fn2.c: Likewise.
4279 * testsuite/libffi.call/closure_fn3.c: Likewise.
4280 * testsuite/libffi.call/closure_fn4.c: Likewise.
4281 * testsuite/libffi.call/closure_fn5.c: Likewise.
4282 * testsuite/libffi.call/cls_12byte.c: Likewise.
4283 * testsuite/libffi.call/cls_16byte.c: Likewise.
4284 * testsuite/libffi.call/cls_18byte.c: Likewise.
4285 * testsuite/libffi.call/cls_19byte.c: Likewise.
4286 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4287 * testsuite/libffi.call/cls_20byte.c: Likewise.
4288 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4289 * testsuite/libffi.call/cls_24byte.c: Likewise.
4290 * testsuite/libffi.call/cls_2byte.c: Likewise.
4291 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4292 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4293 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4294 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4295 * testsuite/libffi.call/cls_4byte.c: Likewise.
4296 * testsuite/libffi.call/cls_5byte.c: Likewise.
4297 * testsuite/libffi.call/cls_64byte.c: Likewise.
4298 * testsuite/libffi.call/cls_6byte.c: Likewise.
4299 * testsuite/libffi.call/cls_7byte.c: Likewise.
4300 * testsuite/libffi.call/cls_8byte.c: Likewise.
4301 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4302 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4303 * testsuite/libffi.call/cls_double.c: Likewise.
4304 * testsuite/libffi.call/cls_float.c: Likewise.
4305 * testsuite/libffi.call/cls_schar.c: Likewise.
4306 * testsuite/libffi.call/cls_sint.c: Likewise.
4307 * testsuite/libffi.call/cls_sshort.c: Likewise.
4308 * testsuite/libffi.call/cls_uchar.c: Likewise.
4309 * testsuite/libffi.call/cls_uint.c: Likewise.
4310 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4311 * testsuite/libffi.call/cls_ushort.c: Likewise.
4312 * testsuite/libffi.call/nested_struct.c: Likewise.
4313 * testsuite/libffi.call/nested_struct1.c: Likewise.
4314 * testsuite/libffi.call/nested_struct2.c: Likewise.
4315 * testsuite/libffi.call/nested_struct3.c: Likewise.
4316 * testsuite/libffi.call/problem1.c: Likewise.
4317 * testsuite/libffi.special/unwindtest.cc: Likewise.
4318
43192003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4320
4321 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4322
43232003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4324
4325 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4326 Add -lgcc_s to additional flags.
4327
43282003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4329
4330 * configure.in, include/Makefile.am: PR libgcj/11147, install
4331 the ffitarget.h header file in a gcc versioned and target
4332 dependent place.
4333 * configure: Regenerated.
4334 * Makefile.in, include/Makefile.in: Likewise.
4335 * testsuite/Makefile.in: Likewise.
4336
43372003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4338
4339 * testsuite/libffi.call/closure_fn0.c: Print result and check
4340 with dg-output to make debugging easier.
4341 * testsuite/libffi.call/closure_fn1.c: Likewise.
4342 * testsuite/libffi.call/closure_fn2.c: Likewise.
4343 * testsuite/libffi.call/closure_fn3.c: Likewise.
4344 * testsuite/libffi.call/closure_fn4.c: Likewise.
4345 * testsuite/libffi.call/closure_fn5.c: Likewise.
4346 * testsuite/libffi.call/cls_12byte.c: Likewise.
4347 * testsuite/libffi.call/cls_16byte.c: Likewise.
4348 * testsuite/libffi.call/cls_18byte.c: Likewise.
4349 * testsuite/libffi.call/cls_19byte.c: Likewise.
4350 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4351 * testsuite/libffi.call/cls_20byte.c: Likewise.
4352 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4353 * testsuite/libffi.call/cls_24byte.c: Likewise.
4354 * testsuite/libffi.call/cls_2byte.c: Likewise.
4355 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4356 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4357 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4358 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4359 * testsuite/libffi.call/cls_4byte.c: Likewise.
4360 * testsuite/libffi.call/cls_5byte.c: Likewise.
4361 * testsuite/libffi.call/cls_64byte.c: Likewise.
4362 * testsuite/libffi.call/cls_6byte.c: Likewise.
4363 * testsuite/libffi.call/cls_7byte.c: Likewise.
4364 * testsuite/libffi.call/cls_8byte.c: Likewise.
4365 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4366 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4367 * testsuite/libffi.call/cls_double.c: Likewise.
4368 * testsuite/libffi.call/cls_float.c: Likewise.
4369 * testsuite/libffi.call/cls_schar.c: Likewise.
4370 * testsuite/libffi.call/cls_sint.c: Likewise.
4371 * testsuite/libffi.call/cls_sshort.c: Likewise.
4372 * testsuite/libffi.call/cls_uchar.c: Likewise.
4373 * testsuite/libffi.call/cls_uint.c: Likewise.
4374 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4375 * testsuite/libffi.call/cls_ushort.c: Likewise.
4376 * testsuite/libffi.call/problem1.c: Likewise.
4377
4378 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4379 static.
4380
43812003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4382
4383 * testsuite/libffi.call/cls_9byte2.c: New test case.
4384 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4385 * testsuite/libffi.call/cls_64byte.c: Likewise.
4386 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4387 * testsuite/libffi.call/cls_19byte.c: Likewise.
4388 * testsuite/libffi.call/cls_18byte.c: Likewise.
4389 * testsuite/libffi.call/closure_fn4.c: Likewise.
4390 * testsuite/libffi.call/closure_fn5.c: Likewise.
4391 * testsuite/libffi.call/cls_schar.c: Likewise.
4392 * testsuite/libffi.call/cls_sint.c: Likewise.
4393 * testsuite/libffi.call/cls_sshort.c: Likewise.
4394 * testsuite/libffi.call/nested_struct2.c: Likewise.
4395 * testsuite/libffi.call/nested_struct3.c: Likewise.
4396
43972003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4398
4399 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4400 * testsuite/libffi.call/cls_uchar.c: Likewise.
4401 * testsuite/libffi.call/cls_uint.c: Likewise.
4402 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4403 * testsuite/libffi.call/cls_ushort.c: Likewise.
4404 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4405
44062003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4407
4408 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4409 the initialization.
4410
44112003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4412
4413 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4414 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4415
44162003-10-22 David Daney <ddaney@avtrex.com>
4417
4418 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4419 __attribute__((__mode__(__SI__))) and friends.
4420
44212003-10-22 Andreas Schwab <schwab@suse.de>
4422
4423 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4424
44252003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4426
4427 * configure.in: AC_LINK_FILES(ffitarget.h).
4428 * configure: Regenerate.
4429 * Makefile.in: Likewise.
4430 * include/Makefile.in: Likewise.
4431 * testsuite/Makefile.in: Likewise.
4432 * fficonfig.h.in: Likewise.
4433
44342003-10-21 Paolo Bonzini <bonzini@gnu.org>
4435 Richard Henderson <rth@redhat.com>
4436
4437 Avoid that ffi.h includes fficonfig.h.
4438
4439 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4440 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4441 (TARGET_SRC_MIPS_SGI): Removed.
4442 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4443 (MIPS_SGI): Removed.
4444 (CLEANFILES): Removed.
4445 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4446 targets.
4447 * acconfig.h: Removed.
4448 * configure.in: Compute sizeofs only for double and long double.
4449 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4450 into AC_DEFINE instead of using acconfig.h. Create
4451 include/ffitarget.h instead of include/fficonfig.h. Rename
4452 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4453 AC_DEFINE EH_FRAME_FLAGS.
4454 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4455 (hack_DATA): Add ffitarget.h.
4456 * include/ffi.h.in: Remove all system specific definitions.
4457 Declare raw API even if it is not installed, why bother?
4458 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4459 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4460 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4461 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4462 * include/ffi_common.h (bool): Do not define.
4463 (ffi_assert): Accept failed assertion.
4464 (ffi_type_test): Return void and accept file/line.
4465 (FFI_ASSERT): Pass stringized failed assertion.
4466 (FFI_ASSERT_AT): New macro.
4467 (FFI_ASSERT_VALID_TYPE): New macro.
4468 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4469 UINT64, SINT64): Define here with gcc's __attribute__ macro
4470 instead of in ffi.h
4471 (FLOAT32, ALIGN): Define here instead of in ffi.h
4472 * include/ffi-mips.h: Removed. Its content moved to
4473 src/mips/ffitarget.h after separating assembly and C sections.
4474 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4475 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4476 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4477 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4478 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4479 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4480 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4481 (ffi_type_test): Rewritten.
4482 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4483 FFI_ASSERT_VALID_TYPE.
4484 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4485 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4486 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4487 src/s390/ffitarget.h, src/sh/ffitarget.h,
4488 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4489 src/x86/ffitarget.h: New files.
4490 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4491 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4492 src/powerpc/aix.S, src/powerpc/darwin.S,
4493 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4494 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4495 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4496 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4497 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4498 include fficonfig.h
4499
45002003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4501
4502 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4503 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4504
45052003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4506
4507 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4508 Used when FFI_DEBUG = 1.
4509
45102003-10-14 Alan Modra <amodra@bigpond.net.au>
4511
4512 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4513 and align.
4514
45152003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4516
4517 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4518 FFI_MIPS_O32 for O32 ABI.
4519
45202003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4521
4522 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4523 SPARC64. Cleanup whitespaces.
4524
45252003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4526
4527 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4528 strongarm, xscale. Cleanup whitespaces.
4529 * testsuite/libffi.call/closure_fn1.c: Likewise.
4530 * testsuite/libffi.call/closure_fn2.c: Likewise.
4531 * testsuite/libffi.call/closure_fn3.c: Likewise.
4532 * testsuite/libffi.call/cls_12byte.c: Likewise.
4533 * testsuite/libffi.call/cls_16byte.c: Likewise.
4534 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4535 * testsuite/libffi.call/cls_20byte.c: Likewise.
4536 * testsuite/libffi.call/cls_24byte.c: Likewise.
4537 * testsuite/libffi.call/cls_2byte.c: Likewise.
4538 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4539 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4540 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4541 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4542 * testsuite/libffi.call/cls_4byte.c: Likewise.
4543 * testsuite/libffi.call/cls_5byte.c: Likewise.
4544 * testsuite/libffi.call/cls_6byte.c: Likewise.
4545 * testsuite/libffi.call/cls_7byte.c: Likewise.
4546 * testsuite/libffi.call/cls_8byte.c: Likewise.
4547 * testsuite/libffi.call/cls_double.c: Likewise.
4548 * testsuite/libffi.call/cls_float.c: Likewise.
4549 * testsuite/libffi.call/cls_uchar.c: Likewise.
4550 * testsuite/libffi.call/cls_uint.c: Likewise.
4551 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4552 * testsuite/libffi.call/cls_ushort.c: Likewise.
4553 * testsuite/libffi.call/nested_struct.c: Likewise.
4554 * testsuite/libffi.call/nested_struct1.c: Likewise.
4555 * testsuite/libffi.call/problem1.c: Likewise.
4556 * testsuite/libffi.special/unwindtest.cc: Likewise.
4557 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4558
45592003-09-18 David Edelsohn <edelsohn@gnu.org>
4560
4561 * src/powerpc/aix.S: Cleanup whitespaces.
4562 * src/powerpc/aix_closure.S: Likewise.
4563
45642003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4565
4566 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4567 * src/powerpc/darwin_closure.S: Likewise.
4568 * src/powerpc/ffi_darwin.c: Likewise.
4569
45702003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4571 David Edelsohn <edelsohn@gnu.org>
4572
4573 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4574 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4575 parameter stack.
4576 * src/powerpc/darwin_closure.S: Likewise.
4577 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4578 according to the Darwin/AIX ABI.
4579 (ffi_prep_cif_machdep): Likewise.
4580 (ffi_closure_helper_DARWIN): Likewise.
4581 Remove the outgoing parameter stack logic. Simplify the evaluation
4582 of the different CASE types.
4583 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4584 statement in the trampoline code.
4585
45862003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4587
4588 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4589 for the register size.
4590 (ffi_closure_helper_SYSV): Handle the structure return value
4591 address correctly.
4592 (ffi_closure_helper_SYSV): Return the appropriate type when
4593 the registers are used for the structure return value.
4594 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4595 the 64-bit return value. Update copyright years.
4596
45972003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4598
4599 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4600 srcdir for ffi_mips.h.
4601
46022003-09-12 Alan Modra <amodra@bigpond.net.au>
4603
4604 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4605 structure size.
4606 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4607 placement of float result.
4608 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4609 cast of "resp" for big-endian 64 bit machines.
4610
46112003-09-11 Alan Modra <amodra@bigpond.net.au>
4612
4613 * src/types.c (double, longdouble): Merge identical SH and ARM
4614 typedefs, and add POWERPC64.
4615 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4616 struct split over gpr and rest.
4617 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4618 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4619
46202003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4621
4622 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4623 passing correctly.
4624
46252003-09-09 Alan Modra <amodra@bigpond.net.au>
4626
4627 * configure: Regenerate.
4628
46292003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4630
4631 * Makefile.am: Remove build rules for ffitest.
4632 * Makefile.in: Rebuilt.
4633
46342003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4635
4636 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4637 about implicit declaration of abort().
4638
46392003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4640
4641 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4642 * Makefile.in: Rebuilt.
4643 * configure.in: Add dejagnu test framework.
4644 * configure: Rebuilt.
4645
4646 * testsuite/Makefile.am: New file.
4647 * testsuite/Makefile.in: Built
4648 * testsuite/lib/libffi-dg.exp: New file.
4649 * testsuite/config/default.exp: Likewise.
4650 * testsuite/libffi.call/call.exp: Likewise.
4651 * testsuite/libffi.call/ffitest.h: Likewise.
4652 * testsuite/libffi.call/closure_fn0.c: Likewise.
4653 * testsuite/libffi.call/closure_fn1.c: Likewise.
4654 * testsuite/libffi.call/closure_fn2.c: Likewise.
4655 * testsuite/libffi.call/closure_fn3.c: Likewise.
4656 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4657 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4658 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4659 * testsuite/libffi.call/cls_2byte.c: Likewise.
4660 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4661 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4662 * testsuite/libffi.call/cls_4byte.c: Likewise.
4663 * testsuite/libffi.call/cls_5byte.c: Likewise.
4664 * testsuite/libffi.call/cls_6byte.c: Likewise.
4665 * testsuite/libffi.call/cls_7byte.c: Likewise.
4666 * testsuite/libffi.call/cls_8byte.c: Likewise.
4667 * testsuite/libffi.call/cls_12byte.c: Likewise.
4668 * testsuite/libffi.call/cls_16byte.c: Likewise.
4669 * testsuite/libffi.call/cls_20byte.c: Likewise.
4670 * testsuite/libffi.call/cls_24byte.c: Likewise.
4671 * testsuite/libffi.call/cls_double.c: Likewise.
4672 * testsuite/libffi.call/cls_float.c: Likewise.
4673 * testsuite/libffi.call/cls_uchar.c: Likewise.
4674 * testsuite/libffi.call/cls_uint.c: Likewise.
4675 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4676 * testsuite/libffi.call/cls_ushort.c: Likewise.
4677 * testsuite/libffi.call/float.c: Likewise.
4678 * testsuite/libffi.call/float1.c: Likewise.
4679 * testsuite/libffi.call/float2.c: Likewise.
4680 * testsuite/libffi.call/many.c: Likewise.
4681 * testsuite/libffi.call/many_win32.c: Likewise.
4682 * testsuite/libffi.call/nested_struct.c: Likewise.
4683 * testsuite/libffi.call/nested_struct1.c: Likewise.
4684 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4685 * testsuite/libffi.call/problem1.c: Likewise.
4686 * testsuite/libffi.call/promotion.c: Likewise.
4687 * testsuite/libffi.call/return_ll.c: Likewise.
4688 * testsuite/libffi.call/return_sc.c: Likewise.
4689 * testsuite/libffi.call/return_uc.c: Likewise.
4690 * testsuite/libffi.call/strlen.c: Likewise.
4691 * testsuite/libffi.call/strlen_win32.c: Likewise.
4692 * testsuite/libffi.call/struct1.c: Likewise.
4693 * testsuite/libffi.call/struct2.c: Likewise.
4694 * testsuite/libffi.call/struct3.c: Likewise.
4695 * testsuite/libffi.call/struct4.c: Likewise.
4696 * testsuite/libffi.call/struct5.c: Likewise.
4697 * testsuite/libffi.call/struct6.c: Likewise.
4698 * testsuite/libffi.call/struct7.c: Likewise.
4699 * testsuite/libffi.call/struct8.c: Likewise.
4700 * testsuite/libffi.call/struct9.c: Likewise.
4701 * testsuite/libffi.special/special.exp: New file.
4702 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4703 * testsuite/libffi.special/unwindtest.cc: Likewise.
4704
4705
47062003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4707
4708 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4709 copyright years.
4710
47112003-08-02 Alan Modra <amodra@bigpond.net.au>
4712
4713 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4714 structure passing.
4715 (ffi_closure_helper_LINUX64): Likewise.
4716 * src/powerpc/linux64.S: Remove code writing to parm save area.
4717 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4718 address in lr from ffi_closure_helper_LINUX64 call to calculate
4719 table address. Optimize function tail.
4720
47212003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4722
4723 * src/sparc/ffi.c: Handle all floating point registers.
4724 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4725
47262003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4727
4728 * README: Note that libffi is not part of GCC. Update the project
4729 URL and status.
4730
47312003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4732
4733 * src/powerpc/ppc_closure.S: Include ffi.h.
4734
47352003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4736
4737 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4738 Use C style comments.
4739
47402003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4741
4742 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4743 * Makefile.in: Regenerate.
4744 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4745 * configure: Regenerate.
4746 * include/ffi.h.in: Add SHmedia support.
4747 * src/sh64/ffi.c: New file.
4748 * src/sh64/sysv.S: New file.
4749
47502003-05-16 Jakub Jelinek <jakub@redhat.com>
4751
4752 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4753 should be read-only.
4754 * configure: Rebuilt.
4755 * fficonfig.h.in: Rebuilt.
4756 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4757 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4758 * src/powerpc/linux64.S: Likewise.
4759 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4760 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4761 if -fpic/-fPIC/-mrelocatable.
4762 * src/powerpc/powerpc_closure.S: Likewise.
4763 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4764 #write in .eh_frame flags.
4765 * src/sparc/v9.S: Likewise.
4766 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4767 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4768 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4769
47702003-05-07 Jeff Sturm <jsturm@one-point.com>
4771
4772 Fixes PR bootstrap/10656
4773 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4774 support for .register pseudo-op.
4775 * src/sparc/v8.S: Use it.
4776 * fficonfig.h.in: Rebuilt.
4777 * configure: Rebuilt.
4778
47792003-04-18 Jakub Jelinek <jakub@redhat.com>
4780
4781 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4782 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4783 Make it the default on POWERPC64.
4784 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4785 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4786 * configure: Rebuilt.
4787 * src/powerpc/ffi.c (hidden): Define.
4788 (ffi_prep_args_SYSV): Renamed from
4789 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4790 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4791 ASM_NEEDS_REGISTERS64): New.
4792 (ffi_prep_args64): New function.
4793 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4794 (ffi_call): Likewise.
4795 (ffi_prep_closure): Likewise.
4796 (flush_icache): Surround by #ifndef POWERPC64.
4797 (ffi_dblfl): New union type.
4798 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4799 (ffi_closure_helper_LINUX64): New function.
4800 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4801 __powerpc64__.
4802 * src/powerpc/sysv.S: Likewise.
4803 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4804 * src/powerpc/linux64.S: New file.
4805 * src/powerpc/linux64_closure.S: New file.
4806 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4807 src/powerpc/linux64_closure.S.
4808 (TARGET_SRC_POWERPC): Likewise.
4809
4810 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4811 closure_test_fn3): Fix result printing on big-endian 64-bit
4812 machines.
4813 (main): Print tst2_arg instead of uninitialized tst2_result.
4814
4815 * src/ffitest.c (main): Hide what closure pointer really points to
4816 from the compiler.
4817
48182003-04-16 Richard Earnshaw <rearnsha@arm.com>
4819
4820 * configure.in (arm-*-netbsdelf*): Add configuration.
4821 (configure): Regenerated.
4822
48232003-04-04 Loren J. Rittle <ljrittle@acm.org>
4824
4825 * include/Makefile.in: Regenerate.
4826
48272003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4828
4829 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4830 bit mode.
4831 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4832 Receive closure pointer through parameter, read args using
4833 __builtin_dwarf_cfa.
4834 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4835
48362003-03-12 Andreas Schwab <schwab@suse.de>
4837
4838 * configure.in: Avoid trailing /. in toolexeclibdir.
4839 * configure: Rebuilt.
4840
48412003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4842
4843 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4844
48452003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4846
4847 * libffi/src/powerpc/darwin_closure.S:
4848 Fix alignement bug, allocate 8 bytes for the result.
4849 * libffi/src/powerpc/aix_closure.S:
4850 Likewise.
4851 * libffi/src/powerpc/ffi_darwin.c:
4852 Update stackframe description for aix/darwin_closure.S.
4853
48542003-02-06 Jakub Jelinek <jakub@redhat.com>
4855
4856 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4857 attribute.
4858
48592003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4860 Andreas Schwab <schwab@suse.de>
4861
4862 * configure.in: Adjust command to source config-ml.in to account
4863 for changes to the libffi_basedir definition.
4864 (libffi_basedir): Remove ${srcdir} from value and include trailing
4865 slash if nonempty.
4866
4867 * configure: Regenerate.
4868
48692003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4870
4871 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4872
48732003-01-28 Andrew Haley <aph@redhat.com>
4874
4875 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4876 * src/x86/ffi64.c (ffi_prep_closure): New.
4877 (ffi_closure_UNIX64_inner): New.
4878 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4879
48802003-01-27 Alexandre Oliva <aoliva@redhat.com>
4881
4882 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4883 Remove USE_LIBDIR conditional.
4884 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4885 * Makefile.in, configure: Rebuilt.
4886
48872003-01027 David Edelsohn <edelsohn@gnu.org>
4888
4889 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4890 * Makefile.in: Regenerate.
4891
48922003-01-22 Andrew Haley <aph@redhat.com>
4893
4894 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4895 unwind info.
4896
48972003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4898
4899 * src/powerpc/darwin.S: Add unwind info.
4900 * src/powerpc/darwin_closure.S: Likewise.
4901
49022003-01-14 Andrew Haley <aph@redhat.com>
4903
4904 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4905 (ffi_prep_cif_machdep): Likewise.
4906 * src/x86/unix64.S: Add unwind info.
4907
49082003-01-14 Andreas Jaeger <aj@suse.de>
4909
4910 * src/ffitest.c (main): Only use ffi_closures if those are
4911 supported.
4912
49132003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4914
4915 * libffi/src/ffitest.c
4916 add closure testcases
4917
49182003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4919
4920 * libffi/src/powerpc/ffi.c
4921 fix alignment bug for float (4 byte aligned iso 8 byte)
4922
49232003-01-09 Geoffrey Keating <geoffk@apple.com>
4924
4925 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4926 * src/powerpc/darwin.S: Remove RCS version string.
4927
49282003-01-03 Jeff Sturm <jsturm@one-point.com>
4929
4930 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4931 * src/ffitest.c (main): Use static storage for closure.
4932 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4933 * src/sparc/v8.S (ffi_closure_v8): New.
4934 * src/sparc/v9.S (ffi_closure_v9): New.
4935
49362002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4937
4938 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4939 enumeration for X86_WIN32.
4940 * src/x86/win32.S: Added ffi_call_STDCALL function
4941 definition.
4942 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4943 switch cases for recognising FFI_STDCALL and
4944 calling ffi_call_STDCALL if target is X86_WIN32.
4945 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4946 stdcall versions of the "my_strlen" and "many"
4947 test functions (for X86_WIN32).
4948 Added test cases to test stdcall invocation using
4949 these functions.
4950
49512002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4952
4953 * src/sh/sysv.S: Add DWARF2 unwind info.
4954
49552002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4956
4957 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4958
49592002-11-26 Jim Wilson <wilson@redhat.com>
4960
4961 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4962
49632002-11-23 H.J. Lu <hjl@gnu.org>
4964
4965 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4966 Include ../config/accross.m4.
4967 * aclocal.m4; Rebuild.
4968 * configure: Likewise.
4969
49702002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4971
4972 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4973
49742002-11-11 DJ Delorie <dj@redhat.com>
4975
4976 * configure.in: Look for common files in the right place.
4977
49782002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4979
4980 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4981 raw data as _Jv_word values, not ffi_raw.
4982 (ffi_java_ptrarray_to_raw): Likewise.
4983 (ffi_java_rvalue_to_raw): New function.
4984 (ffi_java_raw_call): Call it.
4985 (ffi_java_raw_to_rvalue): New function.
4986 (ffi_java_translate_args): Call it.
4987 * src/ffitest.c (closure_test_fn): Interpret return value
4988 as ffi_arg, not int.
4989 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4990 FFI_TYPE_POINTER case.
4991 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4992 values extended to word size.
4993
49942002-10-02 Andreas Jaeger <aj@suse.de>
4995
4996 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4997
49982002-10-01 Bo Thorsen <bo@smetana.suse.de>
4999
5000 * include/ffi.h.in: Fix i386 win32 compilation.
5001
50022002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
5003
5004 * configure.in: Add s390x-*-linux-* target.
5005 * configure: Regenerate.
5006 * include/ffi.h.in: Define S390X for s390x targets.
5007 (FFI_CLOSURES): Define for s390/s390x.
5008 (FFI_TRAMPOLINE_SIZE): Likewise.
5009 (FFI_NATIVE_RAW_API): Likewise.
5010 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5011 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5012 * src/s390/ffi.c: Major rework of existing code. Add support for
5013 s390x targets. Add closure support.
5014 * src/s390/sysv.S: Likewise.
5015
50162002-09-29 Richard Earnshaw <rearnsha@arm.com>
5017
5018 * src/arm/sysv.S: Fix typo.
5019
50202002-09-28 Richard Earnshaw <rearnsha@arm.com>
5021
5022 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5023 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5024 (ffi_call_SYSV): Handle soft-float.
5025
50262002-09-27 Bo Thorsen <bo@suse.de>
5027
5028 * include/ffi.h.in: Fix multilib x86-64 support.
5029
50302002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5031
5032 * Makefile.am (all-multi): Fix multilib parallel build.
5033
50342002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5035
5036 * configure.in (sh[34]*-*-linux*): Add brackets.
5037 * configure: Regenerate.
5038
50392002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5040
5041 * Makefile.am: Add SH support.
5042 * Makefile.in: Regenerate.
5043 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5044 * configure: Regenerate.
5045 * include/ffi.h.in: Add SH support.
5046 * src/sh/ffi.c: New file.
5047 * src/sh/sysv.S: New file.
5048 * src/types.c: Add SH support.
5049
50502002-07-16 Bo Thorsen <bo@suse.de>
5051
5052 * src/x86/ffi64.c: New file that adds x86-64 support.
5053 * src/x86/unix64.S: New file that handles argument setup for
5054 x86-64.
5055 * src/x86/sysv.S: Don't use this on x86-64.
5056 * src/x86/ffi.c: Don't use this on x86-64.
5057 Remove unused vars.
5058 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5059 for x86-64.
5060 * src/ffitest.c (struct6): New test that tests a special case in
5061 the x86-64 ABI.
5062 (struct7): Likewise.
5063 (struct8): Likewise.
5064 (struct9): Likewise.
5065 (closure_test_fn): Silence warning about this when it's not used.
5066 (main): Add the new tests.
5067 (main): Fix a couple of wrong casts and silence some compiler warnings.
5068 * include/ffi.h.in: Add x86-64 ABI definition.
5069 * fficonfig.h.in: Regenerate.
5070 * Makefile.am: Add x86-64 support.
5071 * configure.in: Likewise.
5072 * Makefile.in: Regenerate.
5073 * configure: Likewise.
5074
50752002-06-24 Bo Thorsen <bo@suse.de>
5076
5077 * src/types.c: Merge settings for similar architectures.
5078 Add x86-64 sizes and alignments.
5079
50802002-06-23 Bo Thorsen <bo@suse.de>
5081
5082 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5083 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5084 * src/mips/ffi.c (ffi_prep_args): Likewise.
5085 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5086
50872002-07-18 H.J. Lu (hjl@gnu.org)
5088
5089 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5090 (libffi_la_SOURCES): Support MIPS_LINUX.
5091 (libffi_convenience_la_SOURCES): Likewise.
5092 * Makefile.in: Regenerated.
5093
5094 * configure.in (mips64*-*): Skip.
5095 (mips*-*-linux*): New.
5096 * configure: Regenerated.
5097
5098 * src/mips/ffi.c: Include <sgidefs.h>.
5099
51002002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5101
5102 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5103
51042002-05-27 Roger Sayle <roger@eyesopen.com>
5105
5106 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5107
51082002-05-27 Bo Thorsen <bo@suse.de>
5109
5110 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5111 fix formatting.
5112
51132002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5114
5115 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5116 beginning of function (for older apple cc).
5117
51182002-05-08 Alexandre Oliva <aoliva@redhat.com>
5119
5120 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5121 script entry, and set LD to it when configuring multilibs.
5122 * configure: Rebuilt.
5123
51242002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5125
5126 * configure.in (sparc64-*-netbsd*): Add target.
5127 (sparc-*-netbsdelf*): Likewise.
5128 * configure: Regenerate.
5129
51302002-04-28 David S. Miller <davem@redhat.com>
5131
5132 * configure.in, configure: Fix SPARC test in previous change.
5133
51342002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5135
5136 * Makefile.am: Add Linux for S/390 support.
5137 * Makefile.in: Regenerate.
5138 * configure.in: Add Linux for S/390 support.
5139 * configure: Regenerate.
5140 * include/ffi.h.in: Add Linux for S/390 support.
5141 * src/s390/ffi.c: New file from libffi CVS tree.
5142 * src/s390/sysv.S: New file from libffi CVS tree.
5143
51442002-04-28 Jakub Jelinek <jakub@redhat.com>
5145
5146 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5147 %r_disp32().
5148 * src/sparc/v8.S: Use it.
5149 * src/sparc/v9.S: Likewise.
5150 * fficonfig.h.in: Rebuilt.
5151 * configure: Rebuilt.
5152
51532002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5154
5155 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5156 correctly.
5157 * src/ia64/unix.S: Add unwind information. Fix comments.
5158 Save sp in a way that's compatible with unwind info.
5159 (ffi_call_unix): Correctly restore sp in all cases.
5160 * src/ia64/ffi.c: Add, fix comments.
5161
51622002-04-08 Jakub Jelinek <jakub@redhat.com>
5163
5164 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5165
51662002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5167
5168 * configure.in (alpha*-*-netbsd*): Add target.
5169 * configure: Regenerate.
5170
51712002-04-04 Jeff Sturm <jsturm@one-point.com>
5172
5173 * src/sparc/v8.S: Add unwind info.
5174 * src/sparc/v9.S: Likewise.
5175
51762002-03-30 Krister Walfridsson <cato@df.lth.se>
5177
5178 * configure.in: Enable i*86-*-netbsdelf*.
5179 * configure: Rebuilt.
5180
51812002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5182
5183 PR other/2620
5184 * src/mips/n32.s: Delete
5185 * src/mips/o32.s: Delete
5186
51872002-03-21 Loren J. Rittle <ljrittle@acm.org>
5188
5189 * configure.in: Enable alpha*-*-freebsd*.
5190 * configure: Rebuilt.
5191
51922002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5193
5194 * Makefile.am: libfficonvenience -> libffi_convenience.
5195 * Makefile.in: Rebuilt.
5196
5197 * Makefile.am: Define ffitest_OBJECTS.
5198 * Makefile.in: Rebuilt.
5199
52002002-03-07 Andreas Tobler <toa@pop.agri.ch>
5201 David Edelsohn <edelsohn@gnu.org>
5202
5203 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5204 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5205 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5206 * Makefile.in: Regenerate.
5207 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5208 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5209 (flush_icache, flush_range): New functions.
5210 (ffi_closure_helper_DARWIN): New function.
5211 * src/powerpc/aix_closure.S: New file.
5212 * src/powerpc/darwin_closure.S: New file.
5213
52142002-02-24 Jeff Sturm <jsturm@one-point.com>
5215
5216 * include/ffi.h.in: Add typedef for ffi_arg.
5217 * src/ffitest.c (main): Declare rint with ffi_arg.
5218
52192002-02-21 Andreas Tobler <toa@pop.agri.ch>
5220
5221 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5222 number of GPRs for floating-point arguments.
5223
52242002-01-31 Anthony Green <green@redhat.com>
5225
5226 * configure: Rebuilt.
5227 * configure.in: Replace CHECK_SIZEOF and endian tests with
5228 cross-compiler friendly macros.
5229 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5230 macros.
5231
52322002-01-18 David Edelsohn <edelsohn@gnu.org>
5233
5234 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5235 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5236
52372002-01-17 David Edelsohn <edelsohn@gnu.org>
5238
5239 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5240 (TARGET_SRC_POWERPC_AIX): New.
5241 (POWERPC_AIX): New stanza.
5242 * Makefile.in: Regenerate.
5243 * configure.in: Add AIX case.
5244 * configure: Regenerate.
5245 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5246 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5247 size. Fix "long double" support.
5248 (ffi_call): Add FFI_AIX case.
5249 * src/powerpc/aix.S: New.
5250
52512001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5252
5253 Implement Darwin PowerPC ABI.
5254 * configure.in: Handle powerpc-*-darwin*.
5255 * Makefile.am: Set source files for POWERPC_DARWIN.
5256 * configure: Rebuilt.
5257 * Makefile.in: Rebuilt.
5258 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5259 POWERPC_DARWIN.
5260 * src/powerpc/darwin.S: New file.
5261 * src/powerpc/ffi_darwin.c: New file.
5262
52632001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5264
5265 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5266
52672001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5268
5269 * src/x86/sysv.S: Avoid gas-only .balign directive.
5270 Use C style comments.
5271
52722001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5273
5274 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5275 Fixes PR bootstrap/3563.
5276
52772001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5278
5279 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5280
52812001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5282
5283 * configure.in: Recognize sparc*-sun-* host.
5284 * configure: Regenerate.
5285
52862001-06-06 Andrew Haley <aph@redhat.com>
5287
5288 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5289
52902001-06-03 Andrew Haley <aph@redhat.com>
5291
5292 * src/alpha/osf.S: Add unwind info.
5293 * src/powerpc/sysv.S: Add unwind info.
5294 * src/powerpc/ppc_closure.S: Likewise.
5295
52962000-05-31 Jeff Sturm <jsturm@one-point.com>
5297
5298 * configure.in: Fix AC_ARG_ENABLE usage.
5299 * configure: Rebuilt.
5300
53012001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5302
5303 * configure.in: Remove warning about beta code.
5304 * configure: Rebuilt.
5305
53062001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5307
5308 * src/ia64/unix.S: Restore stack pointer when returning from
5309 ffi_closure_UNIX.
5310 * src/ia64/ffi.c: Fix typo in comment.
5311
53122001-04-18 Jim Wilson <wilson@redhat.com>
5313
5314 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5315 to eliminate RAW DV.
5316
53172001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5318
5319 * Makefile.am: Make a libtool convenience library.
5320 * Makefile.in: Rebuilt.
5321
53222001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5323
5324 * configure.in: Use different syntax for subdirectory creation.
5325 * configure: Rebuilt.
5326
53272001-03-27 Jon Beniston <jon@beniston.com>
5328
5329 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5330 * configure: Rebuilt.
5331 * Makefile.am: Added X86_WIN32 target support.
5332 * Makefile.in: Rebuilt.
5333
5334 * include/ffi.h.in: Added X86_WIN32 target support.
5335
5336 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5337 * src/types.c: Added X86_WIN32 target support.
5338
5339 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5340 stuff removed and made to work with CygWin's gas.
5341
53422001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5343
5344 * configure.in: Make target subdirectory in build dir.
5345 * Makefile.am: Override suffix based rules to specify correct output
5346 subdirectory.
5347 * Makefile.in: Rebuilt.
5348 * configure: Rebuilt.
5349
53502001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5351
5352 * src/powerpc/ppc_closure.S: New file.
5353 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5354 involving long long and register pairs.
5355 (ffi_prep_closure): New function.
5356 (flush_icache): Likewise.
5357 (ffi_closure_helper_SYSV): Likewise.
5358 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5359 (FFI_TRAMPOLINE_SIZE): Likewise.
5360 (FFI_NATIVE_RAW_API): Likewise.
5361 * Makefile.in: Rebuilt.
5362 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5363 (TARGET_SRC_POWERPC): Likewise.
5364
53652001-03-19 Tom Tromey <tromey@redhat.com>
5366
5367 * Makefile.in: Rebuilt.
5368 * Makefile.am (ffitest_LDFLAGS): New macro.
5369
53702001-03-02 Nick Clifton <nickc@redhat.com>
5371
5372 * include/ffi.h.in: Remove RCS ident string.
5373 * include/ffi_mips.h: Remove RCS ident string.
5374 * src/debug.c: Remove RCS ident string.
5375 * src/ffitest.c: Remove RCS ident string.
5376 * src/prep_cif.c: Remove RCS ident string.
5377 * src/types.c: Remove RCS ident string.
5378 * src/alpha/ffi.c: Remove RCS ident string.
5379 * src/alpha/osf.S: Remove RCS ident string.
5380 * src/arm/ffi.c: Remove RCS ident string.
5381 * src/arm/sysv.S: Remove RCS ident string.
5382 * src/mips/ffi.c: Remove RCS ident string.
5383 * src/mips/n32.S: Remove RCS ident string.
5384 * src/mips/o32.S: Remove RCS ident string.
5385 * src/sparc/ffi.c: Remove RCS ident string.
5386 * src/sparc/v8.S: Remove RCS ident string.
5387 * src/sparc/v9.S: Remove RCS ident string.
5388 * src/x86/ffi.c: Remove RCS ident string.
5389 * src/x86/sysv.S: Remove RCS ident string.
5390
53912001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5392
5393 * include/ffi.h.in: Change sourceware.cygnus.com references to
5394 gcc.gnu.org.
5395
53962000-12-09 Richard Henderson <rth@redhat.com>
5397
5398 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5399 (ffi_closure_osf_inner): Index rather than increment avalue
5400 and arg_types. Give ffi_closure_osf the raw return value type.
5401 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5402 promotion.
5403
54042000-12-07 Richard Henderson <rth@redhat.com>
5405
5406 * src/raw_api.c (ffi_translate_args): Fix typo.
5407 (ffi_prep_closure): Likewise.
5408
5409 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5410 FFI_TRAMPOLINE_SIZE.
5411 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5412 cif->bytes for new ffi_call_osf implementation.
5413 (ffi_prep_args): Absorb into ...
5414 (ffi_call): ... here. Do all stack allocation here and
5415 avoid a callback function.
5416 (ffi_prep_closure, ffi_closure_osf_inner): New.
5417 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5418 (ffi_closure_osf): New.
5419
54202000-09-10 Alexandre Oliva <aoliva@redhat.com>
5421
5422 * config.guess, config.sub, install-sh: Removed.
5423 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5424 * Makefile.in: Rebuilt.
5425
5426 * acinclude.m4: Include libtool macros from the top level.
5427 * aclocal.m4, configure: Rebuilt.
5428
54292000-08-22 Alexandre Oliva <aoliva@redhat.com>
5430
5431 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5432 * configure: Rebuilt.
5433
54342000-05-11 Scott Bambrough <scottb@netwinder.org>
5435
5436 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5437 memory correctly. Use conditional instructions, not branches where
5438 possible.
5439
54402000-05-04 Tom Tromey <tromey@cygnus.com>
5441
5442 * configure: Rebuilt.
5443 * configure.in: Match `arm*-*-linux-*'.
5444 From Chris Dornan <cdornan@arm.com>.
5445
54462000-04-28 Jakub Jelinek <jakub@redhat.com>
5447
5448 * Makefile.am (SUBDIRS): Define.
5449 (AM_MAKEFLAGS): Likewise.
5450 (Multilib support.): Add section.
5451 * Makefile.in: Rebuilt.
5452 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5453 New variables. Set for gcc using -print-multi-lib. Export them
5454 to libtool.
5455 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5456 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5457 for -shared links.
5458 (extra_compiler_flags_value, extra_compiler_flags): Check these
5459 for extra compiler options which need to be passed down in
5460 compiler_flags.
5461
54622000-04-16 Anthony Green <green@redhat.com>
5463
5464 * configure: Rebuilt.
5465 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5466
54672000-04-14 Jakub Jelinek <jakub@redhat.com>
5468
5469 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5470 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5471 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5472 Replace all void * sizeofs with sizeof(int).
5473 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5474 different than DOUBLE.
5475 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5476 (ffi_prep_args_v9): New function.
5477 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5478 (ffi_V9_return_struct): New function.
5479 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5480 32bit code (not yet cross-arch calls).
5481 * src/sparc/v8.S: Add struct return delay nop.
5482 Handle long long.
5483 * src/sparc/v9.S: New file.
5484 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5485 is used on sparc64 only for structures larger than 32 bytes.
5486 Pass by reference for structures is done for structure arguments
5487 larger than 16 bytes.
5488 * src/ffitest.c (main): Use 64bit rint on sparc64.
5489 Run long long tests on sparc.
5490 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5491 sparc64.
5492 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5493 on sparc64.
5494 * configure.in (sparc-*-linux*): New supported target.
5495 (sparc64-*-linux*): Likewise.
5496 * configure: Rebuilt.
5497 * Makefile.am: Add v9.S to SPARC files.
5498 * Makefile.in: Likewise.
5499 (LINK): Surround $(CCLD) into double quotes, so that multilib
5500 compiles work correctly.
5501
55022000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5503
5504 * configure: Rebuilt.
5505 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5506 proposed by Bryce McKinlay.
5507
55082000-03-20 Tom Tromey <tromey@cygnus.com>
5509
5510 * Makefile.in: Hand edit for java_raw_api.lo.
5511
55122000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5513
5514 * config.guess, config.sub: Update from the gcc tree.
5515 Fix for PR libgcj/168.
5516
55172000-03-03 Tom Tromey <tromey@cygnus.com>
5518
5519 * Makefile.in: Fixed ia64 by hand.
5520
5521 * configure: Rebuilt.
5522 * configure.in (--enable-multilib): New option.
5523 (libffi_basedir): New subst.
5524 (AC_OUTPUT): Added multilib code.
5525
55262000-03-02 Tom Tromey <tromey@cygnus.com>
5527
5528 * Makefile.in: Rebuilt.
5529 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5530 directory name.
5531
55322000-02-25 Hans Boehm <boehm@acm.org>
5533
5534 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5535 files.
5536 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5537 list.
5538 (ffi_prep_raw_closure): Use ffi_translate_args, not
5539 ffi_closure_translate.
5540 * src/java_raw_api.c: New file.
5541 * src/ffitest.c (closure_test_fn): New function.
5542 (main): Define `rint' as long long on IA64. Added new test when
5543 FFI_CLOSURES is defined.
5544 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5545 (ffi_abi): Recognize IA64.
5546 (ffi_raw): Added `flt' field.
5547 Added "Java raw API" code.
5548 * configure.in: Recognize ia64.
5549 * Makefile.am (TARGET_SRC_IA64): New macro.
5550 (libffi_la_common_SOURCES): Added java_raw_api.c.
5551 (libffi_la_SOURCES): Define in IA64 case.
5552
55532000-01-04 Tom Tromey <tromey@cygnus.com>
5554
5555 * Makefile.in: Rebuilt with newer automake.
5556
55571999-12-31 Tom Tromey <tromey@cygnus.com>
5558
5559 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5560
55611999-09-01 Tom Tromey <tromey@cygnus.com>
5562
5563 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5564 undefs.
5565 * fficonfig.h.in: Rebuilt.
5566 * configure: Rebuilt.
5567 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5568 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5569 * acconfig.h: Don't #undef PACKAGE or VERSION.
5570
55711999-08-09 Anthony Green <green@cygnus.com>
5572
5573 * include/ffi.h.in: Try to work around messy header problem
5574 with PACKAGE and VERSION.
5575
5576 * configure: Rebuilt.
5577 * configure.in: Change version to 2.00-beta.
5578
5579 * fficonfig.h.in: Rebuilt.
5580 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5581
5582 * src/x86/ffi.c (ffi_raw_call): Rename.
5583
55841999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5585
5586 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5587 (ffi_prep_incoming_args_SYSV): Ditto.
5588 (ffi_prep_closure): Ditto.
5589 (ffi_closure_raw_SYSV): Ditto.
5590 (ffi_prep_raw_closure): More ditto.
5591 (ffi_call_raw): Final ditto.
5592
5593 * include/ffi.h.in: Add definitions for closure and raw API.
5594
5595 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5596 FFI_TYPE_UINT64.
5597
5598 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5599
5600 * src/raw_api.c: New file.
5601
5602 * include/ffi.h.in (ffi_raw): New type.
5603 (UINT_ARG, SINT_ARG): New defines.
5604 (ffi_closure, ffi_raw_closure): New types.
5605 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5606
5607 * configure.in: Add check for endianness and sizeof void*.
5608
5609 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5610 instead of directly.
5611
5612 * configure: Rebuilt.
5613
5614Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5615
5616 * configure.in: Add x86 and powerpc BeOS configurations.
5617 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5618
56191999-05-09 Anthony Green <green@cygnus.com>
5620
5621 * configure.in: Add warning about this being beta code.
5622 Remove src/Makefile.am from the picture.
5623 * configure: Rebuilt.
5624
5625 * Makefile.am: Move logic from src/Makefile.am. Add changes
5626 to support libffi as a target library.
5627 * Makefile.in: Rebuilt.
5628
5629 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5630 Upgraded to new autoconf, automake, libtool.
5631
5632 * README: Tweaks.
5633
5634 * LICENSE: Update copyright date.
5635
5636 * src/Makefile.am, src/Makefile.in: Removed.
5637
56381998-11-29 Anthony Green <green@cygnus.com>
5639
5640 * include/ChangeLog: Removed.
5641 * src/ChangeLog: Removed.
5642 * src/mips/ChangeLog: Removed.
5643 * src/sparc/ChangeLog: Remboved.
5644 * src/x86/ChangeLog: Removed.
5645
5646 * ChangeLog.v1: Created.