blob: 29a4dbac009dbac87a8e8ee941b76231fd64f657 [file] [log] [blame]
Konstantin Belousov05c31092013-11-06 06:40:58 -050012013-11-06 Konstantin Belousov <kib@freebsd.org>
2
3 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
4 source as not requiring executable stack.
5
Anthony Greencf6bf982013-11-02 17:23:59 -040062013-11-02 Anthony Green <green@moxielogic.com>
7
8 * doc/libffi.texi (The Basics): Clarify return value buffer size
9 requirements. Also, NULL result buffer pointers are no longer
10 supported.
11 * doc/libffi.info: Rebuilt.
12
Anthony Greenc2422172013-11-02 14:08:23 -0700132013-11-02 Mischa Jonker <mjonker@synopsys.com>
14
15 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
16 * Makefile.in: Rebuilt.
17
182013-11-02 David Schneider <david.schneider@bivab.de>
19
20 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
21 * testsuite/libffi.call/many_mixed.c: New file.
22 * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
23
Anthony Greenf4b843f2013-11-02 17:01:15 -0400242013-11-02 Vitaly Budovski
25
26 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
27
Mark H Weaverd3372c52013-10-26 08:30:06 -0400282013-10-23 Mark H Weaver <mhw@netris.org>
29
30 * src/mips/ffi.c: Fix handling of uint32_t arguments on the
31 MIPS N32 ABI.
32
Sandra Loosemore16b93a22013-10-15 15:33:59 -0400332013-10-13 Sandra Loosemore <sandra@codesourcery.com>
34
35 * README: Add Nios II to table of supported platforms.
36 * Makefile.am (EXTRA_DIST): Add nios2 files.
37 (nodist_libffi_la_SOURCES): Likewise.
38 * Makefile.in: Regenerated.
39 * configure.ac (nios2*-linux*): New host.
40 (NIOS2): Add AM_CONDITIONAL.
41 * configure: Regenerated.
42 * src/nios2/ffi.c: New.
43 * src/nios2/ffitarget.h: New.
44 * src/nios2/sysv.S: New.
45 * src/prep_cif.c (initialize_aggregate): Handle extra structure
46 alignment via FFI_AGGREGATE_ALIGNMENT.
47 (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
48
Sandra Loosemore2f5626c2013-10-15 15:32:16 -0400492013-10-10 Sandra Loosemore <sandra@codesourcery.com>
50
51 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
52 Fix uninitialized variable.
53
Marcus Shawcroftf64e4a82013-10-15 15:20:14 -0400542013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
55
56 * testsuite/libffi.call/many.c (many): Replace * with +.
57
Anthony Green128cd1d2013-10-08 06:45:51 -0400582013-10-08 Ondřej Bílka <neleai@seznam.cz>
59
60 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
61 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
62 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
63 src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
64 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
65 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
66 spelling errors.
67
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400682013-10-08 Anthony Green <green@moxielogic.com>
69
70 * aclocal.m4, compile, config.guess, config.sub, depcomp,
71 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
72 * configure.ac: Update version to 3.0.14-rc0.
73 * Makefile.in, configure, Makefile.in, include/Makefile.in,
74 man/Makefile.in, testsuite/Makefile.in: Rebuilt.
Anthony Green128cd1d2013-10-08 06:45:51 -040075 * README: Mention M88K and VAX.
Anthony Greend2fcbcd2013-10-08 06:27:46 -040076
772013-07-15 Miod Vallat <miod@openbsd.org>
78
79 * Makefile.am,
80 configure.ac,
81 src/m88k/ffi.c,
82 src/m88k/ffitarget.h,
83 src/m88k/obsd.S,
84 src/vax/elfbsd.S,
85 src/vax/ffi.c,
86 src/vax/ffitarget.h: Add m88k and vax support.
87
Anthony Greend3d099b2013-07-02 16:11:38 -0400882013-06-24 Alan Modra <amodra@gmail.com>
89
90 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
91 before statements.
92 (ffi_prep_args64): Support little-endian.
93 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
94 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
95 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
96
Mischa Jonkerb082e152013-06-10 16:19:33 +0200972013-06-12 Mischa Jonker <mjonker@synopsys.com>
98
99 * configure.ac: Add support for ARC.
100 * Makefile.am: Likewise.
101 * README: Add ARC details.
102 * src/arc/arcompact.S: New.
103 * src/arc/ffi.c: Likewise.
104 * src/arc/ffitarget.h: Likewise.
105
David Schneider4750e3c2013-03-28 16:56:36 +01001062013-03-28 David Schneider <david.schneider@bivab.de>
107
108 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
109 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
110 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
111 mixed arguments, many doubles.
112 * testsuite/libffi.call/many_double.c: testcase for calling a function using
113 more than 8 doubles.
114 * testcase/libffi.call/many.c: use absolute value to check result against an
115 epsilon
116
Anthony Greencb32c812013-03-17 09:27:55 -04001172013-03-17 Anthony Green <green@moxielogic.com>
118
Anthony Green12b18862013-03-17 18:32:12 -0400119 * README: Update for 3.0.13.
120 * configure.ac: Ditto.
121 * configure: Rebuilt.
122 * doc/*: Update version.
123
1242013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
125
126 * src/closures.c (is_emutramp_enabled
127 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
128 enclosing #if scope.
129
1302013-03-17 Anthony Green <green@moxielogic.com>
131
Anthony Greencb32c812013-03-17 09:27:55 -0400132 * configure.ac: Only modify toolexecdir in certain cases.
133 * configure: Rebuilt.
134
Anthony Green4acf0052013-03-16 08:18:45 -04001352013-03-16 Gilles Talis <gilles.talis@gmail.com>
136
137 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
138 fparg_count,etc on __NO_FPRS__ targets.
139
Anthony Green8a286f52013-03-16 08:01:19 -04001402013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
141
Anthony Green4acf0052013-03-16 08:18:45 -0400142 * src/m68k/sysv.S (epilogue): Don't use extb instruction on
Anthony Green8a286f52013-03-16 08:01:19 -0400143 m680000 machines.
144
Anthony Green211a9eb2013-03-16 04:24:40 -07001452013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
146
147 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
148
Anthony Green2fb527a2013-03-16 07:46:38 -04001492013-03-13 Markos Chandras <markos.chandras@imgtec.com>
150
151 * configure.ac: Add support for Imagination Technologies Meta.
152 * Makefile.am: Likewise.
153 * README: Add Imagination Technologies Meta details.
154 * src/metag/ffi.c: New.
155 * src/metag/ffitarget.h: Likewise.
156 * src/metag/sysv.S: Likewise.
157
Anthony Green675c9832013-03-16 08:12:38 -04001582013-02-24 Andreas Schwab <schwab@linux-m68k.org>
159
160 * doc/libffi.texi (Structures): Fix missing category argument of
161 @deftp.
162
Anthony Greenf308faf2013-02-11 14:25:13 -05001632013-02-11 Anthony Green <green@moxielogic.com>
164
165 * configure.ac: Update release number to 3.0.12.
166 * configure: Rebuilt.
167 * README: Update release info.
168
1692013-02-10 Anthony Green <green@moxielogic.com>
170
171 * README: Add Moxie.
172 * src/moxie/ffi.c: Created.
173 * src/moxie/eabi.S: Created.
174 * src/moxie/ffitarget.h: Created.
175 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
176 * Makefile.in: Rebuilt.
177 * configure.ac: Add Moxie.
178 * configure: Rebuilt.
179 * testsuite/libffi.call/huge_struct.c: Disable format string
180 warnings for moxie*-*-elf tests.
181
1822013-02-10 Anthony Green <green@moxielogic.com>
183
184 * Makefile.am (LTLDFLAGS): Fix reference.
185 * Makefile.in: Rebuilt.
186
Anthony Green4ea22e52013-02-10 08:48:38 -05001872013-02-10 Anthony Green <green@moxielogic.com>
188
189 * README: Update supported platforms. Update test results link.
190
Anthony Green10e77222013-02-10 08:47:26 -05001912013-02-09 Anthony Green <green@moxielogic.com>
192
193 * testsuite/libffi.call/negint.c: Remove forced -O2.
194 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
195 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
196
197 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
198 closure return type fix developed by Martin v. Löwis for cpython
199 fork.
200
Anthony Green70b11b42013-02-08 16:12:19 -05002012013-02-08 Andreas Tobler <andreast@fgznet.ch>
202
203 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
204 support.
205 * src/powerpc/sysv.S: Ditto.
206
Anthony Green63ba1fa2013-02-08 15:18:19 -05002072013-02-08 Anthony Green <green@moxielogic.com>
208
209 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
210 arm*-*-*.
211
2122013-02-08 Anthony Green <green@moxielogic.com>
213
214 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
215
Anthony Green24fbca42013-02-08 14:19:56 -05002162013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -0500217
218 * man/ffi_prep_cif.3: Clean up for debian linter.
219
Anthony Green24fbca42013-02-08 14:19:56 -05002202013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -0500221
222 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
223 on the stack.
224
Anthony Greencb03ea82013-02-08 12:25:18 -05002252013-02-08 Anthony Green <green@moxielogic.com>
226
Anthony Green7aab8252013-02-08 13:26:21 -0500227 * Makefile.am (EXTRA_DIST): Add missing files.
228 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
229 * Makefile.in: Rebuilt.
230
2312013-02-08 Anthony Green <green@moxielogic.com>
232
Anthony Greencb03ea82013-02-08 12:25:18 -0500233 * configure.ac: Move sparc asm config checks to within functions
234 for compatibility with sun tools.
235 * configure: Rebuilt.
236 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
237 systems.
238 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
239 flusher.
240
Anthony Green35ee8d42013-02-08 07:12:41 -05002412013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
242
243 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
244 small big-endian structures.
245 (ffi_prep_args): Ditto.
246
Anthony Greened6ae952013-02-07 16:43:36 -05002472013-02-07 Anthony Green <green@moxielogic.com>
248
Anthony Green9db7e1a2013-02-07 21:06:08 -0500249 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
250 (effectively hiding ffi_call_v8).
251
2522013-02-07 Anthony Green <green@moxielogic.com>
253
Anthony Greence0138e2013-02-07 18:04:01 -0500254 * configure.ac: Update bug reporting address.
255 * configure.in: Rebuild.
256
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500257 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
258 Sun compiler.
259 * src/sparc/ffi.c (ffi_call): Remove warning.
260 Call ffi_flush_icache for non-GCC builds.
261 (ffi_prep_closure_loc): Use ffi_flush_icache.
262
Anthony Greened6ae952013-02-07 16:43:36 -0500263 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
264 * Makefile.in: Rebuilt.
265 * libtool-ldflags: New file.
266
Anthony Greenffef2e02013-02-07 15:47:01 -05002672013-02-07 Daniel Schepler <dschepler@gmail.com>
268
269 * configure.ac: Correctly identify x32 systems as 64-bit.
270 * m4/libtool.m4: Remove libtool expr error.
271 * aclocal.m4, configure: Rebuilt.
272
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05002732013-02-07 Anthony Green <green@moxielogic.com>
274
Anthony Green176aa9d2013-02-07 15:29:22 -0500275 * configure.ac: Fix GCC usage test.
276 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500277 * README: Mention LLVM/GCC x86_64 issue.
278 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500279
2802013-02-07 Anthony Green <green@moxielogic.com>
281
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500282 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
283 comments with /* */ for xlc compiler.
284 * testsuite/libffi.call/stret_large.c (main): Ditto.
285 * testsuite/libffi.call/stret_large2.c (main): Ditto.
286 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
287 * testsuite/libffi.call/huge_struct.c (main): Ditto.
288 * testsuite/libffi.call/float_va.c (main): Ditto.
289 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
290 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
291 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
292 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
293
Anthony Greenf7cd61e2013-02-06 17:38:04 -05002942013-02-06 Anthony Green <green@moxielogic.com>
295
Anthony Green522f8fe2013-02-06 20:31:31 -0500296 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
297
2982013-02-06 Anthony Green <green@moxielogic.com>
299
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500300 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
301 * Makefile.in: Rebuild.
302
Anthony Green6a790122013-02-06 17:37:15 -05003032013-02-02 Mark H Weaver <mhw@netris.org>
304
305 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
306 via general purpose registers.
307
Anthony Greenaeb87192013-01-21 07:37:30 -05003082013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
309
310 * README: Add MicroBlaze details.
311 * Makefile.am: Add MicroBlaze support.
312 * configure.ac: Likewise.
313 * src/microblaze/ffi.c: New.
314 * src/microblaze/ffitarget.h: Likewise.
315 * src/microblaze/sysv.S: Likewise.
316
3172013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
318 * testsuite/libffi.call/return_uc.c: Fixed issue.
319
Anthony Green20cae322013-01-21 07:07:38 -05003202013-01-21 Chris Zankel <chris@zankel.net>
321
322 * README: Add Xtensa support.
323 * Makefile.am: Likewise.
324 * configure.ac: Likewise.
325 * Makefile.in Regenerate.
326 * configure: Likewise.
327 * src/prep_cif.c: Handle Xtensa.
328 * src/xtensa: New directory.
329 * src/xtensa/ffi.c: New file.
330 * src/xtensa/ffitarget.h: Ditto.
331 * src/xtensa/sysv.S: Ditto.
332
Anthony Greenbff052d2013-01-11 10:24:32 -05003332013-01-11 Anthony Green <green@moxielogic.com>
334
Anthony Green05fbe1f2013-01-11 16:54:40 -0500335 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
336 comments with /* */ for xlc compiler.
337 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500338 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
339 deprecated inline function.
340 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500341 * README: Add update for AIX support.
342
3432013-01-11 Anthony Green <green@moxielogic.com>
344
Anthony Greenbff052d2013-01-11 10:24:32 -0500345 * configure.ac: Robustify pc relative reloc check.
346 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
347 changing option for 32-bit x86.
348 * aclocal.m4, configure: Rebuilt.
349 * README: Update supported target list.
350
Anthony Green2d9b3932013-01-09 21:14:54 -05003512013-01-10 Anthony Green <green@moxielogic.com>
352
Anthony Greencd41aea2013-01-10 17:25:45 -0500353 * README (tested): Add Compiler column to table.
354
3552013-01-10 Anthony Green <green@moxielogic.com>
356
Anthony Green8bf987d2013-01-10 17:24:51 -0500357 * src/x86/ffi64.c (struct register_args): Make sse array and array
358 of unions for sunpro compiler compatibility.
359
3602013-01-10 Anthony Green <green@moxielogic.com>
361
Anthony Green13e2d7b2013-01-10 10:52:02 -0500362 * configure.ac: Test target platform size_t size. Handle both 32
363 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
364 CFLAG option to change default settings).
365 * configure, aclocal.m4: Rebuilt.
366
3672013-01-10 Anthony Green <green@moxielogic.com>
368
Anthony Green51415432013-01-10 07:35:53 -0500369 * testsuite/libffi.special/special.exp: Only run exception
370 handling tests when using GNU compiler.
371
Anthony Green56ba8d82013-01-10 07:25:10 -0500372 * m4/ax_compiler_vendor.m4: New file.
373 * configure.ac: Test for compiler vendor and don't use
374 AX_CFLAGS_WARN_ALL with the sun compiler.
375 * aclocal.m4, configure: Rebuilt.
376
3772013-01-10 Anthony Green <green@moxielogic.com>
378
Anthony Green6a028ca2013-01-10 01:19:43 -0500379 * include/ffi_common.h: Don't use GCCisms to define types when
380 building with the SUNPRO compiler.
381
3822013-01-10 Anthony Green <green@moxielogic.com>
383
Anthony Green2d9b3932013-01-09 21:14:54 -0500384 * configure.ac: Put local.exp in the right place.
385 * configure: Rebuilt.
386
387 * src/x86/ffi.c: Update comment about regparm function attributes.
388 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
389 that all function arguments be passed on the stack (no regparm
390 support).
391
Anthony Greenf7879bc2013-01-08 07:30:28 -05003922013-01-08 Anthony Green <green@moxielogic.com>
393
Anthony Green83089842013-01-08 15:14:21 -0500394 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
395 when we are using the vendor compiler.
396 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
397 ../local.exp.
398 * configure, testsuite/Makefile.in: Rebuilt.
399
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500400 * testsuite/libffi.call/call.exp: Run tests with different
401 options, depending on whether or not we are using gcc or the
402 vendor compiler.
403 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
404 whether or not we are building/testing with gcc.
405
4062013-01-08 Anthony Green <green@moxielogic.com>
407
Anthony Green74c776e2013-01-08 12:25:54 -0500408 * configure.ac: Switch x86 solaris target to X86 by default.
409 * configure: Rebuilt.
410
4112013-01-08 Anthony Green <green@moxielogic.com>
412
Anthony Green8962c8c2013-01-08 12:22:24 -0500413 * configure.ac: Fix test for read-only eh_frame.
414 * configure: Rebuilt.
415
4162013-01-08 Anthony Green <green@moxielogic.com>
417
Anthony Green35ddb692013-01-08 07:53:37 -0500418 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
419 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500420 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
421 compiler.
422
Anthony Green8f4772f2013-01-07 06:14:53 -05004232013-01-07 Thorsten Glaser <tg@mirbsd.org>
424
Anthony Green67cea902013-01-07 06:30:24 -0500425 * testsuite/libffi.call/cls_uchar_va.c,
426 testsuite/libffi.call/cls_ushort_va.c,
427 testsuite/libffi.call/va_1.c: Testsuite fixes.
428
4292013-01-07 Thorsten Glaser <tg@mirbsd.org>
430
Anthony Green8f4772f2013-01-07 06:14:53 -0500431 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
432 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
433 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
434
Anthony Greenea7f8442013-01-04 09:09:32 -05004352013-01-04 Anthony Green <green@moxielogic.com>
436
437 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
438 and -Wall. This is set in the configure script after testing for
439 GCC.
440 * Makefile.in: Rebuilt.
441
Anthony Greenf06c0f12013-01-02 09:39:17 -05004422013-01-02 rofl0r <https://github.com/rofl0r>
443
444 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
445 when long double == double.
446
4472013-01-02 Reini Urban <rurban@x-ray.at>
448
449 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
450 (required for shared libs on cygwin/mingw).
451 * Makefile.in: Rebuilt.
452
Anthony Greend3d099b2013-07-02 16:11:38 -04004532012-10-31 Alan Modra <amodra@gmail.co>
Anthony Greendfadfb12012-10-31 06:46:41 -0400454
455 * src/powerpc/linux64_closure.S: Add new ABI support.
456 * src/powerpc/linux64.S: Likewise.
457
Anthony Greene944b8c2012-10-30 14:06:09 -04004582012-10-30 Magnus Granberg <zorry@gentoo.org>
459 Pavel Labushev <pavel.labushev@runbox.ru>
460
461 * configure.ac: New options pax_emutramp
462 * configure, fficonfig.h.in: Regenerated
463 * src/closures.c: New function emutramp_enabled_check() and
464 checks.
465
Anthony Greenf3429962012-10-30 07:42:27 -04004662012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
467
468 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
469 lion) and future version.
470 * configure: Rebuild.
471
Anthony Green58e8b662012-10-30 07:07:19 -04004722012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
473 Marcus Shawcroft <marcus.shawcroft at arm.com>
474
475 * README: Add details of aarch64 port.
476 * src/aarch64/ffi.c: New.
477 * src/aarch64/ffitarget.h: Likewise.
478 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500479 * Makefile.am: Support aarch64.
480 * configure.ac: Support aarch64.
481 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400482
4832012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
484 Marcus Shawcroft <marcus.shawcroft at arm.com>
485
486 * testsuite/lib/libffi.exp: Add support for aarch64.
487 * testsuite/libffi.call/cls_struct_va1.c: New.
488 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
489 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500490 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400491 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
492 * testsuite/libffi.call/nested_struct11.c: Likewise.
493 * testsuite/libffi.call/uninitialized.c: Likewise.
494 * testsuite/libffi.call/va_1.c: Likewise.
495 * testsuite/libffi.call/va_struct1.c: Likewise.
496 * testsuite/libffi.call/va_struct2.c: Likewise.
497 * testsuite/libffi.call/va_struct3.c: Likewise.
498
Anthony Green9c00a3f2012-10-12 16:46:06 -04004992012-10-12 Walter Lee <walt@tilera.com>
500
501 * Makefile.am: Add TILE-Gx/TILEPro support.
502 * configure.ac: Likewise.
503 * Makefile.in: Regenerate.
504 * configure: Likewise.
505 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
506 * src/tile: New directory.
507 * src/tile/ffi.c: New file.
508 * src/tile/ffitarget.h: Ditto.
509 * src/tile/tile.S: Ditto.
510
5112012-10-12 Matthias Klose <doko@ubuntu.com>
512
513 * generate-osx-source-and-headers.py: Normalize whitespace.
514
Anthony Green048d2f42012-10-11 10:55:25 -04005152012-09-14 David Edelsohn <dje.gcc@gmail.com>
516
517 * configure: Regenerated.
518
5192012-08-26 Andrew Pinski <apinski@cavium.com>
520
521 PR libffi/53014
522 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
523 soft-float.
524
5252012-08-08 Uros Bizjak <ubizjak@gmail.com>
526
527 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
528 just return FFI_BAD_ABI when things are wrong.
529
5302012-07-18 H.J. Lu <hongjiu.lu@intel.com>
531
532 PR libffi/53982
533 PR libffi/53973
534 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
535 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
536
5372012-05-16 H.J. Lu <hongjiu.lu@intel.com>
538
539 * configure: Regenerated.
540
Nicolas Lelongd330f192012-05-05 09:37:02 -04005412012-05-05 Nicolas Lelong
542
543 * libffi.xcodeproj/project.pbxproj: Fixes.
544 * README: Update for iOS builds.
545
Anthony Green213ed152012-04-27 01:34:15 -04005462012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
547
548 * configure.ac: Add Blackfin/sysv support
549 * Makefile.am: Add Blackfin/sysv support
550 * src/bfin/ffi.c: Add Blackfin/sysv support
551 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400552
Anthony Green7e0a4122012-04-11 22:47:44 -04005532012-04-11 Anthony Green <green@moxielogic.com>
554
555 * Makefile.am (EXTRA_DIST): Add new script.
556 * Makefile.in: Rebuilt.
557
Zachary Waldowski39e6a582012-04-11 22:39:46 -04005582012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
559
560 * generate-ios-source-and-headers.py,
561 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
562 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
563 generation into an Xcode "run script" phase. Include both as
564 Xcode build scripts. Don't always regenerate config files.
565
Anthony Green853cc722012-04-10 06:33:33 -04005662012-04-10 Anthony Green <green@moxielogic.com>
567
568 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
569
Anthony Green3f502302012-04-06 20:34:51 -04005702012-04-06 Anthony Green <green@moxielogic.com>
571
572 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
573 * Makefile.in: Rebuilt.
574
Mike Lewisebb8e892012-04-06 20:02:08 -04005752012-04-06 Mike Lewis <mikelikespie@gmail.com>
576
577 * generate-ios-source-and-headers.py: New file.
578 * libffi.xcodeproj/project.pbxproj: New file.
579 * README: Update instructions on building iOS binary.
580 * build-ios.sh: Delete.
581
Anthony Greena044a562012-04-06 10:39:10 -04005822012-04-06 Anthony Green <green@moxielogic.com>
583
584 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
585 compilers, then use it.
586
Anthony Green048d2f42012-10-11 10:55:25 -04005872012-04-06 H.J. Lu <hongjiu.lu@intel.com>
588
589 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
590
Anthony Green59bb61a2012-04-06 08:26:14 -04005912012-04-06 Anthony Green <green@moxielogic.com>
592
593 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
594 * testsuite/Makefile.in: Rebuilt.
595
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04005962012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
597
598 * include/ffi.h.in: Add missing trampoline table fields.
599 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
600 in CNAME.
601 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
602
Anthony Green089dbce2013-01-02 08:37:35 -05006032012-04-02 Peter Bergner <bergner@vnet.ibm.com>
604
605 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
606 Silence casting pointer to integer of different size warning.
607 Delete goto to previously deleted label.
608 (ffi_call): Silence possibly undefined warning.
609 (ffi_closure_helper_SYSV): Declare variable type.
610
6112012-04-02 Peter Rosin <peda@lysator.liu.se>
612
613 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
614 value in the Intel version as is already done for the AT&T version.
615 (ffi_closure_SYSV): Likewise.
616 (ffi_closure_raw_SYSV): Likewise.
617 (ffi_closure_STDCALL): Likewise.
618
Peter Rosin0a1ab122012-03-30 08:14:08 -04006192012-03-29 Peter Rosin <peda@lysator.liu.se>
620
621 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
622 generation, fix the ENDP label and remove the surplus third arg
623 from the 'lea' insn.
624
6252012-03-29 Peter Rosin <peda@lysator.liu.se>
626
627 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
628 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
629 it. Also instruct the assembler to add a frame to the function.
630
6312012-03-23 Peter Rosin <peda@lysator.liu.se>
632
633 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
634 * Makefile.in: Rebuilt.
635 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
636 to all data exports, when compiling libffi clients using MSVC.
637
6382012-03-29 Peter Rosin <peda@lysator.liu.se>
639
640 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
641 make it the default for MSVC.
642 (FFI_TYPE_MS_STRUCT): New structure return convention.
643 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
644 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
645 instead of an ordinary FFI_TYPE_STRUCT.
646 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
647 (ffi_call): Likewise.
648 (ffi_prep_incoming_args_SYSV): Likewise.
649 (ffi_raw_call): Likewise.
650 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
651 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
652 return a pointer to the result structure in eax and don't pop
653 that pointer from the stack, the caller takes care of it.
654 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
655 (ffi_closure_raw_SYSV): Likewise.
656
6572012-03-22 Peter Rosin <peda@lysator.liu.se>
658
659 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
660 assembly version with Intel syntax.
661 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
662
6632012-03-23 Peter Rosin <peda@lysator.liu.se>
664
665 * testsuite/libffi.call/ffitest.h: Provide abstration of
666 __attribute__((fastcall)) in the form of a __FASTCALL__
667 define. Define it to __fastcall for MSVC.
668 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
669 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
670 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
671 * testsuite/libffi.call/strlen2_win32.c: Likewise.
672 * testsuite/libffi.call/struct1_win32.c: Likewise.
673 * testsuite/libffi.call/struct2_win32.c: Likewise.
674
6752012-03-22 Peter Rosin <peda@lysator.liu.se>
676
677 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
678 frame on function entry, MASM adds one automatically.
679
6802012-03-22 Peter Rosin <peda@lysator.liu.se>
681
682 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
683 bits in the MSVC headers.
684
6852012-03-22 Peter Rosin <peda@lysator.liu.se>
686
687 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
688 with no declarations after statements.
689 * testsuite/libffi.call/cls_16byte.c: Likewise.
690 * testsuite/libffi.call/cls_18byte.c: Likewise.
691 * testsuite/libffi.call/cls_19byte.c: Likewise.
692 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
693 * testsuite/libffi.call/cls_20byte.c: Likewise.
694 * testsuite/libffi.call/cls_20byte1.c: Likewise.
695 * testsuite/libffi.call/cls_24byte.c: Likewise.
696 * testsuite/libffi.call/cls_2byte.c: Likewise.
697 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
698 * testsuite/libffi.call/cls_3byte1.c: Likewise.
699 * testsuite/libffi.call/cls_3byte2.c: Likewise.
700 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
701 * testsuite/libffi.call/cls_4byte.c: Likewise.
702 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
703 * testsuite/libffi.call/cls_5byte.c: Likewise.
704 * testsuite/libffi.call/cls_64byte.c: Likewise.
705 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
706 * testsuite/libffi.call/cls_6byte.c: Likewise.
707 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
708 * testsuite/libffi.call/cls_7byte.c: Likewise.
709 * testsuite/libffi.call/cls_8byte.c: Likewise.
710 * testsuite/libffi.call/cls_9byte1.c: Likewise.
711 * testsuite/libffi.call/cls_9byte2.c: Likewise.
712 * testsuite/libffi.call/cls_align_double.c: Likewise.
713 * testsuite/libffi.call/cls_align_float.c: Likewise.
714 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
715 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
716 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
717 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
718 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
719 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
720 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
721 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
722 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
723 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
724 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
725 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
726 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
727 * testsuite/libffi.call/huge_struct.c: Likewise.
728 * testsuite/libffi.call/nested_struct.c: Likewise.
729 * testsuite/libffi.call/nested_struct1.c: Likewise.
730 * testsuite/libffi.call/nested_struct10.c: Likewise.
731 * testsuite/libffi.call/nested_struct2.c: Likewise.
732 * testsuite/libffi.call/nested_struct3.c: Likewise.
733 * testsuite/libffi.call/nested_struct4.c: Likewise.
734 * testsuite/libffi.call/nested_struct5.c: Likewise.
735 * testsuite/libffi.call/nested_struct6.c: Likewise.
736 * testsuite/libffi.call/nested_struct7.c: Likewise.
737 * testsuite/libffi.call/nested_struct8.c: Likewise.
738 * testsuite/libffi.call/nested_struct9.c: Likewise.
739 * testsuite/libffi.call/stret_large.c: Likewise.
740 * testsuite/libffi.call/stret_large2.c: Likewise.
741 * testsuite/libffi.call/stret_medium.c: Likewise.
742 * testsuite/libffi.call/stret_medium2.c: Likewise.
743 * testsuite/libffi.call/struct1.c: Likewise.
744 * testsuite/libffi.call/struct1_win32.c: Likewise.
745 * testsuite/libffi.call/struct2.c: Likewise.
746 * testsuite/libffi.call/struct2_win32.c: Likewise.
747 * testsuite/libffi.call/struct3.c: Likewise.
748 * testsuite/libffi.call/struct4.c: Likewise.
749 * testsuite/libffi.call/struct5.c: Likewise.
750 * testsuite/libffi.call/struct6.c: Likewise.
751 * testsuite/libffi.call/struct7.c: Likewise.
752 * testsuite/libffi.call/struct8.c: Likewise.
753 * testsuite/libffi.call/struct9.c: Likewise.
754 * testsuite/libffi.call/testclosure.c: Likewise.
755
Anthony Greene72ed5e2012-03-21 09:52:28 -04007562012-03-21 Peter Rosin <peda@lysator.liu.se>
757
758 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
759 printing doubles (%lf is for long doubles).
760 (main): Likewise.
761
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007622012-03-21 Peter Rosin <peda@lysator.liu.se>
763
764 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
765 (set_ld_library_path_env_vars): Add the library search dir to PATH
766 (and save PATH for later).
767 (restore_ld_library_path_env_vars): Restore PATH.
768
Anthony Greenccee09a2013-01-02 08:41:55 -05007692012-03-21 Peter Rosin <peda@lysator.liu.se>
770
771 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
772 (set_ld_library_path_env_vars): Add the library search dir to PATH
773 (and save PATH for later).
774 (restore_ld_library_path_env_vars): Restore PATH.
775
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007762012-03-20 Peter Rosin <peda@lysator.liu.se>
777
778 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
779 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
780 visible outside the PROC, so that ffi_closure_THISCALL can see it.
781
Anthony Green048d2f42012-10-11 10:55:25 -04007822012-03-20 Peter Rosin <peda@lysator.liu.se>
783
784 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
785 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
786 visible outside the PROC, so that ffi_closure_THISCALL can see it.
787
Anthony Greenbd78c9c2012-03-21 08:09:30 -04007882012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
789
790 * src/m68k/ffi.c: Add MINT support.
791 * src/m68k/sysv.S: Ditto.
792
Anthony Green048d2f42012-10-11 10:55:25 -04007932012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
794
795 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
796 ffi_call_VFP().
797 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
798 ffi_closure_VFP.
799 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
800
Anthony Green089dbce2013-01-02 08:37:35 -05008012012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400802
Anthony Green089dbce2013-01-02 08:37:35 -0500803 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
804 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400805
Anthony Green84d32532012-03-19 23:07:35 -04008062012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
807
808 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
809 just return FFI_BAD_ABI when things are wrong.
810 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
811
8122012-03-09 David Edelsohn <dje.gcc@gmail.com>
813
814 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
815 change to return value of ffi_closure_helper_DARWIN and load type
816 from return type.
817
Anthony Green964c5b92012-03-03 14:46:20 -05008182012-03-03 H.J. Lu <hongjiu.lu@intel.com>
819
820 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
821 long.
822 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
823 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
824 first.
825
826 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
827 (ffi_arg): Set to unsigned long long for x32.
828 (ffi_sarg): Set to long long for x32.
829
8302012-03-03 H.J. Lu <hongjiu.lu@intel.com>
831
832 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
833
Anthony Green6c194232012-03-03 14:17:54 -05008342012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
835
836 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
837 windows-like hosts.
838 * configure: Rebuilt.
839
Anthony Green7c5e60b2012-03-29 08:48:22 -04008402012-02-27 Mikael Pettersson <mikpe@it.uu.se>
841
842 PR libffi/52223
843 * Makefile.am (FLAGS_TO_PASS): Define.
844 * Makefile.in: Regenerate.
845
Anthony Green8360bf12012-02-23 07:01:13 -05008462012-02-23 Anthony Green <green@moxielogic.com>
847
848 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
849 directly.
850
Anthony Green7c5e60b2012-03-29 08:48:22 -04008512012-02-23 Kai Tietz <ktietz@redhat.com>
852
853 PR libffi/52221
854 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
855 prototype.
856 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
857 thiscall-convention.
858 (ffi_raw_call): Use ffi_prep_args_raw.
859 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
860 implementation for stub.
861
Anthony Greendee20f82012-02-10 13:06:46 -05008622012-02-10 Kai Tietz <ktietz@redhat.com>
863
864 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
865 windows target.
866 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500867
Anthony Greendee20f82012-02-10 13:06:46 -05008682012-02-08 Kai Tietz <ktietz@redhat.com>
869
870 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
871 also FFI_THISCALL.
872 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
873 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
874 (ffi_prep_closure_loc): Add FFI_THISCALL support.
875 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
876 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
877 for thiscall-calling convention.
878 * testsuite/libffi.call/closure_thiscall.c: New test.
879
Anthony Green1ff9c602012-02-01 16:34:30 -06008802012-01-28 Kai Tietz <ktietz@redhat.com>
881
882 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
883 argument to prototype for specify calling-convention.
884 (ffi_call): Add support for stdcall/thiscall convention.
885 (ffi_prep_args): Likewise.
886 (ffi_raw_call): Likewise.
887 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
888 FFI_FASTCALL.
889 * src/x86/win32.S (_ffi_call_win32): Add support for
890 fastcall/thiscall calling-convention calls.
891 * testsuite/libffi.call/fastthis1_win32.c: New test.
892 * testsuite/libffi.call/fastthis2_win32.c: New test.
893 * testsuite/libffi.call/fastthis3_win32.c: New test.
894 * testsuite/libffi.call/strlen2_win32.c: New test.
895 * testsuite/libffi.call/many2_win32.c: New test.
896 * testsuite/libffi.call/struct1_win32.c: New test.
897 * testsuite/libffi.call/struct2_win32.c: New test.
898
Anthony Green211060e2012-01-23 14:24:01 -05008992012-01-23 Uros Bizjak <ubizjak@gmail.com>
900
901 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
902
Anthony Green1ff9c602012-02-01 16:34:30 -06009032012-01-23 Anthony Green <green@moxielogic.com>
904 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500905
906 * configure.ac: Add Amiga support.
907 * configure: Rebuilt.
908
9092012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500910
911 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
912
Anthony Green1ff9c602012-02-01 16:34:30 -06009132012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500914
915 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
916 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
917
Anthony Greenc365ee72012-01-23 11:13:18 -05009182012-01-19 Jakub Jelinek <jakub@redhat.com>
919
920 PR rtl-optimization/48496
921 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
922
9232012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
924
925 * configure.ac (i?86-*-*): Set TARGET to X86_64.
926 * configure: Regenerate.
927
9282011-12-07 Andrew Pinski <apinski@cavium.com>
929
930 PR libffi/50051
931 * src/mips/n32.S: Add ".set mips4".
932
9332011-11-21 Andreas Tobler <andreast@fgznet.ch>
934
935 * configure: Regenerate.
936
Anthony Greenff9454d2011-11-12 17:18:51 -05009372011-11-12 David Gilbert <david.gilbert@linaro.org>
938
939 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
940 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
941 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
942 src/cris/ffi.c, src/prep_cif.c,
943 testsuite/libffi.call/cls_double_va.c,
944 testsuite/libffi.call/cls_longdouble_va.c,
945 testsuite/libffi.call/float_va.c: Many changes to support variadic
946 function calls.
947
Anthony Green52891f82011-11-12 16:35:55 -05009482011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
949
950 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
951 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
952 softfloat powerpc variants.
953
Anthony Green6a6e7f82011-11-12 16:20:42 -05009542011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
955
956 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
957 * configure: Rebuilt.
958
Anthony Greend52fbed2011-11-12 16:13:41 -05009592011-11-12 Timothy Wall <twall@users.sf.net>
960
961 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
962 alignment of 4 for wince on ARM.
963
Anthony Greenaf18df22011-11-12 15:52:08 -05009642011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
965 Anthony Green <green@moxielogic.com>
966
967 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
968 instructions (not available on some cores, like the PPC440).
969
Anthony Greenc411f142011-11-12 07:32:36 -05009702011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400971
Anthony Greenc411f142011-11-12 07:32:36 -0500972 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500973 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500974 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
975 X 10.7.
976 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400977
Anthony Green6a6e7f82011-11-12 16:20:42 -05009782011-11-12 Anthony Green <green@moxielogic.com>
979
980 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
981 files with debug info.
982 * Makefile.in: Rebuilt.
983
9842011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
985
986 * README: Update list of supported OpenBSD systems.
987
9882011-11-12 Anthony Green <green@moxielogic.com>
989
990 * libtool-version: Update.
991 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
992 FFI_DEBUG.
993 (libffi_la_SOURCES): Remove src/debug.c
994 (EXTRA_DIST): Add src/debug.c
995 * Makefile.in: Rebuilt.
996 * README: Update for 3.0.11.
997
Anthony Green3d561062011-11-12 07:20:24 -05009982011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -0400999
Anthony Green3d561062011-11-12 07:20:24 -05001000 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1001 * configure, aclocal.m4: Rebuild.
1002
10032011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1004
1005 PR libffi/49594
1006 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1007 helper reference track the architecture pointer size.
1008
10092011-08-25 Andrew Haley <aph@redhat.com>
1010
1011 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1012 instructions.
1013 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -04001014
Anthony Greend992ac52011-07-29 17:32:53 -040010152011-07-11 Andrew Haley <aph@redhat.com>
1016
1017 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1018
10192011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1020
1021 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1022 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1023
10242011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1025
1026 PR libffi/46660
1027 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1028 mips-sgi-irix6*.
1029 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1030
10312011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1032
1033 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1034 PRId8 instead of %hhu, %hhd.
1035 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1036 PRIu8): Define.
1037 [__sgi__] (PRId8, PRIu8): Define.
1038
10392011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1040
1041 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1042 Define.
1043 Use them to handle ELF vs. ECOFF differences.
1044 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1045
Anthony Green2d3fb362011-03-30 16:54:42 -040010462011-03-30 Timothy Wall <twall@users.sf.net>
1047
1048 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1049 * src/powerpc/darwin_closure.S: ditto.
1050
Anthony Green25416792011-02-25 15:09:13 -050010512011-02-25 Anthony Green <green@moxielogic.com>
1052
Anthony Green74ee6ea2011-02-25 15:52:14 -05001053 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1054 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05001055
Anthony Green8cf88782011-02-15 15:19:49 -050010562011-02-15 Anthony Green <green@moxielogic.com>
1057
1058 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1059 * configure: Rebuilt.
1060
Anthony Greend992ac52011-07-29 17:32:53 -040010612011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1062
1063 * configure: Regenerate.
1064
Anthony Green1fbf9dc2011-02-13 08:06:39 -050010652011-02-13 Anthony Green <green@moxielogic.com>
1066
1067 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1068 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1069 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1070
1071 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1072 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1073
1074 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1075 just return FFI_BAD_ABI when things are wrong.
1076 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1077 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1078 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1079 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1080 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1081
Anthony Green1833aa02011-02-11 07:11:04 -050010822011-02-11 Anthony Green <green@moxielogic.com>
1083
1084 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1085 just return FFI_BAD_ABI when things are wrong.
1086
Anthony Green7c5e60b2012-03-29 08:48:22 -040010872012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1088
1089 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1090
Anthony Green42695e72011-02-09 15:12:35 -050010912011-02-09 Stuart Shelton <srcshelton@gmail.com>
1092
1093 http://bugs.gentoo.org/show_bug.cgi?id=286911
1094 * src/mips/ffitarget.h: Clean up error messages.
1095 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1096 ffi_raw*.
1097 * include/ffi.h.in: Add pragma for SGI compiler.
1098
Anthony Greena6e56b92011-02-09 15:00:42 -050010992011-02-09 Anthony Green <green@moxielogic.com>
1100
1101 * configure.ac: Add powerpc64-*-darwin* support.
1102
Anthony Green0cad4382011-02-09 06:11:46 -050011032011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05001104
Anthony Green747d6c32011-02-09 14:56:23 -05001105 * README: Mention Interix.
1106
11072011-02-09 Jonathan Callen <abcd@gentoo.org>
1108
1109 * configure.ac: Add Interix to win32/cygwin/mingw case.
1110 * configure: Ditto.
1111 * src/closures.c: Treat Interix like Cygwin, instead of as a
1112 generic win32.
1113
11142011-02-09 Anthony Green <green@moxielogic.com>
1115
Anthony Green69dbe842011-02-09 07:38:43 -05001116 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1117 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1118 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1119 (ffi_prep_closure_loc): Check for bad ABI.
1120 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1121 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -05001122
Anthony Green90af15e2011-02-12 12:29:36 -050011232011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -05001124
1125 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1126 src/arm/trampoline.S.
1127 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1128 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1129 * src/arm/ffi.c (ffi_trampoline_table)
1130 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1131 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1132 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1133 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1134 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1135 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1136 separately.
1137 * src/arm/sysv.S: Handle Apple iOS host.
1138 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001139 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001140 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001141 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001142
Anthony Greendc411e82011-02-08 10:49:29 -050011432011-02-08 Oren Held <orenhe@il.ibm.com>
1144
1145 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1146 redefinition of mallinfo on HP-UX.
1147
Anthony Green404585d2011-02-08 10:44:36 -050011482011-02-08 Ginn Chen <ginn.chen@oracle.com>
1149
1150 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001151 aggregate return ABI. Flush cache.
1152 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001153
Anthony Green6972a4f2011-02-11 07:32:51 -050011542011-02-11 Anthony Green <green@moxielogic.com>
1155
1156 From Tom Honermann <tom.honermann@oracle.com>:
1157 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1158 AIX. Declare .ffi_prep_args. Insert nops after branch
1159 instructions so that the AIX linker can insert TOC reload
1160 instructions.
1161 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1162
Anthony Greend992ac52011-07-29 17:32:53 -040011632011-02-08 Ed <ed@kdtc.net>
1164
1165 * src/powerpc/asm.h: Fix grammar nit in comment.
1166
Anthony Green89284fe2011-02-08 10:19:19 -050011672011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1168
1169 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1170
Anthony Greend992ac52011-07-29 17:32:53 -040011712011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1172
1173 PR libffi/46661
1174 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1175 uintptr_t first.
1176 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1177
Anthony Greened2c5182011-02-08 10:10:07 -050011782011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1179
1180 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001181 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001182
Anthony Green3b836242011-02-08 14:28:59 -050011832011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1184
1185 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1186 Handle case when CPU variant does not have long double support.
1187 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1188 and cores with soft floating point.
1189
11902011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1191
1192 * configure.ac: Add mips*-*-rtems* support.
1193 * configure: Regenerate.
1194 * src/mips/ffitarget.h: Ensure needed constants are available
1195 for targets which do not have sgidefs.h.
1196
Anthony Green0e584392011-02-08 07:52:40 -050011972011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1198
1199 PR target/40125
1200 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1201 * configure: Regenerate.
1202
12032010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1204
1205 PR libffi/29152
1206 PR libffi/42378
1207 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1208 update comments.
1209 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1210 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1211 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1212 update comments.
1213 * src/powerpc/ffi_darwin.c: Likewise.
1214
12152010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1216
1217 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1218 backslashes.
1219 (libffi_cv_as_string_pseudo_op): Likewise.
1220 * configure: Regenerate.
1221
12222010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1223
1224 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1225 (ffi_closure_VFP): Same.
1226 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1227 directive.
1228
12292010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1230
1231 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1232 (PRIuPTR): Define.
1233
12342010-11-29 Richard Henderson <rth@redhat.com>
1235 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1236
1237 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1238 (.eh_frame): Use FDE_ENCODING.
1239 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1240
Anthony Green5b9cd522010-11-22 15:19:57 -050012412010-11-22 Jacek Caban <jacek@codeweavers.com>
1242
1243 * configure.ac: Check for symbol underscores on mingw-w64.
1244 * configure: Rebuilt.
1245 * src/x86/win64.S: Correctly access extern symbols in respect to
1246 underscores.
1247
Anthony Green2db72612010-11-21 10:50:56 -050012482010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1249
1250 * testsuite/lib/libffi-dg.exp: Rename ...
1251 * testsuite/lib/libffi.exp: ... to this.
1252 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1253 * libffi/testsuite/libffi.special/special.exp: Likewise.
1254
12552010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1256
1257 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1258 code, new parameter, and return value. Update comments.
1259 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1260 call to layout_vfp_args().
1261 (ffi_call_SYSV): Update declaration.
1262 (ffi_call_VFP): New declaration.
1263 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1264 when ABI is FFI_VFP.
1265 (ffi_closure_VFP): New declaration.
1266 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1267 ffi_prep_incoming_args_SYSV().
1268 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1269 case handling.
1270 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1271 construction under VFP hard-float.
1272 (rec_vfp_type_p): New function.
1273 (vfp_type_p): Same.
1274 (place_vfp_arg): Same.
1275 (layout_vfp_args): Same.
1276 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1277 based on __ARM_PCS_VFP.
1278 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1279 fields.
1280 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1281 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1282 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1283 direct call. Move function pointer load upwards.
1284 (ffi_call_VFP): New function.
1285 (ffi_closure_VFP): Same.
1286
1287 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1288 (dg-skip-if): New function.
1289 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1290 and compiler options include -mfloat-abi=hard.
1291 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1292
12932010-10-01 Jakub Jelinek <jakub@redhat.com>
1294
1295 PR libffi/45677
1296 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1297 a multiple of 8.
1298 * testsuite/libffi.call/many2.c: New test.
1299
13002010-08-20 Mark Wielaard <mjw@redhat.com>
1301
1302 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1303 returns NULL.
1304
13052010-08-09 Andreas Tobler <andreast@fgznet.ch>
1306
1307 * configure.ac: Add target powerpc64-*-freebsd*.
1308 * configure: Regenerate.
1309 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1310 -mlong-double-128 only to linux targets.
1311 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1312 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1313 * testsuite/libffi.call/huge_struct.c: Likewise.
1314
Anthony Green00d0b592010-08-05 14:56:53 -040013152010-08-05 Dan Witte <dwitte@mozilla.com>
1316
1317 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1318 debug CRT when --enable-debug is given.
1319 * configure.ac: Define it.
1320 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1321
Anthony Greenc1d28ba2010-08-05 08:48:16 -040013222010-08-04 Dan Witte <dwitte@mozilla.com>
1323
1324 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1325 platforms.
1326 * src/x86/ffi.c: Remove redundant ifdef checks.
1327 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1328 for X86_ANY so return value space doesn't get added twice.
1329
Anthony Greenbda487e2010-08-05 09:02:41 -040013302010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1331
1332 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1333
Anthony Greend14178b2010-07-23 09:14:00 -040013342010-07-22 Dan Witte <dwitte@mozilla.com>
1335
1336 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1337 * src/prep_cif.c: Fix ABI assertion.
1338 * src/cris/ffi.c: Ditto.
1339
Anthony Greeneaf444e2010-07-10 08:59:09 -040013402010-07-10 Evan Phoenix <evan@fallingsnow.net>
1341
1342 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1343
Anthony Green5feacad2010-08-05 08:30:04 -040013442010-07-07 Dan Horák <dan@danny.cz>
1345
1346 * include/ffi.h.in: Protect #define with #ifndef.
1347 * src/powerpc/ffitarget.h: Ditto.
1348 * src/s390/ffitarget.h: Ditto.
1349 * src/sparc/ffitarget.h: Ditto.
1350
Anthony Green2db72612010-11-21 10:50:56 -050013512010-07-07 Neil Roberts <neil@linux.intel.com>
1352
1353 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1354 16-bytes.
1355
13562010-07-02 Jakub Jelinek <jakub@redhat.com>
1357
1358 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1359 * Makefile.in: Regenerated.
1360
13612010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1362
1363 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1364 output, too.
1365 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1366 (libffi_cv_as_string_pseudo_op): Check for .string.
1367 * configure: Regenerate.
1368 * fficonfig.h.in: Regenerate.
1369 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1370
Anthony Green10ea8482010-08-05 08:24:27 -040013712010-05-11 Dan Witte <dwitte@mozilla.com>
1372
1373 * doc/libffi.tex: Document previous change.
1374
13752010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1376
1377 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1378
Anthony Green63097412010-05-05 20:14:56 -040013792010-05-05 Michael Kohler <michaelkohler@live.com>
1380
1381 * src/dlmalloc.c (dlfree): Fix spelling.
1382 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1383 * configure.ac: Ditto.
1384 * configure: Rebuilt.
1385
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040013862010-04-13 Dan Witte <dwitte@mozilla.com>
1387
1388 * msvcc.sh: Build with -W3 instead of -Wall.
1389 * src/powerpc/ffi_darwin.c: Remove build warnings.
1390 * src/x86/ffi.c: Ditto.
1391 * src/x86/ffitarget.h: Ditto.
1392
Anthony Green2db72612010-11-21 10:50:56 -050013932010-04-12 Dan Witte <dwitte@mozilla.com>
1394 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001395
Anthony Green2db72612010-11-21 10:50:56 -05001396 * configure.ac: Add OS/2 support.
1397 * configure: Rebuilt.
1398 * src/closures.c: Ditto.
1399 * src/dlmalloc.c: Ditto.
1400 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001401
14022010-04-07 Jakub Jelinek <jakub@redhat.com>
1403
Anthony Green2db72612010-11-21 10:50:56 -05001404 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001405
14062010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1407
1408 * Makefile.in: Regenerate.
1409 * aclocal.m4: Regenerate.
1410 * include/Makefile.in: Regenerate.
1411 * man/Makefile.in: Regenerate.
1412 * testsuite/Makefile.in: Regenerate.
1413
Anthony Green2db72612010-11-21 10:50:56 -050014142010-03-30 Dan Witte <dwitte@mozilla.com>
1415
1416 * msvcc.sh: Disable build warnings.
1417 * README (tested): Clarify windows build procedure.
1418
Anthony Green3f5b1372010-07-12 14:39:18 -040014192010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1420
1421 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1422 * configure: Regenerate.
1423 * fficonfig.h.in: Regenerate.
1424 * libffi/src/x86/unix64.S (.eh_frame)
1425 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1426
Anthony Green2db72612010-11-21 10:50:56 -050014272010-03-14 Matthias Klose <doko@ubuntu.com>
1428
1429 * src/x86/ffi64.c: Fix typo in comment.
1430 * src/x86/ffi.c: Use /* ... */ comment style.
1431
Anthony Green9dc9a292010-04-13 10:33:52 -040014322010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1433
1434 * doc/libffi.texi (The Closure API): Fix typo.
1435 * doc/libffi.info: Remove.
1436
14372010-02-15 Matthias Klose <doko@ubuntu.com>
1438
1439 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1440 __ARM_ARCH_7EM__.
1441
Anthony Green2db72612010-11-21 10:50:56 -050014422010-01-15 Anthony Green <green@redhat.com>
1443
1444 * README: Add notes on building with Microsoft Visual C++.
1445
14462010-01-15 Daniel Witte <dwitte@mozilla.com>
1447
1448 * msvcc.sh: New file.
1449
1450 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1451 * src/x86/ffi.c: Tweak function declaration and remove excess
1452 parens.
1453 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1454 ffi_closure.
1455
1456 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1457 function ffi_call_win32 on X86_WIN32.
1458 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1459 (ffi_call_STDCALL): Remove.
1460
1461 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1462 to ffi_prep_cif_machdep for x86.
1463 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1464
14652010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1466
1467 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001468 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001469
14702010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1471
1472 * doc/libffi.texi: Add closure example.
1473
Anthony Green7b7a42f2010-01-12 09:14:14 -050014742010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1475
1476 PR libffi/40701
1477 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1478 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1479 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1480 alpha*-dec-osf*.
1481 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1482 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1483 * testsuite/libffi.call/return_ll1.c: Likewise.
1484 * testsuite/libffi.call/stret_medium2.c: Likewise.
1485 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1486 MAP_FAILED to char *.
1487
14882010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1489
1490 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1491
Anthony Greenc3042af2010-01-01 08:08:02 -050014922009-12-31 Anthony Green <green@redhat.com>
1493
1494 * README: Update for libffi 3.0.9.
1495
14962009-12-27 Matthias Klose <doko@ubuntu.com>
1497
1498 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1499 appropriate.
1500 * configure: Rebuilt.
1501
15022009-12-26 Anthony Green <green@redhat.com>
1503
1504 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1505 avr32*-*-*.
1506 * testsuite/libffi.call/cls_double_va.c: Ditto.
1507
15082009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1509
1510 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1511 and inttypes.h.
1512 * testsuite/libffi.special/unwindtest.cc: Ditto.
1513
15142009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1515
1516 * configure.ac: Add amd64-*-openbsd*.
1517 * configure: Rebuilt.
1518 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1519 openbsd programs with -lpthread.
1520
15212009-12-26 Anthony Green <green@redhat.com>
1522
1523 * testsuite/libffi.call/cls_double_va.c,
1524 testsuite/libffi.call/cls_longdouble.c,
1525 testsuite/libffi.call/cls_longdouble_va.c,
1526 testsuite/libffi.call/cls_pointer.c,
1527 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1528 mips*-*-* and arm*-*-*.
1529 * testsuite/libffi.call/cls_align_longdouble_split.c,
1530 testsuite/libffi.call/cls_align_longdouble_split2.c,
1531 testsuite/libffi.call/stret_medium2.c,
1532 testsuite/libffi.call/stret_medium.c,
1533 testsuite/libffi.call/stret_large.c,
1534 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1535
15362009-12-31 Kay Tietz <ktietz70@googlemail.com>
1537
1538 * testsuite/libffi.call/ffitest.h,
1539 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1540 definitions.
1541
15422009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1543
1544 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1545 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1546 * configure: Rebuilt.
1547 * Makefile.in: Rebuilt.
1548
15492009-12-31 Anthony Green <green@redhat.com>
1550 Blake Chaffin.
1551
1552 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1553 Chaffin @ Apple.
1554
Anthony Green0cfe60e2009-12-29 10:06:04 -050015552009-12-28 David Edelsohn <edelsohn@gnu.org>
1556
1557 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1558 local variables.
1559 (aix_adjust_aggregate_sizes): New function.
1560 (ffi_prep_cif_machdep): Call it.
1561
15622009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1563
1564 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1565 * configure: Regenerate.
1566 * fficonfig.h.in: Likewise.
1567 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1568 Solaris/x86.
1569
15702009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1571
1572 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1573 when a float arguments is passed in memory.
1574 (ffi_closure_helper_SYSV): Mark general registers as used up when
1575 a 64bit or soft-float long double argument is passed in memory.
1576
Anthony Green9458d882009-12-26 07:02:27 -050015772009-12-25 Matthias Klose <doko@ubuntu.com>
1578
1579 * man/ffi_call.3: Fix #include in examples.
1580 * doc/libffi.texi: Add dircategory.
1581
15822009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1583
1584 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1585 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1586 IRIX MIPSPro c99.
1587 * include/ffi_common.h: Added '__sgi' define to non
1588 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001589 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001590 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1591 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1592 FFI_LONGDOUBLE support and alignment(N32 only).
1593 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1594 fixed non '__attribute__((__mode__()))' integer typedefs.
1595 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1596 since they are Linux/GNU Assembler specific.
1597
15982009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1599
1600 * configure.ac, Makefile.am, src/avr32/ffi.c,
1601 src/avr32/ffitarget.h,
1602 src/avr32/sysv.S: Add AVR32 port.
1603 * configure, Makefile.in: Rebuilt.
1604
Anthony Green115ab362009-12-24 00:22:00 -050016052009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1606
1607 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1608 * configure: Regenerate.
1609
16102009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1611
1612 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1613
16142009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1615
1616 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1617 type on HP-UX.
1618
Anthony Green7c5e60b2012-03-29 08:48:22 -040016192012-02-13 Kai Tietz <ktietz@redhat.com>
1620
1621 PR libffi/52221
1622 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1623 support for X86_WIN32.
1624 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1625
Anthony Green115ab362009-12-24 00:22:00 -050016262009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1627
1628 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1629 double' arguments.
1630
16312009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1632
1633 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1634
16352009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1636
1637 PR libffi/40700
1638 * src/closures.c [X86_64 && __sun__ && __svr4__]
1639 (FFI_MMAP_EXEC_WRIT): Define.
1640
16412009-12-08 David Daney <ddaney@caviumnetworks.com>
1642
1643 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1644 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1645 * testsuite/libffi.call/stret_large.c: Same.
1646 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1647 * testsuite/libffi.call/stret_large2.c: Same.
1648 * testsuite/libffi.call/stret_medium2.c: Same.
1649
16502009-12-07 David Edelsohn <edelsohn@gnu.org>
1651
1652 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1653 typo.
1654
16552009-12-05 David Edelsohn <edelsohn@gnu.org>
1656
1657 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1658 code.
1659 * src/powerpc/aix_closure.S: Same.
1660
16612009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1662
1663 * Makefile.in: Regenerate.
1664 * configure: Regenerate.
1665 * include/Makefile.in: Regenerate.
1666 * man/Makefile.in: Regenerate.
1667 * testsuite/Makefile.in: Regenerate.
1668
16692009-12-04 David Edelsohn <edelsohn@gnu.org>
1670
1671 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001672 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001673
16742009-12-04 Uros Bizjak <ubizjak@gmail.com>
1675
1676 PR libffi/41908
1677 * src/x86/ffi64.c (classify_argument): Update from
1678 gcc/config/i386/i386.c.
1679 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1680 SSE registers directly.
1681 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1682 for x86_64 linux targets.
1683
16842009-12-04 David Edelsohn <edelsohn@gnu.org>
1685
1686 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1687 pfr for long double split between fpr13 and stack.
1688
16892009-12-03 David Edelsohn <edelsohn@gnu.org>
1690
1691 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1692 fparg_count twice for long double.
1693
16942009-12-03 David Edelsohn <edelsohn@gnu.org>
1695
1696 PR libffi/42243
1697 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1698
16992009-12-03 Uros Bizjak <ubizjak@gmail.com>
1700
1701 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1702 Remove xfails for x86 linux targets.
1703
17042009-12-02 David Edelsohn <edelsohn@gnu.org>
1705
1706 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1707 case.
1708
17092009-12-01 David Edelsohn <edelsohn@gnu.org>
1710
1711 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1712 register usage. Call ffi_prep_args directly. Add long double
1713 return value support.
1714 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1715 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1716 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1717 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1718 mode.
1719 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1720 into case.
1721 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1722 Allocate result area between params and FPRs.
1723
17242009-11-30 David Edelsohn <edelsohn@gnu.org>
1725
1726 PR target/35484
1727 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1728 AIX64.
1729 * src/powerpc/aix.S: Implement AIX64 version.
1730 * src/powerpc/aix_closure.S: Implement AIX64 version.
1731 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1732 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1733 support.
1734 (ffi_prep_cif_machdep): Same.
1735 (ffi_call): Same.
1736 (ffi_closure_helper_DARWIN): Same.
1737
17382009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1739
1740 PR libffi/41908
1741 * testsuite/libffi.call/testclosure.c: New test.
1742
Anthony Greenc6dddbd2009-10-04 08:11:33 -040017432009-09-28 Kai Tietz <kai.tietz@onevision.com>
1744
1745 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1746 assembly version use of ___chkstk.
1747
17482009-09-23 Matthias Klose <doko@ubuntu.com>
1749
1750 PR libffi/40242, PR libffi/41443
1751 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1752 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1753 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1754 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1755 for -mfloat-abi=softfp to work.
1756
17572009-09-17 Loren J. Rittle <ljrittle@acm.org>
1758
1759 PR testsuite/32843 (strikes again)
1760 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1761 enable proper extension on char and short.
1762
17632009-09-15 David Daney <ddaney@caviumnetworks.com>
1764
1765 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1766 handling for FFI_TYPE_POINTER.
1767 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1768 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1769 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1770 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1771 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1772 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1773 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1774 structure and pointer returns.
1775 (ffi_closure_N32): Add handling for pointer returns.
1776 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1777 calc_n32_return_struct_flags): Handle soft-float.
1778 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1779 (ffi_call_N32): Declare proper argument types.
1780 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1781 soft-float.
1782
17832009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1784
1785 * configure.ac (AC_PREREQ): Bump to 2.64.
1786
17872009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1788
1789 * Makefile.am (install-html, install-pdf): Remove.
1790 * Makefile.in: Regenerate.
1791
1792 * Makefile.in: Regenerate.
1793 * aclocal.m4: Regenerate.
1794 * configure: Regenerate.
1795 * fficonfig.h.in: Regenerate.
1796 * include/Makefile.in: Regenerate.
1797 * man/Makefile.in: Regenerate.
1798 * testsuite/Makefile.in: Regenerate.
1799
Anthony Green3d561062011-11-12 07:20:24 -050018002011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1801
1802 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1803 * configure: Rebuilt.
1804
Anthony Greenc6dddbd2009-10-04 08:11:33 -040018052009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1806
1807 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1808
18092009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1810
1811 PR libffi/40807
1812 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1813 return types for X86_WIN32.
1814 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1815 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1816 _ffi_closure_STDCALL): Likewise.
1817
1818 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1819 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1820
18212009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1822
1823 PR testsuite/40699
1824 PR testsuite/40707
1825 PR testsuite/40709
1826 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1827 2009-06-30 commits.
1828
18292009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1830
1831 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1832 to "" before adding paths. (This reinstates an assignment that
1833 was removed by my 2009-06-30 commit, but changes the initial
1834 value from "." to "".)
1835
18362009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1837
1838 PR testsuite/40601
1839 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1840 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1841 empty.
1842
18432009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1844
1845 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1846 to ld_library_path. Use add_path. Add just find_libgcc_s
1847 to ld_library_path, not every libgcc multilib directory.
1848
18492009-06-16 Wim Lewis <wiml@hhhh.org>
1850
1851 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1852 supposed to be callee-saved.
1853 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1854 return buffer for odd-size structs.
1855
18562009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1857
1858 PR libffi/40444
1859 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1860 allow_stack_execute for Darwin.
1861
18622009-06-16 Andrew Haley <aph@redhat.com>
1863
1864 * configure.ac (TARGETDIR): Add missing blank lines.
1865 * configure: Regenerate.
1866
18672009-06-16 Andrew Haley <aph@redhat.com>
1868
1869 * testsuite/libffi.call/cls_align_sint64.c,
1870 testsuite/libffi.call/cls_align_uint64.c,
1871 testsuite/libffi.call/cls_longdouble_va.c,
1872 testsuite/libffi.call/cls_ulonglong.c,
1873 testsuite/libffi.call/return_ll1.c,
1874 testsuite/libffi.call/stret_medium2.c: Fix printf format
1875 specifiers.
1876 * testsuite/libffi.call/ffitest.h,
1877 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1878
18792009-06-15 Andrew Haley <aph@redhat.com>
1880
1881 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1882 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001883
Anthony Greenc6dddbd2009-10-04 08:11:33 -040018842009-06-12 Andrew Haley <aph@redhat.com>
1885
1886 * Makefile.am: Remove info_TEXINFOS.
1887
18882009-06-12 Andrew Haley <aph@redhat.com>
1889
1890 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1891 testsuite/libffi.call/cls_align_uint64.c,
1892 testsuite/libffi.call/cls_ulonglong.c,
1893 testsuite/libffi.call/return_ll1.c,
1894 testsuite/libffi.call/stret_medium2.c: Fix printf format
1895 specifiers.
1896 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1897
18982009-06-11 Timothy Wall <twall@users.sf.net>
1899
1900 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001901 configure.ac,
1902 include/ffi.h.in,
1903 include/ffi_common.h,
1904 src/closures.c,
1905 src/dlmalloc.c,
1906 src/x86/ffi.c,
1907 src/x86/ffitarget.h,
1908 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001909 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001910 * Makefile.in,
1911 include/Makefile.in,
1912 man/Makefile.in,
1913 testsuite/Makefile.in,
1914 configure,
1915 aclocal.m4: Regenerated
1916 * ltcf-c.sh: properly escape cygwin/w32 path
1917 * man/ffi_call.3: Clarify size requirements for return value.
1918 * src/x86/ffi64.c: Fix filename in comment.
1919 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001920
Anthony Green0cfe60e2009-12-29 10:06:04 -05001921 * testsuite/libffi.call/closure_fn0.c,
1922 testsuite/libffi.call/closure_fn1.c,
1923 testsuite/libffi.call/closure_fn2.c,
1924 testsuite/libffi.call/closure_fn3.c,
1925 testsuite/libffi.call/closure_fn4.c,
1926 testsuite/libffi.call/closure_fn5.c,
1927 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001928 testsuite/libffi.call/closure_stdcall.c,
1929 testsuite/libffi.call/cls_12byte.c,
1930 testsuite/libffi.call/cls_16byte.c,
1931 testsuite/libffi.call/cls_18byte.c,
1932 testsuite/libffi.call/cls_19byte.c,
1933 testsuite/libffi.call/cls_1_1byte.c,
1934 testsuite/libffi.call/cls_20byte.c,
1935 testsuite/libffi.call/cls_20byte1.c,
1936 testsuite/libffi.call/cls_24byte.c,
1937 testsuite/libffi.call/cls_2byte.c,
1938 testsuite/libffi.call/cls_3_1byte.c,
1939 testsuite/libffi.call/cls_3byte1.c,
1940 testsuite/libffi.call/cls_3byte2.c,
1941 testsuite/libffi.call/cls_4_1byte.c,
1942 testsuite/libffi.call/cls_4byte.c,
1943 testsuite/libffi.call/cls_5_1_byte.c,
1944 testsuite/libffi.call/cls_5byte.c,
1945 testsuite/libffi.call/cls_64byte.c,
1946 testsuite/libffi.call/cls_6_1_byte.c,
1947 testsuite/libffi.call/cls_6byte.c,
1948 testsuite/libffi.call/cls_7_1_byte.c,
1949 testsuite/libffi.call/cls_7byte.c,
1950 testsuite/libffi.call/cls_8byte.c,
1951 testsuite/libffi.call/cls_9byte1.c,
1952 testsuite/libffi.call/cls_9byte2.c,
1953 testsuite/libffi.call/cls_align_double.c,
1954 testsuite/libffi.call/cls_align_float.c,
1955 testsuite/libffi.call/cls_align_longdouble.c,
1956 testsuite/libffi.call/cls_align_longdouble_split.c,
1957 testsuite/libffi.call/cls_align_longdouble_split2.c,
1958 testsuite/libffi.call/cls_align_pointer.c,
1959 testsuite/libffi.call/cls_align_sint16.c,
1960 testsuite/libffi.call/cls_align_sint32.c,
1961 testsuite/libffi.call/cls_align_sint64.c,
1962 testsuite/libffi.call/cls_align_uint16.c,
1963 testsuite/libffi.call/cls_align_uint32.c,
1964 testsuite/libffi.call/cls_align_uint64.c,
1965 testsuite/libffi.call/cls_dbls_struct.c,
1966 testsuite/libffi.call/cls_double.c,
1967 testsuite/libffi.call/cls_double_va.c,
1968 testsuite/libffi.call/cls_float.c,
1969 testsuite/libffi.call/cls_longdouble.c,
1970 testsuite/libffi.call/cls_longdouble_va.c,
1971 testsuite/libffi.call/cls_multi_schar.c,
1972 testsuite/libffi.call/cls_multi_sshort.c,
1973 testsuite/libffi.call/cls_multi_sshortchar.c,
1974 testsuite/libffi.call/cls_multi_uchar.c,
1975 testsuite/libffi.call/cls_multi_ushort.c,
1976 testsuite/libffi.call/cls_multi_ushortchar.c,
1977 testsuite/libffi.call/cls_pointer.c,
1978 testsuite/libffi.call/cls_pointer_stack.c,
1979 testsuite/libffi.call/cls_schar.c,
1980 testsuite/libffi.call/cls_sint.c,
1981 testsuite/libffi.call/cls_sshort.c,
1982 testsuite/libffi.call/cls_uchar.c,
1983 testsuite/libffi.call/cls_uint.c,
1984 testsuite/libffi.call/cls_ulonglong.c,
1985 testsuite/libffi.call/cls_ushort.c,
1986 testsuite/libffi.call/err_bad_abi.c,
1987 testsuite/libffi.call/err_bad_typedef.c,
1988 testsuite/libffi.call/float2.c,
1989 testsuite/libffi.call/huge_struct.c,
1990 testsuite/libffi.call/nested_struct.c,
1991 testsuite/libffi.call/nested_struct1.c,
1992 testsuite/libffi.call/nested_struct10.c,
1993 testsuite/libffi.call/nested_struct2.c,
1994 testsuite/libffi.call/nested_struct3.c,
1995 testsuite/libffi.call/nested_struct4.c,
1996 testsuite/libffi.call/nested_struct5.c,
1997 testsuite/libffi.call/nested_struct6.c,
1998 testsuite/libffi.call/nested_struct7.c,
1999 testsuite/libffi.call/nested_struct8.c,
2000 testsuite/libffi.call/nested_struct9.c,
2001 testsuite/libffi.call/problem1.c,
2002 testsuite/libffi.call/return_ldl.c,
2003 testsuite/libffi.call/return_ll1.c,
2004 testsuite/libffi.call/stret_large.c,
2005 testsuite/libffi.call/stret_large2.c,
2006 testsuite/libffi.call/stret_medium.c,
2007 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002008 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2009 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002010
20112009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2012
2013 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2014 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2015 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2016
20172009-06-09 Andrew Haley <aph@redhat.com>
2018
2019 * src/x86/freebsd.S: Add missing file.
2020
20212009-06-08 Andrew Haley <aph@redhat.com>
2022
2023 Import from libffi 3.0.8:
2024
2025 * doc/libffi.texi: New file.
2026 * doc/libffi.info: Likewise.
2027 * doc/stamp-vti: Likewise.
2028 * man/Makefile.am: New file.
2029 * man/ffi_call.3: New file.
2030
2031 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2032 src/dlmalloc.c.
2033 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2034
2035 * configure.ac: Bump version to 3.0.8.
2036 parisc*-*-linux*: Add.
2037 i386-*-freebsd* | i386-*-openbsd*: Add.
2038 powerpc-*-beos*: Add.
2039 AM_CONDITIONAL X86_FREEBSD: Add.
2040 AC_CONFIG_FILES: Add man/Makefile.
2041
2042 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2043
20442009-06-08 Andrew Haley <aph@redhat.com>
2045
2046 * README: Import from libffi 3.0.8.
2047
20482009-06-08 Andrew Haley <aph@redhat.com>
2049
2050 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2051 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2052 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2053 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2054
2055 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2056 * testsuite/libffi.call/stret_medium.c: Likewise.
2057 * testsuite/libffi.call/stret_large2.c: Likewise.
2058 * testsuite/libffi.call/stret_large.c: Likewise.
2059
20602008-12-26 Timothy Wall <twall@users.sf.net>
2061
Anthony Green0cfe60e2009-12-29 10:06:04 -05002062 * testsuite/libffi.call/cls_longdouble.c,
2063 testsuite/libffi.call/cls_longdouble_va.c,
2064 testsuite/libffi.call/cls_align_longdouble.c,
2065 testsuite/libffi.call/cls_align_longdouble_split.c,
2066 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2067 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002068
20692008-12-22 Timothy Wall <twall@users.sf.net>
2070
Anthony Green0cfe60e2009-12-29 10:06:04 -05002071 * testsuite/libffi.call/closure_fn0.c,
2072 testsuite/libffi.call/closure_fn1.c,
2073 testsuite/libffi.call/closure_fn2.c,
2074 testsuite/libffi.call/closure_fn3.c,
2075 testsuite/libffi.call/closure_fn4.c,
2076 testsuite/libffi.call/closure_fn5.c,
2077 testsuite/libffi.call/closure_fn6.c,
2078 testsuite/libffi.call/closure_loc_fn0.c,
2079 testsuite/libffi.call/closure_stdcall.c,
2080 testsuite/libffi.call/cls_align_pointer.c,
2081 testsuite/libffi.call/cls_pointer.c,
2082 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2083 pointer to integer (intptr_t).
2084 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002085
20862008-07-24 Anthony Green <green@redhat.com>
2087
Anthony Green0cfe60e2009-12-29 10:06:04 -05002088 * testsuite/libffi.call/cls_dbls_struct.c,
2089 testsuite/libffi.call/cls_double_va.c,
2090 testsuite/libffi.call/cls_longdouble.c,
2091 testsuite/libffi.call/cls_longdouble_va.c,
2092 testsuite/libffi.call/cls_pointer.c,
2093 testsuite/libffi.call/cls_pointer_stack.c,
2094 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2095 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002096
20972008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002098 Blake Chaffin
2099 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002100
Anthony Green0cfe60e2009-12-29 10:06:04 -05002101 * testsuite/libffi.call/cls_align_longdouble_split2.c
2102 testsuite/libffi.call/cls_align_longdouble_split.c
2103 testsuite/libffi.call/cls_dbls_struct.c
2104 testsuite/libffi.call/cls_double_va.c
2105 testsuite/libffi.call/cls_longdouble.c
2106 testsuite/libffi.call/cls_longdouble_va.c
2107 testsuite/libffi.call/cls_pointer.c
2108 testsuite/libffi.call/cls_pointer_stack.c
2109 testsuite/libffi.call/err_bad_abi.c
2110 testsuite/libffi.call/err_bad_typedef.c
2111 testsuite/libffi.call/stret_large2.c
2112 testsuite/libffi.call/stret_large.c
2113 testsuite/libffi.call/stret_medium2.c
2114 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002115
21162009-06-05 Andrew Haley <aph@redhat.com>
2117
2118 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2119 libffi.
2120
21212009-06-04 Andrew Haley <aph@redhat.com>
2122
2123 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2124 stdcall changes.
2125
21262008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002127 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002128
Anthony Green0cfe60e2009-12-29 10:06:04 -05002129 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2130 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002131
21322008-02-03 Timothy Wall <twall@users.sf.net>
2133
Anthony Green0cfe60e2009-12-29 10:06:04 -05002134 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2135 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002136
21372008-01-31 Timothy Wall <twall@users.sf.net>
2138
Anthony Green0cfe60e2009-12-29 10:06:04 -05002139 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2140 closures.
2141 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2142 closures.
2143 * src/x86/win32.S: Add assembly for stdcall closure.
2144 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002145
21462009-06-04 Andrew Haley <aph@redhat.com>
2147
2148 * include/ffi.h.in: Change void (*)() to void (*)(void).
2149 * src/x86/ffi.c: Likewise.
2150
21512009-06-04 Andrew Haley <aph@redhat.com>
2152
2153 * src/powerpc/ppc_closure.S: Insert licence header.
2154 * src/powerpc/linux64_closure.S: Likewise.
2155 * src/m68k/sysv.S: Likewise.
2156
2157 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2158 * src/powerpc/ffi.c: Likewise.
2159 * src/powerpc/ffi_darwin.c: Likewise.
2160 * src/m32r/ffi.c: Likewise.
2161 * src/sh64/ffi.c: Likewise.
2162 * src/x86/ffi64.c: Likewise.
2163 * src/alpha/ffi.c: Likewise.
2164 * src/alpha/osf.S: Likewise.
2165 * src/frv/ffi.c: Likewise.
2166 * src/s390/ffi.c: Likewise.
2167 * src/pa/ffi.c: Likewise.
2168 * src/pa/hpux32.S: Likewise.
2169 * src/ia64/unix.S: Likewise.
2170 * src/ia64/ffi.c: Likewise.
2171 * src/sparc/ffi.c: Likewise.
2172 * src/mips/ffi.c: Likewise.
2173 * src/sh/ffi.c: Likewise.
2174
21752008-02-15 David Daney <ddaney@avtrex.com>
2176
Anthony Green0cfe60e2009-12-29 10:06:04 -05002177 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2178 Define (conditionally), and use it to include cachectl.h.
2179 (ffi_prep_closure_loc): Fix cache flushing.
2180 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002181
21822009-06-04 Andrew Haley <aph@redhat.com>
2183
2184 include/ffi.h.in,
2185 src/arm/ffitarget.h,
2186 src/arm/ffi.c,
2187 src/arm/sysv.S,
2188 src/powerpc/ffitarget.h,
2189 src/closures.c,
2190 src/sh64/ffitarget.h,
2191 src/sh64/ffi.c,
2192 src/sh64/sysv.S,
2193 src/types.c,
2194 src/x86/ffi64.c,
2195 src/x86/ffitarget.h,
2196 src/x86/win32.S,
2197 src/x86/darwin.S,
2198 src/x86/ffi.c,
2199 src/x86/sysv.S,
2200 src/x86/unix64.S,
2201 src/alpha/ffitarget.h,
2202 src/alpha/ffi.c,
2203 src/alpha/osf.S,
2204 src/m68k/ffitarget.h,
2205 src/frv/ffitarget.h,
2206 src/frv/ffi.c,
2207 src/s390/ffitarget.h,
2208 src/s390/sysv.S,
2209 src/cris/ffitarget.h,
2210 src/pa/linux.S,
2211 src/pa/ffitarget.h,
2212 src/pa/ffi.c,
2213 src/raw_api.c,
2214 src/ia64/ffitarget.h,
2215 src/ia64/unix.S,
2216 src/ia64/ffi.c,
2217 src/ia64/ia64_flags.h,
2218 src/java_raw_api.c,
2219 src/debug.c,
2220 src/sparc/v9.S,
2221 src/sparc/ffitarget.h,
2222 src/sparc/ffi.c,
2223 src/sparc/v8.S,
2224 src/mips/ffitarget.h,
2225 src/mips/n32.S,
2226 src/mips/o32.S,
2227 src/mips/ffi.c,
2228 src/prep_cif.c,
2229 src/sh/ffitarget.h,
2230 src/sh/ffi.c,
2231 src/sh/sysv.S: Update license text.
2232
22332009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2234
2235 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2236 (.eh_frame): Add FDE for it.
2237
22382009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2239
2240 * configure.ac: Also check if assembler supports pc-relative
2241 relocs on X86_WIN32 targets.
2242 * configure: Regenerate.
2243 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2244 (_ffi_call_SYSV): Add missing function type symbol .def and
2245 add EH markup labels.
2246 (_ffi_call_STDCALL): Likewise.
2247 (_ffi_closure_SYSV): Likewise.
2248 (_ffi_closure_raw_SYSV): Likewise.
2249 (.eh_frame): Add hand-crafted EH data.
2250
22512009-04-09 Jakub Jelinek <jakub@redhat.com>
2252
2253 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2254 version 3 of the GNU General Public License and to point readers
2255 at the COPYING3 file and the FSF's license web page.
2256 * testsuite/libffi.call/call.exp: Likewise.
2257 * testsuite/libffi.special/special.exp: Likewise.
2258
22592009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2260
2261 * configure: Regenerate.
2262
22632008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2264
2265 PR libffi/26048
2266 * configure.ac (HAVE_AS_X86_PCREL): New test.
2267 * configure: Regenerate.
2268 * fficonfig.h.in: Regenerate.
2269 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2270 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2271 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2272 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2273 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2274 (.Lload_table): Likewise.
2275 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2276
22772008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2278
2279 * configure: Regenerate.
2280
22812008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2282
2283 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2284 signed/unsigned int8/16 return values.
2285 * src/sparc/v8.S (ffi_call_v8): Likewise.
2286 (ffi_closure_v8): Likewise.
2287
22882008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002289 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002290
2291 * configure: Regenerate for new libtool.
2292 * Makefile.in: Ditto.
2293 * include/Makefile.in: Ditto.
2294 * aclocal.m4: Ditto.
2295
22962008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2297
2298 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2299 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2300 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2301 Adjust copyright notice.
2302 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2303 register or two register to use for FFI_SYSV structs.
2304 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2305 (ffi_closure_helper_SYSV): Fix the return type for
2306 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2307 Adjust copyright notice.
2308
23092008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2310
2311 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2312 int.
2313
23142008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2315
2316 * configure: Regenerate.
2317 * include/Makefile.in: Regenerate.
2318 * testsuite/Makefile.in: Regenerate.
2319
23202008-06-07 Joseph Myers <joseph@codesourcery.com>
2321
2322 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2323 powerpc-*-beos*): Remove.
2324 * configure: Regenerate.
2325
23262008-05-09 Julian Brown <julian@codesourcery.com>
2327
2328 * Makefile.am (LTLDFLAGS): New.
2329 (libffi_la_LDFLAGS): Use above.
2330 * Makefile.in: Regenerate.
2331
23322008-04-18 Paolo Bonzini <bonzini@gnu.org>
2333
2334 PR bootstrap/35457
2335 * aclocal.m4: Regenerate.
2336 * configure: Regenerate.
2337
23382008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2339
2340 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2341 * src/sh64/sysv.S: Likewise.
2342
23432008-03-26 Daniel Jacobowitz <dan@debian.org>
2344
2345 * src/arm/sysv.S: Fix ARM comment marker.
2346
23472008-03-26 Jakub Jelinek <jakub@redhat.com>
2348
2349 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2350 * src/s390/sysv.S: Likewise.
2351 * src/powerpc/ppc_closure.S: Likewise.
2352 * src/powerpc/sysv.S: Likewise.
2353 * src/x86/unix64.S: Likewise.
2354 * src/x86/sysv.S: Likewise.
2355 * src/sparc/v8.S: Likewise.
2356 * src/sparc/v9.S: Likewise.
2357 * src/m68k/sysv.S: Likewise.
2358 * src/arm/sysv.S: Likewise.
2359
23602008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2361
2362 * aclocal.m4: Regenerate.
2363 * configure: Likewise.
2364 * Makefile.in: Likewise.
2365 * include/Makefile.in: Likewise.
2366 * testsuite/Makefile.in: Likewise.
2367
23682008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2369 Andreas Tobler <a.tobler@schweiz.org>
2370
2371 * configure.ac: Add amd64-*-freebsd* target.
2372 * configure: Regenerate.
2373
23742008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2375
2376 PR libffi/34612
2377 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2378 returning struct.
2379
2380 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2381 tests.
2382
23832008-01-24 David Edelsohn <edelsohn@gnu.org>
2384
2385 * configure: Regenerate.
2386
23872008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2388
2389 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2390
23912008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2392
2393 PR testsuite/32843
2394 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2395 signed/unsigned int8/16 for X86_DARWIN.
2396 Updated copyright info.
2397 Handle one and two byte structs with special cif->flags.
2398 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2399 Updated copyright info.
2400 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2401 sysv.S
2402 Remove code to pop args from the stack after call.
2403 Special-case signed/unsigned for int8/16, one and two byte structs.
2404 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2405 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2406 FFI_TYPE_SINT32.
2407 Updated copyright info.
2408
24092007-12-08 David Daney <ddaney@avtrex.com>
2410
Anthony Green0cfe60e2009-12-29 10:06:04 -05002411 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002412 SUBU, add with ADDU and use smaller code sequences.
2413
24142007-12-07 David Daney <ddaney@avtrex.com>
2415
2416 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2417 type.
2418
24192007-12-06 David Daney <ddaney@avtrex.com>
2420
2421 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2422 defined.
2423 (ffi_java_raw): New typedef.
2424 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2425 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2426 ffi_java_raw.
2427 (ffi_java_raw_closure) : Same.
2428 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2429 parameter types.
2430 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2431 FFI_SIZEOF_JAVA_RAW.
2432 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2433 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2434 sizeof(ffi_java_raw) for alignment calculations.
2435 (ffi_java_ptrarray_to_raw): Same.
2436 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002437 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002438 (ffi_java_raw_to_rvalue): Same.
2439 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2440 (ffi_java_translate_args): Same.
2441 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2442 parameter types.
2443 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2444
24452007-12-06 David Daney <ddaney@avtrex.com>
2446
Anthony Green0cfe60e2009-12-29 10:06:04 -05002447 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002448 pointer values.
2449
24502007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2451
2452 PR libffi/31937
2453 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2454 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2455 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2456 set the NUM_FPR_ARG_REGISTERS according to.
2457 Add support for potential soft-float support under hard-float
2458 architecture.
2459 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2460 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2461 to the FFI_LINUX_SOFT_FLOAT ABI.
2462 (ffi_prep_cif_machdep): Likewise.
2463 (ffi_closure_helper_SYSV): Likewise.
2464 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2465 on archs where __NO_FPRS__ is true.
2466 Add FFI_TYPE_UINT128 support.
2467 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2468 Adjust copyright notice.
2469
24702007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2471
2472 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2473 * include/ffi_common.h: ... here.
2474 Update copyright.
2475
24762007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2477
2478 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2479 * src/powerpc/linux64.S: Likewise.
2480 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2481 * testsuite/libffi.call/return_ldl.c: New test.
2482
24832007-09-04 <aph@redhat.com>
2484
2485 * src/arm/sysv.S (UNWIND): New.
2486 (Whole file): Conditionally compile unwinder directives.
2487 * src/arm/sysv.S: Add unwinder directives.
2488
2489 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2490 Only treat r0 as a struct address if we're actually returning a
2491 struct by address.
2492 Only copy the bytes that are actually within a struct.
2493 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2494 is returned in r0, not passed by address.
2495 (ffi_call): Allocate a word-sized temporary for the case where
2496 a composite is returned in r0.
2497 (ffi_prep_incoming_args_SYSV): Align as necessary.
2498
24992007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2500
Anthony Green0cfe60e2009-12-29 10:06:04 -05002501 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002502 directly using the sys_cacheflush syscall.
2503
25042007-07-27 Andrew Haley <aph@redhat.com>
2505
2506 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2507
25082007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2509
2510 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2511 * configure.ac: Likewise.
2512 * Makefile.in: Regenerate.
2513 * include/Makefile.in: Likewise.
2514 * testsuite/Makefile.in: Likewise.
2515 * configure: Likewise.
2516
25172007-08-24 David Daney <ddaney@avtrex.com>
2518
2519 * testsuite/libffi.call/return_sl.c: New test.
2520
25212007-08-10 David Daney <ddaney@avtrex.com>
2522
2523 * testsuite/libffi.call/cls_multi_ushort.c,
2524 testsuite/libffi.call/cls_align_uint16.c,
2525 testsuite/libffi.call/nested_struct1.c,
2526 testsuite/libffi.call/nested_struct3.c,
2527 testsuite/libffi.call/cls_7_1_byte.c,
2528 testsuite/libffi.call/nested_struct5.c,
2529 testsuite/libffi.call/cls_double.c,
2530 testsuite/libffi.call/nested_struct7.c,
2531 testsuite/libffi.call/cls_sint.c,
2532 testsuite/libffi.call/nested_struct9.c,
2533 testsuite/libffi.call/cls_20byte1.c,
2534 testsuite/libffi.call/cls_multi_sshortchar.c,
2535 testsuite/libffi.call/cls_align_sint64.c,
2536 testsuite/libffi.call/cls_3byte2.c,
2537 testsuite/libffi.call/cls_multi_schar.c,
2538 testsuite/libffi.call/cls_multi_uchar.c,
2539 testsuite/libffi.call/cls_19byte.c,
2540 testsuite/libffi.call/cls_9byte1.c,
2541 testsuite/libffi.call/cls_align_float.c,
2542 testsuite/libffi.call/closure_fn1.c,
2543 testsuite/libffi.call/problem1.c,
2544 testsuite/libffi.call/closure_fn3.c,
2545 testsuite/libffi.call/cls_sshort.c,
2546 testsuite/libffi.call/closure_fn5.c,
2547 testsuite/libffi.call/cls_align_double.c,
2548 testsuite/libffi.call/nested_struct.c,
2549 testsuite/libffi.call/cls_2byte.c,
2550 testsuite/libffi.call/nested_struct10.c,
2551 testsuite/libffi.call/cls_4byte.c,
2552 testsuite/libffi.call/cls_6byte.c,
2553 testsuite/libffi.call/cls_8byte.c,
2554 testsuite/libffi.call/cls_multi_sshort.c,
2555 testsuite/libffi.call/cls_align_sint16.c,
2556 testsuite/libffi.call/cls_align_uint32.c,
2557 testsuite/libffi.call/cls_20byte.c,
2558 testsuite/libffi.call/cls_float.c,
2559 testsuite/libffi.call/nested_struct2.c,
2560 testsuite/libffi.call/cls_5_1_byte.c,
2561 testsuite/libffi.call/nested_struct4.c,
2562 testsuite/libffi.call/cls_24byte.c,
2563 testsuite/libffi.call/nested_struct6.c,
2564 testsuite/libffi.call/cls_64byte.c,
2565 testsuite/libffi.call/nested_struct8.c,
2566 testsuite/libffi.call/cls_uint.c,
2567 testsuite/libffi.call/cls_multi_ushortchar.c,
2568 testsuite/libffi.call/cls_schar.c,
2569 testsuite/libffi.call/cls_uchar.c,
2570 testsuite/libffi.call/cls_align_uint64.c,
2571 testsuite/libffi.call/cls_ulonglong.c,
2572 testsuite/libffi.call/cls_align_longdouble.c,
2573 testsuite/libffi.call/cls_1_1byte.c,
2574 testsuite/libffi.call/cls_12byte.c,
2575 testsuite/libffi.call/cls_3_1byte.c,
2576 testsuite/libffi.call/cls_3byte1.c,
2577 testsuite/libffi.call/cls_4_1byte.c,
2578 testsuite/libffi.call/cls_6_1_byte.c,
2579 testsuite/libffi.call/cls_16byte.c,
2580 testsuite/libffi.call/cls_18byte.c,
2581 testsuite/libffi.call/closure_fn0.c,
2582 testsuite/libffi.call/cls_9byte2.c,
2583 testsuite/libffi.call/closure_fn2.c,
2584 testsuite/libffi.call/closure_fn4.c,
2585 testsuite/libffi.call/cls_ushort.c,
2586 testsuite/libffi.call/closure_fn6.c,
2587 testsuite/libffi.call/cls_5byte.c,
2588 testsuite/libffi.call/cls_align_pointer.c,
2589 testsuite/libffi.call/cls_7byte.c,
2590 testsuite/libffi.call/cls_align_sint32.c,
2591 testsuite/libffi.special/unwindtest_ffi_call.cc,
2592 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2593
25942007-08-10 David Daney <ddaney@avtrex.com>
2595
2596 PR libffi/28313
2597 * configure.ac: Don't treat mips64 as a special case.
2598 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2599 * configure: Regenerate
2600 * Makefile.in: Ditto.
2601 * fficonfig.h.in: Ditto.
2602 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2603 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2604 (FFI_DEFAULT_ABI): Set for n64 case.
2605 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2606 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2607 (ffi_closure_N32): New function.
2608 (.eh_frame): New section
2609 * src/mips/o32.S: Clean up comments.
2610 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2611 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2612 _MIPS_SIM == _ABIN32 throughout.
2613 (FFI_MIPS_STOP_HERE): New, use in place of
2614 ffi_stop_here.
2615 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2616 to support n32/n64 ABIs.
2617 (calc_n32_struct_flags): Rewrite.
2618 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2619 position of flag bits.
2620 (ffi_prep_cif_machdep): Rewrite n32 portion.
2621 (ffi_call): Enable for n64. Add special handling for small structure
2622 return values.
2623 (ffi_prep_closure_loc): Add n32 and n64 support.
2624 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2625 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2626
26272007-08-08 David Daney <ddaney@avtrex.com>
2628
2629 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2630 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2631 specifiers.
2632 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2633 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2634 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2635 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2636 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2637 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2638 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2639 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2640 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2641 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2642 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2643 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2644 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2645 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2646 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2647 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2648 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2649 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2650 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2651 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2652 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2653 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2654 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2655 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2656 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2657 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2658 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2659 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2660 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2661 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2662 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2663
26642007-08-07 Andrew Haley <aph@redhat.com>
2665
2666 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2667 checkin.
2668
26692007-08-06 Andrew Haley <aph@redhat.com>
2670
2671 PR testsuite/32843
2672 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2673 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2674 FFI_TYPE_SINT32.
2675
26762007-08-02 David Daney <ddaney@avtrex.com>
2677
2678 * testsuite/libffi.call/return_ul.c (main): Define return type as
2679 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002680
Anthony Greenc6dddbd2009-10-04 08:11:33 -040026812007-07-30 Andrew Haley <aph@redhat.com>
2682
2683 PR testsuite/32843
2684 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2685 signed/unsigned int8/16.
2686 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2687 Use a jump table.
2688 Remove code to pop args from the stack after call.
2689 Special-case signed/unsigned int8/16.
2690 * testsuite/libffi.call/return_sc.c (main): Revert.
2691
26922007-07-26 Richard Guenther <rguenther@suse.de>
2693
2694 PR testsuite/32843
2695 * testsuite/libffi.call/return_sc.c (main): Verify call
2696 result as signed char, not ffi_arg.
2697
26982007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2699
2700 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2701 * configure: Regenerate.
2702
27032007-07-11 David Daney <ddaney@avtrex.com>
2704
2705 * src/mips/ffi.c: Don't include sys/cachectl.h.
2706 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2707 cacheflush().
2708
27092007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2710
2711 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2712 from (ffi_prep_closure): ... this.
2713 (FFI_INIT_TRAMPOLINE): Adjust.
2714
27152005-12-31 Phil Blundell <pb@reciva.com>
2716
Anthony Green0cfe60e2009-12-29 10:06:04 -05002717 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2718 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002719 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2720 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2721 (FFI_CLOSURES): Enable closure support.
2722
27232007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2724
Anthony Green0cfe60e2009-12-29 10:06:04 -05002725 * testsuite/libffi.call/cls_multi_ushort.c,
2726 testsuite/libffi.call/cls_align_uint16.c,
2727 testsuite/libffi.call/nested_struct1.c,
2728 testsuite/libffi.call/nested_struct3.c,
2729 testsuite/libffi.call/cls_7_1_byte.c,
2730 testsuite/libffi.call/cls_double.c,
2731 testsuite/libffi.call/nested_struct5.c,
2732 testsuite/libffi.call/nested_struct7.c,
2733 testsuite/libffi.call/cls_sint.c,
2734 testsuite/libffi.call/nested_struct9.c,
2735 testsuite/libffi.call/cls_20byte1.c,
2736 testsuite/libffi.call/cls_multi_sshortchar.c,
2737 testsuite/libffi.call/cls_align_sint64.c,
2738 testsuite/libffi.call/cls_3byte2.c,
2739 testsuite/libffi.call/cls_multi_schar.c,
2740 testsuite/libffi.call/cls_multi_uchar.c,
2741 testsuite/libffi.call/cls_19byte.c,
2742 testsuite/libffi.call/cls_9byte1.c,
2743 testsuite/libffi.call/cls_align_float.c,
2744 testsuite/libffi.call/closure_fn1.c,
2745 testsuite/libffi.call/problem1.c,
2746 testsuite/libffi.call/closure_fn3.c,
2747 testsuite/libffi.call/cls_sshort.c,
2748 testsuite/libffi.call/closure_fn5.c,
2749 testsuite/libffi.call/cls_align_double.c,
2750 testsuite/libffi.call/cls_2byte.c,
2751 testsuite/libffi.call/nested_struct.c,
2752 testsuite/libffi.call/nested_struct10.c,
2753 testsuite/libffi.call/cls_4byte.c,
2754 testsuite/libffi.call/cls_6byte.c,
2755 testsuite/libffi.call/cls_8byte.c,
2756 testsuite/libffi.call/cls_multi_sshort.c,
2757 testsuite/libffi.call/cls_align_uint32.c,
2758 testsuite/libffi.call/cls_align_sint16.c,
2759 testsuite/libffi.call/cls_float.c,
2760 testsuite/libffi.call/cls_20byte.c,
2761 testsuite/libffi.call/cls_5_1_byte.c,
2762 testsuite/libffi.call/nested_struct2.c,
2763 testsuite/libffi.call/cls_24byte.c,
2764 testsuite/libffi.call/nested_struct4.c,
2765 testsuite/libffi.call/nested_struct6.c,
2766 testsuite/libffi.call/cls_64byte.c,
2767 testsuite/libffi.call/nested_struct8.c,
2768 testsuite/libffi.call/cls_uint.c,
2769 testsuite/libffi.call/cls_multi_ushortchar.c,
2770 testsuite/libffi.call/cls_schar.c,
2771 testsuite/libffi.call/cls_uchar.c,
2772 testsuite/libffi.call/cls_align_uint64.c,
2773 testsuite/libffi.call/cls_ulonglong.c,
2774 testsuite/libffi.call/cls_align_longdouble.c,
2775 testsuite/libffi.call/cls_1_1byte.c,
2776 testsuite/libffi.call/cls_12byte.c,
2777 testsuite/libffi.call/cls_3_1byte.c,
2778 testsuite/libffi.call/cls_3byte1.c,
2779 testsuite/libffi.call/cls_4_1byte.c,
2780 testsuite/libffi.call/cls_6_1_byte.c,
2781 testsuite/libffi.call/cls_16byte.c,
2782 testsuite/libffi.call/cls_18byte.c,
2783 testsuite/libffi.call/closure_fn0.c,
2784 testsuite/libffi.call/cls_9byte2.c,
2785 testsuite/libffi.call/closure_fn2.c,
2786 testsuite/libffi.call/closure_fn4.c,
2787 testsuite/libffi.call/cls_ushort.c,
2788 testsuite/libffi.call/closure_fn6.c,
2789 testsuite/libffi.call/cls_5byte.c,
2790 testsuite/libffi.call/cls_align_pointer.c,
2791 testsuite/libffi.call/cls_7byte.c,
2792 testsuite/libffi.call/cls_align_sint32.c,
2793 testsuite/libffi.special/unwindtest_ffi_call.cc,
2794 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002795
27962007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2797
2798 * aclocal.m4: Regenerated.
2799
28002007-06-02 Paolo Bonzini <bonzini@gnu.org>
2801
2802 * configure: Regenerate.
2803
28042007-05-23 Steve Ellcey <sje@cup.hp.com>
2805
2806 * Makefile.in: Regenerate.
2807 * configure: Regenerate.
2808 * aclocal.m4: Regenerate.
2809 * include/Makefile.in: Regenerate.
2810 * testsuite/Makefile.in: Regenerate.
2811
28122007-05-10 Roman Zippel <zippel@linux-m68k.org>
2813
2814 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2815 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2816 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2817 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2818 (FFI_CLOSURES): Enable closure support.
2819
28202007-05-10 Roman Zippel <zippel@linux-m68k.org>
2821
2822 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2823 * configure: Regenerate.
2824 * fficonfig.h.in: Regenerate.
2825 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2826 CFI_OFFSET,CFI_DEF_CFA): New macros.
2827 (ffi_call_SYSV): Add callframe annotation.
2828
28292007-05-10 Roman Zippel <zippel@linux-m68k.org>
2830
2831 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2832 numerous test suite failures.
2833 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2834
28352007-04-11 Paolo Bonzini <bonzini@gnu.org>
2836
2837 * Makefile.am (EXTRA_DIST): Bring up to date.
2838 * Makefile.in: Regenerate.
2839 * src/frv/eabi.S: Remove RCS keyword.
2840
28412007-04-06 Richard Henderson <rth@redhat.com>
2842
2843 * configure.ac: Tidy target case.
2844 (HAVE_LONG_DOUBLE): Allow the target to override.
2845 * configure: Regenerate.
2846 * include/ffi.h.in: Don't define ffi_type_foo if
2847 LIBFFI_HIDE_BASIC_TYPES is defined.
2848 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2849 to ffi_type_double.
2850 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2851 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2852 (ffi_type_longdouble): Special case for Alpha. Don't define
2853 if long double == double.
2854
2855 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2856 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2857 (ffi_call, ffi_closure_osf_inner): Likewise.
2858 (ffi_closure_osf_inner): Likewise. Mark hidden.
2859 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2860 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2861 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2862 (load_table): Handle 128-bit long double.
2863
2864 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2865
28662007-04-06 Tom Tromey <tromey@redhat.com>
2867
2868 PR libffi/31491:
2869 * README: Fixed bug in example.
2870
28712007-04-03 Jakub Jelinek <jakub@redhat.com>
2872
2873 * src/closures.c: Include sys/statfs.h.
2874 (_GNU_SOURCE): Define on Linux.
2875 (FFI_MMAP_EXEC_SELINUX): Define.
2876 (selinux_enabled): New variable.
2877 (selinux_enabled_check): New function.
2878 (is_selinux_enabled): Define.
2879 (dlmmap): Use it.
2880
28812007-03-24 Uros Bizjak <ubizjak@gmail.com>
2882
2883 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2884 Use 'volatile float sum' to create sum of floats to avoid false
2885 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002886 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002887
28882007-03-08 Alexandre Oliva <aoliva@redhat.com>
2889
2890 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2891 patch.
2892 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2893
28942007-03-07 Alexandre Oliva <aoliva@redhat.com>
2895
2896 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2897 (ffi_prep_closure_loc): New.
2898 (ffi_prep_raw_closure_loc): New.
2899 (ffi_prep_java_raw_closure_loc): New.
2900 * src/closures.c: New file.
2901 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2902 Replace sflags with exec_offset.
2903 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2904 sub_segment_exec_offset): New macros.
2905 (get_segment_flags, set_segment_flags, check_segment_merge): New
2906 macros.
2907 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2908 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2909 destroy_mspace): Use new macros.
2910 (sys_alloc): Silence warning.
2911 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2912 * Makefile.in: Rebuilt.
2913 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2914 terms of ffi_prep_closure_loc.
2915 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2916 from...
2917 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2918 renamed version.
2919 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2920 adjusted from...
2921 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2922 the renamed version.
2923 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2924 (ffi_prep_closure): ... this.
2925 * src/pa/ffi.c: Likewise.
2926 * src/cris/ffi.c: Likewise. Adjust.
2927 * src/frv/ffi.c: Likewise.
2928 * src/ia64/ffi.c: Likewise.
2929 * src/mips/ffi.c: Likewise.
2930 * src/powerpc/ffi_darwin.c: Likewise.
2931 * src/s390/ffi.c: Likewise.
2932 * src/sh/ffi.c: Likewise.
2933 * src/sh64/ffi.c: Likewise.
2934 * src/sparc/ffi.c: Likewise.
2935 * src/x86/ffi64.c: Likewise.
2936 * src/x86/ffi.c: Likewise.
2937 (FFI_INIT_TRAMPOLINE): Adjust.
2938 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2939 (ffi_prep_raw_closure): ... this.
2940 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2941 (ffi_prep_closure): ... this.
2942 (flush_icache): Adjust.
2943
29442007-03-07 Alexandre Oliva <aoliva@redhat.com>
2945
2946 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2947 Lea's malloc.
2948
29492007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2950
2951 * Makefile.am: Add dummy install-pdf target.
2952 * Makefile.in: Regenerate
2953
29542007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2955
2956 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2957 ffi_closure_helper_SYSV): Add long double handling.
2958
29592007-02-02 Jakub Jelinek <jakub@redhat.com>
2960
2961 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2962 immediately after bctrl instruction.
2963
29642007-01-18 Alexandre Oliva <aoliva@redhat.com>
2965
2966 * Makefile.am (all-recursive, install-recursive,
2967 mostlyclean-recursive, clean-recursive, distclean-recursive,
2968 maintainer-clean-recursive): Add missing targets.
2969 * Makefile.in: Rebuilt.
2970
29712006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2972
2973 * configure.ac: Add TARGET for x86_64-*-darwin*.
2974 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2975 for X86_DARWIN.
2976 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2977 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2978 * configure: Regenerate.
2979 * Makefile.in: Regenerate.
2980 * include/Makefile.in: Regenerate.
2981 * testsuite/Makefile.in: Regenerate.
2982 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2983 ffi_call only.
2984
29852006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2986
2987 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2988 Makefile.am.
2989
29902006-10-31 Geoffrey Keating <geoffk@apple.com>
2991
2992 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2993 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2994 Darwin.
2995 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2996 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2997
29982006-10-10 Paolo Bonzini <bonzini@gnu.org>
2999 Sandro Tolaini <tolaini@libero.it>
3000
Anthony Green0cfe60e2009-12-29 10:06:04 -05003001 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003002 conditional.
3003 * configure: Regenerated.
3004 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3005 (EXTRA_DIST): Add src/x86/darwin.S.
3006 * Makefile.in: Regenerated.
3007 * include/Makefile.in: Regenerated.
3008 * testsuite/Makefile.in: Regenerated.
3009
3010 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3011 X86_WIN32, and additionally align stack to 16 bytes.
3012 * src/x86/darwin.S: New, based on sysv.S.
3013 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3014
30152006-09-12 David Daney <ddaney@avtrex.com>
3016
3017 PR libffi/23935
3018 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3019 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3020 * aclocal.m4: Regenerated for automake 1.9.6.
3021 * Makefile.in: Regenerated.
3022 * include/Makefile.in: Regenerated.
3023 * testsuite/Makefile.in: Regenerated.
3024
30252006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3026
3027 * include/ffi_common.h (struct): Revert accidental commit.
3028
30292006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3030
3031 * include/ffi_common.h: Remove lint directives.
3032 * include/ffi.h.in: Likewise.
3033
30342006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3035
3036 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3037 for 32-bit architectures.
3038 * testsuite/libffi.call/return_ul.c: New test case.
3039
30402006-07-19 David Daney <ddaney@avtrex.com>
3041
3042 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3043 xfail remains for mips64.
3044
30452006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3046
3047 * Makefile.am: Add install-html target. Add install-html to .PHONY
3048 * Makefile.in: Regenerate.
3049 * aclocal.m4: Regenerate.
3050 * include/Makefile.in: Regenerate.
3051 * testsuite/Makefile.in: Regenerate.
3052
30532006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3054
3055 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3056 stack slot.
3057
30582006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3059
3060 * README: Remove notice about 'Crazy Comments'.
3061 * src/debug.c: Remove lint directives. Cleanup white spaces.
3062 * src/java_raw_api.c: Likewise.
3063 * src/prep_cif.c: Likewise.
3064 * src/raw_api.c: Likewise.
3065 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3066 to the testsuite.
3067 * src/arm/ffi.c: Remove lint directives.
3068 * src/m32r/ffi.c: Likewise.
3069 * src/pa/ffi.c: Likewise.
3070 * src/powerpc/ffi.c: Likewise.
3071 * src/powerpc/ffi_darwin.c: Likewise.
3072 * src/sh/ffi.c: Likewise.
3073 * src/sh64/ffi.c: Likewise.
3074 * src/x86/ffi.c: Likewise.
3075 * testsuite/libffi.call/float2.c: Likewise.
3076 * testsuite/libffi.call/promotion.c: Likewise.
3077 * testsuite/libffi.call/struct1.c: Likewise.
3078
30792006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3080
3081 * src/pa/hpux32.S: Correct unwind offset calculation for
3082 ffi_closure_pa32.
3083 * src/pa/linux.S: Likewise.
3084
30852006-04-12 James E Wilson <wilson@specifix.com>
3086
3087 PR libgcj/26483
3088 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3089 (hfa_type_load): Call stf_spill.
3090 (hfa_type_store): Call ldf_fill.
3091 (ffi_call): Adjust calls to above routines. Add local temps for
3092 macro result.
3093
30942006-04-10 Matthias Klose <doko@debian.org>
3095
3096 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3097 directory names containing underscores.
3098
30992006-04-07 James E Wilson <wilson@specifix.com>
3100
3101 * testsuite/libffi.call/float4.c: New testcase.
3102
31032006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3104 Andreas Tobler <a.tobler@schweiz.ch>
3105
3106 * Makefile.am: Add PA_HPUX port.
3107 * Makefile.in: Regenerate.
3108 * include/Makefile.in: Likewise.
3109 * testsuite/Makefile.in: Likewise.
3110 * configure.ac: Add PA_HPUX rules.
3111 * configure: Regenerate.
3112 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3113 Add PA_HPUX and PA64_HPUX.
3114 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3115 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3116 (FFI_TYPE_SMALL_STRUCT2): Define.
3117 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3118 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3119 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3120 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3121 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3122 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3123 * src/pa/ffi.c (ROUND_DOWN): Delete.
3124 (fldw, fstw, fldd, fstd): Use '__asm__'.
3125 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3126 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3127 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3128 Simplify incrementing of stack slot variable. Change type of local
3129 'n' to unsigned int.
3130 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3131 double on PA_HPUX.
3132 (ffi_prep_cif_machdep): Likewise.
3133 (ffi_call): Likewise.
3134 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3135 return type to ffi_status. Simplify incrementing of stack slot
3136 variable. Only copy floating point argument registers when PA_LINUX
3137 is true. Reformat debug statement.
3138 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3139 FFI_TYPE_SMALL_STRUCT8.
3140 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3141 declaration.
3142 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3143 Add nops to cache flush. Add trampoline for PA_HPUX.
3144 * src/pa/hpux32.S: New file.
3145 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3146 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3147 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3148 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3149 argument type checks so that common argument types appear first.
3150 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3151 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3152
31532006-03-24 Alan Modra <amodra@bigpond.net.au>
3154
3155 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3156 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3157 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3158 FFI_TYPE_LONGDOUBLE.
3159 (ffi_prep_args64): Assert using IBM extended double.
3160 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3161 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3162 (ffi_call): Handle FFI_LINUX.
3163 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3164 gpr3 return pointer as for struct return. Handle FFI_LINUX
3165 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3166 unnecessarily.
3167 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3168 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3169 Don't use r6 as pointer to results, instead use sp offset. Don't
3170 make a special call to load lr with case table address, instead
3171 use offset from previous call.
3172 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3173 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3174 return.
3175
31762006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3177
3178 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3179 passed with FP registers correctly.
3180 (ffi_closure_helper_SYSV): Likewise.
3181 * src/sh64/sysv.S: Likewise.
3182
31832006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3184
3185 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3186 args and userdata unused.
3187 (closure_test_fn1): Mark cif and userdata unused.
3188 (main): Remove unused res.
3189
31902006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3191
3192 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3193 -O2, -O3, -Os and the warning flags -W -Wall.
3194 * testsuite/libffi.special/special.exp: Likewise.
3195 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3196 unused parameter unused for gcc or else do nothing.
3197 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3198 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3199 and userdata unused.
3200 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3201 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3202 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3203 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3204 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3205 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3206 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3207 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3208 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3209 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3210 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3211 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3212 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3213 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3214 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3215 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3216 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3217 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3218 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3219 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3220 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3221 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3222 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3223 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3224 Likewise.
3225 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3226 Likewise.
3227 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3228 Likewise.
3229 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3230 void* to avoid compiler warning.
3231 (main): Likewise.
3232 (cls_struct_align_gn): Mark cif and userdata unused.
3233 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3234 Likewise.
3235 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3236 Likewise.
3237 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3238 Likewise.
3239 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3240 Likewise.
3241 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3242 Likewise.
3243 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3244 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3245 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3246 data unused.
3247 (main): Cast res_call to silence gcc.
3248 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3249 data unused.
3250 (main): Cast res_call to silence gcc.
3251 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3252 and data unused.
3253 (main): Cast res_call to silence gcc.
3254 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3255 data unused.
3256 (main): Cast res_call to silence gcc.
3257 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3258 data unused.
3259 (main): Cast res_call to silence gcc.
3260 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3261 and data unused.
3262 (main): Cast res_call to silence gcc.
3263 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3264 userdata unused.
3265 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3266 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3267 userdata unused.
3268 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3269 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3270 userdata unused.
3271 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3272 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3273 userdata unused.
3274 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3275 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3276 userdata unused.
3277 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3278 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3279 and userdata unused.
3280 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3281 userdata unused.
3282 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3283 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3284 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3285 Cleanup white spaces.
3286 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3287 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3288 cif and userdata unused.
3289 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3290 Likewise.
3291 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3292 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3293 formatters to silence gcc.
3294 (B_gn): Mark cif and userdata unused.
3295 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3296 unused.
3297 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3298 (B_gn): Mark cif and userdata unused.
3299 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3300 unused.
3301 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3302 (B_gn): Mark cif and userdata unused.
3303 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3304 unused.
3305 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3306 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3307 * testsuite/libffi.call/problem1.c (stub): Likewise.
3308 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3309 gcc.
3310 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3311 in the last commit for this test case in the test case itself.
3312 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3313 unused.
3314 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3315 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3316 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3317 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3318 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3319 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3320
33212006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3322
3323 * src/sh/sysv.S: Fix register numbers in the FDE for
3324 ffi_closure_SYSV.
3325
33262006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3327
3328 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3329 declaration to avoid a false negative on ix86. See PR323.
3330
33312006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3332
3333 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3334 and cast integer to void * if needed. Update the pointer to
3335 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003336
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033372006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3338
3339 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3340 is fixed.
3341 * testsuite/libffi.call/nested_struct4.c: Likewise.
3342
33432006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3344
3345 * testsuite/libffi.call/return_dbl.c: New test case.
3346 * testsuite/libffi.call/return_dbl1.c: Likewise.
3347 * testsuite/libffi.call/return_dbl2.c: Likewise.
3348 * testsuite/libffi.call/return_fl.c: Likewise.
3349 * testsuite/libffi.call/return_fl1.c: Likewise.
3350 * testsuite/libffi.call/return_fl2.c: Likewise.
3351 * testsuite/libffi.call/return_fl3.c: Likewise.
3352 * testsuite/libffi.call/closure_fn6.c: Likewise.
3353
3354 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3355 definition.
3356 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3357 here to be used by other test cases too.
3358
3359 * testsuite/libffi.call/nested_struct10.c: New test case.
3360 * testsuite/libffi.call/nested_struct9.c: Likewise.
3361 * testsuite/libffi.call/nested_struct8.c: Likewise.
3362 * testsuite/libffi.call/nested_struct7.c: Likewise.
3363 * testsuite/libffi.call/nested_struct6.c: Likewise.
3364 * testsuite/libffi.call/nested_struct5.c: Likewise.
3365 * testsuite/libffi.call/nested_struct4.c: Likewise.
3366
33672006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3368
3369 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3370 * configure: Rebuilt.
3371
33722006-01-18 Jakub Jelinek <jakub@redhat.com>
3373
3374 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3375 instead do the shifting inline.
3376 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3377 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3378 and 8 byte structs, for the remaining struct sizes don't call
3379 __lshrdi3, instead do the shifting inline.
3380
33812005-12-07 Thiemo Seufer <ths@networkno.de>
3382
3383 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3384 missing parentheses.
3385 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3386 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3387 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3388 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3389 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3390 FA_0_0_OFF2.
3391 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3392 endianness bugs.
3393 (ffi_prep_closure): Improve trampoline instruction scheduling.
3394 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3395
33962005-12-03 Alan Modra <amodra@bigpond.net.au>
3397
3398 * src/powerpc/ffi.c: Formatting.
3399 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3400 (ffi_prep_args64): Likewise.
3401
34022005-09-30 Geoffrey Keating <geoffk@apple.com>
3403
3404 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3405 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3406
34072005-09-26 Tom Tromey <tromey@redhat.com>
3408
3409 * testsuite/libffi.call/float1.c (value_type): New typedef.
3410 (CANARY): New define.
3411 (main): Check for result buffer overflow.
3412 * src/powerpc/linux64.S: Handle linux64 long double returns.
3413 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3414 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3415
34162005-08-25 Alan Modra <amodra@bigpond.net.au>
3417
3418 PR target/23404
3419 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3420 homed fp args.
3421 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3422
34232005-08-11 Jakub Jelinek <jakub@redhat.com>
3424
3425 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3426 (AH_BOTTOM): Add FFI_HIDDEN definition.
3427 * configure: Rebuilt.
3428 * fficonfig.h.in: Rebuilt.
3429 * src/powerpc/ffi.c (hidden): Remove.
3430 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3431 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3432 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3433 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3434 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3435 add FFI_HIDDEN to its prototype.
3436 (ffi_closure_SYSV_inner): New.
3437 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3438 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3439
34402005-08-10 Alfred M. Szmidt <ams@gnu.org>
3441
3442 PR libffi/21819:
3443 * configure: Rebuilt.
3444 * configure.ac: Handle i*86-*-gnu*.
3445
34462005-08-09 Jakub Jelinek <jakub@redhat.com>
3447
3448 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3449 DW_CFA_offset_extended_sf rather than
3450 DW_CFA_GNU_negative_offset_extended.
3451 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3452
34532005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3454
3455 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3456 on sh3.
3457 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3458 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3459 partially on register.
3460 (ffi_closure_helper_SYSV): Likewise.
3461 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3462
34632005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3464
3465 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3466 Remove empty line.
3467 * src/sh64/ffi.c (simple_type): Remove.
3468 (return_type): Handle small structures correctly.
3469 (ffi_prep_args): Likewise.
3470 (ffi_call): Likewise.
3471 (ffi_closure_helper_SYSV): Likewise.
3472 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3473 Emit position independent code if PIC and remove wrong datalabel
3474 prefixes from EH data.
3475
34762005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3477
3478 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3479 * Makefile.in: Regenerate.
3480 * include/Makefile.in: Likewise.
3481 * testsuite/Makefile.in: Likewise.
3482 * configure.ac: Add POWERPC_FREEBSD rules.
3483 * configure: Regenerate.
3484 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3485 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3486 * src/powerpc/ffi.c: Add flags to handle small structure returns
3487 in ffi_call_SYSV.
3488 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3489 Aka FFI_SYSV.
3490 (ffi_closure_helper_SYSV): Likewise.
3491 * src/powerpc/ppc_closure.S: Add return types for small structures.
3492 * src/powerpc/sysv.S: Add bits to handle small structures for
3493 final SYSV 4 ABI.
3494
34952005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3496
3497 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3498 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3499 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3500
35012005-07-05 Randolph Chung <tausq@debian.org>
3502
3503 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3504 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3505 structures. Kill compilation warnings.
3506 (ffi_closure_inner_LINUX): Print return values as hex in debug
3507 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3508 Properly handle 5-7 byte structure returns.
3509 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3510 (FFI_TYPE_SMALL_STRUCT2): Remove.
3511 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3512 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3513 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3514 (checksmst1, checksmst2): Remove.
3515 (checksmst3): Optimize handling of 3-byte struct returns.
3516 (checksmst567): Properly handle 5-7 byte struct returns.
3517
35182005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3519
3520 PR libgcj/21943
3521 * src/mips/n32.S: Enforce PIC code.
3522 * src/mips/o32.S: Likewise.
3523
35242005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3525
3526 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3527 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003528
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035292005-06-01 Alan Modra <amodra@bigpond.net.au>
3530
3531 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3532 to call ffi_closure_helper_SYSV. Append @local instead.
3533 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3534
35352005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3536
3537 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3538 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3539 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3540 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3541 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003542
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035432005-05-09 Mike Stump <mrs@apple.com>
3544
3545 * configure: Regenerate.
3546
35472005-05-08 Richard Henderson <rth@redhat.com>
3548
3549 PR libffi/21285
3550 * src/alpha/osf.S: Update unwind into to match code.
3551
35522005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3553 Richard Henderson <rth@redhat.com>
3554
3555 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3556 bit 11 of flags.
3557 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3558 (ffi_prep_closure): Set carry bit if sse-used flag set.
3559 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3560 Only load sse registers if ssecount non-zero.
3561 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3562
35632005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3564
3565 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3566 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3567 * configure: Regenerate.
3568
35692005-04-20 Hans-Peter Nilsson <hp@axis.com>
3570
3571 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3572 have Tcl8.3-compatible intermediate variable.
3573
Anthony Green0cfe60e2009-12-29 10:06:04 -050035742005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003575 Hans-Peter Nilsson <hp@axis.com>
3576
3577 * Makefile.am: Add CRIS support.
3578 * configure.ac: Likewise.
3579 * Makefile.in, configure, testsuite/Makefile.in,
3580 include/Makefile.in: Regenerate.
3581 * src/cris: New directory.
3582 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3583 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3584
3585 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3586 \r?\n in output tests.
3587
35882005-04-12 Mike Stump <mrs@apple.com>
3589
3590 * configure: Regenerate.
3591
35922005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3593
3594 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003595
Anthony Greenc6dddbd2009-10-04 08:11:33 -040035962005-03-30 Steve Ellcey <sje@cup.hp.com>
3597
3598 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3599 (ffi_sarg) Ditto.
3600 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3601 to 64 bits in ILP32 mode.
3602 Load 64 bits even for short data.
3603
36042005-03-23 Mike Stump <mrs@apple.com>
3605
3606 * src/powerpc/darwin.S: Update for -m64 multilib.
3607 * src/powerpc/darwin_closure.S: Likewise.
3608
36092005-03-21 Zack Weinberg <zack@codesourcery.com>
3610
3611 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3612 Do not set tool_include_dir.
3613 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3614 Regenerate.
3615 * include/Makefile.am: Set gcc_version and toollibffidir.
3616 * include/Makefile.in: Regenerate.
3617
36182005-02-22 Andrew Haley <aph@redhat.com>
3619
3620 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3621 odd-numbered register pairs for 64-bit integer types.
3622
36232005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3624
3625 PR libffi/20104
3626 * testsuite/libffi.call/return_ll1.c: New test case.
3627
36282005-02-11 Janis Johnson <janis187@us.ibm.com>
3629
3630 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3631 * testsuite/libffi.call/float.c: Ditto.
3632 * testsuite/libffi.call/float2.c: Ditto.
3633 * testsuite/libffi.call/float3.c: Ditto.
3634
36352005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3636
3637 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3638
36392005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3640
3641 * testsuite/libffi.special/special.exp (cxx_options): Add
3642 -shared-libgcc.
3643
36442004-12-31 Richard Henderson <rth@redhat.com>
3645
3646 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3647 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3648 offset parameters with a type parameter; deduce size and structure
3649 alignment. Update all users.
3650
36512004-12-31 Richard Henderson <rth@redhat.com>
3652
3653 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3654 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3655 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3656 into ffi_prep_closure.
3657 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3658 from scratch.
3659
36602004-12-27 Richard Henderson <rth@redhat.com>
3661
3662 * src/x86/unix64.S: Fix typo in unwind info.
3663
36642004-12-25 Richard Henderson <rth@redhat.com>
3665
3666 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3667 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3668 (merge_classes): Check for it.
3669 (SSE_CLASS_P): New.
3670 (classify_argument): Pass byte_offset by value; perform all updates
3671 inside struct case.
3672 (examine_argument): Add classes argument; handle
3673 X86_64_COMPLEX_X87_CLASS.
3674 (ffi_prep_args): Merge into ...
3675 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3676 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3677 (ffi_fill_return_value): Remove.
3678 (ffi_prep_closure): Remove dead assert.
3679 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3680 Rewrite to use struct register_args instead of va_list. Create
3681 flags for handling structure returns.
3682 * src/x86/unix64.S: Remove dead strings.
3683 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3684 stack frame with ffi_call. Handle structure returns properly.
3685 (float2sse, floatfloat2sse, double2sse): Remove.
3686 (sse2float, sse2double, sse2floatfloat): Remove.
3687 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3688 to handle structure returns properly.
3689
36902004-12-08 David Edelsohn <edelsohn@gnu.org>
3691
3692 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3693 PICFLAG.
3694 * Makefile.in: Regenerated.
3695
36962004-12-02 Richard Sandiford <rsandifo@redhat.com>
3697
3698 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3699 * configure, aclocal.m4, Makefile.in: Regenerate.
3700 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3701
37022004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3703
3704 * configure: Regenerate for libtool change.
3705
37062004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3707
3708 * configure: Regenerate for libtool reversion.
3709
37102004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3711
3712 * configure: Regenerate for libtool change.
3713
37142004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3715
3716 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3717
37182004-11-23 Richard Sandiford <rsandifo@redhat.com>
3719
3720 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3721 of jal. Use an absolute encoding for the frame information.
3722
37232004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3724
3725 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3726 * acinclude.m4: Delete logic for sincludes.
3727 * aclocal.m4, Makefile.in, configure: Regenerate.
3728 * include/Makefile: Likewise.
3729 * testsuite/Makefile: Likewise.
3730
37312004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3732
3733 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3734 on a 8-byte boundary.
3735 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3736
37372004-10-27 Richard Earnshaw <rearnsha@arm.com>
3738
3739 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3740 long long values. Round stack allocation to a multiple of 8 bytes
3741 for ATPCS compatibility.
3742 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3743 names. Handle returning long long types. Add Thumb and interworking
3744 support. Improve soft-float code.
3745
37462004-10-27 Richard Earnshaw <rearnsha@arm.com>
3747
3748 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3749 (libffi_exit): New function.
3750 (libffi_init): Build the testglue wrapper if needed.
3751
37522004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3753
3754 PR other/18138
3755 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3756
37572004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3758
3759 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3760
37612004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3762
3763 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3764 * testsuite/libffi.call/float3.c: New test case.
3765
37662004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3767
3768 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3769 the function returning a structure pointed with R2.
3770 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3771 the structure return value if T bit set. Emit position
3772 independent code and EH data if PIC.
3773
37742004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3775
3776 * Makefile.am: Add m32r support.
3777 * configure.ac: Likewise.
3778 * Makefile.in: Regenerate.
3779 * confiugre: Regenerate.
3780 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3781 (uint64, sint64, double, longdouble)
3782 * src/m32r: New directory.
3783 * src/m32r/ffi.c: New file.
3784 * src/m32r/sysv.S: Likewise.
3785 * src/m32r/ffitarget.h: Likewise.
3786
37872004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3788
3789 * testsuite/libffi.call/negint.c: New test case.
3790
37912004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3792
3793 PR libgcj/17465
3794 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3795 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3796 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3797 DYLD_LIBRARY_PATH.
3798
37992004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3800
3801 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3802 * testsuite/libffi.call/promotion.c: Likewise.
3803 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3804 whitespaces.
3805 * testsuite/libffi.call/return_sc.c: Likewise.
3806 * testsuite/libffi.call/return_uc.c: Likewise.
3807
38082004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3809
3810 * src/powerpc/darwin.S: Fix comments and identation.
3811 * src/powerpc/darwin_closure.S: Likewise.
3812
38132004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3814
3815 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3816 (ffi_prep_args): Handle longdouble arguments.
3817 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3818 longdouble.
3819 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3820 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3821 values.
3822 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3823 * src/types.c: Defined longdouble size and alignment for darwin.
3824
38252004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3826
3827 * src/powerpc/aix.S: Remove whitespaces.
3828 * src/powerpc/aix_closure.S: Likewise.
3829 * src/powerpc/asm.h: Likewise.
3830 * src/powerpc/ffi.c: Likewise.
3831 * src/powerpc/ffitarget.h: Likewise.
3832 * src/powerpc/linux64.S: Likewise.
3833 * src/powerpc/linux64_closure.S: Likewise.
3834 * src/powerpc/ppc_closure.S: Likewise.
3835 * src/powerpc/sysv.S: Likewise.
3836
38372004-08-30 Anthony Green <green@redhat.com>
3838
3839 * Makefile.am: Add frv support.
3840 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3841 * configure.ac: Read configure.host.
3842 * configure.in: Read configure.host.
3843 * configure.host: New file. frv-elf needs libgloss.
3844 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3845 alignment. This is needed to frv and shouldn't harm the others.
3846 * include/ffi_common.h (ALIGN_DOWN): New macro.
3847 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3848
38492004-08-24 David Daney <daney@avtrex.com>
3850
3851 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3852 * testsuite/libffi.call/closure_fn1.c: Likewise.
3853 * testsuite/libffi.call/closure_fn2.c Likewise.
3854 * testsuite/libffi.call/closure_fn3.c: Likewise.
3855 * testsuite/libffi.call/closure_fn4.c: Likewise.
3856 * testsuite/libffi.call/closure_fn5.c: Likewise.
3857 * testsuite/libffi.call/cls_18byte.c: Likewise.
3858 * testsuite/libffi.call/cls_19byte.c: Likewise.
3859 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3860 * testsuite/libffi.call/cls_20byte.c: Likewise.
3861 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3862 * testsuite/libffi.call/cls_24byte.c: Likewise.
3863 * testsuite/libffi.call/cls_2byte.c: Likewise.
3864 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3865 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3866 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3867 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3868 * testsuite/libffi.call/cls_4byte.c: Likewise.
3869 * testsuite/libffi.call/cls_64byte.c: Likewise.
3870 * testsuite/libffi.call/cls_6byte.c: Likewise.
3871 * testsuite/libffi.call/cls_7byte.c: Likewise.
3872 * testsuite/libffi.call/cls_8byte.c: Likewise.
3873 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3874 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3875 * testsuite/libffi.call/cls_align_double.c: Likewise.
3876 * testsuite/libffi.call/cls_align_float.c: Likewise.
3877 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3878 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3879 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3880 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3881 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3882 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3883 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3884 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3885 * testsuite/libffi.call/cls_double.c: Likewise.
3886 * testsuite/libffi.call/cls_float.c: Likewise.
3887 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3888 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3889 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3890 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3891 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3892 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3893 * testsuite/libffi.call/cls_schar.c: Likewise.
3894 * testsuite/libffi.call/cls_sint.c: Likewise.
3895 * testsuite/libffi.call/cls_sshort.c: Likewise.
3896 * testsuite/libffi.call/cls_uchar.c: Likewise.
3897 * testsuite/libffi.call/cls_uint.c: Likewise.
3898 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3899 * testsuite/libffi.call/cls_ushort.c: Likewise.
3900 * testsuite/libffi.call/nested_struct.c: Likewise.
3901 * testsuite/libffi.call/nested_struct1.c: Likewise.
3902 * testsuite/libffi.call/nested_struct2.c: Likewise.
3903 * testsuite/libffi.call/nested_struct3.c: Likewise.
3904 * testsuite/libffi.call/problem1.c: Likewise.
3905 * testsuite/libffi.special/unwindtest.cc: Likewise.
3906 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3907 to zero.
3908 * testsuite/libffi.call/cls_16byte.c: Likewise.
3909 * testsuite/libffi.call/cls_5byte.c: Likewise.
3910
39112004-08-23 David Daney <daney@avtrex.com>
3912
3913 PR libgcj/13141
3914 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3915 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3916 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3917 parameters and return types.
3918 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3919 (ffi_prep_closure): Ditto.
3920 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3921 alignment calculations.
3922 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3923 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3924
39252004-08-14 Casey Marshall <csm@gnu.org>
3926
3927 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3928 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3929 integer (O32 ABI only).
3930 (ffi_prep_closure): new function.
3931 (ffi_closure_mips_inner_O32): new function.
3932 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3933 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3934 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3935 64 bit integers correctly.
3936 (ffi_closure_O32): new function.
3937 Added DWARF-2 unwind info for both functions.
3938
39392004-08-10 Andrew Haley <aph@redhat.com>
3940
3941 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3942
39432004-08-01 Robert Millan <robertmh@gnu.org>
3944
3945 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3946 * configure: Regenerate.
3947
39482004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3949
3950 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3951 and mmap() explicitly instead of relying on preset autoconf cache
3952 variables.
3953 * aclocal.m4: Regenerate.
3954 * configure: Regenerate.
3955
39562004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3957
3958 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3959 (ffi_check_float_struct): Remove unused prototype.
3960
39612004-06-30 Geoffrey Keating <geoffk@apple.com>
3962
3963 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3964 character on Darwin, use '\n\t' instead.
3965
39662004-06-26 Matthias Klose <doko@debian.org>
3967
3968 * libtool-version: Fix typo in revision/age.
3969
39702004-06-17 Matthias Klose <doko@debian.org>
3971
3972 * libtool-version: New.
3973 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3974 * Makefile.in: Regenerate.
3975
39762004-06-15 Paolo Bonzini <bonzini@gnu.org>
3977
3978 * Makefile.am: Remove useless multilib rules.
3979 * Makefile.in: Regenerate.
3980 * aclocal.m4: Regenerate with automake 1.8.5.
3981 * configure.ac: Remove useless multilib configury.
3982 * configure: Regenerate.
3983
39842004-06-15 Paolo Bonzini <bonzini@gnu.org>
3985
3986 * .cvsignore: New file.
3987
39882004-06-10 Jakub Jelinek <jakub@redhat.com>
3989
3990 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3991 fp_done.
3992 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3993 changed from 8.
3994
39952004-06-06 Sean McNeil <sean@mcneil.com>
3996
3997 * configure.ac: Add x86_64-*-freebsd* support.
3998 * configure: Regenerate.
3999
40002004-04-26 Joe Buck <jbuck@welsh-buck.org>
4001
4002 Bug 15093
4003 * configure.ac: Test for existence of mmap and sys/mman.h before
4004 checking blacklist. Fix suggested by Jim Wilson.
4005 * configure: Regenerate.
4006
40072004-04-26 Matt Austern <austern@apple.com>
4008
4009 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4010 FDE location.
4011 * src/powerpc/darwin_closure.S: Likewise.
4012
40132004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4014
4015 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4016 error. Reported by Thomas Heller <theller@python.net>.
4017 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4018 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4019
40202004-03-20 Matthias Klose <doko@debian.org>
4021
4022 * src/pa/linux.S: Fix typo.
4023
40242004-03-19 Matthias Klose <doko@debian.org>
4025
4026 * Makefile.am: Update.
4027 * Makefile.in: Regenerate.
4028 * src/pa/ffi.h.in: Remove.
4029 * src/pa/ffitarget.h: New file.
4030
40312004-02-10 Randolph Chung <tausq@debian.org>
4032
4033 * Makefile.am: Add PA support.
4034 * Makefile.in: Regenerate.
4035 * include/Makefile.in: Regenerate.
4036 * configure.ac: Add PA target.
4037 * configure: Regenerate.
4038 * src/pa/ffi.c: New file.
4039 * src/pa/ffi.h.in: Add PA support.
4040 * src/pa/linux.S: New file.
4041 * prep_cif.c: Add PA support.
4042
40432004-03-16 Hosaka Yuji <hos@tamanegi.org>
4044
4045 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4046 double.
4047 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4048 with ecif->cif->flags.
4049 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4050 with cif->flags.
4051 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4052 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4053 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4054 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4055
40562004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4057
4058 * configure.in: Rename file to ...
4059 * configure.ac: ... this.
4060 * fficonfig.h.in: Regenerate.
4061 * Makefile.in: Regenerate.
4062 * include/Makefile.in: Regenerate.
4063 * testsuite/Makefile.in: Regenerate.
4064
40652004-03-12 Matt Austern <austern@apple.com>
4066
4067 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4068 changes in EH format resulting from addition of linkonce support.
4069 * src/powerpc/darwin_closure.S: Likewise.
4070
40712004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4072 Paolo Bonzini <bonzini@gnu.org>
4073
4074 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4075 Remove VPATH. Remove rules for object files. Remove multilib support.
4076 (AM_CCASFLAGS): Add.
4077 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4078 (AC_PREREQ): Bump version to 2.59.
4079 (AC_INIT): Fill with version info and bug address.
4080 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4081 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4082 De-precious CC so that the right flags are passed down to multilibs.
4083 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4084 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4085 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4086 * configure: Rebuilt.
4087 * aclocal.m4: Likewise.
4088 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4089 * fficonfig.h.in: Likewise.
4090
40912004-03-11 Andreas Schwab <schwab@suse.de>
4092
4093 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4094 arguments from fp registers only for the first 8 parameter slots.
4095 Don't convert a float parameter when passed in memory.
4096
40972004-03-09 Hans-Peter Nilsson <hp@axis.com>
4098
4099 * configure: Regenerate for config/accross.m4 correction.
4100
41012004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4102
4103 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4104 ecif->cif->bytes to bytes.
4105 (ffi_prep_cif_machdep): Add braces around nested if statement.
4106
41072004-02-09 Alan Modra <amodra@bigpond.net.au>
4108
4109 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4110
4111 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4112 (ffi_closure_helper_LINUX64): Fix typo.
4113 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4114 for powerpc64-*-*.
4115 * testsuite/libffi.call/float.c: Likewise.
4116 * testsuite/libffi.call/float2.c: Likewise.
4117
41182004-02-08 Alan Modra <amodra@bigpond.net.au>
4119
4120 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4121 long double function return and long double arg handling.
4122 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4123 Use "end_pfr" instead of "nf". Correct long double handling.
4124 Localise "temp".
4125 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4126 return value.
4127 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4128 space for long double return value. Adjust stack frame and offsets.
4129 Load f2 long double return.
4130
41312004-02-07 Alan Modra <amodra@bigpond.net.au>
4132
4133 * src/types.c: Use 16 byte long double for POWERPC64.
4134
41352004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4136
4137 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4138 when the structure return address is passed in %o0.
4139 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4140 (ffi_v9_layout_struct): Align the field following a nested structure
4141 on a word boundary. Use memmove instead of memcpy.
4142 (ffi_call): Update call to ffi_V9_return_struct.
4143 (ffi_prep_closure): Define 'ctx' only for V8.
4144 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4145 and ffi_closure_sparc_inner_v9.
4146 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4147 Always skip the structure return address. For structures and long
4148 doubles, copy the argument directly.
4149 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4150 if required. Shift the maximum floating-point slot accordingly. For
4151 big structures, copy the argument directly; otherwise, left-justify the
4152 argument and call ffi_v9_layout_struct to lay out the structure on
4153 the stack.
4154 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4155 (ffi_closure_v8): Pass the structure return address. Update call to
4156 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4157 Skip the 'unimp' insn when returning long doubles and structures.
4158 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4159 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4160 FFI_TYPE_INT handling. Load structures both in integers and
4161 floating-point registers on return.
4162 * README: Update status of the SPARC port.
4163
41642004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4165
4166 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4167 as of type ffi_arg.
4168 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4169
41702004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4171
4172 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4173 value as of type ffi_arg, not unsigned int.
4174
41752004-01-21 Michael Ritzert <ritzert@t-online.de>
4176
4177 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4178 of the LHS.
4179
41802004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4181
4182 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4183 Solaris.
4184
41852004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4186
4187 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4188 to void *.
4189
41902003-12-10 Richard Henderson <rth@redhat.com>
4191
4192 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4193 size_t instead of int.
4194
41952003-12-04 Hosaka Yuji <hos@tamanegi.org>
4196
4197 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4198 * testsuite/libffi.call/many_win32.c (main): Replace variable
4199 int i with unsigned long ul.
4200
4201 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4202 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4203 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4204 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4205 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4206 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4207 * testsuite/libffi.call/cls_align_float.c: Likewise.
4208 * testsuite/libffi.call/cls_align_double.c: Likewise.
4209 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4210 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4211
42122003-12-02 Hosaka Yuji <hos@tamanegi.org>
4213
4214 PR other/13221
4215 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4216 Align arguments to 32 bits.
4217
42182003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4219
4220 PR other/13221
4221 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4222 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4223 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4224 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4225 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4226 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4227
4228 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4229
42302003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4231
4232 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4233 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4234
42352003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4236
4237 * Makefile.in: Rebuilt.
4238 * configure: Likewise.
4239 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4240 the right type.
4241
42422003-11-21 Andreas Jaeger <aj@suse.de>
4243 Andreas Tobler <a.tobler@schweiz.ch>
4244
4245 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4246 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4247 * Makefile.in: Rebuilt.
4248 * aclocal.m4: Likewise.
4249 * configure: Likewise.
4250 * fficonfig.h.in: Likewise.
4251 * testsuite/lib/libffi-dg.exp: Add include dir.
4252 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4253 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4254 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4255 for ffi_closure if available.
4256 * testsuite/libffi.call/closure_fn1.c: Likewise.
4257 * testsuite/libffi.call/closure_fn2.c: Likewise.
4258 * testsuite/libffi.call/closure_fn3.c: Likewise.
4259 * testsuite/libffi.call/closure_fn4.c: Likewise.
4260 * testsuite/libffi.call/closure_fn5.c: Likewise.
4261 * testsuite/libffi.call/cls_12byte.c: Likewise.
4262 * testsuite/libffi.call/cls_16byte.c: Likewise.
4263 * testsuite/libffi.call/cls_18byte.c: Likewise.
4264 * testsuite/libffi.call/cls_19byte.c: Likewise.
4265 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4266 * testsuite/libffi.call/cls_20byte.c: Likewise.
4267 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4268 * testsuite/libffi.call/cls_24byte.c: Likewise.
4269 * testsuite/libffi.call/cls_2byte.c: Likewise.
4270 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4271 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4272 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4273 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4274 * testsuite/libffi.call/cls_4byte.c: Likewise.
4275 * testsuite/libffi.call/cls_5byte.c: Likewise.
4276 * testsuite/libffi.call/cls_64byte.c: Likewise.
4277 * testsuite/libffi.call/cls_6byte.c: Likewise.
4278 * testsuite/libffi.call/cls_7byte.c: Likewise.
4279 * testsuite/libffi.call/cls_8byte.c: Likewise.
4280 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4281 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4282 * testsuite/libffi.call/cls_double.c: Likewise.
4283 * testsuite/libffi.call/cls_float.c: Likewise.
4284 * testsuite/libffi.call/cls_schar.c: Likewise.
4285 * testsuite/libffi.call/cls_sint.c: Likewise.
4286 * testsuite/libffi.call/cls_sshort.c: Likewise.
4287 * testsuite/libffi.call/cls_uchar.c: Likewise.
4288 * testsuite/libffi.call/cls_uint.c: Likewise.
4289 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4290 * testsuite/libffi.call/cls_ushort.c: Likewise.
4291 * testsuite/libffi.call/nested_struct.c: Likewise.
4292 * testsuite/libffi.call/nested_struct1.c: Likewise.
4293 * testsuite/libffi.call/nested_struct2.c: Likewise.
4294 * testsuite/libffi.call/nested_struct3.c: Likewise.
4295 * testsuite/libffi.call/problem1.c: Likewise.
4296 * testsuite/libffi.special/unwindtest.cc: Likewise.
4297
42982003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4299
4300 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4301
43022003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4303
4304 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4305 Add -lgcc_s to additional flags.
4306
43072003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4308
4309 * configure.in, include/Makefile.am: PR libgcj/11147, install
4310 the ffitarget.h header file in a gcc versioned and target
4311 dependent place.
4312 * configure: Regenerated.
4313 * Makefile.in, include/Makefile.in: Likewise.
4314 * testsuite/Makefile.in: Likewise.
4315
43162003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4317
4318 * testsuite/libffi.call/closure_fn0.c: Print result and check
4319 with dg-output to make debugging easier.
4320 * testsuite/libffi.call/closure_fn1.c: Likewise.
4321 * testsuite/libffi.call/closure_fn2.c: Likewise.
4322 * testsuite/libffi.call/closure_fn3.c: Likewise.
4323 * testsuite/libffi.call/closure_fn4.c: Likewise.
4324 * testsuite/libffi.call/closure_fn5.c: Likewise.
4325 * testsuite/libffi.call/cls_12byte.c: Likewise.
4326 * testsuite/libffi.call/cls_16byte.c: Likewise.
4327 * testsuite/libffi.call/cls_18byte.c: Likewise.
4328 * testsuite/libffi.call/cls_19byte.c: Likewise.
4329 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4330 * testsuite/libffi.call/cls_20byte.c: Likewise.
4331 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4332 * testsuite/libffi.call/cls_24byte.c: Likewise.
4333 * testsuite/libffi.call/cls_2byte.c: Likewise.
4334 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4335 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4336 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4337 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4338 * testsuite/libffi.call/cls_4byte.c: Likewise.
4339 * testsuite/libffi.call/cls_5byte.c: Likewise.
4340 * testsuite/libffi.call/cls_64byte.c: Likewise.
4341 * testsuite/libffi.call/cls_6byte.c: Likewise.
4342 * testsuite/libffi.call/cls_7byte.c: Likewise.
4343 * testsuite/libffi.call/cls_8byte.c: Likewise.
4344 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4345 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4346 * testsuite/libffi.call/cls_double.c: Likewise.
4347 * testsuite/libffi.call/cls_float.c: Likewise.
4348 * testsuite/libffi.call/cls_schar.c: Likewise.
4349 * testsuite/libffi.call/cls_sint.c: Likewise.
4350 * testsuite/libffi.call/cls_sshort.c: Likewise.
4351 * testsuite/libffi.call/cls_uchar.c: Likewise.
4352 * testsuite/libffi.call/cls_uint.c: Likewise.
4353 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4354 * testsuite/libffi.call/cls_ushort.c: Likewise.
4355 * testsuite/libffi.call/problem1.c: Likewise.
4356
4357 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4358 static.
4359
43602003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4361
4362 * testsuite/libffi.call/cls_9byte2.c: New test case.
4363 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4364 * testsuite/libffi.call/cls_64byte.c: Likewise.
4365 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4366 * testsuite/libffi.call/cls_19byte.c: Likewise.
4367 * testsuite/libffi.call/cls_18byte.c: Likewise.
4368 * testsuite/libffi.call/closure_fn4.c: Likewise.
4369 * testsuite/libffi.call/closure_fn5.c: Likewise.
4370 * testsuite/libffi.call/cls_schar.c: Likewise.
4371 * testsuite/libffi.call/cls_sint.c: Likewise.
4372 * testsuite/libffi.call/cls_sshort.c: Likewise.
4373 * testsuite/libffi.call/nested_struct2.c: Likewise.
4374 * testsuite/libffi.call/nested_struct3.c: Likewise.
4375
43762003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4377
4378 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4379 * testsuite/libffi.call/cls_uchar.c: Likewise.
4380 * testsuite/libffi.call/cls_uint.c: Likewise.
4381 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4382 * testsuite/libffi.call/cls_ushort.c: Likewise.
4383 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4384
43852003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4386
4387 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4388 the initialization.
4389
43902003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4391
4392 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4393 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4394
43952003-10-22 David Daney <ddaney@avtrex.com>
4396
4397 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4398 __attribute__((__mode__(__SI__))) and friends.
4399
44002003-10-22 Andreas Schwab <schwab@suse.de>
4401
4402 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4403
44042003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4405
4406 * configure.in: AC_LINK_FILES(ffitarget.h).
4407 * configure: Regenerate.
4408 * Makefile.in: Likewise.
4409 * include/Makefile.in: Likewise.
4410 * testsuite/Makefile.in: Likewise.
4411 * fficonfig.h.in: Likewise.
4412
44132003-10-21 Paolo Bonzini <bonzini@gnu.org>
4414 Richard Henderson <rth@redhat.com>
4415
4416 Avoid that ffi.h includes fficonfig.h.
4417
4418 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4419 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4420 (TARGET_SRC_MIPS_SGI): Removed.
4421 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4422 (MIPS_SGI): Removed.
4423 (CLEANFILES): Removed.
4424 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4425 targets.
4426 * acconfig.h: Removed.
4427 * configure.in: Compute sizeofs only for double and long double.
4428 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4429 into AC_DEFINE instead of using acconfig.h. Create
4430 include/ffitarget.h instead of include/fficonfig.h. Rename
4431 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4432 AC_DEFINE EH_FRAME_FLAGS.
4433 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4434 (hack_DATA): Add ffitarget.h.
4435 * include/ffi.h.in: Remove all system specific definitions.
4436 Declare raw API even if it is not installed, why bother?
4437 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4438 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4439 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4440 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4441 * include/ffi_common.h (bool): Do not define.
4442 (ffi_assert): Accept failed assertion.
4443 (ffi_type_test): Return void and accept file/line.
4444 (FFI_ASSERT): Pass stringized failed assertion.
4445 (FFI_ASSERT_AT): New macro.
4446 (FFI_ASSERT_VALID_TYPE): New macro.
4447 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4448 UINT64, SINT64): Define here with gcc's __attribute__ macro
4449 instead of in ffi.h
4450 (FLOAT32, ALIGN): Define here instead of in ffi.h
4451 * include/ffi-mips.h: Removed. Its content moved to
4452 src/mips/ffitarget.h after separating assembly and C sections.
4453 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4454 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4455 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4456 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4457 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4458 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4459 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4460 (ffi_type_test): Rewritten.
4461 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4462 FFI_ASSERT_VALID_TYPE.
4463 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4464 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4465 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4466 src/s390/ffitarget.h, src/sh/ffitarget.h,
4467 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4468 src/x86/ffitarget.h: New files.
4469 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4470 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4471 src/powerpc/aix.S, src/powerpc/darwin.S,
4472 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4473 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4474 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4475 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4476 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4477 include fficonfig.h
4478
44792003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4480
4481 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4482 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4483
44842003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4485
4486 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4487 Used when FFI_DEBUG = 1.
4488
44892003-10-14 Alan Modra <amodra@bigpond.net.au>
4490
4491 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4492 and align.
4493
44942003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4495
4496 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4497 FFI_MIPS_O32 for O32 ABI.
4498
44992003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4500
4501 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4502 SPARC64. Cleanup whitespaces.
4503
45042003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4505
4506 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4507 strongarm, xscale. Cleanup whitespaces.
4508 * testsuite/libffi.call/closure_fn1.c: Likewise.
4509 * testsuite/libffi.call/closure_fn2.c: Likewise.
4510 * testsuite/libffi.call/closure_fn3.c: Likewise.
4511 * testsuite/libffi.call/cls_12byte.c: Likewise.
4512 * testsuite/libffi.call/cls_16byte.c: Likewise.
4513 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4514 * testsuite/libffi.call/cls_20byte.c: Likewise.
4515 * testsuite/libffi.call/cls_24byte.c: Likewise.
4516 * testsuite/libffi.call/cls_2byte.c: Likewise.
4517 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4518 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4519 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4520 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4521 * testsuite/libffi.call/cls_4byte.c: Likewise.
4522 * testsuite/libffi.call/cls_5byte.c: Likewise.
4523 * testsuite/libffi.call/cls_6byte.c: Likewise.
4524 * testsuite/libffi.call/cls_7byte.c: Likewise.
4525 * testsuite/libffi.call/cls_8byte.c: Likewise.
4526 * testsuite/libffi.call/cls_double.c: Likewise.
4527 * testsuite/libffi.call/cls_float.c: Likewise.
4528 * testsuite/libffi.call/cls_uchar.c: Likewise.
4529 * testsuite/libffi.call/cls_uint.c: Likewise.
4530 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4531 * testsuite/libffi.call/cls_ushort.c: Likewise.
4532 * testsuite/libffi.call/nested_struct.c: Likewise.
4533 * testsuite/libffi.call/nested_struct1.c: Likewise.
4534 * testsuite/libffi.call/problem1.c: Likewise.
4535 * testsuite/libffi.special/unwindtest.cc: Likewise.
4536 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4537
45382003-09-18 David Edelsohn <edelsohn@gnu.org>
4539
4540 * src/powerpc/aix.S: Cleanup whitespaces.
4541 * src/powerpc/aix_closure.S: Likewise.
4542
45432003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4544
4545 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4546 * src/powerpc/darwin_closure.S: Likewise.
4547 * src/powerpc/ffi_darwin.c: Likewise.
4548
45492003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4550 David Edelsohn <edelsohn@gnu.org>
4551
4552 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4553 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4554 parameter stack.
4555 * src/powerpc/darwin_closure.S: Likewise.
4556 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4557 according to the Darwin/AIX ABI.
4558 (ffi_prep_cif_machdep): Likewise.
4559 (ffi_closure_helper_DARWIN): Likewise.
4560 Remove the outgoing parameter stack logic. Simplify the evaluation
4561 of the different CASE types.
4562 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4563 statement in the trampoline code.
4564
45652003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4566
4567 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4568 for the register size.
4569 (ffi_closure_helper_SYSV): Handle the structure return value
4570 address correctly.
4571 (ffi_closure_helper_SYSV): Return the appropriate type when
4572 the registers are used for the structure return value.
4573 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4574 the 64-bit return value. Update copyright years.
4575
45762003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4577
4578 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4579 srcdir for ffi_mips.h.
4580
45812003-09-12 Alan Modra <amodra@bigpond.net.au>
4582
4583 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4584 structure size.
4585 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4586 placement of float result.
4587 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4588 cast of "resp" for big-endian 64 bit machines.
4589
45902003-09-11 Alan Modra <amodra@bigpond.net.au>
4591
4592 * src/types.c (double, longdouble): Merge identical SH and ARM
4593 typedefs, and add POWERPC64.
4594 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4595 struct split over gpr and rest.
4596 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4597 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4598
45992003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4600
4601 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4602 passing correctly.
4603
46042003-09-09 Alan Modra <amodra@bigpond.net.au>
4605
4606 * configure: Regenerate.
4607
46082003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4609
4610 * Makefile.am: Remove build rules for ffitest.
4611 * Makefile.in: Rebuilt.
4612
46132003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4614
4615 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4616 about implicit declaration of abort().
4617
46182003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4619
4620 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4621 * Makefile.in: Rebuilt.
4622 * configure.in: Add dejagnu test framework.
4623 * configure: Rebuilt.
4624
4625 * testsuite/Makefile.am: New file.
4626 * testsuite/Makefile.in: Built
4627 * testsuite/lib/libffi-dg.exp: New file.
4628 * testsuite/config/default.exp: Likewise.
4629 * testsuite/libffi.call/call.exp: Likewise.
4630 * testsuite/libffi.call/ffitest.h: Likewise.
4631 * testsuite/libffi.call/closure_fn0.c: Likewise.
4632 * testsuite/libffi.call/closure_fn1.c: Likewise.
4633 * testsuite/libffi.call/closure_fn2.c: Likewise.
4634 * testsuite/libffi.call/closure_fn3.c: Likewise.
4635 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4636 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4637 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4638 * testsuite/libffi.call/cls_2byte.c: Likewise.
4639 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4640 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4641 * testsuite/libffi.call/cls_4byte.c: Likewise.
4642 * testsuite/libffi.call/cls_5byte.c: Likewise.
4643 * testsuite/libffi.call/cls_6byte.c: Likewise.
4644 * testsuite/libffi.call/cls_7byte.c: Likewise.
4645 * testsuite/libffi.call/cls_8byte.c: Likewise.
4646 * testsuite/libffi.call/cls_12byte.c: Likewise.
4647 * testsuite/libffi.call/cls_16byte.c: Likewise.
4648 * testsuite/libffi.call/cls_20byte.c: Likewise.
4649 * testsuite/libffi.call/cls_24byte.c: Likewise.
4650 * testsuite/libffi.call/cls_double.c: Likewise.
4651 * testsuite/libffi.call/cls_float.c: Likewise.
4652 * testsuite/libffi.call/cls_uchar.c: Likewise.
4653 * testsuite/libffi.call/cls_uint.c: Likewise.
4654 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4655 * testsuite/libffi.call/cls_ushort.c: Likewise.
4656 * testsuite/libffi.call/float.c: Likewise.
4657 * testsuite/libffi.call/float1.c: Likewise.
4658 * testsuite/libffi.call/float2.c: Likewise.
4659 * testsuite/libffi.call/many.c: Likewise.
4660 * testsuite/libffi.call/many_win32.c: Likewise.
4661 * testsuite/libffi.call/nested_struct.c: Likewise.
4662 * testsuite/libffi.call/nested_struct1.c: Likewise.
4663 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4664 * testsuite/libffi.call/problem1.c: Likewise.
4665 * testsuite/libffi.call/promotion.c: Likewise.
4666 * testsuite/libffi.call/return_ll.c: Likewise.
4667 * testsuite/libffi.call/return_sc.c: Likewise.
4668 * testsuite/libffi.call/return_uc.c: Likewise.
4669 * testsuite/libffi.call/strlen.c: Likewise.
4670 * testsuite/libffi.call/strlen_win32.c: Likewise.
4671 * testsuite/libffi.call/struct1.c: Likewise.
4672 * testsuite/libffi.call/struct2.c: Likewise.
4673 * testsuite/libffi.call/struct3.c: Likewise.
4674 * testsuite/libffi.call/struct4.c: Likewise.
4675 * testsuite/libffi.call/struct5.c: Likewise.
4676 * testsuite/libffi.call/struct6.c: Likewise.
4677 * testsuite/libffi.call/struct7.c: Likewise.
4678 * testsuite/libffi.call/struct8.c: Likewise.
4679 * testsuite/libffi.call/struct9.c: Likewise.
4680 * testsuite/libffi.special/special.exp: New file.
4681 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4682 * testsuite/libffi.special/unwindtest.cc: Likewise.
4683
4684
46852003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4686
4687 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4688 copyright years.
4689
46902003-08-02 Alan Modra <amodra@bigpond.net.au>
4691
4692 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4693 structure passing.
4694 (ffi_closure_helper_LINUX64): Likewise.
4695 * src/powerpc/linux64.S: Remove code writing to parm save area.
4696 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4697 address in lr from ffi_closure_helper_LINUX64 call to calculate
4698 table address. Optimize function tail.
4699
47002003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4701
4702 * src/sparc/ffi.c: Handle all floating point registers.
4703 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4704
47052003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4706
4707 * README: Note that libffi is not part of GCC. Update the project
4708 URL and status.
4709
47102003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4711
4712 * src/powerpc/ppc_closure.S: Include ffi.h.
4713
47142003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4715
4716 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4717 Use C style comments.
4718
47192003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4720
4721 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4722 * Makefile.in: Regenerate.
4723 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4724 * configure: Regenerate.
4725 * include/ffi.h.in: Add SHmedia support.
4726 * src/sh64/ffi.c: New file.
4727 * src/sh64/sysv.S: New file.
4728
47292003-05-16 Jakub Jelinek <jakub@redhat.com>
4730
4731 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4732 should be read-only.
4733 * configure: Rebuilt.
4734 * fficonfig.h.in: Rebuilt.
4735 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4736 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4737 * src/powerpc/linux64.S: Likewise.
4738 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4739 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4740 if -fpic/-fPIC/-mrelocatable.
4741 * src/powerpc/powerpc_closure.S: Likewise.
4742 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4743 #write in .eh_frame flags.
4744 * src/sparc/v9.S: Likewise.
4745 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4746 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4747 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4748
47492003-05-07 Jeff Sturm <jsturm@one-point.com>
4750
4751 Fixes PR bootstrap/10656
4752 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4753 support for .register pseudo-op.
4754 * src/sparc/v8.S: Use it.
4755 * fficonfig.h.in: Rebuilt.
4756 * configure: Rebuilt.
4757
47582003-04-18 Jakub Jelinek <jakub@redhat.com>
4759
4760 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4761 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4762 Make it the default on POWERPC64.
4763 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4764 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4765 * configure: Rebuilt.
4766 * src/powerpc/ffi.c (hidden): Define.
4767 (ffi_prep_args_SYSV): Renamed from
4768 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4769 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4770 ASM_NEEDS_REGISTERS64): New.
4771 (ffi_prep_args64): New function.
4772 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4773 (ffi_call): Likewise.
4774 (ffi_prep_closure): Likewise.
4775 (flush_icache): Surround by #ifndef POWERPC64.
4776 (ffi_dblfl): New union type.
4777 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4778 (ffi_closure_helper_LINUX64): New function.
4779 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4780 __powerpc64__.
4781 * src/powerpc/sysv.S: Likewise.
4782 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4783 * src/powerpc/linux64.S: New file.
4784 * src/powerpc/linux64_closure.S: New file.
4785 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4786 src/powerpc/linux64_closure.S.
4787 (TARGET_SRC_POWERPC): Likewise.
4788
4789 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4790 closure_test_fn3): Fix result printing on big-endian 64-bit
4791 machines.
4792 (main): Print tst2_arg instead of uninitialized tst2_result.
4793
4794 * src/ffitest.c (main): Hide what closure pointer really points to
4795 from the compiler.
4796
47972003-04-16 Richard Earnshaw <rearnsha@arm.com>
4798
4799 * configure.in (arm-*-netbsdelf*): Add configuration.
4800 (configure): Regenerated.
4801
48022003-04-04 Loren J. Rittle <ljrittle@acm.org>
4803
4804 * include/Makefile.in: Regenerate.
4805
48062003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4807
4808 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4809 bit mode.
4810 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4811 Receive closure pointer through parameter, read args using
4812 __builtin_dwarf_cfa.
4813 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4814
48152003-03-12 Andreas Schwab <schwab@suse.de>
4816
4817 * configure.in: Avoid trailing /. in toolexeclibdir.
4818 * configure: Rebuilt.
4819
48202003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4821
4822 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4823
48242003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4825
4826 * libffi/src/powerpc/darwin_closure.S:
4827 Fix alignement bug, allocate 8 bytes for the result.
4828 * libffi/src/powerpc/aix_closure.S:
4829 Likewise.
4830 * libffi/src/powerpc/ffi_darwin.c:
4831 Update stackframe description for aix/darwin_closure.S.
4832
48332003-02-06 Jakub Jelinek <jakub@redhat.com>
4834
4835 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4836 attribute.
4837
48382003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4839 Andreas Schwab <schwab@suse.de>
4840
4841 * configure.in: Adjust command to source config-ml.in to account
4842 for changes to the libffi_basedir definition.
4843 (libffi_basedir): Remove ${srcdir} from value and include trailing
4844 slash if nonempty.
4845
4846 * configure: Regenerate.
4847
48482003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4849
4850 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4851
48522003-01-28 Andrew Haley <aph@redhat.com>
4853
4854 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4855 * src/x86/ffi64.c (ffi_prep_closure): New.
4856 (ffi_closure_UNIX64_inner): New.
4857 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4858
48592003-01-27 Alexandre Oliva <aoliva@redhat.com>
4860
4861 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4862 Remove USE_LIBDIR conditional.
4863 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4864 * Makefile.in, configure: Rebuilt.
4865
48662003-01027 David Edelsohn <edelsohn@gnu.org>
4867
4868 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4869 * Makefile.in: Regenerate.
4870
48712003-01-22 Andrew Haley <aph@redhat.com>
4872
4873 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4874 unwind info.
4875
48762003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4877
4878 * src/powerpc/darwin.S: Add unwind info.
4879 * src/powerpc/darwin_closure.S: Likewise.
4880
48812003-01-14 Andrew Haley <aph@redhat.com>
4882
4883 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4884 (ffi_prep_cif_machdep): Likewise.
4885 * src/x86/unix64.S: Add unwind info.
4886
48872003-01-14 Andreas Jaeger <aj@suse.de>
4888
4889 * src/ffitest.c (main): Only use ffi_closures if those are
4890 supported.
4891
48922003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4893
4894 * libffi/src/ffitest.c
4895 add closure testcases
4896
48972003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4898
4899 * libffi/src/powerpc/ffi.c
4900 fix alignment bug for float (4 byte aligned iso 8 byte)
4901
49022003-01-09 Geoffrey Keating <geoffk@apple.com>
4903
4904 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4905 * src/powerpc/darwin.S: Remove RCS version string.
4906
49072003-01-03 Jeff Sturm <jsturm@one-point.com>
4908
4909 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4910 * src/ffitest.c (main): Use static storage for closure.
4911 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4912 * src/sparc/v8.S (ffi_closure_v8): New.
4913 * src/sparc/v9.S (ffi_closure_v9): New.
4914
49152002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4916
4917 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4918 enumeration for X86_WIN32.
4919 * src/x86/win32.S: Added ffi_call_STDCALL function
4920 definition.
4921 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4922 switch cases for recognising FFI_STDCALL and
4923 calling ffi_call_STDCALL if target is X86_WIN32.
4924 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4925 stdcall versions of the "my_strlen" and "many"
4926 test functions (for X86_WIN32).
4927 Added test cases to test stdcall invocation using
4928 these functions.
4929
49302002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4931
4932 * src/sh/sysv.S: Add DWARF2 unwind info.
4933
49342002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4935
4936 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4937
49382002-11-26 Jim Wilson <wilson@redhat.com>
4939
4940 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4941
49422002-11-23 H.J. Lu <hjl@gnu.org>
4943
4944 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4945 Include ../config/accross.m4.
4946 * aclocal.m4; Rebuild.
4947 * configure: Likewise.
4948
49492002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4950
4951 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4952
49532002-11-11 DJ Delorie <dj@redhat.com>
4954
4955 * configure.in: Look for common files in the right place.
4956
49572002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4958
4959 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4960 raw data as _Jv_word values, not ffi_raw.
4961 (ffi_java_ptrarray_to_raw): Likewise.
4962 (ffi_java_rvalue_to_raw): New function.
4963 (ffi_java_raw_call): Call it.
4964 (ffi_java_raw_to_rvalue): New function.
4965 (ffi_java_translate_args): Call it.
4966 * src/ffitest.c (closure_test_fn): Interpret return value
4967 as ffi_arg, not int.
4968 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4969 FFI_TYPE_POINTER case.
4970 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4971 values extended to word size.
4972
49732002-10-02 Andreas Jaeger <aj@suse.de>
4974
4975 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4976
49772002-10-01 Bo Thorsen <bo@smetana.suse.de>
4978
4979 * include/ffi.h.in: Fix i386 win32 compilation.
4980
49812002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4982
4983 * configure.in: Add s390x-*-linux-* target.
4984 * configure: Regenerate.
4985 * include/ffi.h.in: Define S390X for s390x targets.
4986 (FFI_CLOSURES): Define for s390/s390x.
4987 (FFI_TRAMPOLINE_SIZE): Likewise.
4988 (FFI_NATIVE_RAW_API): Likewise.
4989 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4990 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4991 * src/s390/ffi.c: Major rework of existing code. Add support for
4992 s390x targets. Add closure support.
4993 * src/s390/sysv.S: Likewise.
4994
49952002-09-29 Richard Earnshaw <rearnsha@arm.com>
4996
4997 * src/arm/sysv.S: Fix typo.
4998
49992002-09-28 Richard Earnshaw <rearnsha@arm.com>
5000
5001 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5002 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5003 (ffi_call_SYSV): Handle soft-float.
5004
50052002-09-27 Bo Thorsen <bo@suse.de>
5006
5007 * include/ffi.h.in: Fix multilib x86-64 support.
5008
50092002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5010
5011 * Makefile.am (all-multi): Fix multilib parallel build.
5012
50132002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5014
5015 * configure.in (sh[34]*-*-linux*): Add brackets.
5016 * configure: Regenerate.
5017
50182002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5019
5020 * Makefile.am: Add SH support.
5021 * Makefile.in: Regenerate.
5022 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5023 * configure: Regenerate.
5024 * include/ffi.h.in: Add SH support.
5025 * src/sh/ffi.c: New file.
5026 * src/sh/sysv.S: New file.
5027 * src/types.c: Add SH support.
5028
50292002-07-16 Bo Thorsen <bo@suse.de>
5030
5031 * src/x86/ffi64.c: New file that adds x86-64 support.
5032 * src/x86/unix64.S: New file that handles argument setup for
5033 x86-64.
5034 * src/x86/sysv.S: Don't use this on x86-64.
5035 * src/x86/ffi.c: Don't use this on x86-64.
5036 Remove unused vars.
5037 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5038 for x86-64.
5039 * src/ffitest.c (struct6): New test that tests a special case in
5040 the x86-64 ABI.
5041 (struct7): Likewise.
5042 (struct8): Likewise.
5043 (struct9): Likewise.
5044 (closure_test_fn): Silence warning about this when it's not used.
5045 (main): Add the new tests.
5046 (main): Fix a couple of wrong casts and silence some compiler warnings.
5047 * include/ffi.h.in: Add x86-64 ABI definition.
5048 * fficonfig.h.in: Regenerate.
5049 * Makefile.am: Add x86-64 support.
5050 * configure.in: Likewise.
5051 * Makefile.in: Regenerate.
5052 * configure: Likewise.
5053
50542002-06-24 Bo Thorsen <bo@suse.de>
5055
5056 * src/types.c: Merge settings for similar architectures.
5057 Add x86-64 sizes and alignments.
5058
50592002-06-23 Bo Thorsen <bo@suse.de>
5060
5061 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5062 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5063 * src/mips/ffi.c (ffi_prep_args): Likewise.
5064 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5065
50662002-07-18 H.J. Lu (hjl@gnu.org)
5067
5068 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5069 (libffi_la_SOURCES): Support MIPS_LINUX.
5070 (libffi_convenience_la_SOURCES): Likewise.
5071 * Makefile.in: Regenerated.
5072
5073 * configure.in (mips64*-*): Skip.
5074 (mips*-*-linux*): New.
5075 * configure: Regenerated.
5076
5077 * src/mips/ffi.c: Include <sgidefs.h>.
5078
50792002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5080
5081 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5082
50832002-05-27 Roger Sayle <roger@eyesopen.com>
5084
5085 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5086
50872002-05-27 Bo Thorsen <bo@suse.de>
5088
5089 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5090 fix formatting.
5091
50922002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5093
5094 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5095 beginning of function (for older apple cc).
5096
50972002-05-08 Alexandre Oliva <aoliva@redhat.com>
5098
5099 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5100 script entry, and set LD to it when configuring multilibs.
5101 * configure: Rebuilt.
5102
51032002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5104
5105 * configure.in (sparc64-*-netbsd*): Add target.
5106 (sparc-*-netbsdelf*): Likewise.
5107 * configure: Regenerate.
5108
51092002-04-28 David S. Miller <davem@redhat.com>
5110
5111 * configure.in, configure: Fix SPARC test in previous change.
5112
51132002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5114
5115 * Makefile.am: Add Linux for S/390 support.
5116 * Makefile.in: Regenerate.
5117 * configure.in: Add Linux for S/390 support.
5118 * configure: Regenerate.
5119 * include/ffi.h.in: Add Linux for S/390 support.
5120 * src/s390/ffi.c: New file from libffi CVS tree.
5121 * src/s390/sysv.S: New file from libffi CVS tree.
5122
51232002-04-28 Jakub Jelinek <jakub@redhat.com>
5124
5125 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5126 %r_disp32().
5127 * src/sparc/v8.S: Use it.
5128 * src/sparc/v9.S: Likewise.
5129 * fficonfig.h.in: Rebuilt.
5130 * configure: Rebuilt.
5131
51322002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5133
5134 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5135 correctly.
5136 * src/ia64/unix.S: Add unwind information. Fix comments.
5137 Save sp in a way that's compatible with unwind info.
5138 (ffi_call_unix): Correctly restore sp in all cases.
5139 * src/ia64/ffi.c: Add, fix comments.
5140
51412002-04-08 Jakub Jelinek <jakub@redhat.com>
5142
5143 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5144
51452002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5146
5147 * configure.in (alpha*-*-netbsd*): Add target.
5148 * configure: Regenerate.
5149
51502002-04-04 Jeff Sturm <jsturm@one-point.com>
5151
5152 * src/sparc/v8.S: Add unwind info.
5153 * src/sparc/v9.S: Likewise.
5154
51552002-03-30 Krister Walfridsson <cato@df.lth.se>
5156
5157 * configure.in: Enable i*86-*-netbsdelf*.
5158 * configure: Rebuilt.
5159
51602002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5161
5162 PR other/2620
5163 * src/mips/n32.s: Delete
5164 * src/mips/o32.s: Delete
5165
51662002-03-21 Loren J. Rittle <ljrittle@acm.org>
5167
5168 * configure.in: Enable alpha*-*-freebsd*.
5169 * configure: Rebuilt.
5170
51712002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5172
5173 * Makefile.am: libfficonvenience -> libffi_convenience.
5174 * Makefile.in: Rebuilt.
5175
5176 * Makefile.am: Define ffitest_OBJECTS.
5177 * Makefile.in: Rebuilt.
5178
51792002-03-07 Andreas Tobler <toa@pop.agri.ch>
5180 David Edelsohn <edelsohn@gnu.org>
5181
5182 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5183 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5184 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5185 * Makefile.in: Regenerate.
5186 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5187 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5188 (flush_icache, flush_range): New functions.
5189 (ffi_closure_helper_DARWIN): New function.
5190 * src/powerpc/aix_closure.S: New file.
5191 * src/powerpc/darwin_closure.S: New file.
5192
51932002-02-24 Jeff Sturm <jsturm@one-point.com>
5194
5195 * include/ffi.h.in: Add typedef for ffi_arg.
5196 * src/ffitest.c (main): Declare rint with ffi_arg.
5197
51982002-02-21 Andreas Tobler <toa@pop.agri.ch>
5199
5200 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5201 number of GPRs for floating-point arguments.
5202
52032002-01-31 Anthony Green <green@redhat.com>
5204
5205 * configure: Rebuilt.
5206 * configure.in: Replace CHECK_SIZEOF and endian tests with
5207 cross-compiler friendly macros.
5208 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5209 macros.
5210
52112002-01-18 David Edelsohn <edelsohn@gnu.org>
5212
5213 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5214 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5215
52162002-01-17 David Edelsohn <edelsohn@gnu.org>
5217
5218 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5219 (TARGET_SRC_POWERPC_AIX): New.
5220 (POWERPC_AIX): New stanza.
5221 * Makefile.in: Regenerate.
5222 * configure.in: Add AIX case.
5223 * configure: Regenerate.
5224 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5225 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5226 size. Fix "long double" support.
5227 (ffi_call): Add FFI_AIX case.
5228 * src/powerpc/aix.S: New.
5229
52302001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5231
5232 Implement Darwin PowerPC ABI.
5233 * configure.in: Handle powerpc-*-darwin*.
5234 * Makefile.am: Set source files for POWERPC_DARWIN.
5235 * configure: Rebuilt.
5236 * Makefile.in: Rebuilt.
5237 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5238 POWERPC_DARWIN.
5239 * src/powerpc/darwin.S: New file.
5240 * src/powerpc/ffi_darwin.c: New file.
5241
52422001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5243
5244 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5245
52462001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5247
5248 * src/x86/sysv.S: Avoid gas-only .balign directive.
5249 Use C style comments.
5250
52512001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5252
5253 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5254 Fixes PR bootstrap/3563.
5255
52562001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5257
5258 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5259
52602001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5261
5262 * configure.in: Recognize sparc*-sun-* host.
5263 * configure: Regenerate.
5264
52652001-06-06 Andrew Haley <aph@redhat.com>
5266
5267 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5268
52692001-06-03 Andrew Haley <aph@redhat.com>
5270
5271 * src/alpha/osf.S: Add unwind info.
5272 * src/powerpc/sysv.S: Add unwind info.
5273 * src/powerpc/ppc_closure.S: Likewise.
5274
52752000-05-31 Jeff Sturm <jsturm@one-point.com>
5276
5277 * configure.in: Fix AC_ARG_ENABLE usage.
5278 * configure: Rebuilt.
5279
52802001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5281
5282 * configure.in: Remove warning about beta code.
5283 * configure: Rebuilt.
5284
52852001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5286
5287 * src/ia64/unix.S: Restore stack pointer when returning from
5288 ffi_closure_UNIX.
5289 * src/ia64/ffi.c: Fix typo in comment.
5290
52912001-04-18 Jim Wilson <wilson@redhat.com>
5292
5293 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5294 to eliminate RAW DV.
5295
52962001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5297
5298 * Makefile.am: Make a libtool convenience library.
5299 * Makefile.in: Rebuilt.
5300
53012001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5302
5303 * configure.in: Use different syntax for subdirectory creation.
5304 * configure: Rebuilt.
5305
53062001-03-27 Jon Beniston <jon@beniston.com>
5307
5308 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5309 * configure: Rebuilt.
5310 * Makefile.am: Added X86_WIN32 target support.
5311 * Makefile.in: Rebuilt.
5312
5313 * include/ffi.h.in: Added X86_WIN32 target support.
5314
5315 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5316 * src/types.c: Added X86_WIN32 target support.
5317
5318 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5319 stuff removed and made to work with CygWin's gas.
5320
53212001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5322
5323 * configure.in: Make target subdirectory in build dir.
5324 * Makefile.am: Override suffix based rules to specify correct output
5325 subdirectory.
5326 * Makefile.in: Rebuilt.
5327 * configure: Rebuilt.
5328
53292001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5330
5331 * src/powerpc/ppc_closure.S: New file.
5332 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5333 involving long long and register pairs.
5334 (ffi_prep_closure): New function.
5335 (flush_icache): Likewise.
5336 (ffi_closure_helper_SYSV): Likewise.
5337 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5338 (FFI_TRAMPOLINE_SIZE): Likewise.
5339 (FFI_NATIVE_RAW_API): Likewise.
5340 * Makefile.in: Rebuilt.
5341 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5342 (TARGET_SRC_POWERPC): Likewise.
5343
53442001-03-19 Tom Tromey <tromey@redhat.com>
5345
5346 * Makefile.in: Rebuilt.
5347 * Makefile.am (ffitest_LDFLAGS): New macro.
5348
53492001-03-02 Nick Clifton <nickc@redhat.com>
5350
5351 * include/ffi.h.in: Remove RCS ident string.
5352 * include/ffi_mips.h: Remove RCS ident string.
5353 * src/debug.c: Remove RCS ident string.
5354 * src/ffitest.c: Remove RCS ident string.
5355 * src/prep_cif.c: Remove RCS ident string.
5356 * src/types.c: Remove RCS ident string.
5357 * src/alpha/ffi.c: Remove RCS ident string.
5358 * src/alpha/osf.S: Remove RCS ident string.
5359 * src/arm/ffi.c: Remove RCS ident string.
5360 * src/arm/sysv.S: Remove RCS ident string.
5361 * src/mips/ffi.c: Remove RCS ident string.
5362 * src/mips/n32.S: Remove RCS ident string.
5363 * src/mips/o32.S: Remove RCS ident string.
5364 * src/sparc/ffi.c: Remove RCS ident string.
5365 * src/sparc/v8.S: Remove RCS ident string.
5366 * src/sparc/v9.S: Remove RCS ident string.
5367 * src/x86/ffi.c: Remove RCS ident string.
5368 * src/x86/sysv.S: Remove RCS ident string.
5369
53702001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5371
5372 * include/ffi.h.in: Change sourceware.cygnus.com references to
5373 gcc.gnu.org.
5374
53752000-12-09 Richard Henderson <rth@redhat.com>
5376
5377 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5378 (ffi_closure_osf_inner): Index rather than increment avalue
5379 and arg_types. Give ffi_closure_osf the raw return value type.
5380 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5381 promotion.
5382
53832000-12-07 Richard Henderson <rth@redhat.com>
5384
5385 * src/raw_api.c (ffi_translate_args): Fix typo.
5386 (ffi_prep_closure): Likewise.
5387
5388 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5389 FFI_TRAMPOLINE_SIZE.
5390 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5391 cif->bytes for new ffi_call_osf implementation.
5392 (ffi_prep_args): Absorb into ...
5393 (ffi_call): ... here. Do all stack allocation here and
5394 avoid a callback function.
5395 (ffi_prep_closure, ffi_closure_osf_inner): New.
5396 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5397 (ffi_closure_osf): New.
5398
53992000-09-10 Alexandre Oliva <aoliva@redhat.com>
5400
5401 * config.guess, config.sub, install-sh: Removed.
5402 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5403 * Makefile.in: Rebuilt.
5404
5405 * acinclude.m4: Include libtool macros from the top level.
5406 * aclocal.m4, configure: Rebuilt.
5407
54082000-08-22 Alexandre Oliva <aoliva@redhat.com>
5409
5410 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5411 * configure: Rebuilt.
5412
54132000-05-11 Scott Bambrough <scottb@netwinder.org>
5414
5415 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5416 memory correctly. Use conditional instructions, not branches where
5417 possible.
5418
54192000-05-04 Tom Tromey <tromey@cygnus.com>
5420
5421 * configure: Rebuilt.
5422 * configure.in: Match `arm*-*-linux-*'.
5423 From Chris Dornan <cdornan@arm.com>.
5424
54252000-04-28 Jakub Jelinek <jakub@redhat.com>
5426
5427 * Makefile.am (SUBDIRS): Define.
5428 (AM_MAKEFLAGS): Likewise.
5429 (Multilib support.): Add section.
5430 * Makefile.in: Rebuilt.
5431 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5432 New variables. Set for gcc using -print-multi-lib. Export them
5433 to libtool.
5434 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5435 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5436 for -shared links.
5437 (extra_compiler_flags_value, extra_compiler_flags): Check these
5438 for extra compiler options which need to be passed down in
5439 compiler_flags.
5440
54412000-04-16 Anthony Green <green@redhat.com>
5442
5443 * configure: Rebuilt.
5444 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5445
54462000-04-14 Jakub Jelinek <jakub@redhat.com>
5447
5448 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5449 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5450 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5451 Replace all void * sizeofs with sizeof(int).
5452 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5453 different than DOUBLE.
5454 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5455 (ffi_prep_args_v9): New function.
5456 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5457 (ffi_V9_return_struct): New function.
5458 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5459 32bit code (not yet cross-arch calls).
5460 * src/sparc/v8.S: Add struct return delay nop.
5461 Handle long long.
5462 * src/sparc/v9.S: New file.
5463 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5464 is used on sparc64 only for structures larger than 32 bytes.
5465 Pass by reference for structures is done for structure arguments
5466 larger than 16 bytes.
5467 * src/ffitest.c (main): Use 64bit rint on sparc64.
5468 Run long long tests on sparc.
5469 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5470 sparc64.
5471 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5472 on sparc64.
5473 * configure.in (sparc-*-linux*): New supported target.
5474 (sparc64-*-linux*): Likewise.
5475 * configure: Rebuilt.
5476 * Makefile.am: Add v9.S to SPARC files.
5477 * Makefile.in: Likewise.
5478 (LINK): Surround $(CCLD) into double quotes, so that multilib
5479 compiles work correctly.
5480
54812000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5482
5483 * configure: Rebuilt.
5484 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5485 proposed by Bryce McKinlay.
5486
54872000-03-20 Tom Tromey <tromey@cygnus.com>
5488
5489 * Makefile.in: Hand edit for java_raw_api.lo.
5490
54912000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5492
5493 * config.guess, config.sub: Update from the gcc tree.
5494 Fix for PR libgcj/168.
5495
54962000-03-03 Tom Tromey <tromey@cygnus.com>
5497
5498 * Makefile.in: Fixed ia64 by hand.
5499
5500 * configure: Rebuilt.
5501 * configure.in (--enable-multilib): New option.
5502 (libffi_basedir): New subst.
5503 (AC_OUTPUT): Added multilib code.
5504
55052000-03-02 Tom Tromey <tromey@cygnus.com>
5506
5507 * Makefile.in: Rebuilt.
5508 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5509 directory name.
5510
55112000-02-25 Hans Boehm <boehm@acm.org>
5512
5513 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5514 files.
5515 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5516 list.
5517 (ffi_prep_raw_closure): Use ffi_translate_args, not
5518 ffi_closure_translate.
5519 * src/java_raw_api.c: New file.
5520 * src/ffitest.c (closure_test_fn): New function.
5521 (main): Define `rint' as long long on IA64. Added new test when
5522 FFI_CLOSURES is defined.
5523 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5524 (ffi_abi): Recognize IA64.
5525 (ffi_raw): Added `flt' field.
5526 Added "Java raw API" code.
5527 * configure.in: Recognize ia64.
5528 * Makefile.am (TARGET_SRC_IA64): New macro.
5529 (libffi_la_common_SOURCES): Added java_raw_api.c.
5530 (libffi_la_SOURCES): Define in IA64 case.
5531
55322000-01-04 Tom Tromey <tromey@cygnus.com>
5533
5534 * Makefile.in: Rebuilt with newer automake.
5535
55361999-12-31 Tom Tromey <tromey@cygnus.com>
5537
5538 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5539
55401999-09-01 Tom Tromey <tromey@cygnus.com>
5541
5542 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5543 undefs.
5544 * fficonfig.h.in: Rebuilt.
5545 * configure: Rebuilt.
5546 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5547 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5548 * acconfig.h: Don't #undef PACKAGE or VERSION.
5549
55501999-08-09 Anthony Green <green@cygnus.com>
5551
5552 * include/ffi.h.in: Try to work around messy header problem
5553 with PACKAGE and VERSION.
5554
5555 * configure: Rebuilt.
5556 * configure.in: Change version to 2.00-beta.
5557
5558 * fficonfig.h.in: Rebuilt.
5559 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5560
5561 * src/x86/ffi.c (ffi_raw_call): Rename.
5562
55631999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5564
5565 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5566 (ffi_prep_incoming_args_SYSV): Ditto.
5567 (ffi_prep_closure): Ditto.
5568 (ffi_closure_raw_SYSV): Ditto.
5569 (ffi_prep_raw_closure): More ditto.
5570 (ffi_call_raw): Final ditto.
5571
5572 * include/ffi.h.in: Add definitions for closure and raw API.
5573
5574 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5575 FFI_TYPE_UINT64.
5576
5577 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5578
5579 * src/raw_api.c: New file.
5580
5581 * include/ffi.h.in (ffi_raw): New type.
5582 (UINT_ARG, SINT_ARG): New defines.
5583 (ffi_closure, ffi_raw_closure): New types.
5584 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5585
5586 * configure.in: Add check for endianness and sizeof void*.
5587
5588 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5589 instead of directly.
5590
5591 * configure: Rebuilt.
5592
5593Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5594
5595 * configure.in: Add x86 and powerpc BeOS configurations.
5596 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5597
55981999-05-09 Anthony Green <green@cygnus.com>
5599
5600 * configure.in: Add warning about this being beta code.
5601 Remove src/Makefile.am from the picture.
5602 * configure: Rebuilt.
5603
5604 * Makefile.am: Move logic from src/Makefile.am. Add changes
5605 to support libffi as a target library.
5606 * Makefile.in: Rebuilt.
5607
5608 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5609 Upgraded to new autoconf, automake, libtool.
5610
5611 * README: Tweaks.
5612
5613 * LICENSE: Update copyright date.
5614
5615 * src/Makefile.am, src/Makefile.in: Removed.
5616
56171998-11-29 Anthony Green <green@cygnus.com>
5618
5619 * include/ChangeLog: Removed.
5620 * src/ChangeLog: Removed.
5621 * src/mips/ChangeLog: Removed.
5622 * src/sparc/ChangeLog: Remboved.
5623 * src/x86/ChangeLog: Removed.
5624
5625 * ChangeLog.v1: Created.