blob: 19beda8d8ec3f7ceca2b293faea9b558bf8c5fd5 [file] [log] [blame]
Anthony Greena04e30b2014-02-28 17:20:59 -050012014-02-28 Anthony Green <green@moxielogic.com>
2
3 * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for
4 --enable-debug builds.
5 * Makefile.in: Rebuilt.
6
72014-02-28 Makoto Kato <m_kato@ga2.so-net.ne.jp>
8
9 * src/closures.c: Fix build failure when using clang for Android.
10
Anthony Greenb40aeda2014-02-28 01:01:29 -0500112014-02-28 Marcin Wojdyr <wojdyr@gmail.com>
12
13 * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead
14 of -L${libdir}.
15
Anthony Green20698ab2014-02-28 00:56:27 -0500162014-02-28 Paulo Pizarro <paulo.pizarro@gmail.com>
17
18 * src/bfin/sysv.S: Calling functions in shared libraries requires
19 considering the GOT.
20
Anthony Green64bd0692014-02-28 00:52:56 -0500212014-02-28 Josh Triplett <josh@joshtriplett.org>
22
23 * src/x86/ffi64.c (classify_argument): Handle case where
24 FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE.
25
Anthony Green33c99542014-02-28 00:38:41 -0500262014-02-28 Anthony Green <green@moxielogic.com>
27
28 * ltmain.sh: Generate with libtool-2.4.2.418.
29 * m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto.
30 * configure: Rebuilt.
31
Anthony Green5a88c852014-02-28 00:23:04 -0500322014-02-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
33
34 * configure.ac (AC_ARG_ENABLE struct): Fix typo in help
35 message.
36 (AC_ARG_ENABLE raw_api): Ditto.
37 * configure, fficonfig.h.in: Rebuilt.
38
Anthony Green001aaf42014-02-28 00:20:17 -0500392014-02-28 Will Newton <will.newton@linaro.org>
40
41 * src/arm/sysv.S: Initialize IP register with FP.
42
Anthony Green49f77292014-02-28 00:17:16 -0500432014-02-28 Yufeng Zhang <yufeng.zhang@arm.com>
44
45 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
46 main CFA reg; update cfi_rel_offset.
47
Heiher40927bd2014-01-21 23:18:27 +0800482014-02-09 Heiher <r@hev.cc>
49
50 * src/mips/n32.S: Fix call floating point va function.
51
Zachary Waldowskif466aad2014-01-21 16:38:31 -0500522014-01-21 Zachary Waldowski <zach@waldowski.me>
53
54 * src/aarch64/ffi.c: Fix missing semicolons on assertions under
55 debug mode.
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050056
572013-12-30 Zachary Waldowski <zach@waldowski.me>
58
59 * .gitignore: Exclude darwin_* generated source and build_* trees.
60 * src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang
61 previous prototype warnings.
62 * src/arm/ffi.c: Prevent NULL dereference, fix short type warning
63 * src/dlmalloc.c: Fix warnings from set_segment_flags return type,
64 and the native use of size_t for malloc on platforms
65 * src/arm/sysv.S: Use unified syntax. Clang clean-ups for
66 ARM_FUNC_START.
67 * generate-osx-source-and-headers.py: Remove.
68 * build-ios.sh: Remove.
69 * libffi.xcodeproj/project.pbxproj: Rebuild targets. Include
70 x86_64+aarch64 pieces in library. Export headers properly.
71 * src/x86/ffi64.c: More Clang warning clean-ups.
72 * src/closures.c (open_temp_exec_file_dir): Use size_t.
73 * src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result.
74 * src/aarch64/sysv.S: Use CNAME for global symbols. Only use
75 .size for ELF targets.
76 * src/aarch64/ffi.c: Clean up for double == long double. Clean up
Zachary Waldowskif466aad2014-01-21 16:38:31 -050077 from Clang warnings. Use Clang cache invalidation builtin. Use
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050078 size_t in place of unsigned in many places. Accommodate for
79 differences in Apple AArch64 ABI.
80
812013-12-02 Daniel Rodríguez Troitiño <drodrigueztroitino@yahoo.es>
82
83 * generate-darwin-source-and-headers.py: Clean up, modernize,
Anthony Green447483d2014-02-27 15:42:41 -050084 merged version of previous scripts.
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050085
Alan Modraab79d6e2013-11-21 06:12:35 -0500862013-11-21 Anthony Green <green@moxielogic.com>
87
88 * configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
89 man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt.
90
912013-11-21 Alan Modra <amodra@gmail.com>
92
93 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
94 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
95 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
96 * include/ffi.h.in (ffi_prep_types): Declare.
97 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
98 * src/types.c (FFI_NONCONST_TYPEDEF): Define and use for
99 HAVE_LONG_DOUBLE_VARIANT.
100 * src/powerpc/ffi_powerpc.h: New file.
101 * src/powerpc/ffi.c: Split into..
102 * src/powerpc/ffi_sysv.c: ..new file, and..
103 * src/powerpc/ffi_linux64.c: ..new file, rewriting parts.
104 * src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI
105 selection as bits controlling features.
106 * src/powerpc/linux64.S: For consistency, use POWERPC64 rather
107 than __powerpc64__.
108 * src/powerpc/linux64_closure.S: Likewise.
109 * src/powerpc/ppc_closure.S: Likewise. Move .note.FNU-stack
110 inside guard.
111 * src/powerpc/sysv.S: Likewise.
112 * configure: Regenerate.
113 * fficonfig.h.in: Regenerate.
114 * Makefile.in: Regenerate.
115
1162013-11-20 Alan Modra <amodra@gmail.com>
117
118 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use
119 NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their
120 32-bit versions for 64-bit code.
121 * src/powerpc/linux64_closure.S: Don't use the return value area
122 as a parameter save area on ELFv2.
123
Iain Sandoeaa1f62c2013-11-18 13:11:56 +00001242013-11-18 Iain Sandoe <iain@codesourcery.com>
125
126 * src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding.
127 * src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase
128 labels.
129
Anthony Green2f450822013-11-18 06:52:29 -05001302013-11-18 Anthony Green <green@moxielogic.com>
131
132 * src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of
133 function.
134 * src/arm/ffi.c (ffi_closure_inner): Moderize function declaration
135 to appease compiler.
136 Thanks for Gregory P. Smith <greg@krypto.org>.
137
1382013-11-18 Anthony Green <green@moxielogic.com>
139
140 * README (tested): Mention PowerPC ELFv2.
141
Alan Modra164283f2013-11-16 06:38:55 -05001422013-11-16 Alan Modra <amodra@gmail.com>
143
Alan Modra16d56c52013-11-18 06:36:03 -0500144 * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
145 Don't bl .Luint128.
146
1472013-11-16 Alan Modra <amodra@gmail.com>
148
Alan Modra83f65b62013-11-16 06:53:50 -0500149 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
150 test to select parameter save sizing for ELFv2 vs. ELFv1.
151 * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
152 FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define.
153 (FFI_TRAMPOLINE_SIZE): Define variant for ELFv2.
154 * src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define.
155 (discover_homogeneous_aggregate): New function.
156 (ffi_prep_args64): Adjust start of param save area for ELFv2.
157 Handle homogenous floating point struct parms.
158 (ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2.
159 Handle ELFv2 return values. Set FLAG_ARG_NEEDS_PSAVE. Handle
160 homogenous floating point structs.
161 (ffi_call): Increase size of smst_buffer for ELFv2. Handle ELFv2.
162 (flush_icache): Compile for ELFv2.
163 (ffi_prep_closure_loc): Set up ELFv2 trampoline.
164 (ffi_closure_helper_LINUX64): Don't return all structs directly
165 to caller. Handle homogenous floating point structs. Handle
166 ELFv2 struct return values.
167 * src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for
168 ELFv2. Adjust toc save location. Call function pointer using
169 r12. Handle FLAG_RETURNS_SMST. Don't predict branches.
170 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2
171 for ELFv2. Define ELFv2 versions of STACKFRAME, PARMSAVE, and
172 RETVAL. Handle possibly missing parameter save area. Handle
173 ELFv2 return values.
174 (.note.GNU-stack): Move inside outer #ifdef.
175
1762013-11-16 Alan Modra <amodra@gmail.com>
177
Alan Modra36285132013-11-16 06:52:43 -0500178 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08
179 change. Do not consume an int arg when returning a small struct
180 for FFI_SYSV ABI.
181 (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST.
182 Properly copy bounce buffer to destination.
183 * src/powerpc/sysv.S: Revert 2013-02-08 change.
184 * src/powerpc/ppc_closure.S: Remove stray '+'.
185
1862013-11-16 Alan Modra <amodra@gmail.com>
187
Alan Modra1c065152013-11-16 06:41:36 -0500188 * src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters
189 according to __STRUCT_PARM_ALIGN__.
190 (ffi_prep_cif_machdep_core): Likewise.
191 (ffi_closure_helper_LINUX64): Likewise.
192
1932013-11-16 Alan Modra <amodra@gmail.com>
194
Alan Modraa97cf1f2013-11-16 06:40:13 -0500195 * src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28.
196 (.note.GNU-stack): Move inside outer #ifdef.
197 * src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE,
198 RETVAL): Define and use throughout.
199 (ffi_closure_LINUX64): Save fprs before buying stack.
200 (.note.GNU-stack): Move inside outer #ifdef.
201
2022013-11-16 Alan Modra <amodra@gmail.com>
203
Alan Modra164283f2013-11-16 06:38:55 -0500204 * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
205 (FFI_EXTRA_CIF_FIELDS): Define.
206 * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
207 ABI, not to both fpr and param save area.
208 (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
209 Keep initial flags. Formatting. Remove dead FFI_LINUX_SOFT_FLOAT
210 code.
211 (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
212 (ffi_closure_helper_LINUX64): Pass floating point as per ABI,
213 not to both fpr and parameter save areas.
214
215 * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
216 function cast and don't call ffi_prep_cif.
217 * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
218
Andrew Haleydb0ace32013-11-16 06:29:25 -05002192013-11-15 Andrew Haley <aph@redhat.com>
220
Andrew Haley31257b32013-11-16 06:35:51 -0500221 * doc/libffi.texi (Closure Example): Fix the sample code.
222 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
223
2242013-11-15 Andrew Haley <aph@redhat.com>
225
Andrew Haleydb0ace32013-11-16 06:29:25 -0500226 * testsuite/libffi.call/va_struct1.c (main): Fix broken test.
227 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
228 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
229 * testsuite/libffi.call/va_1.c (main): Likewise.
230
David Schneiderf3657da2013-11-14 13:02:16 +01002312013-11-14 David Schneider <david.schneider@bivab.de>
232
Anthony Greende10f502013-11-14 10:56:29 -0500233 * src/arm/ffi.c: Fix register allocation for mixed float and
234 doubles.
235 * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
236 for many mixed float and double arguments.
237
Alan Modra58c25772013-11-13 16:55:36 -05002382013-11-13 Alan Modra <amodra@gmail.com>
239
240 * doc/libffi.texi (Simple Example): Correct example code.
241 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
242
Anthony Green8af42f92013-11-13 16:40:28 -05002432013-11-13 Anthony Green <green@moxielogic.com>
244
245 * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
246 based build. (Thanks to tmr111116 on github)
247
Anthony Green2f5b7ce2013-11-09 06:16:32 -05002482013-11-09 Anthony Green <green@moxielogic.com>
249
250 * m4/libtool.m4: Refresh.
251 * configure, Makefile.in: Rebuilt.
252 * README: Add more notes about next release.
253
2542013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp>
255
256 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
257 UltraSPARC-IIi as ultrasparc3.
258
Mark Kettenisbecd7542013-11-06 06:43:49 -05002592013-11-06 Mark Kettenis <kettenis@gnu.org>
260
261 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
262 16-bytes.
263
Konstantin Belousov05c31092013-11-06 06:40:58 -05002642013-11-06 Konstantin Belousov <kib@freebsd.org>
265
266 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
267 source as not requiring executable stack.
268
Anthony Greencf6bf982013-11-02 17:23:59 -04002692013-11-02 Anthony Green <green@moxielogic.com>
270
271 * doc/libffi.texi (The Basics): Clarify return value buffer size
272 requirements. Also, NULL result buffer pointers are no longer
273 supported.
274 * doc/libffi.info: Rebuilt.
275
Anthony Greenc2422172013-11-02 14:08:23 -07002762013-11-02 Mischa Jonker <mjonker@synopsys.com>
277
278 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
279 * Makefile.in: Rebuilt.
280
2812013-11-02 David Schneider <david.schneider@bivab.de>
282
283 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
284 * testsuite/libffi.call/many_mixed.c: New file.
285 * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
286
Anthony Greenf4b843f2013-11-02 17:01:15 -04002872013-11-02 Vitaly Budovski
288
289 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
290
Mark H Weaverd3372c52013-10-26 08:30:06 -04002912013-10-23 Mark H Weaver <mhw@netris.org>
292
293 * src/mips/ffi.c: Fix handling of uint32_t arguments on the
294 MIPS N32 ABI.
295
Sandra Loosemore16b93a22013-10-15 15:33:59 -04002962013-10-13 Sandra Loosemore <sandra@codesourcery.com>
297
298 * README: Add Nios II to table of supported platforms.
299 * Makefile.am (EXTRA_DIST): Add nios2 files.
300 (nodist_libffi_la_SOURCES): Likewise.
301 * Makefile.in: Regenerated.
302 * configure.ac (nios2*-linux*): New host.
303 (NIOS2): Add AM_CONDITIONAL.
304 * configure: Regenerated.
305 * src/nios2/ffi.c: New.
306 * src/nios2/ffitarget.h: New.
307 * src/nios2/sysv.S: New.
308 * src/prep_cif.c (initialize_aggregate): Handle extra structure
309 alignment via FFI_AGGREGATE_ALIGNMENT.
310 (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
311
Sandra Loosemore2f5626c2013-10-15 15:32:16 -04003122013-10-10 Sandra Loosemore <sandra@codesourcery.com>
313
314 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
315 Fix uninitialized variable.
316
Marcus Shawcroftf64e4a82013-10-15 15:20:14 -04003172013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
318
319 * testsuite/libffi.call/many.c (many): Replace * with +.
320
Anthony Green128cd1d2013-10-08 06:45:51 -04003212013-10-08 Ondřej Bílka <neleai@seznam.cz>
322
323 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
324 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
325 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
326 src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
327 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
328 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
329 spelling errors.
330
Anthony Greend2fcbcd2013-10-08 06:27:46 -04003312013-10-08 Anthony Green <green@moxielogic.com>
332
333 * aclocal.m4, compile, config.guess, config.sub, depcomp,
334 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
335 * configure.ac: Update version to 3.0.14-rc0.
336 * Makefile.in, configure, Makefile.in, include/Makefile.in,
337 man/Makefile.in, testsuite/Makefile.in: Rebuilt.
Anthony Green128cd1d2013-10-08 06:45:51 -0400338 * README: Mention M88K and VAX.
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400339
3402013-07-15 Miod Vallat <miod@openbsd.org>
341
342 * Makefile.am,
343 configure.ac,
344 src/m88k/ffi.c,
345 src/m88k/ffitarget.h,
346 src/m88k/obsd.S,
347 src/vax/elfbsd.S,
348 src/vax/ffi.c,
349 src/vax/ffitarget.h: Add m88k and vax support.
350
Anthony Greend3d099b2013-07-02 16:11:38 -04003512013-06-24 Alan Modra <amodra@gmail.com>
352
353 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
354 before statements.
355 (ffi_prep_args64): Support little-endian.
356 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
357 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
358 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
359
Mischa Jonkerb082e152013-06-10 16:19:33 +02003602013-06-12 Mischa Jonker <mjonker@synopsys.com>
361
362 * configure.ac: Add support for ARC.
363 * Makefile.am: Likewise.
364 * README: Add ARC details.
365 * src/arc/arcompact.S: New.
366 * src/arc/ffi.c: Likewise.
367 * src/arc/ffitarget.h: Likewise.
368
David Schneider4750e3c2013-03-28 16:56:36 +01003692013-03-28 David Schneider <david.schneider@bivab.de>
370
371 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
372 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
373 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
374 mixed arguments, many doubles.
375 * testsuite/libffi.call/many_double.c: testcase for calling a function using
376 more than 8 doubles.
377 * testcase/libffi.call/many.c: use absolute value to check result against an
378 epsilon
379
Anthony Greencb32c812013-03-17 09:27:55 -04003802013-03-17 Anthony Green <green@moxielogic.com>
381
Anthony Green12b18862013-03-17 18:32:12 -0400382 * README: Update for 3.0.13.
383 * configure.ac: Ditto.
384 * configure: Rebuilt.
385 * doc/*: Update version.
386
3872013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
388
389 * src/closures.c (is_emutramp_enabled
390 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
391 enclosing #if scope.
392
3932013-03-17 Anthony Green <green@moxielogic.com>
394
Anthony Greencb32c812013-03-17 09:27:55 -0400395 * configure.ac: Only modify toolexecdir in certain cases.
396 * configure: Rebuilt.
397
Anthony Green4acf0052013-03-16 08:18:45 -04003982013-03-16 Gilles Talis <gilles.talis@gmail.com>
399
400 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
401 fparg_count,etc on __NO_FPRS__ targets.
402
Anthony Green8a286f52013-03-16 08:01:19 -04004032013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
404
Anthony Green4acf0052013-03-16 08:18:45 -0400405 * src/m68k/sysv.S (epilogue): Don't use extb instruction on
Anthony Green8a286f52013-03-16 08:01:19 -0400406 m680000 machines.
407
Anthony Green211a9eb2013-03-16 04:24:40 -07004082013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
409
410 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
411
Anthony Green2fb527a2013-03-16 07:46:38 -04004122013-03-13 Markos Chandras <markos.chandras@imgtec.com>
413
414 * configure.ac: Add support for Imagination Technologies Meta.
415 * Makefile.am: Likewise.
416 * README: Add Imagination Technologies Meta details.
417 * src/metag/ffi.c: New.
418 * src/metag/ffitarget.h: Likewise.
419 * src/metag/sysv.S: Likewise.
420
Anthony Green675c9832013-03-16 08:12:38 -04004212013-02-24 Andreas Schwab <schwab@linux-m68k.org>
422
423 * doc/libffi.texi (Structures): Fix missing category argument of
424 @deftp.
425
Anthony Greenf308faf2013-02-11 14:25:13 -05004262013-02-11 Anthony Green <green@moxielogic.com>
427
428 * configure.ac: Update release number to 3.0.12.
429 * configure: Rebuilt.
430 * README: Update release info.
431
4322013-02-10 Anthony Green <green@moxielogic.com>
433
434 * README: Add Moxie.
435 * src/moxie/ffi.c: Created.
436 * src/moxie/eabi.S: Created.
437 * src/moxie/ffitarget.h: Created.
438 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
439 * Makefile.in: Rebuilt.
440 * configure.ac: Add Moxie.
441 * configure: Rebuilt.
442 * testsuite/libffi.call/huge_struct.c: Disable format string
443 warnings for moxie*-*-elf tests.
444
4452013-02-10 Anthony Green <green@moxielogic.com>
446
447 * Makefile.am (LTLDFLAGS): Fix reference.
448 * Makefile.in: Rebuilt.
449
Anthony Green4ea22e52013-02-10 08:48:38 -05004502013-02-10 Anthony Green <green@moxielogic.com>
451
452 * README: Update supported platforms. Update test results link.
453
Anthony Green10e77222013-02-10 08:47:26 -05004542013-02-09 Anthony Green <green@moxielogic.com>
455
456 * testsuite/libffi.call/negint.c: Remove forced -O2.
457 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
458 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
459
460 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
461 closure return type fix developed by Martin v. Löwis for cpython
462 fork.
463
Anthony Green70b11b42013-02-08 16:12:19 -05004642013-02-08 Andreas Tobler <andreast@fgznet.ch>
465
466 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
467 support.
468 * src/powerpc/sysv.S: Ditto.
469
Anthony Green63ba1fa2013-02-08 15:18:19 -05004702013-02-08 Anthony Green <green@moxielogic.com>
471
472 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
473 arm*-*-*.
474
4752013-02-08 Anthony Green <green@moxielogic.com>
476
477 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
478
Anthony Green24fbca42013-02-08 14:19:56 -05004792013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -0500480
481 * man/ffi_prep_cif.3: Clean up for debian linter.
482
Anthony Green24fbca42013-02-08 14:19:56 -05004832013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -0500484
485 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
486 on the stack.
487
Anthony Greencb03ea82013-02-08 12:25:18 -05004882013-02-08 Anthony Green <green@moxielogic.com>
489
Anthony Green7aab8252013-02-08 13:26:21 -0500490 * Makefile.am (EXTRA_DIST): Add missing files.
491 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
492 * Makefile.in: Rebuilt.
493
4942013-02-08 Anthony Green <green@moxielogic.com>
495
Anthony Greencb03ea82013-02-08 12:25:18 -0500496 * configure.ac: Move sparc asm config checks to within functions
497 for compatibility with sun tools.
498 * configure: Rebuilt.
499 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
500 systems.
501 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
502 flusher.
503
Anthony Green35ee8d42013-02-08 07:12:41 -05005042013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
505
506 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
507 small big-endian structures.
508 (ffi_prep_args): Ditto.
509
Anthony Greened6ae952013-02-07 16:43:36 -05005102013-02-07 Anthony Green <green@moxielogic.com>
511
Anthony Green9db7e1a2013-02-07 21:06:08 -0500512 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
513 (effectively hiding ffi_call_v8).
514
5152013-02-07 Anthony Green <green@moxielogic.com>
516
Anthony Greence0138e2013-02-07 18:04:01 -0500517 * configure.ac: Update bug reporting address.
518 * configure.in: Rebuild.
519
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500520 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
521 Sun compiler.
522 * src/sparc/ffi.c (ffi_call): Remove warning.
523 Call ffi_flush_icache for non-GCC builds.
524 (ffi_prep_closure_loc): Use ffi_flush_icache.
525
Anthony Greened6ae952013-02-07 16:43:36 -0500526 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
527 * Makefile.in: Rebuilt.
528 * libtool-ldflags: New file.
529
Anthony Greenffef2e02013-02-07 15:47:01 -05005302013-02-07 Daniel Schepler <dschepler@gmail.com>
531
532 * configure.ac: Correctly identify x32 systems as 64-bit.
533 * m4/libtool.m4: Remove libtool expr error.
534 * aclocal.m4, configure: Rebuilt.
535
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05005362013-02-07 Anthony Green <green@moxielogic.com>
537
Anthony Green176aa9d2013-02-07 15:29:22 -0500538 * configure.ac: Fix GCC usage test.
539 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500540 * README: Mention LLVM/GCC x86_64 issue.
541 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500542
5432013-02-07 Anthony Green <green@moxielogic.com>
544
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500545 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
546 comments with /* */ for xlc compiler.
547 * testsuite/libffi.call/stret_large.c (main): Ditto.
548 * testsuite/libffi.call/stret_large2.c (main): Ditto.
549 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
550 * testsuite/libffi.call/huge_struct.c (main): Ditto.
551 * testsuite/libffi.call/float_va.c (main): Ditto.
552 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
553 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
554 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
555 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
556
Anthony Greenf7cd61e2013-02-06 17:38:04 -05005572013-02-06 Anthony Green <green@moxielogic.com>
558
Anthony Green522f8fe2013-02-06 20:31:31 -0500559 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
560
5612013-02-06 Anthony Green <green@moxielogic.com>
562
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500563 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
564 * Makefile.in: Rebuild.
565
Anthony Green6a790122013-02-06 17:37:15 -05005662013-02-02 Mark H Weaver <mhw@netris.org>
567
568 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
569 via general purpose registers.
570
Anthony Greenaeb87192013-01-21 07:37:30 -05005712013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
572
573 * README: Add MicroBlaze details.
574 * Makefile.am: Add MicroBlaze support.
575 * configure.ac: Likewise.
576 * src/microblaze/ffi.c: New.
577 * src/microblaze/ffitarget.h: Likewise.
578 * src/microblaze/sysv.S: Likewise.
579
5802013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
581 * testsuite/libffi.call/return_uc.c: Fixed issue.
582
Anthony Green20cae322013-01-21 07:07:38 -05005832013-01-21 Chris Zankel <chris@zankel.net>
584
585 * README: Add Xtensa support.
586 * Makefile.am: Likewise.
587 * configure.ac: Likewise.
588 * Makefile.in Regenerate.
589 * configure: Likewise.
590 * src/prep_cif.c: Handle Xtensa.
591 * src/xtensa: New directory.
592 * src/xtensa/ffi.c: New file.
593 * src/xtensa/ffitarget.h: Ditto.
594 * src/xtensa/sysv.S: Ditto.
595
Anthony Greenbff052d2013-01-11 10:24:32 -05005962013-01-11 Anthony Green <green@moxielogic.com>
597
Anthony Green05fbe1f2013-01-11 16:54:40 -0500598 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
599 comments with /* */ for xlc compiler.
600 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500601 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
602 deprecated inline function.
603 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500604 * README: Add update for AIX support.
605
6062013-01-11 Anthony Green <green@moxielogic.com>
607
Anthony Greenbff052d2013-01-11 10:24:32 -0500608 * configure.ac: Robustify pc relative reloc check.
609 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
610 changing option for 32-bit x86.
611 * aclocal.m4, configure: Rebuilt.
612 * README: Update supported target list.
613
Anthony Green2d9b3932013-01-09 21:14:54 -05006142013-01-10 Anthony Green <green@moxielogic.com>
615
Anthony Greencd41aea2013-01-10 17:25:45 -0500616 * README (tested): Add Compiler column to table.
617
6182013-01-10 Anthony Green <green@moxielogic.com>
619
Anthony Green8bf987d2013-01-10 17:24:51 -0500620 * src/x86/ffi64.c (struct register_args): Make sse array and array
621 of unions for sunpro compiler compatibility.
622
6232013-01-10 Anthony Green <green@moxielogic.com>
624
Anthony Green13e2d7b2013-01-10 10:52:02 -0500625 * configure.ac: Test target platform size_t size. Handle both 32
626 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
627 CFLAG option to change default settings).
628 * configure, aclocal.m4: Rebuilt.
629
6302013-01-10 Anthony Green <green@moxielogic.com>
631
Anthony Green51415432013-01-10 07:35:53 -0500632 * testsuite/libffi.special/special.exp: Only run exception
633 handling tests when using GNU compiler.
634
Anthony Green56ba8d82013-01-10 07:25:10 -0500635 * m4/ax_compiler_vendor.m4: New file.
636 * configure.ac: Test for compiler vendor and don't use
637 AX_CFLAGS_WARN_ALL with the sun compiler.
638 * aclocal.m4, configure: Rebuilt.
639
6402013-01-10 Anthony Green <green@moxielogic.com>
641
Anthony Green6a028ca2013-01-10 01:19:43 -0500642 * include/ffi_common.h: Don't use GCCisms to define types when
643 building with the SUNPRO compiler.
644
6452013-01-10 Anthony Green <green@moxielogic.com>
646
Anthony Green2d9b3932013-01-09 21:14:54 -0500647 * configure.ac: Put local.exp in the right place.
648 * configure: Rebuilt.
649
650 * src/x86/ffi.c: Update comment about regparm function attributes.
651 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
652 that all function arguments be passed on the stack (no regparm
653 support).
654
Anthony Greenf7879bc2013-01-08 07:30:28 -05006552013-01-08 Anthony Green <green@moxielogic.com>
656
Anthony Green83089842013-01-08 15:14:21 -0500657 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
658 when we are using the vendor compiler.
659 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
660 ../local.exp.
661 * configure, testsuite/Makefile.in: Rebuilt.
662
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500663 * testsuite/libffi.call/call.exp: Run tests with different
664 options, depending on whether or not we are using gcc or the
665 vendor compiler.
666 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
667 whether or not we are building/testing with gcc.
668
6692013-01-08 Anthony Green <green@moxielogic.com>
670
Anthony Green74c776e2013-01-08 12:25:54 -0500671 * configure.ac: Switch x86 solaris target to X86 by default.
672 * configure: Rebuilt.
673
6742013-01-08 Anthony Green <green@moxielogic.com>
675
Anthony Green8962c8c2013-01-08 12:22:24 -0500676 * configure.ac: Fix test for read-only eh_frame.
677 * configure: Rebuilt.
678
6792013-01-08 Anthony Green <green@moxielogic.com>
680
Anthony Green35ddb692013-01-08 07:53:37 -0500681 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
682 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500683 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
684 compiler.
685
Anthony Green8f4772f2013-01-07 06:14:53 -05006862013-01-07 Thorsten Glaser <tg@mirbsd.org>
687
Anthony Green67cea902013-01-07 06:30:24 -0500688 * testsuite/libffi.call/cls_uchar_va.c,
689 testsuite/libffi.call/cls_ushort_va.c,
690 testsuite/libffi.call/va_1.c: Testsuite fixes.
691
6922013-01-07 Thorsten Glaser <tg@mirbsd.org>
693
Anthony Green8f4772f2013-01-07 06:14:53 -0500694 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
695 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
696 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
697
Anthony Greenea7f8442013-01-04 09:09:32 -05006982013-01-04 Anthony Green <green@moxielogic.com>
699
700 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
701 and -Wall. This is set in the configure script after testing for
702 GCC.
703 * Makefile.in: Rebuilt.
704
Anthony Greenf06c0f12013-01-02 09:39:17 -05007052013-01-02 rofl0r <https://github.com/rofl0r>
706
707 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
708 when long double == double.
709
7102013-01-02 Reini Urban <rurban@x-ray.at>
711
712 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
713 (required for shared libs on cygwin/mingw).
714 * Makefile.in: Rebuilt.
715
Anthony Greend3d099b2013-07-02 16:11:38 -04007162012-10-31 Alan Modra <amodra@gmail.co>
Anthony Greendfadfb12012-10-31 06:46:41 -0400717
718 * src/powerpc/linux64_closure.S: Add new ABI support.
719 * src/powerpc/linux64.S: Likewise.
720
Anthony Greene944b8c2012-10-30 14:06:09 -04007212012-10-30 Magnus Granberg <zorry@gentoo.org>
722 Pavel Labushev <pavel.labushev@runbox.ru>
723
724 * configure.ac: New options pax_emutramp
725 * configure, fficonfig.h.in: Regenerated
726 * src/closures.c: New function emutramp_enabled_check() and
727 checks.
728
Anthony Greenf3429962012-10-30 07:42:27 -04007292012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
730
731 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
732 lion) and future version.
733 * configure: Rebuild.
734
Anthony Green58e8b662012-10-30 07:07:19 -04007352012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
736 Marcus Shawcroft <marcus.shawcroft at arm.com>
737
738 * README: Add details of aarch64 port.
739 * src/aarch64/ffi.c: New.
740 * src/aarch64/ffitarget.h: Likewise.
741 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500742 * Makefile.am: Support aarch64.
743 * configure.ac: Support aarch64.
744 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400745
7462012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
747 Marcus Shawcroft <marcus.shawcroft at arm.com>
748
749 * testsuite/lib/libffi.exp: Add support for aarch64.
750 * testsuite/libffi.call/cls_struct_va1.c: New.
751 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
752 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500753 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400754 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
755 * testsuite/libffi.call/nested_struct11.c: Likewise.
756 * testsuite/libffi.call/uninitialized.c: Likewise.
757 * testsuite/libffi.call/va_1.c: Likewise.
758 * testsuite/libffi.call/va_struct1.c: Likewise.
759 * testsuite/libffi.call/va_struct2.c: Likewise.
760 * testsuite/libffi.call/va_struct3.c: Likewise.
761
Anthony Green9c00a3f2012-10-12 16:46:06 -04007622012-10-12 Walter Lee <walt@tilera.com>
763
764 * Makefile.am: Add TILE-Gx/TILEPro support.
765 * configure.ac: Likewise.
766 * Makefile.in: Regenerate.
767 * configure: Likewise.
768 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
769 * src/tile: New directory.
770 * src/tile/ffi.c: New file.
771 * src/tile/ffitarget.h: Ditto.
772 * src/tile/tile.S: Ditto.
773
7742012-10-12 Matthias Klose <doko@ubuntu.com>
775
776 * generate-osx-source-and-headers.py: Normalize whitespace.
777
Anthony Green048d2f42012-10-11 10:55:25 -04007782012-09-14 David Edelsohn <dje.gcc@gmail.com>
779
780 * configure: Regenerated.
781
7822012-08-26 Andrew Pinski <apinski@cavium.com>
783
784 PR libffi/53014
785 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
786 soft-float.
787
7882012-08-08 Uros Bizjak <ubizjak@gmail.com>
789
790 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
791 just return FFI_BAD_ABI when things are wrong.
792
7932012-07-18 H.J. Lu <hongjiu.lu@intel.com>
794
795 PR libffi/53982
796 PR libffi/53973
797 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
798 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
799
8002012-05-16 H.J. Lu <hongjiu.lu@intel.com>
801
802 * configure: Regenerated.
803
Nicolas Lelongd330f192012-05-05 09:37:02 -04008042012-05-05 Nicolas Lelong
805
806 * libffi.xcodeproj/project.pbxproj: Fixes.
807 * README: Update for iOS builds.
808
Anthony Green213ed152012-04-27 01:34:15 -04008092012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
810
811 * configure.ac: Add Blackfin/sysv support
812 * Makefile.am: Add Blackfin/sysv support
813 * src/bfin/ffi.c: Add Blackfin/sysv support
814 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400815
Anthony Green7e0a4122012-04-11 22:47:44 -04008162012-04-11 Anthony Green <green@moxielogic.com>
817
818 * Makefile.am (EXTRA_DIST): Add new script.
819 * Makefile.in: Rebuilt.
820
Zachary Waldowski39e6a582012-04-11 22:39:46 -04008212012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
822
823 * generate-ios-source-and-headers.py,
824 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
825 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
826 generation into an Xcode "run script" phase. Include both as
827 Xcode build scripts. Don't always regenerate config files.
828
Anthony Green853cc722012-04-10 06:33:33 -04008292012-04-10 Anthony Green <green@moxielogic.com>
830
831 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
832
Anthony Green3f502302012-04-06 20:34:51 -04008332012-04-06 Anthony Green <green@moxielogic.com>
834
835 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
836 * Makefile.in: Rebuilt.
837
Mike Lewisebb8e892012-04-06 20:02:08 -04008382012-04-06 Mike Lewis <mikelikespie@gmail.com>
839
840 * generate-ios-source-and-headers.py: New file.
841 * libffi.xcodeproj/project.pbxproj: New file.
842 * README: Update instructions on building iOS binary.
843 * build-ios.sh: Delete.
844
Anthony Greena044a562012-04-06 10:39:10 -04008452012-04-06 Anthony Green <green@moxielogic.com>
846
847 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
848 compilers, then use it.
849
Anthony Green048d2f42012-10-11 10:55:25 -04008502012-04-06 H.J. Lu <hongjiu.lu@intel.com>
851
852 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
853
Anthony Green59bb61a2012-04-06 08:26:14 -04008542012-04-06 Anthony Green <green@moxielogic.com>
855
856 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
857 * testsuite/Makefile.in: Rebuilt.
858
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04008592012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
860
861 * include/ffi.h.in: Add missing trampoline table fields.
862 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
863 in CNAME.
864 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
865
Anthony Green089dbce2013-01-02 08:37:35 -05008662012-04-02 Peter Bergner <bergner@vnet.ibm.com>
867
868 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
869 Silence casting pointer to integer of different size warning.
870 Delete goto to previously deleted label.
871 (ffi_call): Silence possibly undefined warning.
872 (ffi_closure_helper_SYSV): Declare variable type.
873
8742012-04-02 Peter Rosin <peda@lysator.liu.se>
875
876 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
877 value in the Intel version as is already done for the AT&T version.
878 (ffi_closure_SYSV): Likewise.
879 (ffi_closure_raw_SYSV): Likewise.
880 (ffi_closure_STDCALL): Likewise.
881
Peter Rosin0a1ab122012-03-30 08:14:08 -04008822012-03-29 Peter Rosin <peda@lysator.liu.se>
883
884 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
885 generation, fix the ENDP label and remove the surplus third arg
886 from the 'lea' insn.
887
8882012-03-29 Peter Rosin <peda@lysator.liu.se>
889
890 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
891 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
892 it. Also instruct the assembler to add a frame to the function.
893
8942012-03-23 Peter Rosin <peda@lysator.liu.se>
895
896 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
897 * Makefile.in: Rebuilt.
898 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
899 to all data exports, when compiling libffi clients using MSVC.
900
9012012-03-29 Peter Rosin <peda@lysator.liu.se>
902
903 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
904 make it the default for MSVC.
905 (FFI_TYPE_MS_STRUCT): New structure return convention.
906 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
907 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
908 instead of an ordinary FFI_TYPE_STRUCT.
909 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
910 (ffi_call): Likewise.
911 (ffi_prep_incoming_args_SYSV): Likewise.
912 (ffi_raw_call): Likewise.
913 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
914 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
915 return a pointer to the result structure in eax and don't pop
916 that pointer from the stack, the caller takes care of it.
917 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
918 (ffi_closure_raw_SYSV): Likewise.
919
9202012-03-22 Peter Rosin <peda@lysator.liu.se>
921
922 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
923 assembly version with Intel syntax.
924 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
925
9262012-03-23 Peter Rosin <peda@lysator.liu.se>
927
928 * testsuite/libffi.call/ffitest.h: Provide abstration of
929 __attribute__((fastcall)) in the form of a __FASTCALL__
930 define. Define it to __fastcall for MSVC.
931 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
932 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
933 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
934 * testsuite/libffi.call/strlen2_win32.c: Likewise.
935 * testsuite/libffi.call/struct1_win32.c: Likewise.
936 * testsuite/libffi.call/struct2_win32.c: Likewise.
937
9382012-03-22 Peter Rosin <peda@lysator.liu.se>
939
940 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
941 frame on function entry, MASM adds one automatically.
942
9432012-03-22 Peter Rosin <peda@lysator.liu.se>
944
945 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
946 bits in the MSVC headers.
947
9482012-03-22 Peter Rosin <peda@lysator.liu.se>
949
950 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
951 with no declarations after statements.
952 * testsuite/libffi.call/cls_16byte.c: Likewise.
953 * testsuite/libffi.call/cls_18byte.c: Likewise.
954 * testsuite/libffi.call/cls_19byte.c: Likewise.
955 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
956 * testsuite/libffi.call/cls_20byte.c: Likewise.
957 * testsuite/libffi.call/cls_20byte1.c: Likewise.
958 * testsuite/libffi.call/cls_24byte.c: Likewise.
959 * testsuite/libffi.call/cls_2byte.c: Likewise.
960 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
961 * testsuite/libffi.call/cls_3byte1.c: Likewise.
962 * testsuite/libffi.call/cls_3byte2.c: Likewise.
963 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
964 * testsuite/libffi.call/cls_4byte.c: Likewise.
965 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
966 * testsuite/libffi.call/cls_5byte.c: Likewise.
967 * testsuite/libffi.call/cls_64byte.c: Likewise.
968 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
969 * testsuite/libffi.call/cls_6byte.c: Likewise.
970 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
971 * testsuite/libffi.call/cls_7byte.c: Likewise.
972 * testsuite/libffi.call/cls_8byte.c: Likewise.
973 * testsuite/libffi.call/cls_9byte1.c: Likewise.
974 * testsuite/libffi.call/cls_9byte2.c: Likewise.
975 * testsuite/libffi.call/cls_align_double.c: Likewise.
976 * testsuite/libffi.call/cls_align_float.c: Likewise.
977 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
978 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
979 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
980 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
981 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
982 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
983 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
984 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
985 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
986 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
987 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
988 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
989 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
990 * testsuite/libffi.call/huge_struct.c: Likewise.
991 * testsuite/libffi.call/nested_struct.c: Likewise.
992 * testsuite/libffi.call/nested_struct1.c: Likewise.
993 * testsuite/libffi.call/nested_struct10.c: Likewise.
994 * testsuite/libffi.call/nested_struct2.c: Likewise.
995 * testsuite/libffi.call/nested_struct3.c: Likewise.
996 * testsuite/libffi.call/nested_struct4.c: Likewise.
997 * testsuite/libffi.call/nested_struct5.c: Likewise.
998 * testsuite/libffi.call/nested_struct6.c: Likewise.
999 * testsuite/libffi.call/nested_struct7.c: Likewise.
1000 * testsuite/libffi.call/nested_struct8.c: Likewise.
1001 * testsuite/libffi.call/nested_struct9.c: Likewise.
1002 * testsuite/libffi.call/stret_large.c: Likewise.
1003 * testsuite/libffi.call/stret_large2.c: Likewise.
1004 * testsuite/libffi.call/stret_medium.c: Likewise.
1005 * testsuite/libffi.call/stret_medium2.c: Likewise.
1006 * testsuite/libffi.call/struct1.c: Likewise.
1007 * testsuite/libffi.call/struct1_win32.c: Likewise.
1008 * testsuite/libffi.call/struct2.c: Likewise.
1009 * testsuite/libffi.call/struct2_win32.c: Likewise.
1010 * testsuite/libffi.call/struct3.c: Likewise.
1011 * testsuite/libffi.call/struct4.c: Likewise.
1012 * testsuite/libffi.call/struct5.c: Likewise.
1013 * testsuite/libffi.call/struct6.c: Likewise.
1014 * testsuite/libffi.call/struct7.c: Likewise.
1015 * testsuite/libffi.call/struct8.c: Likewise.
1016 * testsuite/libffi.call/struct9.c: Likewise.
1017 * testsuite/libffi.call/testclosure.c: Likewise.
1018
Anthony Greene72ed5e2012-03-21 09:52:28 -040010192012-03-21 Peter Rosin <peda@lysator.liu.se>
1020
1021 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
1022 printing doubles (%lf is for long doubles).
1023 (main): Likewise.
1024
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010252012-03-21 Peter Rosin <peda@lysator.liu.se>
1026
1027 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1028 (set_ld_library_path_env_vars): Add the library search dir to PATH
1029 (and save PATH for later).
1030 (restore_ld_library_path_env_vars): Restore PATH.
1031
Anthony Greenccee09a2013-01-02 08:41:55 -050010322012-03-21 Peter Rosin <peda@lysator.liu.se>
1033
1034 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1035 (set_ld_library_path_env_vars): Add the library search dir to PATH
1036 (and save PATH for later).
1037 (restore_ld_library_path_env_vars): Restore PATH.
1038
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010392012-03-20 Peter Rosin <peda@lysator.liu.se>
1040
1041 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1042 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1043 visible outside the PROC, so that ffi_closure_THISCALL can see it.
1044
Anthony Green048d2f42012-10-11 10:55:25 -040010452012-03-20 Peter Rosin <peda@lysator.liu.se>
1046
1047 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1048 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1049 visible outside the PROC, so that ffi_closure_THISCALL can see it.
1050
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010512012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
1052
1053 * src/m68k/ffi.c: Add MINT support.
1054 * src/m68k/sysv.S: Ditto.
1055
Anthony Green048d2f42012-10-11 10:55:25 -040010562012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
1057
1058 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
1059 ffi_call_VFP().
1060 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
1061 ffi_closure_VFP.
1062 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
1063
Anthony Green089dbce2013-01-02 08:37:35 -050010642012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -04001065
Anthony Green089dbce2013-01-02 08:37:35 -05001066 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
1067 support.
Anthony Green048d2f42012-10-11 10:55:25 -04001068
Anthony Green84d32532012-03-19 23:07:35 -040010692012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
1070
1071 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1072 just return FFI_BAD_ABI when things are wrong.
1073 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
1074
10752012-03-09 David Edelsohn <dje.gcc@gmail.com>
1076
1077 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
1078 change to return value of ffi_closure_helper_DARWIN and load type
1079 from return type.
1080
Anthony Green964c5b92012-03-03 14:46:20 -050010812012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1082
1083 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
1084 long.
1085 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
1086 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
1087 first.
1088
1089 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
1090 (ffi_arg): Set to unsigned long long for x32.
1091 (ffi_sarg): Set to long long for x32.
1092
10932012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1094
1095 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
1096
Anthony Green6c194232012-03-03 14:17:54 -050010972012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
1098
1099 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
1100 windows-like hosts.
1101 * configure: Rebuilt.
1102
Anthony Green7c5e60b2012-03-29 08:48:22 -040011032012-02-27 Mikael Pettersson <mikpe@it.uu.se>
1104
1105 PR libffi/52223
1106 * Makefile.am (FLAGS_TO_PASS): Define.
1107 * Makefile.in: Regenerate.
1108
Anthony Green8360bf12012-02-23 07:01:13 -050011092012-02-23 Anthony Green <green@moxielogic.com>
1110
1111 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
1112 directly.
1113
Anthony Green7c5e60b2012-03-29 08:48:22 -040011142012-02-23 Kai Tietz <ktietz@redhat.com>
1115
1116 PR libffi/52221
1117 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
1118 prototype.
1119 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
1120 thiscall-convention.
1121 (ffi_raw_call): Use ffi_prep_args_raw.
1122 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
1123 implementation for stub.
1124
Anthony Greendee20f82012-02-10 13:06:46 -050011252012-02-10 Kai Tietz <ktietz@redhat.com>
1126
1127 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
1128 windows target.
1129 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -05001130
Anthony Greendee20f82012-02-10 13:06:46 -050011312012-02-08 Kai Tietz <ktietz@redhat.com>
1132
1133 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
1134 also FFI_THISCALL.
1135 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
1136 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
1137 (ffi_prep_closure_loc): Add FFI_THISCALL support.
1138 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
1139 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
1140 for thiscall-calling convention.
1141 * testsuite/libffi.call/closure_thiscall.c: New test.
1142
Anthony Green1ff9c602012-02-01 16:34:30 -060011432012-01-28 Kai Tietz <ktietz@redhat.com>
1144
1145 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
1146 argument to prototype for specify calling-convention.
1147 (ffi_call): Add support for stdcall/thiscall convention.
1148 (ffi_prep_args): Likewise.
1149 (ffi_raw_call): Likewise.
1150 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
1151 FFI_FASTCALL.
1152 * src/x86/win32.S (_ffi_call_win32): Add support for
1153 fastcall/thiscall calling-convention calls.
1154 * testsuite/libffi.call/fastthis1_win32.c: New test.
1155 * testsuite/libffi.call/fastthis2_win32.c: New test.
1156 * testsuite/libffi.call/fastthis3_win32.c: New test.
1157 * testsuite/libffi.call/strlen2_win32.c: New test.
1158 * testsuite/libffi.call/many2_win32.c: New test.
1159 * testsuite/libffi.call/struct1_win32.c: New test.
1160 * testsuite/libffi.call/struct2_win32.c: New test.
1161
Anthony Green211060e2012-01-23 14:24:01 -050011622012-01-23 Uros Bizjak <ubizjak@gmail.com>
1163
1164 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
1165
Anthony Green1ff9c602012-02-01 16:34:30 -060011662012-01-23 Anthony Green <green@moxielogic.com>
1167 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -05001168
1169 * configure.ac: Add Amiga support.
1170 * configure: Rebuilt.
1171
11722012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -05001173
1174 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
1175
Anthony Green1ff9c602012-02-01 16:34:30 -060011762012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -05001177
1178 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
1179 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
1180
Anthony Greenc365ee72012-01-23 11:13:18 -050011812012-01-19 Jakub Jelinek <jakub@redhat.com>
1182
1183 PR rtl-optimization/48496
1184 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
1185
11862012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1187
1188 * configure.ac (i?86-*-*): Set TARGET to X86_64.
1189 * configure: Regenerate.
1190
11912011-12-07 Andrew Pinski <apinski@cavium.com>
1192
1193 PR libffi/50051
1194 * src/mips/n32.S: Add ".set mips4".
1195
11962011-11-21 Andreas Tobler <andreast@fgznet.ch>
1197
1198 * configure: Regenerate.
1199
Anthony Greenff9454d2011-11-12 17:18:51 -050012002011-11-12 David Gilbert <david.gilbert@linaro.org>
1201
1202 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
1203 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
1204 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
1205 src/cris/ffi.c, src/prep_cif.c,
1206 testsuite/libffi.call/cls_double_va.c,
1207 testsuite/libffi.call/cls_longdouble_va.c,
1208 testsuite/libffi.call/float_va.c: Many changes to support variadic
1209 function calls.
1210
Anthony Green52891f82011-11-12 16:35:55 -050012112011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1212
1213 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
1214 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
1215 softfloat powerpc variants.
1216
Anthony Green6a6e7f82011-11-12 16:20:42 -050012172011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
1218
1219 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
1220 * configure: Rebuilt.
1221
Anthony Greend52fbed2011-11-12 16:13:41 -050012222011-11-12 Timothy Wall <twall@users.sf.net>
1223
1224 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
1225 alignment of 4 for wince on ARM.
1226
Anthony Greenaf18df22011-11-12 15:52:08 -050012272011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1228 Anthony Green <green@moxielogic.com>
1229
1230 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
1231 instructions (not available on some cores, like the PPC440).
1232
Anthony Greenc411f142011-11-12 07:32:36 -050012332011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -04001234
Anthony Greenc411f142011-11-12 07:32:36 -05001235 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -05001236 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -05001237 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
1238 X 10.7.
1239 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -04001240
Anthony Green6a6e7f82011-11-12 16:20:42 -050012412011-11-12 Anthony Green <green@moxielogic.com>
1242
1243 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1244 files with debug info.
1245 * Makefile.in: Rebuilt.
1246
12472011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1248
1249 * README: Update list of supported OpenBSD systems.
1250
12512011-11-12 Anthony Green <green@moxielogic.com>
1252
1253 * libtool-version: Update.
1254 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1255 FFI_DEBUG.
1256 (libffi_la_SOURCES): Remove src/debug.c
1257 (EXTRA_DIST): Add src/debug.c
1258 * Makefile.in: Rebuilt.
1259 * README: Update for 3.0.11.
1260
Anthony Green3d561062011-11-12 07:20:24 -050012612011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -04001262
Anthony Green3d561062011-11-12 07:20:24 -05001263 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1264 * configure, aclocal.m4: Rebuild.
1265
12662011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1267
1268 PR libffi/49594
1269 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1270 helper reference track the architecture pointer size.
1271
12722011-08-25 Andrew Haley <aph@redhat.com>
1273
1274 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1275 instructions.
1276 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -04001277
Anthony Greend992ac52011-07-29 17:32:53 -040012782011-07-11 Andrew Haley <aph@redhat.com>
1279
1280 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1281
12822011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1283
1284 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1285 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1286
12872011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1288
1289 PR libffi/46660
1290 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1291 mips-sgi-irix6*.
1292 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1293
12942011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1295
1296 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1297 PRId8 instead of %hhu, %hhd.
1298 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1299 PRIu8): Define.
1300 [__sgi__] (PRId8, PRIu8): Define.
1301
13022011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1303
1304 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1305 Define.
1306 Use them to handle ELF vs. ECOFF differences.
1307 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1308
Anthony Green2d3fb362011-03-30 16:54:42 -040013092011-03-30 Timothy Wall <twall@users.sf.net>
1310
1311 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1312 * src/powerpc/darwin_closure.S: ditto.
1313
Anthony Green25416792011-02-25 15:09:13 -050013142011-02-25 Anthony Green <green@moxielogic.com>
1315
Anthony Green74ee6ea2011-02-25 15:52:14 -05001316 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1317 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05001318
Anthony Green8cf88782011-02-15 15:19:49 -050013192011-02-15 Anthony Green <green@moxielogic.com>
1320
1321 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1322 * configure: Rebuilt.
1323
Anthony Greend992ac52011-07-29 17:32:53 -040013242011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1325
1326 * configure: Regenerate.
1327
Anthony Green1fbf9dc2011-02-13 08:06:39 -050013282011-02-13 Anthony Green <green@moxielogic.com>
1329
1330 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1331 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1332 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1333
1334 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1335 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1336
1337 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1338 just return FFI_BAD_ABI when things are wrong.
1339 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1340 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1341 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1342 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1343 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1344
Anthony Green1833aa02011-02-11 07:11:04 -050013452011-02-11 Anthony Green <green@moxielogic.com>
1346
1347 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1348 just return FFI_BAD_ABI when things are wrong.
1349
Anthony Green7c5e60b2012-03-29 08:48:22 -040013502012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1351
1352 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1353
Anthony Green42695e72011-02-09 15:12:35 -050013542011-02-09 Stuart Shelton <srcshelton@gmail.com>
1355
1356 http://bugs.gentoo.org/show_bug.cgi?id=286911
1357 * src/mips/ffitarget.h: Clean up error messages.
1358 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1359 ffi_raw*.
1360 * include/ffi.h.in: Add pragma for SGI compiler.
1361
Anthony Greena6e56b92011-02-09 15:00:42 -050013622011-02-09 Anthony Green <green@moxielogic.com>
1363
1364 * configure.ac: Add powerpc64-*-darwin* support.
1365
Anthony Green0cad4382011-02-09 06:11:46 -050013662011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05001367
Anthony Green747d6c32011-02-09 14:56:23 -05001368 * README: Mention Interix.
1369
13702011-02-09 Jonathan Callen <abcd@gentoo.org>
1371
1372 * configure.ac: Add Interix to win32/cygwin/mingw case.
1373 * configure: Ditto.
1374 * src/closures.c: Treat Interix like Cygwin, instead of as a
1375 generic win32.
1376
13772011-02-09 Anthony Green <green@moxielogic.com>
1378
Anthony Green69dbe842011-02-09 07:38:43 -05001379 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1380 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1381 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1382 (ffi_prep_closure_loc): Check for bad ABI.
1383 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1384 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -05001385
Anthony Green90af15e2011-02-12 12:29:36 -050013862011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -05001387
1388 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1389 src/arm/trampoline.S.
1390 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1391 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1392 * src/arm/ffi.c (ffi_trampoline_table)
1393 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1394 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1395 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1396 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1397 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1398 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1399 separately.
1400 * src/arm/sysv.S: Handle Apple iOS host.
1401 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001402 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001403 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001404 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001405
Anthony Greendc411e82011-02-08 10:49:29 -050014062011-02-08 Oren Held <orenhe@il.ibm.com>
1407
1408 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1409 redefinition of mallinfo on HP-UX.
1410
Anthony Green404585d2011-02-08 10:44:36 -050014112011-02-08 Ginn Chen <ginn.chen@oracle.com>
1412
1413 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001414 aggregate return ABI. Flush cache.
1415 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001416
Anthony Green6972a4f2011-02-11 07:32:51 -050014172011-02-11 Anthony Green <green@moxielogic.com>
1418
1419 From Tom Honermann <tom.honermann@oracle.com>:
1420 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1421 AIX. Declare .ffi_prep_args. Insert nops after branch
1422 instructions so that the AIX linker can insert TOC reload
1423 instructions.
1424 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1425
Anthony Greend992ac52011-07-29 17:32:53 -040014262011-02-08 Ed <ed@kdtc.net>
1427
1428 * src/powerpc/asm.h: Fix grammar nit in comment.
1429
Anthony Green89284fe2011-02-08 10:19:19 -050014302011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1431
1432 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1433
Anthony Greend992ac52011-07-29 17:32:53 -040014342011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1435
1436 PR libffi/46661
1437 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1438 uintptr_t first.
1439 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1440
Anthony Greened2c5182011-02-08 10:10:07 -050014412011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1442
1443 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001444 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001445
Anthony Green3b836242011-02-08 14:28:59 -050014462011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1447
1448 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1449 Handle case when CPU variant does not have long double support.
1450 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1451 and cores with soft floating point.
1452
14532011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1454
1455 * configure.ac: Add mips*-*-rtems* support.
1456 * configure: Regenerate.
1457 * src/mips/ffitarget.h: Ensure needed constants are available
1458 for targets which do not have sgidefs.h.
1459
Anthony Green0e584392011-02-08 07:52:40 -050014602011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1461
1462 PR target/40125
1463 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1464 * configure: Regenerate.
1465
14662010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1467
1468 PR libffi/29152
1469 PR libffi/42378
1470 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1471 update comments.
1472 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1473 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1474 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1475 update comments.
1476 * src/powerpc/ffi_darwin.c: Likewise.
1477
14782010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1479
1480 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1481 backslashes.
1482 (libffi_cv_as_string_pseudo_op): Likewise.
1483 * configure: Regenerate.
1484
14852010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1486
1487 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1488 (ffi_closure_VFP): Same.
1489 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1490 directive.
1491
14922010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1493
1494 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1495 (PRIuPTR): Define.
1496
14972010-11-29 Richard Henderson <rth@redhat.com>
1498 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1499
1500 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1501 (.eh_frame): Use FDE_ENCODING.
1502 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1503
Anthony Green5b9cd522010-11-22 15:19:57 -050015042010-11-22 Jacek Caban <jacek@codeweavers.com>
1505
1506 * configure.ac: Check for symbol underscores on mingw-w64.
1507 * configure: Rebuilt.
1508 * src/x86/win64.S: Correctly access extern symbols in respect to
1509 underscores.
1510
Anthony Green2db72612010-11-21 10:50:56 -050015112010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1512
1513 * testsuite/lib/libffi-dg.exp: Rename ...
1514 * testsuite/lib/libffi.exp: ... to this.
1515 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1516 * libffi/testsuite/libffi.special/special.exp: Likewise.
1517
15182010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1519
1520 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1521 code, new parameter, and return value. Update comments.
1522 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1523 call to layout_vfp_args().
1524 (ffi_call_SYSV): Update declaration.
1525 (ffi_call_VFP): New declaration.
1526 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1527 when ABI is FFI_VFP.
1528 (ffi_closure_VFP): New declaration.
1529 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1530 ffi_prep_incoming_args_SYSV().
1531 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1532 case handling.
1533 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1534 construction under VFP hard-float.
1535 (rec_vfp_type_p): New function.
1536 (vfp_type_p): Same.
1537 (place_vfp_arg): Same.
1538 (layout_vfp_args): Same.
1539 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1540 based on __ARM_PCS_VFP.
1541 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1542 fields.
1543 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1544 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1545 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1546 direct call. Move function pointer load upwards.
1547 (ffi_call_VFP): New function.
1548 (ffi_closure_VFP): Same.
1549
1550 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1551 (dg-skip-if): New function.
1552 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1553 and compiler options include -mfloat-abi=hard.
1554 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1555
15562010-10-01 Jakub Jelinek <jakub@redhat.com>
1557
1558 PR libffi/45677
1559 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1560 a multiple of 8.
1561 * testsuite/libffi.call/many2.c: New test.
1562
15632010-08-20 Mark Wielaard <mjw@redhat.com>
1564
1565 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1566 returns NULL.
1567
15682010-08-09 Andreas Tobler <andreast@fgznet.ch>
1569
1570 * configure.ac: Add target powerpc64-*-freebsd*.
1571 * configure: Regenerate.
1572 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1573 -mlong-double-128 only to linux targets.
1574 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1575 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1576 * testsuite/libffi.call/huge_struct.c: Likewise.
1577
Anthony Green00d0b592010-08-05 14:56:53 -040015782010-08-05 Dan Witte <dwitte@mozilla.com>
1579
1580 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1581 debug CRT when --enable-debug is given.
1582 * configure.ac: Define it.
1583 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1584
Anthony Greenc1d28ba2010-08-05 08:48:16 -040015852010-08-04 Dan Witte <dwitte@mozilla.com>
1586
1587 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1588 platforms.
1589 * src/x86/ffi.c: Remove redundant ifdef checks.
1590 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1591 for X86_ANY so return value space doesn't get added twice.
1592
Anthony Greenbda487e2010-08-05 09:02:41 -040015932010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1594
1595 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1596
Anthony Greend14178b2010-07-23 09:14:00 -040015972010-07-22 Dan Witte <dwitte@mozilla.com>
1598
1599 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1600 * src/prep_cif.c: Fix ABI assertion.
1601 * src/cris/ffi.c: Ditto.
1602
Anthony Greeneaf444e2010-07-10 08:59:09 -040016032010-07-10 Evan Phoenix <evan@fallingsnow.net>
1604
1605 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1606
Anthony Green5feacad2010-08-05 08:30:04 -040016072010-07-07 Dan Horák <dan@danny.cz>
1608
1609 * include/ffi.h.in: Protect #define with #ifndef.
1610 * src/powerpc/ffitarget.h: Ditto.
1611 * src/s390/ffitarget.h: Ditto.
1612 * src/sparc/ffitarget.h: Ditto.
1613
Anthony Green2db72612010-11-21 10:50:56 -050016142010-07-07 Neil Roberts <neil@linux.intel.com>
1615
1616 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1617 16-bytes.
1618
16192010-07-02 Jakub Jelinek <jakub@redhat.com>
1620
1621 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1622 * Makefile.in: Regenerated.
1623
16242010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1625
1626 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1627 output, too.
1628 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1629 (libffi_cv_as_string_pseudo_op): Check for .string.
1630 * configure: Regenerate.
1631 * fficonfig.h.in: Regenerate.
1632 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1633
Anthony Green10ea8482010-08-05 08:24:27 -040016342010-05-11 Dan Witte <dwitte@mozilla.com>
1635
1636 * doc/libffi.tex: Document previous change.
1637
16382010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1639
1640 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1641
Anthony Green63097412010-05-05 20:14:56 -040016422010-05-05 Michael Kohler <michaelkohler@live.com>
1643
1644 * src/dlmalloc.c (dlfree): Fix spelling.
1645 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1646 * configure.ac: Ditto.
1647 * configure: Rebuilt.
1648
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040016492010-04-13 Dan Witte <dwitte@mozilla.com>
1650
1651 * msvcc.sh: Build with -W3 instead of -Wall.
1652 * src/powerpc/ffi_darwin.c: Remove build warnings.
1653 * src/x86/ffi.c: Ditto.
1654 * src/x86/ffitarget.h: Ditto.
1655
Anthony Green2db72612010-11-21 10:50:56 -050016562010-04-12 Dan Witte <dwitte@mozilla.com>
1657 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001658
Anthony Green2db72612010-11-21 10:50:56 -05001659 * configure.ac: Add OS/2 support.
1660 * configure: Rebuilt.
1661 * src/closures.c: Ditto.
1662 * src/dlmalloc.c: Ditto.
1663 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001664
16652010-04-07 Jakub Jelinek <jakub@redhat.com>
1666
Anthony Green2db72612010-11-21 10:50:56 -05001667 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001668
16692010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1670
1671 * Makefile.in: Regenerate.
1672 * aclocal.m4: Regenerate.
1673 * include/Makefile.in: Regenerate.
1674 * man/Makefile.in: Regenerate.
1675 * testsuite/Makefile.in: Regenerate.
1676
Anthony Green2db72612010-11-21 10:50:56 -050016772010-03-30 Dan Witte <dwitte@mozilla.com>
1678
1679 * msvcc.sh: Disable build warnings.
1680 * README (tested): Clarify windows build procedure.
1681
Anthony Green3f5b1372010-07-12 14:39:18 -040016822010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1683
1684 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1685 * configure: Regenerate.
1686 * fficonfig.h.in: Regenerate.
1687 * libffi/src/x86/unix64.S (.eh_frame)
1688 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1689
Anthony Green2db72612010-11-21 10:50:56 -050016902010-03-14 Matthias Klose <doko@ubuntu.com>
1691
1692 * src/x86/ffi64.c: Fix typo in comment.
1693 * src/x86/ffi.c: Use /* ... */ comment style.
1694
Anthony Green9dc9a292010-04-13 10:33:52 -040016952010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1696
1697 * doc/libffi.texi (The Closure API): Fix typo.
1698 * doc/libffi.info: Remove.
1699
17002010-02-15 Matthias Klose <doko@ubuntu.com>
1701
1702 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1703 __ARM_ARCH_7EM__.
1704
Anthony Green2db72612010-11-21 10:50:56 -050017052010-01-15 Anthony Green <green@redhat.com>
1706
1707 * README: Add notes on building with Microsoft Visual C++.
1708
17092010-01-15 Daniel Witte <dwitte@mozilla.com>
1710
1711 * msvcc.sh: New file.
1712
1713 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1714 * src/x86/ffi.c: Tweak function declaration and remove excess
1715 parens.
1716 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1717 ffi_closure.
1718
1719 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1720 function ffi_call_win32 on X86_WIN32.
1721 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1722 (ffi_call_STDCALL): Remove.
1723
1724 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1725 to ffi_prep_cif_machdep for x86.
1726 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1727
17282010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1729
1730 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001731 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001732
17332010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1734
1735 * doc/libffi.texi: Add closure example.
1736
Anthony Green7b7a42f2010-01-12 09:14:14 -050017372010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1738
1739 PR libffi/40701
1740 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1741 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1742 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1743 alpha*-dec-osf*.
1744 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1745 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1746 * testsuite/libffi.call/return_ll1.c: Likewise.
1747 * testsuite/libffi.call/stret_medium2.c: Likewise.
1748 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1749 MAP_FAILED to char *.
1750
17512010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1752
1753 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1754
Anthony Greenc3042af2010-01-01 08:08:02 -050017552009-12-31 Anthony Green <green@redhat.com>
1756
1757 * README: Update for libffi 3.0.9.
1758
17592009-12-27 Matthias Klose <doko@ubuntu.com>
1760
1761 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1762 appropriate.
1763 * configure: Rebuilt.
1764
17652009-12-26 Anthony Green <green@redhat.com>
1766
1767 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1768 avr32*-*-*.
1769 * testsuite/libffi.call/cls_double_va.c: Ditto.
1770
17712009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1772
1773 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1774 and inttypes.h.
1775 * testsuite/libffi.special/unwindtest.cc: Ditto.
1776
17772009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1778
1779 * configure.ac: Add amd64-*-openbsd*.
1780 * configure: Rebuilt.
1781 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1782 openbsd programs with -lpthread.
1783
17842009-12-26 Anthony Green <green@redhat.com>
1785
1786 * testsuite/libffi.call/cls_double_va.c,
1787 testsuite/libffi.call/cls_longdouble.c,
1788 testsuite/libffi.call/cls_longdouble_va.c,
1789 testsuite/libffi.call/cls_pointer.c,
1790 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1791 mips*-*-* and arm*-*-*.
1792 * testsuite/libffi.call/cls_align_longdouble_split.c,
1793 testsuite/libffi.call/cls_align_longdouble_split2.c,
1794 testsuite/libffi.call/stret_medium2.c,
1795 testsuite/libffi.call/stret_medium.c,
1796 testsuite/libffi.call/stret_large.c,
1797 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1798
17992009-12-31 Kay Tietz <ktietz70@googlemail.com>
1800
1801 * testsuite/libffi.call/ffitest.h,
1802 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1803 definitions.
1804
18052009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1806
1807 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1808 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1809 * configure: Rebuilt.
1810 * Makefile.in: Rebuilt.
1811
18122009-12-31 Anthony Green <green@redhat.com>
1813 Blake Chaffin.
1814
1815 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1816 Chaffin @ Apple.
1817
Anthony Green0cfe60e2009-12-29 10:06:04 -050018182009-12-28 David Edelsohn <edelsohn@gnu.org>
1819
1820 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1821 local variables.
1822 (aix_adjust_aggregate_sizes): New function.
1823 (ffi_prep_cif_machdep): Call it.
1824
18252009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1826
1827 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1828 * configure: Regenerate.
1829 * fficonfig.h.in: Likewise.
1830 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1831 Solaris/x86.
1832
18332009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1834
1835 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1836 when a float arguments is passed in memory.
1837 (ffi_closure_helper_SYSV): Mark general registers as used up when
1838 a 64bit or soft-float long double argument is passed in memory.
1839
Anthony Green9458d882009-12-26 07:02:27 -050018402009-12-25 Matthias Klose <doko@ubuntu.com>
1841
1842 * man/ffi_call.3: Fix #include in examples.
1843 * doc/libffi.texi: Add dircategory.
1844
18452009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1846
1847 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1848 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1849 IRIX MIPSPro c99.
1850 * include/ffi_common.h: Added '__sgi' define to non
1851 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001852 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001853 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1854 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1855 FFI_LONGDOUBLE support and alignment(N32 only).
1856 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1857 fixed non '__attribute__((__mode__()))' integer typedefs.
1858 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1859 since they are Linux/GNU Assembler specific.
1860
18612009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1862
1863 * configure.ac, Makefile.am, src/avr32/ffi.c,
1864 src/avr32/ffitarget.h,
1865 src/avr32/sysv.S: Add AVR32 port.
1866 * configure, Makefile.in: Rebuilt.
1867
Anthony Green115ab362009-12-24 00:22:00 -050018682009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1869
1870 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1871 * configure: Regenerate.
1872
18732009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1874
1875 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1876
18772009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1878
1879 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1880 type on HP-UX.
1881
Anthony Green7c5e60b2012-03-29 08:48:22 -040018822012-02-13 Kai Tietz <ktietz@redhat.com>
1883
1884 PR libffi/52221
1885 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1886 support for X86_WIN32.
1887 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1888
Anthony Green115ab362009-12-24 00:22:00 -050018892009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1890
1891 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1892 double' arguments.
1893
18942009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1895
1896 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1897
18982009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1899
1900 PR libffi/40700
1901 * src/closures.c [X86_64 && __sun__ && __svr4__]
1902 (FFI_MMAP_EXEC_WRIT): Define.
1903
19042009-12-08 David Daney <ddaney@caviumnetworks.com>
1905
1906 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1907 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1908 * testsuite/libffi.call/stret_large.c: Same.
1909 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1910 * testsuite/libffi.call/stret_large2.c: Same.
1911 * testsuite/libffi.call/stret_medium2.c: Same.
1912
19132009-12-07 David Edelsohn <edelsohn@gnu.org>
1914
1915 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1916 typo.
1917
19182009-12-05 David Edelsohn <edelsohn@gnu.org>
1919
1920 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1921 code.
1922 * src/powerpc/aix_closure.S: Same.
1923
19242009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1925
1926 * Makefile.in: Regenerate.
1927 * configure: Regenerate.
1928 * include/Makefile.in: Regenerate.
1929 * man/Makefile.in: Regenerate.
1930 * testsuite/Makefile.in: Regenerate.
1931
19322009-12-04 David Edelsohn <edelsohn@gnu.org>
1933
1934 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001935 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001936
19372009-12-04 Uros Bizjak <ubizjak@gmail.com>
1938
1939 PR libffi/41908
1940 * src/x86/ffi64.c (classify_argument): Update from
1941 gcc/config/i386/i386.c.
1942 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1943 SSE registers directly.
1944 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1945 for x86_64 linux targets.
1946
19472009-12-04 David Edelsohn <edelsohn@gnu.org>
1948
1949 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1950 pfr for long double split between fpr13 and stack.
1951
19522009-12-03 David Edelsohn <edelsohn@gnu.org>
1953
1954 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1955 fparg_count twice for long double.
1956
19572009-12-03 David Edelsohn <edelsohn@gnu.org>
1958
1959 PR libffi/42243
1960 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1961
19622009-12-03 Uros Bizjak <ubizjak@gmail.com>
1963
1964 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1965 Remove xfails for x86 linux targets.
1966
19672009-12-02 David Edelsohn <edelsohn@gnu.org>
1968
1969 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1970 case.
1971
19722009-12-01 David Edelsohn <edelsohn@gnu.org>
1973
1974 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1975 register usage. Call ffi_prep_args directly. Add long double
1976 return value support.
1977 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1978 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1979 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1980 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1981 mode.
1982 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1983 into case.
1984 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1985 Allocate result area between params and FPRs.
1986
19872009-11-30 David Edelsohn <edelsohn@gnu.org>
1988
1989 PR target/35484
1990 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1991 AIX64.
1992 * src/powerpc/aix.S: Implement AIX64 version.
1993 * src/powerpc/aix_closure.S: Implement AIX64 version.
1994 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1995 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1996 support.
1997 (ffi_prep_cif_machdep): Same.
1998 (ffi_call): Same.
1999 (ffi_closure_helper_DARWIN): Same.
2000
20012009-11-02 Andreas Tobler <a.tobler@schweiz.org>
2002
2003 PR libffi/41908
2004 * testsuite/libffi.call/testclosure.c: New test.
2005
Anthony Greenc6dddbd2009-10-04 08:11:33 -040020062009-09-28 Kai Tietz <kai.tietz@onevision.com>
2007
2008 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
2009 assembly version use of ___chkstk.
2010
20112009-09-23 Matthias Klose <doko@ubuntu.com>
2012
2013 PR libffi/40242, PR libffi/41443
2014 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
2015 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
2016 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
2017 Change the conditionals to __SOFTFP__ || __ARM_EABI__
2018 for -mfloat-abi=softfp to work.
2019
20202009-09-17 Loren J. Rittle <ljrittle@acm.org>
2021
2022 PR testsuite/32843 (strikes again)
2023 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
2024 enable proper extension on char and short.
2025
20262009-09-15 David Daney <ddaney@caviumnetworks.com>
2027
2028 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
2029 handling for FFI_TYPE_POINTER.
2030 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
2031 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
2032 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
2033 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
2034 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
2035 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
2036 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
2037 structure and pointer returns.
2038 (ffi_closure_N32): Add handling for pointer returns.
2039 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
2040 calc_n32_return_struct_flags): Handle soft-float.
2041 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
2042 (ffi_call_N32): Declare proper argument types.
2043 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
2044 soft-float.
2045
20462009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2047
2048 * configure.ac (AC_PREREQ): Bump to 2.64.
2049
20502009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2051
2052 * Makefile.am (install-html, install-pdf): Remove.
2053 * Makefile.in: Regenerate.
2054
2055 * Makefile.in: Regenerate.
2056 * aclocal.m4: Regenerate.
2057 * configure: Regenerate.
2058 * fficonfig.h.in: Regenerate.
2059 * include/Makefile.in: Regenerate.
2060 * man/Makefile.in: Regenerate.
2061 * testsuite/Makefile.in: Regenerate.
2062
Anthony Green3d561062011-11-12 07:20:24 -050020632011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
2064
2065 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
2066 * configure: Rebuilt.
2067
Anthony Greenc6dddbd2009-10-04 08:11:33 -040020682009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2069
2070 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2071
20722009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
2073
2074 PR libffi/40807
2075 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
2076 return types for X86_WIN32.
2077 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
2078 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
2079 _ffi_closure_STDCALL): Likewise.
2080
2081 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
2082 (dlmmap, dlmunmap): Also use these functions on Cygwin.
2083
20842009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
2085
2086 PR testsuite/40699
2087 PR testsuite/40707
2088 PR testsuite/40709
2089 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
2090 2009-06-30 commits.
2091
20922009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2093
2094 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
2095 to "" before adding paths. (This reinstates an assignment that
2096 was removed by my 2009-06-30 commit, but changes the initial
2097 value from "." to "".)
2098
20992009-07-01 H.J. Lu <hongjiu.lu@intel.com>
2100
2101 PR testsuite/40601
2102 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
2103 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
2104 empty.
2105
21062009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
2107
2108 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
2109 to ld_library_path. Use add_path. Add just find_libgcc_s
2110 to ld_library_path, not every libgcc multilib directory.
2111
21122009-06-16 Wim Lewis <wiml@hhhh.org>
2113
2114 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
2115 supposed to be callee-saved.
2116 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
2117 return buffer for odd-size structs.
2118
21192009-06-16 Andreas Tobler <a.tobler@schweiz.org>
2120
2121 PR libffi/40444
2122 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
2123 allow_stack_execute for Darwin.
2124
21252009-06-16 Andrew Haley <aph@redhat.com>
2126
2127 * configure.ac (TARGETDIR): Add missing blank lines.
2128 * configure: Regenerate.
2129
21302009-06-16 Andrew Haley <aph@redhat.com>
2131
2132 * testsuite/libffi.call/cls_align_sint64.c,
2133 testsuite/libffi.call/cls_align_uint64.c,
2134 testsuite/libffi.call/cls_longdouble_va.c,
2135 testsuite/libffi.call/cls_ulonglong.c,
2136 testsuite/libffi.call/return_ll1.c,
2137 testsuite/libffi.call/stret_medium2.c: Fix printf format
2138 specifiers.
2139 * testsuite/libffi.call/ffitest.h,
2140 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
2141
21422009-06-15 Andrew Haley <aph@redhat.com>
2143
2144 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
2145 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002146
Anthony Greenc6dddbd2009-10-04 08:11:33 -040021472009-06-12 Andrew Haley <aph@redhat.com>
2148
2149 * Makefile.am: Remove info_TEXINFOS.
2150
21512009-06-12 Andrew Haley <aph@redhat.com>
2152
2153 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
2154 testsuite/libffi.call/cls_align_uint64.c,
2155 testsuite/libffi.call/cls_ulonglong.c,
2156 testsuite/libffi.call/return_ll1.c,
2157 testsuite/libffi.call/stret_medium2.c: Fix printf format
2158 specifiers.
2159 testsuite/libffi.special/unwindtest.cc: include stdint.h.
2160
21612009-06-11 Timothy Wall <twall@users.sf.net>
2162
2163 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002164 configure.ac,
2165 include/ffi.h.in,
2166 include/ffi_common.h,
2167 src/closures.c,
2168 src/dlmalloc.c,
2169 src/x86/ffi.c,
2170 src/x86/ffitarget.h,
2171 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002172 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05002173 * Makefile.in,
2174 include/Makefile.in,
2175 man/Makefile.in,
2176 testsuite/Makefile.in,
2177 configure,
2178 aclocal.m4: Regenerated
2179 * ltcf-c.sh: properly escape cygwin/w32 path
2180 * man/ffi_call.3: Clarify size requirements for return value.
2181 * src/x86/ffi64.c: Fix filename in comment.
2182 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002183
Anthony Green0cfe60e2009-12-29 10:06:04 -05002184 * testsuite/libffi.call/closure_fn0.c,
2185 testsuite/libffi.call/closure_fn1.c,
2186 testsuite/libffi.call/closure_fn2.c,
2187 testsuite/libffi.call/closure_fn3.c,
2188 testsuite/libffi.call/closure_fn4.c,
2189 testsuite/libffi.call/closure_fn5.c,
2190 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002191 testsuite/libffi.call/closure_stdcall.c,
2192 testsuite/libffi.call/cls_12byte.c,
2193 testsuite/libffi.call/cls_16byte.c,
2194 testsuite/libffi.call/cls_18byte.c,
2195 testsuite/libffi.call/cls_19byte.c,
2196 testsuite/libffi.call/cls_1_1byte.c,
2197 testsuite/libffi.call/cls_20byte.c,
2198 testsuite/libffi.call/cls_20byte1.c,
2199 testsuite/libffi.call/cls_24byte.c,
2200 testsuite/libffi.call/cls_2byte.c,
2201 testsuite/libffi.call/cls_3_1byte.c,
2202 testsuite/libffi.call/cls_3byte1.c,
2203 testsuite/libffi.call/cls_3byte2.c,
2204 testsuite/libffi.call/cls_4_1byte.c,
2205 testsuite/libffi.call/cls_4byte.c,
2206 testsuite/libffi.call/cls_5_1_byte.c,
2207 testsuite/libffi.call/cls_5byte.c,
2208 testsuite/libffi.call/cls_64byte.c,
2209 testsuite/libffi.call/cls_6_1_byte.c,
2210 testsuite/libffi.call/cls_6byte.c,
2211 testsuite/libffi.call/cls_7_1_byte.c,
2212 testsuite/libffi.call/cls_7byte.c,
2213 testsuite/libffi.call/cls_8byte.c,
2214 testsuite/libffi.call/cls_9byte1.c,
2215 testsuite/libffi.call/cls_9byte2.c,
2216 testsuite/libffi.call/cls_align_double.c,
2217 testsuite/libffi.call/cls_align_float.c,
2218 testsuite/libffi.call/cls_align_longdouble.c,
2219 testsuite/libffi.call/cls_align_longdouble_split.c,
2220 testsuite/libffi.call/cls_align_longdouble_split2.c,
2221 testsuite/libffi.call/cls_align_pointer.c,
2222 testsuite/libffi.call/cls_align_sint16.c,
2223 testsuite/libffi.call/cls_align_sint32.c,
2224 testsuite/libffi.call/cls_align_sint64.c,
2225 testsuite/libffi.call/cls_align_uint16.c,
2226 testsuite/libffi.call/cls_align_uint32.c,
2227 testsuite/libffi.call/cls_align_uint64.c,
2228 testsuite/libffi.call/cls_dbls_struct.c,
2229 testsuite/libffi.call/cls_double.c,
2230 testsuite/libffi.call/cls_double_va.c,
2231 testsuite/libffi.call/cls_float.c,
2232 testsuite/libffi.call/cls_longdouble.c,
2233 testsuite/libffi.call/cls_longdouble_va.c,
2234 testsuite/libffi.call/cls_multi_schar.c,
2235 testsuite/libffi.call/cls_multi_sshort.c,
2236 testsuite/libffi.call/cls_multi_sshortchar.c,
2237 testsuite/libffi.call/cls_multi_uchar.c,
2238 testsuite/libffi.call/cls_multi_ushort.c,
2239 testsuite/libffi.call/cls_multi_ushortchar.c,
2240 testsuite/libffi.call/cls_pointer.c,
2241 testsuite/libffi.call/cls_pointer_stack.c,
2242 testsuite/libffi.call/cls_schar.c,
2243 testsuite/libffi.call/cls_sint.c,
2244 testsuite/libffi.call/cls_sshort.c,
2245 testsuite/libffi.call/cls_uchar.c,
2246 testsuite/libffi.call/cls_uint.c,
2247 testsuite/libffi.call/cls_ulonglong.c,
2248 testsuite/libffi.call/cls_ushort.c,
2249 testsuite/libffi.call/err_bad_abi.c,
2250 testsuite/libffi.call/err_bad_typedef.c,
2251 testsuite/libffi.call/float2.c,
2252 testsuite/libffi.call/huge_struct.c,
2253 testsuite/libffi.call/nested_struct.c,
2254 testsuite/libffi.call/nested_struct1.c,
2255 testsuite/libffi.call/nested_struct10.c,
2256 testsuite/libffi.call/nested_struct2.c,
2257 testsuite/libffi.call/nested_struct3.c,
2258 testsuite/libffi.call/nested_struct4.c,
2259 testsuite/libffi.call/nested_struct5.c,
2260 testsuite/libffi.call/nested_struct6.c,
2261 testsuite/libffi.call/nested_struct7.c,
2262 testsuite/libffi.call/nested_struct8.c,
2263 testsuite/libffi.call/nested_struct9.c,
2264 testsuite/libffi.call/problem1.c,
2265 testsuite/libffi.call/return_ldl.c,
2266 testsuite/libffi.call/return_ll1.c,
2267 testsuite/libffi.call/stret_large.c,
2268 testsuite/libffi.call/stret_large2.c,
2269 testsuite/libffi.call/stret_medium.c,
2270 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002271 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2272 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002273
22742009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2275
2276 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2277 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2278 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2279
22802009-06-09 Andrew Haley <aph@redhat.com>
2281
2282 * src/x86/freebsd.S: Add missing file.
2283
22842009-06-08 Andrew Haley <aph@redhat.com>
2285
2286 Import from libffi 3.0.8:
2287
2288 * doc/libffi.texi: New file.
2289 * doc/libffi.info: Likewise.
2290 * doc/stamp-vti: Likewise.
2291 * man/Makefile.am: New file.
2292 * man/ffi_call.3: New file.
2293
2294 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2295 src/dlmalloc.c.
2296 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2297
2298 * configure.ac: Bump version to 3.0.8.
2299 parisc*-*-linux*: Add.
2300 i386-*-freebsd* | i386-*-openbsd*: Add.
2301 powerpc-*-beos*: Add.
2302 AM_CONDITIONAL X86_FREEBSD: Add.
2303 AC_CONFIG_FILES: Add man/Makefile.
2304
2305 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2306
23072009-06-08 Andrew Haley <aph@redhat.com>
2308
2309 * README: Import from libffi 3.0.8.
2310
23112009-06-08 Andrew Haley <aph@redhat.com>
2312
2313 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2314 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2315 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2316 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2317
2318 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2319 * testsuite/libffi.call/stret_medium.c: Likewise.
2320 * testsuite/libffi.call/stret_large2.c: Likewise.
2321 * testsuite/libffi.call/stret_large.c: Likewise.
2322
23232008-12-26 Timothy Wall <twall@users.sf.net>
2324
Anthony Green0cfe60e2009-12-29 10:06:04 -05002325 * testsuite/libffi.call/cls_longdouble.c,
2326 testsuite/libffi.call/cls_longdouble_va.c,
2327 testsuite/libffi.call/cls_align_longdouble.c,
2328 testsuite/libffi.call/cls_align_longdouble_split.c,
2329 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2330 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002331
23322008-12-22 Timothy Wall <twall@users.sf.net>
2333
Anthony Green0cfe60e2009-12-29 10:06:04 -05002334 * testsuite/libffi.call/closure_fn0.c,
2335 testsuite/libffi.call/closure_fn1.c,
2336 testsuite/libffi.call/closure_fn2.c,
2337 testsuite/libffi.call/closure_fn3.c,
2338 testsuite/libffi.call/closure_fn4.c,
2339 testsuite/libffi.call/closure_fn5.c,
2340 testsuite/libffi.call/closure_fn6.c,
2341 testsuite/libffi.call/closure_loc_fn0.c,
2342 testsuite/libffi.call/closure_stdcall.c,
2343 testsuite/libffi.call/cls_align_pointer.c,
2344 testsuite/libffi.call/cls_pointer.c,
2345 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2346 pointer to integer (intptr_t).
2347 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002348
23492008-07-24 Anthony Green <green@redhat.com>
2350
Anthony Green0cfe60e2009-12-29 10:06:04 -05002351 * testsuite/libffi.call/cls_dbls_struct.c,
2352 testsuite/libffi.call/cls_double_va.c,
2353 testsuite/libffi.call/cls_longdouble.c,
2354 testsuite/libffi.call/cls_longdouble_va.c,
2355 testsuite/libffi.call/cls_pointer.c,
2356 testsuite/libffi.call/cls_pointer_stack.c,
2357 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2358 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002359
23602008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002361 Blake Chaffin
2362 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002363
Anthony Green0cfe60e2009-12-29 10:06:04 -05002364 * testsuite/libffi.call/cls_align_longdouble_split2.c
2365 testsuite/libffi.call/cls_align_longdouble_split.c
2366 testsuite/libffi.call/cls_dbls_struct.c
2367 testsuite/libffi.call/cls_double_va.c
2368 testsuite/libffi.call/cls_longdouble.c
2369 testsuite/libffi.call/cls_longdouble_va.c
2370 testsuite/libffi.call/cls_pointer.c
2371 testsuite/libffi.call/cls_pointer_stack.c
2372 testsuite/libffi.call/err_bad_abi.c
2373 testsuite/libffi.call/err_bad_typedef.c
2374 testsuite/libffi.call/stret_large2.c
2375 testsuite/libffi.call/stret_large.c
2376 testsuite/libffi.call/stret_medium2.c
2377 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002378
23792009-06-05 Andrew Haley <aph@redhat.com>
2380
2381 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2382 libffi.
2383
23842009-06-04 Andrew Haley <aph@redhat.com>
2385
2386 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2387 stdcall changes.
2388
23892008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002390 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002391
Anthony Green0cfe60e2009-12-29 10:06:04 -05002392 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2393 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002394
23952008-02-03 Timothy Wall <twall@users.sf.net>
2396
Anthony Green0cfe60e2009-12-29 10:06:04 -05002397 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2398 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002399
24002008-01-31 Timothy Wall <twall@users.sf.net>
2401
Anthony Green0cfe60e2009-12-29 10:06:04 -05002402 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2403 closures.
2404 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2405 closures.
2406 * src/x86/win32.S: Add assembly for stdcall closure.
2407 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002408
24092009-06-04 Andrew Haley <aph@redhat.com>
2410
2411 * include/ffi.h.in: Change void (*)() to void (*)(void).
2412 * src/x86/ffi.c: Likewise.
2413
24142009-06-04 Andrew Haley <aph@redhat.com>
2415
2416 * src/powerpc/ppc_closure.S: Insert licence header.
2417 * src/powerpc/linux64_closure.S: Likewise.
2418 * src/m68k/sysv.S: Likewise.
2419
2420 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2421 * src/powerpc/ffi.c: Likewise.
2422 * src/powerpc/ffi_darwin.c: Likewise.
2423 * src/m32r/ffi.c: Likewise.
2424 * src/sh64/ffi.c: Likewise.
2425 * src/x86/ffi64.c: Likewise.
2426 * src/alpha/ffi.c: Likewise.
2427 * src/alpha/osf.S: Likewise.
2428 * src/frv/ffi.c: Likewise.
2429 * src/s390/ffi.c: Likewise.
2430 * src/pa/ffi.c: Likewise.
2431 * src/pa/hpux32.S: Likewise.
2432 * src/ia64/unix.S: Likewise.
2433 * src/ia64/ffi.c: Likewise.
2434 * src/sparc/ffi.c: Likewise.
2435 * src/mips/ffi.c: Likewise.
2436 * src/sh/ffi.c: Likewise.
2437
24382008-02-15 David Daney <ddaney@avtrex.com>
2439
Anthony Green0cfe60e2009-12-29 10:06:04 -05002440 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2441 Define (conditionally), and use it to include cachectl.h.
2442 (ffi_prep_closure_loc): Fix cache flushing.
2443 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002444
24452009-06-04 Andrew Haley <aph@redhat.com>
2446
2447 include/ffi.h.in,
2448 src/arm/ffitarget.h,
2449 src/arm/ffi.c,
2450 src/arm/sysv.S,
2451 src/powerpc/ffitarget.h,
2452 src/closures.c,
2453 src/sh64/ffitarget.h,
2454 src/sh64/ffi.c,
2455 src/sh64/sysv.S,
2456 src/types.c,
2457 src/x86/ffi64.c,
2458 src/x86/ffitarget.h,
2459 src/x86/win32.S,
2460 src/x86/darwin.S,
2461 src/x86/ffi.c,
2462 src/x86/sysv.S,
2463 src/x86/unix64.S,
2464 src/alpha/ffitarget.h,
2465 src/alpha/ffi.c,
2466 src/alpha/osf.S,
2467 src/m68k/ffitarget.h,
2468 src/frv/ffitarget.h,
2469 src/frv/ffi.c,
2470 src/s390/ffitarget.h,
2471 src/s390/sysv.S,
2472 src/cris/ffitarget.h,
2473 src/pa/linux.S,
2474 src/pa/ffitarget.h,
2475 src/pa/ffi.c,
2476 src/raw_api.c,
2477 src/ia64/ffitarget.h,
2478 src/ia64/unix.S,
2479 src/ia64/ffi.c,
2480 src/ia64/ia64_flags.h,
2481 src/java_raw_api.c,
2482 src/debug.c,
2483 src/sparc/v9.S,
2484 src/sparc/ffitarget.h,
2485 src/sparc/ffi.c,
2486 src/sparc/v8.S,
2487 src/mips/ffitarget.h,
2488 src/mips/n32.S,
2489 src/mips/o32.S,
2490 src/mips/ffi.c,
2491 src/prep_cif.c,
2492 src/sh/ffitarget.h,
2493 src/sh/ffi.c,
2494 src/sh/sysv.S: Update license text.
2495
24962009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2497
2498 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2499 (.eh_frame): Add FDE for it.
2500
25012009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2502
2503 * configure.ac: Also check if assembler supports pc-relative
2504 relocs on X86_WIN32 targets.
2505 * configure: Regenerate.
2506 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2507 (_ffi_call_SYSV): Add missing function type symbol .def and
2508 add EH markup labels.
2509 (_ffi_call_STDCALL): Likewise.
2510 (_ffi_closure_SYSV): Likewise.
2511 (_ffi_closure_raw_SYSV): Likewise.
2512 (.eh_frame): Add hand-crafted EH data.
2513
25142009-04-09 Jakub Jelinek <jakub@redhat.com>
2515
2516 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2517 version 3 of the GNU General Public License and to point readers
2518 at the COPYING3 file and the FSF's license web page.
2519 * testsuite/libffi.call/call.exp: Likewise.
2520 * testsuite/libffi.special/special.exp: Likewise.
2521
25222009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2523
2524 * configure: Regenerate.
2525
25262008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2527
2528 PR libffi/26048
2529 * configure.ac (HAVE_AS_X86_PCREL): New test.
2530 * configure: Regenerate.
2531 * fficonfig.h.in: Regenerate.
2532 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2533 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2534 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2535 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2536 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2537 (.Lload_table): Likewise.
2538 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2539
25402008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2541
2542 * configure: Regenerate.
2543
25442008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2545
2546 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2547 signed/unsigned int8/16 return values.
2548 * src/sparc/v8.S (ffi_call_v8): Likewise.
2549 (ffi_closure_v8): Likewise.
2550
25512008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002552 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002553
2554 * configure: Regenerate for new libtool.
2555 * Makefile.in: Ditto.
2556 * include/Makefile.in: Ditto.
2557 * aclocal.m4: Ditto.
2558
25592008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2560
2561 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2562 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2563 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2564 Adjust copyright notice.
2565 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2566 register or two register to use for FFI_SYSV structs.
2567 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2568 (ffi_closure_helper_SYSV): Fix the return type for
2569 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2570 Adjust copyright notice.
2571
25722008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2573
2574 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2575 int.
2576
25772008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2578
2579 * configure: Regenerate.
2580 * include/Makefile.in: Regenerate.
2581 * testsuite/Makefile.in: Regenerate.
2582
25832008-06-07 Joseph Myers <joseph@codesourcery.com>
2584
2585 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2586 powerpc-*-beos*): Remove.
2587 * configure: Regenerate.
2588
25892008-05-09 Julian Brown <julian@codesourcery.com>
2590
2591 * Makefile.am (LTLDFLAGS): New.
2592 (libffi_la_LDFLAGS): Use above.
2593 * Makefile.in: Regenerate.
2594
25952008-04-18 Paolo Bonzini <bonzini@gnu.org>
2596
2597 PR bootstrap/35457
2598 * aclocal.m4: Regenerate.
2599 * configure: Regenerate.
2600
26012008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2602
2603 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2604 * src/sh64/sysv.S: Likewise.
2605
26062008-03-26 Daniel Jacobowitz <dan@debian.org>
2607
2608 * src/arm/sysv.S: Fix ARM comment marker.
2609
26102008-03-26 Jakub Jelinek <jakub@redhat.com>
2611
2612 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2613 * src/s390/sysv.S: Likewise.
2614 * src/powerpc/ppc_closure.S: Likewise.
2615 * src/powerpc/sysv.S: Likewise.
2616 * src/x86/unix64.S: Likewise.
2617 * src/x86/sysv.S: Likewise.
2618 * src/sparc/v8.S: Likewise.
2619 * src/sparc/v9.S: Likewise.
2620 * src/m68k/sysv.S: Likewise.
2621 * src/arm/sysv.S: Likewise.
2622
26232008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2624
2625 * aclocal.m4: Regenerate.
2626 * configure: Likewise.
2627 * Makefile.in: Likewise.
2628 * include/Makefile.in: Likewise.
2629 * testsuite/Makefile.in: Likewise.
2630
26312008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2632 Andreas Tobler <a.tobler@schweiz.org>
2633
2634 * configure.ac: Add amd64-*-freebsd* target.
2635 * configure: Regenerate.
2636
26372008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2638
2639 PR libffi/34612
2640 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2641 returning struct.
2642
2643 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2644 tests.
2645
26462008-01-24 David Edelsohn <edelsohn@gnu.org>
2647
2648 * configure: Regenerate.
2649
26502008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2651
2652 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2653
26542008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2655
2656 PR testsuite/32843
2657 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2658 signed/unsigned int8/16 for X86_DARWIN.
2659 Updated copyright info.
2660 Handle one and two byte structs with special cif->flags.
2661 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2662 Updated copyright info.
2663 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2664 sysv.S
2665 Remove code to pop args from the stack after call.
2666 Special-case signed/unsigned for int8/16, one and two byte structs.
2667 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2668 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2669 FFI_TYPE_SINT32.
2670 Updated copyright info.
2671
26722007-12-08 David Daney <ddaney@avtrex.com>
2673
Anthony Green0cfe60e2009-12-29 10:06:04 -05002674 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002675 SUBU, add with ADDU and use smaller code sequences.
2676
26772007-12-07 David Daney <ddaney@avtrex.com>
2678
2679 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2680 type.
2681
26822007-12-06 David Daney <ddaney@avtrex.com>
2683
2684 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2685 defined.
2686 (ffi_java_raw): New typedef.
2687 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2688 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2689 ffi_java_raw.
2690 (ffi_java_raw_closure) : Same.
2691 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2692 parameter types.
2693 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2694 FFI_SIZEOF_JAVA_RAW.
2695 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2696 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2697 sizeof(ffi_java_raw) for alignment calculations.
2698 (ffi_java_ptrarray_to_raw): Same.
2699 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002700 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002701 (ffi_java_raw_to_rvalue): Same.
2702 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2703 (ffi_java_translate_args): Same.
2704 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2705 parameter types.
2706 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2707
27082007-12-06 David Daney <ddaney@avtrex.com>
2709
Anthony Green0cfe60e2009-12-29 10:06:04 -05002710 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002711 pointer values.
2712
27132007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2714
2715 PR libffi/31937
2716 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2717 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2718 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2719 set the NUM_FPR_ARG_REGISTERS according to.
2720 Add support for potential soft-float support under hard-float
2721 architecture.
2722 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2723 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2724 to the FFI_LINUX_SOFT_FLOAT ABI.
2725 (ffi_prep_cif_machdep): Likewise.
2726 (ffi_closure_helper_SYSV): Likewise.
2727 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2728 on archs where __NO_FPRS__ is true.
2729 Add FFI_TYPE_UINT128 support.
2730 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2731 Adjust copyright notice.
2732
27332007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2734
2735 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2736 * include/ffi_common.h: ... here.
2737 Update copyright.
2738
27392007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2740
2741 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2742 * src/powerpc/linux64.S: Likewise.
2743 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2744 * testsuite/libffi.call/return_ldl.c: New test.
2745
27462007-09-04 <aph@redhat.com>
2747
2748 * src/arm/sysv.S (UNWIND): New.
2749 (Whole file): Conditionally compile unwinder directives.
2750 * src/arm/sysv.S: Add unwinder directives.
2751
2752 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2753 Only treat r0 as a struct address if we're actually returning a
2754 struct by address.
2755 Only copy the bytes that are actually within a struct.
2756 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2757 is returned in r0, not passed by address.
2758 (ffi_call): Allocate a word-sized temporary for the case where
2759 a composite is returned in r0.
2760 (ffi_prep_incoming_args_SYSV): Align as necessary.
2761
27622007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2763
Anthony Green0cfe60e2009-12-29 10:06:04 -05002764 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002765 directly using the sys_cacheflush syscall.
2766
27672007-07-27 Andrew Haley <aph@redhat.com>
2768
2769 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2770
27712007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2772
2773 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2774 * configure.ac: Likewise.
2775 * Makefile.in: Regenerate.
2776 * include/Makefile.in: Likewise.
2777 * testsuite/Makefile.in: Likewise.
2778 * configure: Likewise.
2779
27802007-08-24 David Daney <ddaney@avtrex.com>
2781
2782 * testsuite/libffi.call/return_sl.c: New test.
2783
27842007-08-10 David Daney <ddaney@avtrex.com>
2785
2786 * testsuite/libffi.call/cls_multi_ushort.c,
2787 testsuite/libffi.call/cls_align_uint16.c,
2788 testsuite/libffi.call/nested_struct1.c,
2789 testsuite/libffi.call/nested_struct3.c,
2790 testsuite/libffi.call/cls_7_1_byte.c,
2791 testsuite/libffi.call/nested_struct5.c,
2792 testsuite/libffi.call/cls_double.c,
2793 testsuite/libffi.call/nested_struct7.c,
2794 testsuite/libffi.call/cls_sint.c,
2795 testsuite/libffi.call/nested_struct9.c,
2796 testsuite/libffi.call/cls_20byte1.c,
2797 testsuite/libffi.call/cls_multi_sshortchar.c,
2798 testsuite/libffi.call/cls_align_sint64.c,
2799 testsuite/libffi.call/cls_3byte2.c,
2800 testsuite/libffi.call/cls_multi_schar.c,
2801 testsuite/libffi.call/cls_multi_uchar.c,
2802 testsuite/libffi.call/cls_19byte.c,
2803 testsuite/libffi.call/cls_9byte1.c,
2804 testsuite/libffi.call/cls_align_float.c,
2805 testsuite/libffi.call/closure_fn1.c,
2806 testsuite/libffi.call/problem1.c,
2807 testsuite/libffi.call/closure_fn3.c,
2808 testsuite/libffi.call/cls_sshort.c,
2809 testsuite/libffi.call/closure_fn5.c,
2810 testsuite/libffi.call/cls_align_double.c,
2811 testsuite/libffi.call/nested_struct.c,
2812 testsuite/libffi.call/cls_2byte.c,
2813 testsuite/libffi.call/nested_struct10.c,
2814 testsuite/libffi.call/cls_4byte.c,
2815 testsuite/libffi.call/cls_6byte.c,
2816 testsuite/libffi.call/cls_8byte.c,
2817 testsuite/libffi.call/cls_multi_sshort.c,
2818 testsuite/libffi.call/cls_align_sint16.c,
2819 testsuite/libffi.call/cls_align_uint32.c,
2820 testsuite/libffi.call/cls_20byte.c,
2821 testsuite/libffi.call/cls_float.c,
2822 testsuite/libffi.call/nested_struct2.c,
2823 testsuite/libffi.call/cls_5_1_byte.c,
2824 testsuite/libffi.call/nested_struct4.c,
2825 testsuite/libffi.call/cls_24byte.c,
2826 testsuite/libffi.call/nested_struct6.c,
2827 testsuite/libffi.call/cls_64byte.c,
2828 testsuite/libffi.call/nested_struct8.c,
2829 testsuite/libffi.call/cls_uint.c,
2830 testsuite/libffi.call/cls_multi_ushortchar.c,
2831 testsuite/libffi.call/cls_schar.c,
2832 testsuite/libffi.call/cls_uchar.c,
2833 testsuite/libffi.call/cls_align_uint64.c,
2834 testsuite/libffi.call/cls_ulonglong.c,
2835 testsuite/libffi.call/cls_align_longdouble.c,
2836 testsuite/libffi.call/cls_1_1byte.c,
2837 testsuite/libffi.call/cls_12byte.c,
2838 testsuite/libffi.call/cls_3_1byte.c,
2839 testsuite/libffi.call/cls_3byte1.c,
2840 testsuite/libffi.call/cls_4_1byte.c,
2841 testsuite/libffi.call/cls_6_1_byte.c,
2842 testsuite/libffi.call/cls_16byte.c,
2843 testsuite/libffi.call/cls_18byte.c,
2844 testsuite/libffi.call/closure_fn0.c,
2845 testsuite/libffi.call/cls_9byte2.c,
2846 testsuite/libffi.call/closure_fn2.c,
2847 testsuite/libffi.call/closure_fn4.c,
2848 testsuite/libffi.call/cls_ushort.c,
2849 testsuite/libffi.call/closure_fn6.c,
2850 testsuite/libffi.call/cls_5byte.c,
2851 testsuite/libffi.call/cls_align_pointer.c,
2852 testsuite/libffi.call/cls_7byte.c,
2853 testsuite/libffi.call/cls_align_sint32.c,
2854 testsuite/libffi.special/unwindtest_ffi_call.cc,
2855 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2856
28572007-08-10 David Daney <ddaney@avtrex.com>
2858
2859 PR libffi/28313
2860 * configure.ac: Don't treat mips64 as a special case.
2861 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2862 * configure: Regenerate
2863 * Makefile.in: Ditto.
2864 * fficonfig.h.in: Ditto.
2865 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2866 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2867 (FFI_DEFAULT_ABI): Set for n64 case.
2868 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2869 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2870 (ffi_closure_N32): New function.
2871 (.eh_frame): New section
2872 * src/mips/o32.S: Clean up comments.
2873 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2874 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2875 _MIPS_SIM == _ABIN32 throughout.
2876 (FFI_MIPS_STOP_HERE): New, use in place of
2877 ffi_stop_here.
2878 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2879 to support n32/n64 ABIs.
2880 (calc_n32_struct_flags): Rewrite.
2881 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2882 position of flag bits.
2883 (ffi_prep_cif_machdep): Rewrite n32 portion.
2884 (ffi_call): Enable for n64. Add special handling for small structure
2885 return values.
2886 (ffi_prep_closure_loc): Add n32 and n64 support.
2887 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2888 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2889
28902007-08-08 David Daney <ddaney@avtrex.com>
2891
2892 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2893 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2894 specifiers.
2895 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2896 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2897 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2898 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2899 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2900 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2901 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2902 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2903 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2904 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2905 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2906 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2907 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2908 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2909 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2910 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2911 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2912 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2913 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2914 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2915 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2916 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2917 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2918 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2919 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2920 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2921 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2922 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2923 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2924 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2925 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2926
29272007-08-07 Andrew Haley <aph@redhat.com>
2928
2929 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2930 checkin.
2931
29322007-08-06 Andrew Haley <aph@redhat.com>
2933
2934 PR testsuite/32843
2935 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2936 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2937 FFI_TYPE_SINT32.
2938
29392007-08-02 David Daney <ddaney@avtrex.com>
2940
2941 * testsuite/libffi.call/return_ul.c (main): Define return type as
2942 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002943
Anthony Greenc6dddbd2009-10-04 08:11:33 -040029442007-07-30 Andrew Haley <aph@redhat.com>
2945
2946 PR testsuite/32843
2947 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2948 signed/unsigned int8/16.
2949 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2950 Use a jump table.
2951 Remove code to pop args from the stack after call.
2952 Special-case signed/unsigned int8/16.
2953 * testsuite/libffi.call/return_sc.c (main): Revert.
2954
29552007-07-26 Richard Guenther <rguenther@suse.de>
2956
2957 PR testsuite/32843
2958 * testsuite/libffi.call/return_sc.c (main): Verify call
2959 result as signed char, not ffi_arg.
2960
29612007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2962
2963 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2964 * configure: Regenerate.
2965
29662007-07-11 David Daney <ddaney@avtrex.com>
2967
2968 * src/mips/ffi.c: Don't include sys/cachectl.h.
2969 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2970 cacheflush().
2971
29722007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2973
2974 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2975 from (ffi_prep_closure): ... this.
2976 (FFI_INIT_TRAMPOLINE): Adjust.
2977
29782005-12-31 Phil Blundell <pb@reciva.com>
2979
Anthony Green0cfe60e2009-12-29 10:06:04 -05002980 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2981 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002982 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2983 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2984 (FFI_CLOSURES): Enable closure support.
2985
29862007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2987
Anthony Green0cfe60e2009-12-29 10:06:04 -05002988 * testsuite/libffi.call/cls_multi_ushort.c,
2989 testsuite/libffi.call/cls_align_uint16.c,
2990 testsuite/libffi.call/nested_struct1.c,
2991 testsuite/libffi.call/nested_struct3.c,
2992 testsuite/libffi.call/cls_7_1_byte.c,
2993 testsuite/libffi.call/cls_double.c,
2994 testsuite/libffi.call/nested_struct5.c,
2995 testsuite/libffi.call/nested_struct7.c,
2996 testsuite/libffi.call/cls_sint.c,
2997 testsuite/libffi.call/nested_struct9.c,
2998 testsuite/libffi.call/cls_20byte1.c,
2999 testsuite/libffi.call/cls_multi_sshortchar.c,
3000 testsuite/libffi.call/cls_align_sint64.c,
3001 testsuite/libffi.call/cls_3byte2.c,
3002 testsuite/libffi.call/cls_multi_schar.c,
3003 testsuite/libffi.call/cls_multi_uchar.c,
3004 testsuite/libffi.call/cls_19byte.c,
3005 testsuite/libffi.call/cls_9byte1.c,
3006 testsuite/libffi.call/cls_align_float.c,
3007 testsuite/libffi.call/closure_fn1.c,
3008 testsuite/libffi.call/problem1.c,
3009 testsuite/libffi.call/closure_fn3.c,
3010 testsuite/libffi.call/cls_sshort.c,
3011 testsuite/libffi.call/closure_fn5.c,
3012 testsuite/libffi.call/cls_align_double.c,
3013 testsuite/libffi.call/cls_2byte.c,
3014 testsuite/libffi.call/nested_struct.c,
3015 testsuite/libffi.call/nested_struct10.c,
3016 testsuite/libffi.call/cls_4byte.c,
3017 testsuite/libffi.call/cls_6byte.c,
3018 testsuite/libffi.call/cls_8byte.c,
3019 testsuite/libffi.call/cls_multi_sshort.c,
3020 testsuite/libffi.call/cls_align_uint32.c,
3021 testsuite/libffi.call/cls_align_sint16.c,
3022 testsuite/libffi.call/cls_float.c,
3023 testsuite/libffi.call/cls_20byte.c,
3024 testsuite/libffi.call/cls_5_1_byte.c,
3025 testsuite/libffi.call/nested_struct2.c,
3026 testsuite/libffi.call/cls_24byte.c,
3027 testsuite/libffi.call/nested_struct4.c,
3028 testsuite/libffi.call/nested_struct6.c,
3029 testsuite/libffi.call/cls_64byte.c,
3030 testsuite/libffi.call/nested_struct8.c,
3031 testsuite/libffi.call/cls_uint.c,
3032 testsuite/libffi.call/cls_multi_ushortchar.c,
3033 testsuite/libffi.call/cls_schar.c,
3034 testsuite/libffi.call/cls_uchar.c,
3035 testsuite/libffi.call/cls_align_uint64.c,
3036 testsuite/libffi.call/cls_ulonglong.c,
3037 testsuite/libffi.call/cls_align_longdouble.c,
3038 testsuite/libffi.call/cls_1_1byte.c,
3039 testsuite/libffi.call/cls_12byte.c,
3040 testsuite/libffi.call/cls_3_1byte.c,
3041 testsuite/libffi.call/cls_3byte1.c,
3042 testsuite/libffi.call/cls_4_1byte.c,
3043 testsuite/libffi.call/cls_6_1_byte.c,
3044 testsuite/libffi.call/cls_16byte.c,
3045 testsuite/libffi.call/cls_18byte.c,
3046 testsuite/libffi.call/closure_fn0.c,
3047 testsuite/libffi.call/cls_9byte2.c,
3048 testsuite/libffi.call/closure_fn2.c,
3049 testsuite/libffi.call/closure_fn4.c,
3050 testsuite/libffi.call/cls_ushort.c,
3051 testsuite/libffi.call/closure_fn6.c,
3052 testsuite/libffi.call/cls_5byte.c,
3053 testsuite/libffi.call/cls_align_pointer.c,
3054 testsuite/libffi.call/cls_7byte.c,
3055 testsuite/libffi.call/cls_align_sint32.c,
3056 testsuite/libffi.special/unwindtest_ffi_call.cc,
3057 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003058
30592007-07-05 H.J. Lu <hongjiu.lu@intel.com>
3060
3061 * aclocal.m4: Regenerated.
3062
30632007-06-02 Paolo Bonzini <bonzini@gnu.org>
3064
3065 * configure: Regenerate.
3066
30672007-05-23 Steve Ellcey <sje@cup.hp.com>
3068
3069 * Makefile.in: Regenerate.
3070 * configure: Regenerate.
3071 * aclocal.m4: Regenerate.
3072 * include/Makefile.in: Regenerate.
3073 * testsuite/Makefile.in: Regenerate.
3074
30752007-05-10 Roman Zippel <zippel@linux-m68k.org>
3076
3077 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
3078 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
3079 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
3080 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
3081 (FFI_CLOSURES): Enable closure support.
3082
30832007-05-10 Roman Zippel <zippel@linux-m68k.org>
3084
3085 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
3086 * configure: Regenerate.
3087 * fficonfig.h.in: Regenerate.
3088 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
3089 CFI_OFFSET,CFI_DEF_CFA): New macros.
3090 (ffi_call_SYSV): Add callframe annotation.
3091
30922007-05-10 Roman Zippel <zippel@linux-m68k.org>
3093
3094 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
3095 numerous test suite failures.
3096 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
3097
30982007-04-11 Paolo Bonzini <bonzini@gnu.org>
3099
3100 * Makefile.am (EXTRA_DIST): Bring up to date.
3101 * Makefile.in: Regenerate.
3102 * src/frv/eabi.S: Remove RCS keyword.
3103
31042007-04-06 Richard Henderson <rth@redhat.com>
3105
3106 * configure.ac: Tidy target case.
3107 (HAVE_LONG_DOUBLE): Allow the target to override.
3108 * configure: Regenerate.
3109 * include/ffi.h.in: Don't define ffi_type_foo if
3110 LIBFFI_HIDE_BASIC_TYPES is defined.
3111 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
3112 to ffi_type_double.
3113 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
3114 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
3115 (ffi_type_longdouble): Special case for Alpha. Don't define
3116 if long double == double.
3117
3118 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
3119 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
3120 (ffi_call, ffi_closure_osf_inner): Likewise.
3121 (ffi_closure_osf_inner): Likewise. Mark hidden.
3122 (ffi_call_osf, ffi_closure_osf): Mark hidden.
3123 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
3124 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
3125 (load_table): Handle 128-bit long double.
3126
3127 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
3128
31292007-04-06 Tom Tromey <tromey@redhat.com>
3130
3131 PR libffi/31491:
3132 * README: Fixed bug in example.
3133
31342007-04-03 Jakub Jelinek <jakub@redhat.com>
3135
3136 * src/closures.c: Include sys/statfs.h.
3137 (_GNU_SOURCE): Define on Linux.
3138 (FFI_MMAP_EXEC_SELINUX): Define.
3139 (selinux_enabled): New variable.
3140 (selinux_enabled_check): New function.
3141 (is_selinux_enabled): Define.
3142 (dlmmap): Use it.
3143
31442007-03-24 Uros Bizjak <ubizjak@gmail.com>
3145
3146 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
3147 Use 'volatile float sum' to create sum of floats to avoid false
3148 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003149 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003150
31512007-03-08 Alexandre Oliva <aoliva@redhat.com>
3152
3153 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
3154 patch.
3155 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
3156
31572007-03-07 Alexandre Oliva <aoliva@redhat.com>
3158
3159 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
3160 (ffi_prep_closure_loc): New.
3161 (ffi_prep_raw_closure_loc): New.
3162 (ffi_prep_java_raw_closure_loc): New.
3163 * src/closures.c: New file.
3164 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
3165 Replace sflags with exec_offset.
3166 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
3167 sub_segment_exec_offset): New macros.
3168 (get_segment_flags, set_segment_flags, check_segment_merge): New
3169 macros.
3170 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
3171 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
3172 destroy_mspace): Use new macros.
3173 (sys_alloc): Silence warning.
3174 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
3175 * Makefile.in: Rebuilt.
3176 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
3177 terms of ffi_prep_closure_loc.
3178 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
3179 from...
3180 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
3181 renamed version.
3182 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
3183 adjusted from...
3184 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
3185 the renamed version.
3186 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
3187 (ffi_prep_closure): ... this.
3188 * src/pa/ffi.c: Likewise.
3189 * src/cris/ffi.c: Likewise. Adjust.
3190 * src/frv/ffi.c: Likewise.
3191 * src/ia64/ffi.c: Likewise.
3192 * src/mips/ffi.c: Likewise.
3193 * src/powerpc/ffi_darwin.c: Likewise.
3194 * src/s390/ffi.c: Likewise.
3195 * src/sh/ffi.c: Likewise.
3196 * src/sh64/ffi.c: Likewise.
3197 * src/sparc/ffi.c: Likewise.
3198 * src/x86/ffi64.c: Likewise.
3199 * src/x86/ffi.c: Likewise.
3200 (FFI_INIT_TRAMPOLINE): Adjust.
3201 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
3202 (ffi_prep_raw_closure): ... this.
3203 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
3204 (ffi_prep_closure): ... this.
3205 (flush_icache): Adjust.
3206
32072007-03-07 Alexandre Oliva <aoliva@redhat.com>
3208
3209 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
3210 Lea's malloc.
3211
32122007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
3213
3214 * Makefile.am: Add dummy install-pdf target.
3215 * Makefile.in: Regenerate
3216
32172007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
3218
3219 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
3220 ffi_closure_helper_SYSV): Add long double handling.
3221
32222007-02-02 Jakub Jelinek <jakub@redhat.com>
3223
3224 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
3225 immediately after bctrl instruction.
3226
32272007-01-18 Alexandre Oliva <aoliva@redhat.com>
3228
3229 * Makefile.am (all-recursive, install-recursive,
3230 mostlyclean-recursive, clean-recursive, distclean-recursive,
3231 maintainer-clean-recursive): Add missing targets.
3232 * Makefile.in: Rebuilt.
3233
32342006-12-14 Andreas Tobler <a.tobler@schweiz.org>
3235
3236 * configure.ac: Add TARGET for x86_64-*-darwin*.
3237 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
3238 for X86_DARWIN.
3239 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
3240 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
3241 * configure: Regenerate.
3242 * Makefile.in: Regenerate.
3243 * include/Makefile.in: Regenerate.
3244 * testsuite/Makefile.in: Regenerate.
3245 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
3246 ffi_call only.
3247
32482006-12-13 Andreas Tobler <a.tobler@schweiz.org>
3249
3250 * aclocal.m4: Regenerate with aclocal -I .. as written in the
3251 Makefile.am.
3252
32532006-10-31 Geoffrey Keating <geoffk@apple.com>
3254
3255 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3256 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3257 Darwin.
3258 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3259 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3260
32612006-10-10 Paolo Bonzini <bonzini@gnu.org>
3262 Sandro Tolaini <tolaini@libero.it>
3263
Anthony Green0cfe60e2009-12-29 10:06:04 -05003264 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003265 conditional.
3266 * configure: Regenerated.
3267 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3268 (EXTRA_DIST): Add src/x86/darwin.S.
3269 * Makefile.in: Regenerated.
3270 * include/Makefile.in: Regenerated.
3271 * testsuite/Makefile.in: Regenerated.
3272
3273 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3274 X86_WIN32, and additionally align stack to 16 bytes.
3275 * src/x86/darwin.S: New, based on sysv.S.
3276 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3277
32782006-09-12 David Daney <ddaney@avtrex.com>
3279
3280 PR libffi/23935
3281 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3282 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3283 * aclocal.m4: Regenerated for automake 1.9.6.
3284 * Makefile.in: Regenerated.
3285 * include/Makefile.in: Regenerated.
3286 * testsuite/Makefile.in: Regenerated.
3287
32882006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3289
3290 * include/ffi_common.h (struct): Revert accidental commit.
3291
32922006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3293
3294 * include/ffi_common.h: Remove lint directives.
3295 * include/ffi.h.in: Likewise.
3296
32972006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3298
3299 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3300 for 32-bit architectures.
3301 * testsuite/libffi.call/return_ul.c: New test case.
3302
33032006-07-19 David Daney <ddaney@avtrex.com>
3304
3305 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3306 xfail remains for mips64.
3307
33082006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3309
3310 * Makefile.am: Add install-html target. Add install-html to .PHONY
3311 * Makefile.in: Regenerate.
3312 * aclocal.m4: Regenerate.
3313 * include/Makefile.in: Regenerate.
3314 * testsuite/Makefile.in: Regenerate.
3315
33162006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3317
3318 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3319 stack slot.
3320
33212006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3322
3323 * README: Remove notice about 'Crazy Comments'.
3324 * src/debug.c: Remove lint directives. Cleanup white spaces.
3325 * src/java_raw_api.c: Likewise.
3326 * src/prep_cif.c: Likewise.
3327 * src/raw_api.c: Likewise.
3328 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3329 to the testsuite.
3330 * src/arm/ffi.c: Remove lint directives.
3331 * src/m32r/ffi.c: Likewise.
3332 * src/pa/ffi.c: Likewise.
3333 * src/powerpc/ffi.c: Likewise.
3334 * src/powerpc/ffi_darwin.c: Likewise.
3335 * src/sh/ffi.c: Likewise.
3336 * src/sh64/ffi.c: Likewise.
3337 * src/x86/ffi.c: Likewise.
3338 * testsuite/libffi.call/float2.c: Likewise.
3339 * testsuite/libffi.call/promotion.c: Likewise.
3340 * testsuite/libffi.call/struct1.c: Likewise.
3341
33422006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3343
3344 * src/pa/hpux32.S: Correct unwind offset calculation for
3345 ffi_closure_pa32.
3346 * src/pa/linux.S: Likewise.
3347
33482006-04-12 James E Wilson <wilson@specifix.com>
3349
3350 PR libgcj/26483
3351 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3352 (hfa_type_load): Call stf_spill.
3353 (hfa_type_store): Call ldf_fill.
3354 (ffi_call): Adjust calls to above routines. Add local temps for
3355 macro result.
3356
33572006-04-10 Matthias Klose <doko@debian.org>
3358
3359 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3360 directory names containing underscores.
3361
33622006-04-07 James E Wilson <wilson@specifix.com>
3363
3364 * testsuite/libffi.call/float4.c: New testcase.
3365
33662006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3367 Andreas Tobler <a.tobler@schweiz.ch>
3368
3369 * Makefile.am: Add PA_HPUX port.
3370 * Makefile.in: Regenerate.
3371 * include/Makefile.in: Likewise.
3372 * testsuite/Makefile.in: Likewise.
3373 * configure.ac: Add PA_HPUX rules.
3374 * configure: Regenerate.
3375 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3376 Add PA_HPUX and PA64_HPUX.
3377 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3378 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3379 (FFI_TYPE_SMALL_STRUCT2): Define.
3380 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3381 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3382 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3383 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3384 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3385 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3386 * src/pa/ffi.c (ROUND_DOWN): Delete.
3387 (fldw, fstw, fldd, fstd): Use '__asm__'.
3388 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3389 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3390 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3391 Simplify incrementing of stack slot variable. Change type of local
3392 'n' to unsigned int.
3393 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3394 double on PA_HPUX.
3395 (ffi_prep_cif_machdep): Likewise.
3396 (ffi_call): Likewise.
3397 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3398 return type to ffi_status. Simplify incrementing of stack slot
3399 variable. Only copy floating point argument registers when PA_LINUX
3400 is true. Reformat debug statement.
3401 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3402 FFI_TYPE_SMALL_STRUCT8.
3403 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3404 declaration.
3405 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3406 Add nops to cache flush. Add trampoline for PA_HPUX.
3407 * src/pa/hpux32.S: New file.
3408 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3409 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3410 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3411 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3412 argument type checks so that common argument types appear first.
3413 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3414 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3415
34162006-03-24 Alan Modra <amodra@bigpond.net.au>
3417
3418 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3419 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3420 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3421 FFI_TYPE_LONGDOUBLE.
3422 (ffi_prep_args64): Assert using IBM extended double.
3423 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3424 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3425 (ffi_call): Handle FFI_LINUX.
3426 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3427 gpr3 return pointer as for struct return. Handle FFI_LINUX
3428 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3429 unnecessarily.
3430 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3431 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3432 Don't use r6 as pointer to results, instead use sp offset. Don't
3433 make a special call to load lr with case table address, instead
3434 use offset from previous call.
3435 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3436 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3437 return.
3438
34392006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3440
3441 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3442 passed with FP registers correctly.
3443 (ffi_closure_helper_SYSV): Likewise.
3444 * src/sh64/sysv.S: Likewise.
3445
34462006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3447
3448 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3449 args and userdata unused.
3450 (closure_test_fn1): Mark cif and userdata unused.
3451 (main): Remove unused res.
3452
34532006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3454
3455 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3456 -O2, -O3, -Os and the warning flags -W -Wall.
3457 * testsuite/libffi.special/special.exp: Likewise.
3458 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3459 unused parameter unused for gcc or else do nothing.
3460 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3461 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3462 and userdata unused.
3463 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3464 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3465 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3466 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3467 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3468 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3469 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3470 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3471 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3472 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3473 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3474 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3475 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3476 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3477 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3478 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3479 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3480 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3481 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3482 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3483 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3484 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3485 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3486 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3487 Likewise.
3488 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3489 Likewise.
3490 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3491 Likewise.
3492 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3493 void* to avoid compiler warning.
3494 (main): Likewise.
3495 (cls_struct_align_gn): Mark cif and userdata unused.
3496 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3497 Likewise.
3498 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3499 Likewise.
3500 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3501 Likewise.
3502 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3503 Likewise.
3504 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3505 Likewise.
3506 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3507 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3508 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3509 data unused.
3510 (main): Cast res_call to silence gcc.
3511 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3512 data unused.
3513 (main): Cast res_call to silence gcc.
3514 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3515 and data unused.
3516 (main): Cast res_call to silence gcc.
3517 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3518 data unused.
3519 (main): Cast res_call to silence gcc.
3520 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3521 data unused.
3522 (main): Cast res_call to silence gcc.
3523 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3524 and data unused.
3525 (main): Cast res_call to silence gcc.
3526 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3527 userdata unused.
3528 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3529 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3530 userdata unused.
3531 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3532 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3533 userdata unused.
3534 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3535 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3536 userdata unused.
3537 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3538 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3539 userdata unused.
3540 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3541 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3542 and userdata unused.
3543 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3544 userdata unused.
3545 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3546 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3547 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3548 Cleanup white spaces.
3549 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3550 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3551 cif and userdata unused.
3552 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3553 Likewise.
3554 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3555 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3556 formatters to silence gcc.
3557 (B_gn): Mark cif and userdata unused.
3558 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3559 unused.
3560 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3561 (B_gn): Mark cif and userdata unused.
3562 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3563 unused.
3564 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3565 (B_gn): Mark cif and userdata unused.
3566 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3567 unused.
3568 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3569 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3570 * testsuite/libffi.call/problem1.c (stub): Likewise.
3571 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3572 gcc.
3573 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3574 in the last commit for this test case in the test case itself.
3575 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3576 unused.
3577 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3578 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3579 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3580 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3581 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3582 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3583
35842006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3585
3586 * src/sh/sysv.S: Fix register numbers in the FDE for
3587 ffi_closure_SYSV.
3588
35892006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3590
3591 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3592 declaration to avoid a false negative on ix86. See PR323.
3593
35942006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3595
3596 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3597 and cast integer to void * if needed. Update the pointer to
3598 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003599
Anthony Greenc6dddbd2009-10-04 08:11:33 -040036002006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3601
3602 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3603 is fixed.
3604 * testsuite/libffi.call/nested_struct4.c: Likewise.
3605
36062006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3607
3608 * testsuite/libffi.call/return_dbl.c: New test case.
3609 * testsuite/libffi.call/return_dbl1.c: Likewise.
3610 * testsuite/libffi.call/return_dbl2.c: Likewise.
3611 * testsuite/libffi.call/return_fl.c: Likewise.
3612 * testsuite/libffi.call/return_fl1.c: Likewise.
3613 * testsuite/libffi.call/return_fl2.c: Likewise.
3614 * testsuite/libffi.call/return_fl3.c: Likewise.
3615 * testsuite/libffi.call/closure_fn6.c: Likewise.
3616
3617 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3618 definition.
3619 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3620 here to be used by other test cases too.
3621
3622 * testsuite/libffi.call/nested_struct10.c: New test case.
3623 * testsuite/libffi.call/nested_struct9.c: Likewise.
3624 * testsuite/libffi.call/nested_struct8.c: Likewise.
3625 * testsuite/libffi.call/nested_struct7.c: Likewise.
3626 * testsuite/libffi.call/nested_struct6.c: Likewise.
3627 * testsuite/libffi.call/nested_struct5.c: Likewise.
3628 * testsuite/libffi.call/nested_struct4.c: Likewise.
3629
36302006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3631
3632 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3633 * configure: Rebuilt.
3634
36352006-01-18 Jakub Jelinek <jakub@redhat.com>
3636
3637 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3638 instead do the shifting inline.
3639 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3640 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3641 and 8 byte structs, for the remaining struct sizes don't call
3642 __lshrdi3, instead do the shifting inline.
3643
36442005-12-07 Thiemo Seufer <ths@networkno.de>
3645
3646 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3647 missing parentheses.
3648 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3649 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3650 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3651 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3652 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3653 FA_0_0_OFF2.
3654 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3655 endianness bugs.
3656 (ffi_prep_closure): Improve trampoline instruction scheduling.
3657 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3658
36592005-12-03 Alan Modra <amodra@bigpond.net.au>
3660
3661 * src/powerpc/ffi.c: Formatting.
3662 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3663 (ffi_prep_args64): Likewise.
3664
36652005-09-30 Geoffrey Keating <geoffk@apple.com>
3666
3667 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3668 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3669
36702005-09-26 Tom Tromey <tromey@redhat.com>
3671
3672 * testsuite/libffi.call/float1.c (value_type): New typedef.
3673 (CANARY): New define.
3674 (main): Check for result buffer overflow.
3675 * src/powerpc/linux64.S: Handle linux64 long double returns.
3676 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3677 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3678
36792005-08-25 Alan Modra <amodra@bigpond.net.au>
3680
3681 PR target/23404
3682 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3683 homed fp args.
3684 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3685
36862005-08-11 Jakub Jelinek <jakub@redhat.com>
3687
3688 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3689 (AH_BOTTOM): Add FFI_HIDDEN definition.
3690 * configure: Rebuilt.
3691 * fficonfig.h.in: Rebuilt.
3692 * src/powerpc/ffi.c (hidden): Remove.
3693 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3694 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3695 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3696 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3697 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3698 add FFI_HIDDEN to its prototype.
3699 (ffi_closure_SYSV_inner): New.
3700 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3701 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3702
37032005-08-10 Alfred M. Szmidt <ams@gnu.org>
3704
3705 PR libffi/21819:
3706 * configure: Rebuilt.
3707 * configure.ac: Handle i*86-*-gnu*.
3708
37092005-08-09 Jakub Jelinek <jakub@redhat.com>
3710
3711 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3712 DW_CFA_offset_extended_sf rather than
3713 DW_CFA_GNU_negative_offset_extended.
3714 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3715
37162005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3717
3718 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3719 on sh3.
3720 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3721 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3722 partially on register.
3723 (ffi_closure_helper_SYSV): Likewise.
3724 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3725
37262005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3727
3728 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3729 Remove empty line.
3730 * src/sh64/ffi.c (simple_type): Remove.
3731 (return_type): Handle small structures correctly.
3732 (ffi_prep_args): Likewise.
3733 (ffi_call): Likewise.
3734 (ffi_closure_helper_SYSV): Likewise.
3735 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3736 Emit position independent code if PIC and remove wrong datalabel
3737 prefixes from EH data.
3738
37392005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3740
3741 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3742 * Makefile.in: Regenerate.
3743 * include/Makefile.in: Likewise.
3744 * testsuite/Makefile.in: Likewise.
3745 * configure.ac: Add POWERPC_FREEBSD rules.
3746 * configure: Regenerate.
3747 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3748 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3749 * src/powerpc/ffi.c: Add flags to handle small structure returns
3750 in ffi_call_SYSV.
3751 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3752 Aka FFI_SYSV.
3753 (ffi_closure_helper_SYSV): Likewise.
3754 * src/powerpc/ppc_closure.S: Add return types for small structures.
3755 * src/powerpc/sysv.S: Add bits to handle small structures for
3756 final SYSV 4 ABI.
3757
37582005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3759
3760 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3761 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3762 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3763
37642005-07-05 Randolph Chung <tausq@debian.org>
3765
3766 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3767 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3768 structures. Kill compilation warnings.
3769 (ffi_closure_inner_LINUX): Print return values as hex in debug
3770 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3771 Properly handle 5-7 byte structure returns.
3772 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3773 (FFI_TYPE_SMALL_STRUCT2): Remove.
3774 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3775 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3776 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3777 (checksmst1, checksmst2): Remove.
3778 (checksmst3): Optimize handling of 3-byte struct returns.
3779 (checksmst567): Properly handle 5-7 byte struct returns.
3780
37812005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3782
3783 PR libgcj/21943
3784 * src/mips/n32.S: Enforce PIC code.
3785 * src/mips/o32.S: Likewise.
3786
37872005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3788
3789 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3790 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003791
Anthony Greenc6dddbd2009-10-04 08:11:33 -040037922005-06-01 Alan Modra <amodra@bigpond.net.au>
3793
3794 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3795 to call ffi_closure_helper_SYSV. Append @local instead.
3796 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3797
37982005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3799
3800 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3801 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3802 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3803 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3804 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003805
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038062005-05-09 Mike Stump <mrs@apple.com>
3807
3808 * configure: Regenerate.
3809
38102005-05-08 Richard Henderson <rth@redhat.com>
3811
3812 PR libffi/21285
3813 * src/alpha/osf.S: Update unwind into to match code.
3814
38152005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3816 Richard Henderson <rth@redhat.com>
3817
3818 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3819 bit 11 of flags.
3820 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3821 (ffi_prep_closure): Set carry bit if sse-used flag set.
3822 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3823 Only load sse registers if ssecount non-zero.
3824 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3825
38262005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3827
3828 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3829 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3830 * configure: Regenerate.
3831
38322005-04-20 Hans-Peter Nilsson <hp@axis.com>
3833
3834 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3835 have Tcl8.3-compatible intermediate variable.
3836
Anthony Green0cfe60e2009-12-29 10:06:04 -050038372005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003838 Hans-Peter Nilsson <hp@axis.com>
3839
3840 * Makefile.am: Add CRIS support.
3841 * configure.ac: Likewise.
3842 * Makefile.in, configure, testsuite/Makefile.in,
3843 include/Makefile.in: Regenerate.
3844 * src/cris: New directory.
3845 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3846 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3847
3848 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3849 \r?\n in output tests.
3850
38512005-04-12 Mike Stump <mrs@apple.com>
3852
3853 * configure: Regenerate.
3854
38552005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3856
3857 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003858
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038592005-03-30 Steve Ellcey <sje@cup.hp.com>
3860
3861 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3862 (ffi_sarg) Ditto.
3863 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3864 to 64 bits in ILP32 mode.
3865 Load 64 bits even for short data.
3866
38672005-03-23 Mike Stump <mrs@apple.com>
3868
3869 * src/powerpc/darwin.S: Update for -m64 multilib.
3870 * src/powerpc/darwin_closure.S: Likewise.
3871
38722005-03-21 Zack Weinberg <zack@codesourcery.com>
3873
3874 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3875 Do not set tool_include_dir.
3876 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3877 Regenerate.
3878 * include/Makefile.am: Set gcc_version and toollibffidir.
3879 * include/Makefile.in: Regenerate.
3880
38812005-02-22 Andrew Haley <aph@redhat.com>
3882
3883 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3884 odd-numbered register pairs for 64-bit integer types.
3885
38862005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3887
3888 PR libffi/20104
3889 * testsuite/libffi.call/return_ll1.c: New test case.
3890
38912005-02-11 Janis Johnson <janis187@us.ibm.com>
3892
3893 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3894 * testsuite/libffi.call/float.c: Ditto.
3895 * testsuite/libffi.call/float2.c: Ditto.
3896 * testsuite/libffi.call/float3.c: Ditto.
3897
38982005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3899
3900 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3901
39022005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3903
3904 * testsuite/libffi.special/special.exp (cxx_options): Add
3905 -shared-libgcc.
3906
39072004-12-31 Richard Henderson <rth@redhat.com>
3908
3909 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3910 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3911 offset parameters with a type parameter; deduce size and structure
3912 alignment. Update all users.
3913
39142004-12-31 Richard Henderson <rth@redhat.com>
3915
3916 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3917 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3918 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3919 into ffi_prep_closure.
3920 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3921 from scratch.
3922
39232004-12-27 Richard Henderson <rth@redhat.com>
3924
3925 * src/x86/unix64.S: Fix typo in unwind info.
3926
39272004-12-25 Richard Henderson <rth@redhat.com>
3928
3929 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3930 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3931 (merge_classes): Check for it.
3932 (SSE_CLASS_P): New.
3933 (classify_argument): Pass byte_offset by value; perform all updates
3934 inside struct case.
3935 (examine_argument): Add classes argument; handle
3936 X86_64_COMPLEX_X87_CLASS.
3937 (ffi_prep_args): Merge into ...
3938 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3939 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3940 (ffi_fill_return_value): Remove.
3941 (ffi_prep_closure): Remove dead assert.
3942 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3943 Rewrite to use struct register_args instead of va_list. Create
3944 flags for handling structure returns.
3945 * src/x86/unix64.S: Remove dead strings.
3946 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3947 stack frame with ffi_call. Handle structure returns properly.
3948 (float2sse, floatfloat2sse, double2sse): Remove.
3949 (sse2float, sse2double, sse2floatfloat): Remove.
3950 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3951 to handle structure returns properly.
3952
39532004-12-08 David Edelsohn <edelsohn@gnu.org>
3954
3955 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3956 PICFLAG.
3957 * Makefile.in: Regenerated.
3958
39592004-12-02 Richard Sandiford <rsandifo@redhat.com>
3960
3961 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3962 * configure, aclocal.m4, Makefile.in: Regenerate.
3963 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3964
39652004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3966
3967 * configure: Regenerate for libtool change.
3968
39692004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3970
3971 * configure: Regenerate for libtool reversion.
3972
39732004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3974
3975 * configure: Regenerate for libtool change.
3976
39772004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3978
3979 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3980
39812004-11-23 Richard Sandiford <rsandifo@redhat.com>
3982
3983 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3984 of jal. Use an absolute encoding for the frame information.
3985
39862004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3987
3988 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3989 * acinclude.m4: Delete logic for sincludes.
3990 * aclocal.m4, Makefile.in, configure: Regenerate.
3991 * include/Makefile: Likewise.
3992 * testsuite/Makefile: Likewise.
3993
39942004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3995
3996 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3997 on a 8-byte boundary.
3998 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3999
40002004-10-27 Richard Earnshaw <rearnsha@arm.com>
4001
4002 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
4003 long long values. Round stack allocation to a multiple of 8 bytes
4004 for ATPCS compatibility.
4005 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
4006 names. Handle returning long long types. Add Thumb and interworking
4007 support. Improve soft-float code.
4008
40092004-10-27 Richard Earnshaw <rearnsha@arm.com>
4010
4011 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
4012 (libffi_exit): New function.
4013 (libffi_init): Build the testglue wrapper if needed.
4014
40152004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4016
4017 PR other/18138
4018 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
4019
40202004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4021
4022 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
4023
40242004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
4025
4026 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
4027 * testsuite/libffi.call/float3.c: New test case.
4028
40292004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
4030
4031 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
4032 the function returning a structure pointed with R2.
4033 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
4034 the structure return value if T bit set. Emit position
4035 independent code and EH data if PIC.
4036
40372004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4038
4039 * Makefile.am: Add m32r support.
4040 * configure.ac: Likewise.
4041 * Makefile.in: Regenerate.
4042 * confiugre: Regenerate.
4043 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
4044 (uint64, sint64, double, longdouble)
4045 * src/m32r: New directory.
4046 * src/m32r/ffi.c: New file.
4047 * src/m32r/sysv.S: Likewise.
4048 * src/m32r/ffitarget.h: Likewise.
4049
40502004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
4051
4052 * testsuite/libffi.call/negint.c: New test case.
4053
40542004-09-14 H.J. Lu <hongjiu.lu@intel.com>
4055
4056 PR libgcj/17465
4057 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
4058 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
4059 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
4060 DYLD_LIBRARY_PATH.
4061
40622004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
4063
4064 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
4065 * testsuite/libffi.call/promotion.c: Likewise.
4066 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
4067 whitespaces.
4068 * testsuite/libffi.call/return_sc.c: Likewise.
4069 * testsuite/libffi.call/return_uc.c: Likewise.
4070
40712004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
4072
4073 * src/powerpc/darwin.S: Fix comments and identation.
4074 * src/powerpc/darwin_closure.S: Likewise.
4075
40762004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
4077
4078 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
4079 (ffi_prep_args): Handle longdouble arguments.
4080 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
4081 longdouble.
4082 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
4083 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
4084 values.
4085 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
4086 * src/types.c: Defined longdouble size and alignment for darwin.
4087
40882004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
4089
4090 * src/powerpc/aix.S: Remove whitespaces.
4091 * src/powerpc/aix_closure.S: Likewise.
4092 * src/powerpc/asm.h: Likewise.
4093 * src/powerpc/ffi.c: Likewise.
4094 * src/powerpc/ffitarget.h: Likewise.
4095 * src/powerpc/linux64.S: Likewise.
4096 * src/powerpc/linux64_closure.S: Likewise.
4097 * src/powerpc/ppc_closure.S: Likewise.
4098 * src/powerpc/sysv.S: Likewise.
4099
41002004-08-30 Anthony Green <green@redhat.com>
4101
4102 * Makefile.am: Add frv support.
4103 * Makefile.in, testsuite/Makefile.in: Rebuilt.
4104 * configure.ac: Read configure.host.
4105 * configure.in: Read configure.host.
4106 * configure.host: New file. frv-elf needs libgloss.
4107 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
4108 alignment. This is needed to frv and shouldn't harm the others.
4109 * include/ffi_common.h (ALIGN_DOWN): New macro.
4110 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
4111
41122004-08-24 David Daney <daney@avtrex.com>
4113
4114 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
4115 * testsuite/libffi.call/closure_fn1.c: Likewise.
4116 * testsuite/libffi.call/closure_fn2.c Likewise.
4117 * testsuite/libffi.call/closure_fn3.c: Likewise.
4118 * testsuite/libffi.call/closure_fn4.c: Likewise.
4119 * testsuite/libffi.call/closure_fn5.c: Likewise.
4120 * testsuite/libffi.call/cls_18byte.c: Likewise.
4121 * testsuite/libffi.call/cls_19byte.c: Likewise.
4122 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4123 * testsuite/libffi.call/cls_20byte.c: Likewise.
4124 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4125 * testsuite/libffi.call/cls_24byte.c: Likewise.
4126 * testsuite/libffi.call/cls_2byte.c: Likewise.
4127 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4128 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4129 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4130 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4131 * testsuite/libffi.call/cls_4byte.c: Likewise.
4132 * testsuite/libffi.call/cls_64byte.c: Likewise.
4133 * testsuite/libffi.call/cls_6byte.c: Likewise.
4134 * testsuite/libffi.call/cls_7byte.c: Likewise.
4135 * testsuite/libffi.call/cls_8byte.c: Likewise.
4136 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4137 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4138 * testsuite/libffi.call/cls_align_double.c: Likewise.
4139 * testsuite/libffi.call/cls_align_float.c: Likewise.
4140 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4141 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4142 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4143 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4144 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4145 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4146 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4147 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
4148 * testsuite/libffi.call/cls_double.c: Likewise.
4149 * testsuite/libffi.call/cls_float.c: Likewise.
4150 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4151 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
4152 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4153 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4154 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4155 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4156 * testsuite/libffi.call/cls_schar.c: Likewise.
4157 * testsuite/libffi.call/cls_sint.c: Likewise.
4158 * testsuite/libffi.call/cls_sshort.c: Likewise.
4159 * testsuite/libffi.call/cls_uchar.c: Likewise.
4160 * testsuite/libffi.call/cls_uint.c: Likewise.
4161 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4162 * testsuite/libffi.call/cls_ushort.c: Likewise.
4163 * testsuite/libffi.call/nested_struct.c: Likewise.
4164 * testsuite/libffi.call/nested_struct1.c: Likewise.
4165 * testsuite/libffi.call/nested_struct2.c: Likewise.
4166 * testsuite/libffi.call/nested_struct3.c: Likewise.
4167 * testsuite/libffi.call/problem1.c: Likewise.
4168 * testsuite/libffi.special/unwindtest.cc: Likewise.
4169 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
4170 to zero.
4171 * testsuite/libffi.call/cls_16byte.c: Likewise.
4172 * testsuite/libffi.call/cls_5byte.c: Likewise.
4173
41742004-08-23 David Daney <daney@avtrex.com>
4175
4176 PR libgcj/13141
4177 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
4178 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
4179 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
4180 parameters and return types.
4181 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
4182 (ffi_prep_closure): Ditto.
4183 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
4184 alignment calculations.
4185 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
4186 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
4187
41882004-08-14 Casey Marshall <csm@gnu.org>
4189
4190 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
4191 contain `FFI_TYPE_UINT64' as return type for any 64-bit
4192 integer (O32 ABI only).
4193 (ffi_prep_closure): new function.
4194 (ffi_closure_mips_inner_O32): new function.
4195 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
4196 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
4197 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
4198 64 bit integers correctly.
4199 (ffi_closure_O32): new function.
4200 Added DWARF-2 unwind info for both functions.
4201
42022004-08-10 Andrew Haley <aph@redhat.com>
4203
4204 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
4205
42062004-08-01 Robert Millan <robertmh@gnu.org>
4207
4208 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
4209 * configure: Regenerate.
4210
42112004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
4212
4213 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4214 and mmap() explicitly instead of relying on preset autoconf cache
4215 variables.
4216 * aclocal.m4: Regenerate.
4217 * configure: Regenerate.
4218
42192004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
4220
4221 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
4222 (ffi_check_float_struct): Remove unused prototype.
4223
42242004-06-30 Geoffrey Keating <geoffk@apple.com>
4225
4226 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
4227 character on Darwin, use '\n\t' instead.
4228
42292004-06-26 Matthias Klose <doko@debian.org>
4230
4231 * libtool-version: Fix typo in revision/age.
4232
42332004-06-17 Matthias Klose <doko@debian.org>
4234
4235 * libtool-version: New.
4236 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
4237 * Makefile.in: Regenerate.
4238
42392004-06-15 Paolo Bonzini <bonzini@gnu.org>
4240
4241 * Makefile.am: Remove useless multilib rules.
4242 * Makefile.in: Regenerate.
4243 * aclocal.m4: Regenerate with automake 1.8.5.
4244 * configure.ac: Remove useless multilib configury.
4245 * configure: Regenerate.
4246
42472004-06-15 Paolo Bonzini <bonzini@gnu.org>
4248
4249 * .cvsignore: New file.
4250
42512004-06-10 Jakub Jelinek <jakub@redhat.com>
4252
4253 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4254 fp_done.
4255 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4256 changed from 8.
4257
42582004-06-06 Sean McNeil <sean@mcneil.com>
4259
4260 * configure.ac: Add x86_64-*-freebsd* support.
4261 * configure: Regenerate.
4262
42632004-04-26 Joe Buck <jbuck@welsh-buck.org>
4264
4265 Bug 15093
4266 * configure.ac: Test for existence of mmap and sys/mman.h before
4267 checking blacklist. Fix suggested by Jim Wilson.
4268 * configure: Regenerate.
4269
42702004-04-26 Matt Austern <austern@apple.com>
4271
4272 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4273 FDE location.
4274 * src/powerpc/darwin_closure.S: Likewise.
4275
42762004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4277
4278 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4279 error. Reported by Thomas Heller <theller@python.net>.
4280 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4281 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4282
42832004-03-20 Matthias Klose <doko@debian.org>
4284
4285 * src/pa/linux.S: Fix typo.
4286
42872004-03-19 Matthias Klose <doko@debian.org>
4288
4289 * Makefile.am: Update.
4290 * Makefile.in: Regenerate.
4291 * src/pa/ffi.h.in: Remove.
4292 * src/pa/ffitarget.h: New file.
4293
42942004-02-10 Randolph Chung <tausq@debian.org>
4295
4296 * Makefile.am: Add PA support.
4297 * Makefile.in: Regenerate.
4298 * include/Makefile.in: Regenerate.
4299 * configure.ac: Add PA target.
4300 * configure: Regenerate.
4301 * src/pa/ffi.c: New file.
4302 * src/pa/ffi.h.in: Add PA support.
4303 * src/pa/linux.S: New file.
4304 * prep_cif.c: Add PA support.
4305
43062004-03-16 Hosaka Yuji <hos@tamanegi.org>
4307
4308 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4309 double.
4310 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4311 with ecif->cif->flags.
4312 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4313 with cif->flags.
4314 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4315 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4316 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4317 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4318
43192004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4320
4321 * configure.in: Rename file to ...
4322 * configure.ac: ... this.
4323 * fficonfig.h.in: Regenerate.
4324 * Makefile.in: Regenerate.
4325 * include/Makefile.in: Regenerate.
4326 * testsuite/Makefile.in: Regenerate.
4327
43282004-03-12 Matt Austern <austern@apple.com>
4329
4330 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4331 changes in EH format resulting from addition of linkonce support.
4332 * src/powerpc/darwin_closure.S: Likewise.
4333
43342004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4335 Paolo Bonzini <bonzini@gnu.org>
4336
4337 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4338 Remove VPATH. Remove rules for object files. Remove multilib support.
4339 (AM_CCASFLAGS): Add.
4340 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4341 (AC_PREREQ): Bump version to 2.59.
4342 (AC_INIT): Fill with version info and bug address.
4343 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4344 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4345 De-precious CC so that the right flags are passed down to multilibs.
4346 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4347 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4348 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4349 * configure: Rebuilt.
4350 * aclocal.m4: Likewise.
4351 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4352 * fficonfig.h.in: Likewise.
4353
43542004-03-11 Andreas Schwab <schwab@suse.de>
4355
4356 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4357 arguments from fp registers only for the first 8 parameter slots.
4358 Don't convert a float parameter when passed in memory.
4359
43602004-03-09 Hans-Peter Nilsson <hp@axis.com>
4361
4362 * configure: Regenerate for config/accross.m4 correction.
4363
43642004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4365
4366 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4367 ecif->cif->bytes to bytes.
4368 (ffi_prep_cif_machdep): Add braces around nested if statement.
4369
43702004-02-09 Alan Modra <amodra@bigpond.net.au>
4371
4372 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4373
4374 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4375 (ffi_closure_helper_LINUX64): Fix typo.
4376 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4377 for powerpc64-*-*.
4378 * testsuite/libffi.call/float.c: Likewise.
4379 * testsuite/libffi.call/float2.c: Likewise.
4380
43812004-02-08 Alan Modra <amodra@bigpond.net.au>
4382
4383 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4384 long double function return and long double arg handling.
4385 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4386 Use "end_pfr" instead of "nf". Correct long double handling.
4387 Localise "temp".
4388 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4389 return value.
4390 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4391 space for long double return value. Adjust stack frame and offsets.
4392 Load f2 long double return.
4393
43942004-02-07 Alan Modra <amodra@bigpond.net.au>
4395
4396 * src/types.c: Use 16 byte long double for POWERPC64.
4397
43982004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4399
4400 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4401 when the structure return address is passed in %o0.
4402 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4403 (ffi_v9_layout_struct): Align the field following a nested structure
4404 on a word boundary. Use memmove instead of memcpy.
4405 (ffi_call): Update call to ffi_V9_return_struct.
4406 (ffi_prep_closure): Define 'ctx' only for V8.
4407 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4408 and ffi_closure_sparc_inner_v9.
4409 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4410 Always skip the structure return address. For structures and long
4411 doubles, copy the argument directly.
4412 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4413 if required. Shift the maximum floating-point slot accordingly. For
4414 big structures, copy the argument directly; otherwise, left-justify the
4415 argument and call ffi_v9_layout_struct to lay out the structure on
4416 the stack.
4417 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4418 (ffi_closure_v8): Pass the structure return address. Update call to
4419 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4420 Skip the 'unimp' insn when returning long doubles and structures.
4421 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4422 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4423 FFI_TYPE_INT handling. Load structures both in integers and
4424 floating-point registers on return.
4425 * README: Update status of the SPARC port.
4426
44272004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4428
4429 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4430 as of type ffi_arg.
4431 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4432
44332004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4434
4435 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4436 value as of type ffi_arg, not unsigned int.
4437
44382004-01-21 Michael Ritzert <ritzert@t-online.de>
4439
4440 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4441 of the LHS.
4442
44432004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4444
4445 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4446 Solaris.
4447
44482004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4449
4450 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4451 to void *.
4452
44532003-12-10 Richard Henderson <rth@redhat.com>
4454
4455 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4456 size_t instead of int.
4457
44582003-12-04 Hosaka Yuji <hos@tamanegi.org>
4459
4460 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4461 * testsuite/libffi.call/many_win32.c (main): Replace variable
4462 int i with unsigned long ul.
4463
4464 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4465 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4466 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4467 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4468 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4469 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4470 * testsuite/libffi.call/cls_align_float.c: Likewise.
4471 * testsuite/libffi.call/cls_align_double.c: Likewise.
4472 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4473 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4474
44752003-12-02 Hosaka Yuji <hos@tamanegi.org>
4476
4477 PR other/13221
4478 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4479 Align arguments to 32 bits.
4480
44812003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4482
4483 PR other/13221
4484 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4485 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4486 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4487 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4488 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4489 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4490
4491 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4492
44932003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4494
4495 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4496 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4497
44982003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4499
4500 * Makefile.in: Rebuilt.
4501 * configure: Likewise.
4502 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4503 the right type.
4504
45052003-11-21 Andreas Jaeger <aj@suse.de>
4506 Andreas Tobler <a.tobler@schweiz.ch>
4507
4508 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4509 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4510 * Makefile.in: Rebuilt.
4511 * aclocal.m4: Likewise.
4512 * configure: Likewise.
4513 * fficonfig.h.in: Likewise.
4514 * testsuite/lib/libffi-dg.exp: Add include dir.
4515 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4516 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4517 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4518 for ffi_closure if available.
4519 * testsuite/libffi.call/closure_fn1.c: Likewise.
4520 * testsuite/libffi.call/closure_fn2.c: Likewise.
4521 * testsuite/libffi.call/closure_fn3.c: Likewise.
4522 * testsuite/libffi.call/closure_fn4.c: Likewise.
4523 * testsuite/libffi.call/closure_fn5.c: Likewise.
4524 * testsuite/libffi.call/cls_12byte.c: Likewise.
4525 * testsuite/libffi.call/cls_16byte.c: Likewise.
4526 * testsuite/libffi.call/cls_18byte.c: Likewise.
4527 * testsuite/libffi.call/cls_19byte.c: Likewise.
4528 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4529 * testsuite/libffi.call/cls_20byte.c: Likewise.
4530 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4531 * testsuite/libffi.call/cls_24byte.c: Likewise.
4532 * testsuite/libffi.call/cls_2byte.c: Likewise.
4533 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4534 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4535 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4536 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4537 * testsuite/libffi.call/cls_4byte.c: Likewise.
4538 * testsuite/libffi.call/cls_5byte.c: Likewise.
4539 * testsuite/libffi.call/cls_64byte.c: Likewise.
4540 * testsuite/libffi.call/cls_6byte.c: Likewise.
4541 * testsuite/libffi.call/cls_7byte.c: Likewise.
4542 * testsuite/libffi.call/cls_8byte.c: Likewise.
4543 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4544 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4545 * testsuite/libffi.call/cls_double.c: Likewise.
4546 * testsuite/libffi.call/cls_float.c: Likewise.
4547 * testsuite/libffi.call/cls_schar.c: Likewise.
4548 * testsuite/libffi.call/cls_sint.c: Likewise.
4549 * testsuite/libffi.call/cls_sshort.c: Likewise.
4550 * testsuite/libffi.call/cls_uchar.c: Likewise.
4551 * testsuite/libffi.call/cls_uint.c: Likewise.
4552 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4553 * testsuite/libffi.call/cls_ushort.c: Likewise.
4554 * testsuite/libffi.call/nested_struct.c: Likewise.
4555 * testsuite/libffi.call/nested_struct1.c: Likewise.
4556 * testsuite/libffi.call/nested_struct2.c: Likewise.
4557 * testsuite/libffi.call/nested_struct3.c: Likewise.
4558 * testsuite/libffi.call/problem1.c: Likewise.
4559 * testsuite/libffi.special/unwindtest.cc: Likewise.
4560
45612003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4562
4563 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4564
45652003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4566
4567 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4568 Add -lgcc_s to additional flags.
4569
45702003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4571
4572 * configure.in, include/Makefile.am: PR libgcj/11147, install
4573 the ffitarget.h header file in a gcc versioned and target
4574 dependent place.
4575 * configure: Regenerated.
4576 * Makefile.in, include/Makefile.in: Likewise.
4577 * testsuite/Makefile.in: Likewise.
4578
45792003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4580
4581 * testsuite/libffi.call/closure_fn0.c: Print result and check
4582 with dg-output to make debugging easier.
4583 * testsuite/libffi.call/closure_fn1.c: Likewise.
4584 * testsuite/libffi.call/closure_fn2.c: Likewise.
4585 * testsuite/libffi.call/closure_fn3.c: Likewise.
4586 * testsuite/libffi.call/closure_fn4.c: Likewise.
4587 * testsuite/libffi.call/closure_fn5.c: Likewise.
4588 * testsuite/libffi.call/cls_12byte.c: Likewise.
4589 * testsuite/libffi.call/cls_16byte.c: Likewise.
4590 * testsuite/libffi.call/cls_18byte.c: Likewise.
4591 * testsuite/libffi.call/cls_19byte.c: Likewise.
4592 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4593 * testsuite/libffi.call/cls_20byte.c: Likewise.
4594 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4595 * testsuite/libffi.call/cls_24byte.c: Likewise.
4596 * testsuite/libffi.call/cls_2byte.c: Likewise.
4597 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4598 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4599 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4600 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4601 * testsuite/libffi.call/cls_4byte.c: Likewise.
4602 * testsuite/libffi.call/cls_5byte.c: Likewise.
4603 * testsuite/libffi.call/cls_64byte.c: Likewise.
4604 * testsuite/libffi.call/cls_6byte.c: Likewise.
4605 * testsuite/libffi.call/cls_7byte.c: Likewise.
4606 * testsuite/libffi.call/cls_8byte.c: Likewise.
4607 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4608 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4609 * testsuite/libffi.call/cls_double.c: Likewise.
4610 * testsuite/libffi.call/cls_float.c: Likewise.
4611 * testsuite/libffi.call/cls_schar.c: Likewise.
4612 * testsuite/libffi.call/cls_sint.c: Likewise.
4613 * testsuite/libffi.call/cls_sshort.c: Likewise.
4614 * testsuite/libffi.call/cls_uchar.c: Likewise.
4615 * testsuite/libffi.call/cls_uint.c: Likewise.
4616 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4617 * testsuite/libffi.call/cls_ushort.c: Likewise.
4618 * testsuite/libffi.call/problem1.c: Likewise.
4619
4620 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4621 static.
4622
46232003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4624
4625 * testsuite/libffi.call/cls_9byte2.c: New test case.
4626 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4627 * testsuite/libffi.call/cls_64byte.c: Likewise.
4628 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4629 * testsuite/libffi.call/cls_19byte.c: Likewise.
4630 * testsuite/libffi.call/cls_18byte.c: Likewise.
4631 * testsuite/libffi.call/closure_fn4.c: Likewise.
4632 * testsuite/libffi.call/closure_fn5.c: Likewise.
4633 * testsuite/libffi.call/cls_schar.c: Likewise.
4634 * testsuite/libffi.call/cls_sint.c: Likewise.
4635 * testsuite/libffi.call/cls_sshort.c: Likewise.
4636 * testsuite/libffi.call/nested_struct2.c: Likewise.
4637 * testsuite/libffi.call/nested_struct3.c: Likewise.
4638
46392003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4640
4641 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4642 * testsuite/libffi.call/cls_uchar.c: Likewise.
4643 * testsuite/libffi.call/cls_uint.c: Likewise.
4644 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4645 * testsuite/libffi.call/cls_ushort.c: Likewise.
4646 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4647
46482003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4649
4650 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4651 the initialization.
4652
46532003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4654
4655 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4656 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4657
46582003-10-22 David Daney <ddaney@avtrex.com>
4659
4660 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4661 __attribute__((__mode__(__SI__))) and friends.
4662
46632003-10-22 Andreas Schwab <schwab@suse.de>
4664
4665 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4666
46672003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4668
4669 * configure.in: AC_LINK_FILES(ffitarget.h).
4670 * configure: Regenerate.
4671 * Makefile.in: Likewise.
4672 * include/Makefile.in: Likewise.
4673 * testsuite/Makefile.in: Likewise.
4674 * fficonfig.h.in: Likewise.
4675
46762003-10-21 Paolo Bonzini <bonzini@gnu.org>
4677 Richard Henderson <rth@redhat.com>
4678
4679 Avoid that ffi.h includes fficonfig.h.
4680
4681 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4682 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4683 (TARGET_SRC_MIPS_SGI): Removed.
4684 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4685 (MIPS_SGI): Removed.
4686 (CLEANFILES): Removed.
4687 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4688 targets.
4689 * acconfig.h: Removed.
4690 * configure.in: Compute sizeofs only for double and long double.
4691 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4692 into AC_DEFINE instead of using acconfig.h. Create
4693 include/ffitarget.h instead of include/fficonfig.h. Rename
4694 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4695 AC_DEFINE EH_FRAME_FLAGS.
4696 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4697 (hack_DATA): Add ffitarget.h.
4698 * include/ffi.h.in: Remove all system specific definitions.
4699 Declare raw API even if it is not installed, why bother?
4700 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4701 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4702 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4703 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4704 * include/ffi_common.h (bool): Do not define.
4705 (ffi_assert): Accept failed assertion.
4706 (ffi_type_test): Return void and accept file/line.
4707 (FFI_ASSERT): Pass stringized failed assertion.
4708 (FFI_ASSERT_AT): New macro.
4709 (FFI_ASSERT_VALID_TYPE): New macro.
4710 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4711 UINT64, SINT64): Define here with gcc's __attribute__ macro
4712 instead of in ffi.h
4713 (FLOAT32, ALIGN): Define here instead of in ffi.h
4714 * include/ffi-mips.h: Removed. Its content moved to
4715 src/mips/ffitarget.h after separating assembly and C sections.
4716 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4717 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4718 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4719 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4720 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4721 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4722 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4723 (ffi_type_test): Rewritten.
4724 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4725 FFI_ASSERT_VALID_TYPE.
4726 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4727 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4728 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4729 src/s390/ffitarget.h, src/sh/ffitarget.h,
4730 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4731 src/x86/ffitarget.h: New files.
4732 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4733 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4734 src/powerpc/aix.S, src/powerpc/darwin.S,
4735 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4736 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4737 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4738 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4739 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4740 include fficonfig.h
4741
47422003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4743
4744 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4745 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4746
47472003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4748
4749 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4750 Used when FFI_DEBUG = 1.
4751
47522003-10-14 Alan Modra <amodra@bigpond.net.au>
4753
4754 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4755 and align.
4756
47572003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4758
4759 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4760 FFI_MIPS_O32 for O32 ABI.
4761
47622003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4763
4764 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4765 SPARC64. Cleanup whitespaces.
4766
47672003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4768
4769 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4770 strongarm, xscale. Cleanup whitespaces.
4771 * testsuite/libffi.call/closure_fn1.c: Likewise.
4772 * testsuite/libffi.call/closure_fn2.c: Likewise.
4773 * testsuite/libffi.call/closure_fn3.c: Likewise.
4774 * testsuite/libffi.call/cls_12byte.c: Likewise.
4775 * testsuite/libffi.call/cls_16byte.c: Likewise.
4776 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4777 * testsuite/libffi.call/cls_20byte.c: Likewise.
4778 * testsuite/libffi.call/cls_24byte.c: Likewise.
4779 * testsuite/libffi.call/cls_2byte.c: Likewise.
4780 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4781 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4782 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4783 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4784 * testsuite/libffi.call/cls_4byte.c: Likewise.
4785 * testsuite/libffi.call/cls_5byte.c: Likewise.
4786 * testsuite/libffi.call/cls_6byte.c: Likewise.
4787 * testsuite/libffi.call/cls_7byte.c: Likewise.
4788 * testsuite/libffi.call/cls_8byte.c: Likewise.
4789 * testsuite/libffi.call/cls_double.c: Likewise.
4790 * testsuite/libffi.call/cls_float.c: Likewise.
4791 * testsuite/libffi.call/cls_uchar.c: Likewise.
4792 * testsuite/libffi.call/cls_uint.c: Likewise.
4793 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4794 * testsuite/libffi.call/cls_ushort.c: Likewise.
4795 * testsuite/libffi.call/nested_struct.c: Likewise.
4796 * testsuite/libffi.call/nested_struct1.c: Likewise.
4797 * testsuite/libffi.call/problem1.c: Likewise.
4798 * testsuite/libffi.special/unwindtest.cc: Likewise.
4799 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4800
48012003-09-18 David Edelsohn <edelsohn@gnu.org>
4802
4803 * src/powerpc/aix.S: Cleanup whitespaces.
4804 * src/powerpc/aix_closure.S: Likewise.
4805
48062003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4807
4808 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4809 * src/powerpc/darwin_closure.S: Likewise.
4810 * src/powerpc/ffi_darwin.c: Likewise.
4811
48122003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4813 David Edelsohn <edelsohn@gnu.org>
4814
4815 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4816 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4817 parameter stack.
4818 * src/powerpc/darwin_closure.S: Likewise.
4819 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4820 according to the Darwin/AIX ABI.
4821 (ffi_prep_cif_machdep): Likewise.
4822 (ffi_closure_helper_DARWIN): Likewise.
4823 Remove the outgoing parameter stack logic. Simplify the evaluation
4824 of the different CASE types.
4825 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4826 statement in the trampoline code.
4827
48282003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4829
4830 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4831 for the register size.
4832 (ffi_closure_helper_SYSV): Handle the structure return value
4833 address correctly.
4834 (ffi_closure_helper_SYSV): Return the appropriate type when
4835 the registers are used for the structure return value.
4836 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4837 the 64-bit return value. Update copyright years.
4838
48392003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4840
4841 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4842 srcdir for ffi_mips.h.
4843
48442003-09-12 Alan Modra <amodra@bigpond.net.au>
4845
4846 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4847 structure size.
4848 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4849 placement of float result.
4850 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4851 cast of "resp" for big-endian 64 bit machines.
4852
48532003-09-11 Alan Modra <amodra@bigpond.net.au>
4854
4855 * src/types.c (double, longdouble): Merge identical SH and ARM
4856 typedefs, and add POWERPC64.
4857 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4858 struct split over gpr and rest.
4859 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4860 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4861
48622003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4863
4864 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4865 passing correctly.
4866
48672003-09-09 Alan Modra <amodra@bigpond.net.au>
4868
4869 * configure: Regenerate.
4870
48712003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4872
4873 * Makefile.am: Remove build rules for ffitest.
4874 * Makefile.in: Rebuilt.
4875
48762003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4877
4878 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4879 about implicit declaration of abort().
4880
48812003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4882
4883 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4884 * Makefile.in: Rebuilt.
4885 * configure.in: Add dejagnu test framework.
4886 * configure: Rebuilt.
4887
4888 * testsuite/Makefile.am: New file.
4889 * testsuite/Makefile.in: Built
4890 * testsuite/lib/libffi-dg.exp: New file.
4891 * testsuite/config/default.exp: Likewise.
4892 * testsuite/libffi.call/call.exp: Likewise.
4893 * testsuite/libffi.call/ffitest.h: Likewise.
4894 * testsuite/libffi.call/closure_fn0.c: Likewise.
4895 * testsuite/libffi.call/closure_fn1.c: Likewise.
4896 * testsuite/libffi.call/closure_fn2.c: Likewise.
4897 * testsuite/libffi.call/closure_fn3.c: Likewise.
4898 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4899 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4900 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4901 * testsuite/libffi.call/cls_2byte.c: Likewise.
4902 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4903 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4904 * testsuite/libffi.call/cls_4byte.c: Likewise.
4905 * testsuite/libffi.call/cls_5byte.c: Likewise.
4906 * testsuite/libffi.call/cls_6byte.c: Likewise.
4907 * testsuite/libffi.call/cls_7byte.c: Likewise.
4908 * testsuite/libffi.call/cls_8byte.c: Likewise.
4909 * testsuite/libffi.call/cls_12byte.c: Likewise.
4910 * testsuite/libffi.call/cls_16byte.c: Likewise.
4911 * testsuite/libffi.call/cls_20byte.c: Likewise.
4912 * testsuite/libffi.call/cls_24byte.c: Likewise.
4913 * testsuite/libffi.call/cls_double.c: Likewise.
4914 * testsuite/libffi.call/cls_float.c: Likewise.
4915 * testsuite/libffi.call/cls_uchar.c: Likewise.
4916 * testsuite/libffi.call/cls_uint.c: Likewise.
4917 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4918 * testsuite/libffi.call/cls_ushort.c: Likewise.
4919 * testsuite/libffi.call/float.c: Likewise.
4920 * testsuite/libffi.call/float1.c: Likewise.
4921 * testsuite/libffi.call/float2.c: Likewise.
4922 * testsuite/libffi.call/many.c: Likewise.
4923 * testsuite/libffi.call/many_win32.c: Likewise.
4924 * testsuite/libffi.call/nested_struct.c: Likewise.
4925 * testsuite/libffi.call/nested_struct1.c: Likewise.
4926 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4927 * testsuite/libffi.call/problem1.c: Likewise.
4928 * testsuite/libffi.call/promotion.c: Likewise.
4929 * testsuite/libffi.call/return_ll.c: Likewise.
4930 * testsuite/libffi.call/return_sc.c: Likewise.
4931 * testsuite/libffi.call/return_uc.c: Likewise.
4932 * testsuite/libffi.call/strlen.c: Likewise.
4933 * testsuite/libffi.call/strlen_win32.c: Likewise.
4934 * testsuite/libffi.call/struct1.c: Likewise.
4935 * testsuite/libffi.call/struct2.c: Likewise.
4936 * testsuite/libffi.call/struct3.c: Likewise.
4937 * testsuite/libffi.call/struct4.c: Likewise.
4938 * testsuite/libffi.call/struct5.c: Likewise.
4939 * testsuite/libffi.call/struct6.c: Likewise.
4940 * testsuite/libffi.call/struct7.c: Likewise.
4941 * testsuite/libffi.call/struct8.c: Likewise.
4942 * testsuite/libffi.call/struct9.c: Likewise.
4943 * testsuite/libffi.special/special.exp: New file.
4944 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4945 * testsuite/libffi.special/unwindtest.cc: Likewise.
4946
4947
49482003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4949
4950 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4951 copyright years.
4952
49532003-08-02 Alan Modra <amodra@bigpond.net.au>
4954
4955 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4956 structure passing.
4957 (ffi_closure_helper_LINUX64): Likewise.
4958 * src/powerpc/linux64.S: Remove code writing to parm save area.
4959 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4960 address in lr from ffi_closure_helper_LINUX64 call to calculate
4961 table address. Optimize function tail.
4962
49632003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4964
4965 * src/sparc/ffi.c: Handle all floating point registers.
4966 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4967
49682003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4969
4970 * README: Note that libffi is not part of GCC. Update the project
4971 URL and status.
4972
49732003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4974
4975 * src/powerpc/ppc_closure.S: Include ffi.h.
4976
49772003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4978
4979 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4980 Use C style comments.
4981
49822003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4983
4984 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4985 * Makefile.in: Regenerate.
4986 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4987 * configure: Regenerate.
4988 * include/ffi.h.in: Add SHmedia support.
4989 * src/sh64/ffi.c: New file.
4990 * src/sh64/sysv.S: New file.
4991
49922003-05-16 Jakub Jelinek <jakub@redhat.com>
4993
4994 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4995 should be read-only.
4996 * configure: Rebuilt.
4997 * fficonfig.h.in: Rebuilt.
4998 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4999 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
5000 * src/powerpc/linux64.S: Likewise.
5001 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
5002 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
5003 if -fpic/-fPIC/-mrelocatable.
5004 * src/powerpc/powerpc_closure.S: Likewise.
5005 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
5006 #write in .eh_frame flags.
5007 * src/sparc/v9.S: Likewise.
5008 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
5009 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
5010 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
5011
50122003-05-07 Jeff Sturm <jsturm@one-point.com>
5013
5014 Fixes PR bootstrap/10656
5015 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
5016 support for .register pseudo-op.
5017 * src/sparc/v8.S: Use it.
5018 * fficonfig.h.in: Rebuilt.
5019 * configure: Rebuilt.
5020
50212003-04-18 Jakub Jelinek <jakub@redhat.com>
5022
5023 * include/ffi.h.in (POWERPC64): Define if 64-bit.
5024 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
5025 Make it the default on POWERPC64.
5026 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
5027 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
5028 * configure: Rebuilt.
5029 * src/powerpc/ffi.c (hidden): Define.
5030 (ffi_prep_args_SYSV): Renamed from
5031 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
5032 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
5033 ASM_NEEDS_REGISTERS64): New.
5034 (ffi_prep_args64): New function.
5035 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
5036 (ffi_call): Likewise.
5037 (ffi_prep_closure): Likewise.
5038 (flush_icache): Surround by #ifndef POWERPC64.
5039 (ffi_dblfl): New union type.
5040 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
5041 (ffi_closure_helper_LINUX64): New function.
5042 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
5043 __powerpc64__.
5044 * src/powerpc/sysv.S: Likewise.
5045 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
5046 * src/powerpc/linux64.S: New file.
5047 * src/powerpc/linux64_closure.S: New file.
5048 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
5049 src/powerpc/linux64_closure.S.
5050 (TARGET_SRC_POWERPC): Likewise.
5051
5052 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
5053 closure_test_fn3): Fix result printing on big-endian 64-bit
5054 machines.
5055 (main): Print tst2_arg instead of uninitialized tst2_result.
5056
5057 * src/ffitest.c (main): Hide what closure pointer really points to
5058 from the compiler.
5059
50602003-04-16 Richard Earnshaw <rearnsha@arm.com>
5061
5062 * configure.in (arm-*-netbsdelf*): Add configuration.
5063 (configure): Regenerated.
5064
50652003-04-04 Loren J. Rittle <ljrittle@acm.org>
5066
5067 * include/Makefile.in: Regenerate.
5068
50692003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5070
5071 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
5072 bit mode.
5073 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
5074 Receive closure pointer through parameter, read args using
5075 __builtin_dwarf_cfa.
5076 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
5077
50782003-03-12 Andreas Schwab <schwab@suse.de>
5079
5080 * configure.in: Avoid trailing /. in toolexeclibdir.
5081 * configure: Rebuilt.
5082
50832003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
5084
5085 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
5086
50872003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
5088
5089 * libffi/src/powerpc/darwin_closure.S:
5090 Fix alignement bug, allocate 8 bytes for the result.
5091 * libffi/src/powerpc/aix_closure.S:
5092 Likewise.
5093 * libffi/src/powerpc/ffi_darwin.c:
5094 Update stackframe description for aix/darwin_closure.S.
5095
50962003-02-06 Jakub Jelinek <jakub@redhat.com>
5097
5098 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
5099 attribute.
5100
51012003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
5102 Andreas Schwab <schwab@suse.de>
5103
5104 * configure.in: Adjust command to source config-ml.in to account
5105 for changes to the libffi_basedir definition.
5106 (libffi_basedir): Remove ${srcdir} from value and include trailing
5107 slash if nonempty.
5108
5109 * configure: Regenerate.
5110
51112003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5112
5113 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
5114
51152003-01-28 Andrew Haley <aph@redhat.com>
5116
5117 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
5118 * src/x86/ffi64.c (ffi_prep_closure): New.
5119 (ffi_closure_UNIX64_inner): New.
5120 * src/x86/unix64.S (ffi_closure_UNIX64): New.
5121
51222003-01-27 Alexandre Oliva <aoliva@redhat.com>
5123
5124 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
5125 Remove USE_LIBDIR conditional.
5126 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
5127 * Makefile.in, configure: Rebuilt.
5128
51292003-01027 David Edelsohn <edelsohn@gnu.org>
5130
5131 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
5132 * Makefile.in: Regenerate.
5133
51342003-01-22 Andrew Haley <aph@redhat.com>
5135
5136 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
5137 unwind info.
5138
51392003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
5140
5141 * src/powerpc/darwin.S: Add unwind info.
5142 * src/powerpc/darwin_closure.S: Likewise.
5143
51442003-01-14 Andrew Haley <aph@redhat.com>
5145
5146 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
5147 (ffi_prep_cif_machdep): Likewise.
5148 * src/x86/unix64.S: Add unwind info.
5149
51502003-01-14 Andreas Jaeger <aj@suse.de>
5151
5152 * src/ffitest.c (main): Only use ffi_closures if those are
5153 supported.
5154
51552003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
5156
5157 * libffi/src/ffitest.c
5158 add closure testcases
5159
51602003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
5161
5162 * libffi/src/powerpc/ffi.c
5163 fix alignment bug for float (4 byte aligned iso 8 byte)
5164
51652003-01-09 Geoffrey Keating <geoffk@apple.com>
5166
5167 * src/powerpc/ffi_darwin.c: Remove RCS version string.
5168 * src/powerpc/darwin.S: Remove RCS version string.
5169
51702003-01-03 Jeff Sturm <jsturm@one-point.com>
5171
5172 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
5173 * src/ffitest.c (main): Use static storage for closure.
5174 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
5175 * src/sparc/v8.S (ffi_closure_v8): New.
5176 * src/sparc/v9.S (ffi_closure_v9): New.
5177
51782002-11-10 Ranjit Mathew <rmathew@hotmail.com>
5179
5180 * include/ffi.h.in: Added FFI_STDCALL ffi_type
5181 enumeration for X86_WIN32.
5182 * src/x86/win32.S: Added ffi_call_STDCALL function
5183 definition.
5184 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
5185 switch cases for recognising FFI_STDCALL and
5186 calling ffi_call_STDCALL if target is X86_WIN32.
5187 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
5188 stdcall versions of the "my_strlen" and "many"
5189 test functions (for X86_WIN32).
5190 Added test cases to test stdcall invocation using
5191 these functions.
5192
51932002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
5194
5195 * src/sh/sysv.S: Add DWARF2 unwind info.
5196
51972002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
5198
5199 * src/s390/sysv.S (.eh_frame section): Make section read-only.
5200
52012002-11-26 Jim Wilson <wilson@redhat.com>
5202
5203 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
5204
52052002-11-23 H.J. Lu <hjl@gnu.org>
5206
5207 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
5208 Include ../config/accross.m4.
5209 * aclocal.m4; Rebuild.
5210 * configure: Likewise.
5211
52122002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
5213
5214 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
5215
52162002-11-11 DJ Delorie <dj@redhat.com>
5217
5218 * configure.in: Look for common files in the right place.
5219
52202002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
5221
5222 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
5223 raw data as _Jv_word values, not ffi_raw.
5224 (ffi_java_ptrarray_to_raw): Likewise.
5225 (ffi_java_rvalue_to_raw): New function.
5226 (ffi_java_raw_call): Call it.
5227 (ffi_java_raw_to_rvalue): New function.
5228 (ffi_java_translate_args): Call it.
5229 * src/ffitest.c (closure_test_fn): Interpret return value
5230 as ffi_arg, not int.
5231 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
5232 FFI_TYPE_POINTER case.
5233 (ffi_closure_helper_SYSV): Likewise. Also, assume return
5234 values extended to word size.
5235
52362002-10-02 Andreas Jaeger <aj@suse.de>
5237
5238 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
5239
52402002-10-01 Bo Thorsen <bo@smetana.suse.de>
5241
5242 * include/ffi.h.in: Fix i386 win32 compilation.
5243
52442002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
5245
5246 * configure.in: Add s390x-*-linux-* target.
5247 * configure: Regenerate.
5248 * include/ffi.h.in: Define S390X for s390x targets.
5249 (FFI_CLOSURES): Define for s390/s390x.
5250 (FFI_TRAMPOLINE_SIZE): Likewise.
5251 (FFI_NATIVE_RAW_API): Likewise.
5252 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5253 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5254 * src/s390/ffi.c: Major rework of existing code. Add support for
5255 s390x targets. Add closure support.
5256 * src/s390/sysv.S: Likewise.
5257
52582002-09-29 Richard Earnshaw <rearnsha@arm.com>
5259
5260 * src/arm/sysv.S: Fix typo.
5261
52622002-09-28 Richard Earnshaw <rearnsha@arm.com>
5263
5264 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5265 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5266 (ffi_call_SYSV): Handle soft-float.
5267
52682002-09-27 Bo Thorsen <bo@suse.de>
5269
5270 * include/ffi.h.in: Fix multilib x86-64 support.
5271
52722002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5273
5274 * Makefile.am (all-multi): Fix multilib parallel build.
5275
52762002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5277
5278 * configure.in (sh[34]*-*-linux*): Add brackets.
5279 * configure: Regenerate.
5280
52812002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5282
5283 * Makefile.am: Add SH support.
5284 * Makefile.in: Regenerate.
5285 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5286 * configure: Regenerate.
5287 * include/ffi.h.in: Add SH support.
5288 * src/sh/ffi.c: New file.
5289 * src/sh/sysv.S: New file.
5290 * src/types.c: Add SH support.
5291
52922002-07-16 Bo Thorsen <bo@suse.de>
5293
5294 * src/x86/ffi64.c: New file that adds x86-64 support.
5295 * src/x86/unix64.S: New file that handles argument setup for
5296 x86-64.
5297 * src/x86/sysv.S: Don't use this on x86-64.
5298 * src/x86/ffi.c: Don't use this on x86-64.
5299 Remove unused vars.
5300 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5301 for x86-64.
5302 * src/ffitest.c (struct6): New test that tests a special case in
5303 the x86-64 ABI.
5304 (struct7): Likewise.
5305 (struct8): Likewise.
5306 (struct9): Likewise.
5307 (closure_test_fn): Silence warning about this when it's not used.
5308 (main): Add the new tests.
5309 (main): Fix a couple of wrong casts and silence some compiler warnings.
5310 * include/ffi.h.in: Add x86-64 ABI definition.
5311 * fficonfig.h.in: Regenerate.
5312 * Makefile.am: Add x86-64 support.
5313 * configure.in: Likewise.
5314 * Makefile.in: Regenerate.
5315 * configure: Likewise.
5316
53172002-06-24 Bo Thorsen <bo@suse.de>
5318
5319 * src/types.c: Merge settings for similar architectures.
5320 Add x86-64 sizes and alignments.
5321
53222002-06-23 Bo Thorsen <bo@suse.de>
5323
5324 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5325 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5326 * src/mips/ffi.c (ffi_prep_args): Likewise.
5327 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5328
53292002-07-18 H.J. Lu (hjl@gnu.org)
5330
5331 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5332 (libffi_la_SOURCES): Support MIPS_LINUX.
5333 (libffi_convenience_la_SOURCES): Likewise.
5334 * Makefile.in: Regenerated.
5335
5336 * configure.in (mips64*-*): Skip.
5337 (mips*-*-linux*): New.
5338 * configure: Regenerated.
5339
5340 * src/mips/ffi.c: Include <sgidefs.h>.
5341
53422002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5343
5344 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5345
53462002-05-27 Roger Sayle <roger@eyesopen.com>
5347
5348 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5349
53502002-05-27 Bo Thorsen <bo@suse.de>
5351
5352 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5353 fix formatting.
5354
53552002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5356
5357 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5358 beginning of function (for older apple cc).
5359
53602002-05-08 Alexandre Oliva <aoliva@redhat.com>
5361
5362 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5363 script entry, and set LD to it when configuring multilibs.
5364 * configure: Rebuilt.
5365
53662002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5367
5368 * configure.in (sparc64-*-netbsd*): Add target.
5369 (sparc-*-netbsdelf*): Likewise.
5370 * configure: Regenerate.
5371
53722002-04-28 David S. Miller <davem@redhat.com>
5373
5374 * configure.in, configure: Fix SPARC test in previous change.
5375
53762002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5377
5378 * Makefile.am: Add Linux for S/390 support.
5379 * Makefile.in: Regenerate.
5380 * configure.in: Add Linux for S/390 support.
5381 * configure: Regenerate.
5382 * include/ffi.h.in: Add Linux for S/390 support.
5383 * src/s390/ffi.c: New file from libffi CVS tree.
5384 * src/s390/sysv.S: New file from libffi CVS tree.
5385
53862002-04-28 Jakub Jelinek <jakub@redhat.com>
5387
5388 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5389 %r_disp32().
5390 * src/sparc/v8.S: Use it.
5391 * src/sparc/v9.S: Likewise.
5392 * fficonfig.h.in: Rebuilt.
5393 * configure: Rebuilt.
5394
53952002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5396
5397 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5398 correctly.
5399 * src/ia64/unix.S: Add unwind information. Fix comments.
5400 Save sp in a way that's compatible with unwind info.
5401 (ffi_call_unix): Correctly restore sp in all cases.
5402 * src/ia64/ffi.c: Add, fix comments.
5403
54042002-04-08 Jakub Jelinek <jakub@redhat.com>
5405
5406 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5407
54082002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5409
5410 * configure.in (alpha*-*-netbsd*): Add target.
5411 * configure: Regenerate.
5412
54132002-04-04 Jeff Sturm <jsturm@one-point.com>
5414
5415 * src/sparc/v8.S: Add unwind info.
5416 * src/sparc/v9.S: Likewise.
5417
54182002-03-30 Krister Walfridsson <cato@df.lth.se>
5419
5420 * configure.in: Enable i*86-*-netbsdelf*.
5421 * configure: Rebuilt.
5422
54232002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5424
5425 PR other/2620
5426 * src/mips/n32.s: Delete
5427 * src/mips/o32.s: Delete
5428
54292002-03-21 Loren J. Rittle <ljrittle@acm.org>
5430
5431 * configure.in: Enable alpha*-*-freebsd*.
5432 * configure: Rebuilt.
5433
54342002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5435
5436 * Makefile.am: libfficonvenience -> libffi_convenience.
5437 * Makefile.in: Rebuilt.
5438
5439 * Makefile.am: Define ffitest_OBJECTS.
5440 * Makefile.in: Rebuilt.
5441
54422002-03-07 Andreas Tobler <toa@pop.agri.ch>
5443 David Edelsohn <edelsohn@gnu.org>
5444
5445 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5446 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5447 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5448 * Makefile.in: Regenerate.
5449 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5450 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5451 (flush_icache, flush_range): New functions.
5452 (ffi_closure_helper_DARWIN): New function.
5453 * src/powerpc/aix_closure.S: New file.
5454 * src/powerpc/darwin_closure.S: New file.
5455
54562002-02-24 Jeff Sturm <jsturm@one-point.com>
5457
5458 * include/ffi.h.in: Add typedef for ffi_arg.
5459 * src/ffitest.c (main): Declare rint with ffi_arg.
5460
54612002-02-21 Andreas Tobler <toa@pop.agri.ch>
5462
5463 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5464 number of GPRs for floating-point arguments.
5465
54662002-01-31 Anthony Green <green@redhat.com>
5467
5468 * configure: Rebuilt.
5469 * configure.in: Replace CHECK_SIZEOF and endian tests with
5470 cross-compiler friendly macros.
5471 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5472 macros.
5473
54742002-01-18 David Edelsohn <edelsohn@gnu.org>
5475
5476 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5477 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5478
54792002-01-17 David Edelsohn <edelsohn@gnu.org>
5480
5481 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5482 (TARGET_SRC_POWERPC_AIX): New.
5483 (POWERPC_AIX): New stanza.
5484 * Makefile.in: Regenerate.
5485 * configure.in: Add AIX case.
5486 * configure: Regenerate.
5487 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5488 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5489 size. Fix "long double" support.
5490 (ffi_call): Add FFI_AIX case.
5491 * src/powerpc/aix.S: New.
5492
54932001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5494
5495 Implement Darwin PowerPC ABI.
5496 * configure.in: Handle powerpc-*-darwin*.
5497 * Makefile.am: Set source files for POWERPC_DARWIN.
5498 * configure: Rebuilt.
5499 * Makefile.in: Rebuilt.
5500 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5501 POWERPC_DARWIN.
5502 * src/powerpc/darwin.S: New file.
5503 * src/powerpc/ffi_darwin.c: New file.
5504
55052001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5506
5507 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5508
55092001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5510
5511 * src/x86/sysv.S: Avoid gas-only .balign directive.
5512 Use C style comments.
5513
55142001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5515
5516 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5517 Fixes PR bootstrap/3563.
5518
55192001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5520
5521 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5522
55232001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5524
5525 * configure.in: Recognize sparc*-sun-* host.
5526 * configure: Regenerate.
5527
55282001-06-06 Andrew Haley <aph@redhat.com>
5529
5530 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5531
55322001-06-03 Andrew Haley <aph@redhat.com>
5533
5534 * src/alpha/osf.S: Add unwind info.
5535 * src/powerpc/sysv.S: Add unwind info.
5536 * src/powerpc/ppc_closure.S: Likewise.
5537
55382000-05-31 Jeff Sturm <jsturm@one-point.com>
5539
5540 * configure.in: Fix AC_ARG_ENABLE usage.
5541 * configure: Rebuilt.
5542
55432001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5544
5545 * configure.in: Remove warning about beta code.
5546 * configure: Rebuilt.
5547
55482001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5549
5550 * src/ia64/unix.S: Restore stack pointer when returning from
5551 ffi_closure_UNIX.
5552 * src/ia64/ffi.c: Fix typo in comment.
5553
55542001-04-18 Jim Wilson <wilson@redhat.com>
5555
5556 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5557 to eliminate RAW DV.
5558
55592001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5560
5561 * Makefile.am: Make a libtool convenience library.
5562 * Makefile.in: Rebuilt.
5563
55642001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5565
5566 * configure.in: Use different syntax for subdirectory creation.
5567 * configure: Rebuilt.
5568
55692001-03-27 Jon Beniston <jon@beniston.com>
5570
5571 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5572 * configure: Rebuilt.
5573 * Makefile.am: Added X86_WIN32 target support.
5574 * Makefile.in: Rebuilt.
5575
5576 * include/ffi.h.in: Added X86_WIN32 target support.
5577
5578 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5579 * src/types.c: Added X86_WIN32 target support.
5580
5581 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5582 stuff removed and made to work with CygWin's gas.
5583
55842001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5585
5586 * configure.in: Make target subdirectory in build dir.
5587 * Makefile.am: Override suffix based rules to specify correct output
5588 subdirectory.
5589 * Makefile.in: Rebuilt.
5590 * configure: Rebuilt.
5591
55922001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5593
5594 * src/powerpc/ppc_closure.S: New file.
5595 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5596 involving long long and register pairs.
5597 (ffi_prep_closure): New function.
5598 (flush_icache): Likewise.
5599 (ffi_closure_helper_SYSV): Likewise.
5600 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5601 (FFI_TRAMPOLINE_SIZE): Likewise.
5602 (FFI_NATIVE_RAW_API): Likewise.
5603 * Makefile.in: Rebuilt.
5604 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5605 (TARGET_SRC_POWERPC): Likewise.
5606
56072001-03-19 Tom Tromey <tromey@redhat.com>
5608
5609 * Makefile.in: Rebuilt.
5610 * Makefile.am (ffitest_LDFLAGS): New macro.
5611
56122001-03-02 Nick Clifton <nickc@redhat.com>
5613
5614 * include/ffi.h.in: Remove RCS ident string.
5615 * include/ffi_mips.h: Remove RCS ident string.
5616 * src/debug.c: Remove RCS ident string.
5617 * src/ffitest.c: Remove RCS ident string.
5618 * src/prep_cif.c: Remove RCS ident string.
5619 * src/types.c: Remove RCS ident string.
5620 * src/alpha/ffi.c: Remove RCS ident string.
5621 * src/alpha/osf.S: Remove RCS ident string.
5622 * src/arm/ffi.c: Remove RCS ident string.
5623 * src/arm/sysv.S: Remove RCS ident string.
5624 * src/mips/ffi.c: Remove RCS ident string.
5625 * src/mips/n32.S: Remove RCS ident string.
5626 * src/mips/o32.S: Remove RCS ident string.
5627 * src/sparc/ffi.c: Remove RCS ident string.
5628 * src/sparc/v8.S: Remove RCS ident string.
5629 * src/sparc/v9.S: Remove RCS ident string.
5630 * src/x86/ffi.c: Remove RCS ident string.
5631 * src/x86/sysv.S: Remove RCS ident string.
5632
56332001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5634
5635 * include/ffi.h.in: Change sourceware.cygnus.com references to
5636 gcc.gnu.org.
5637
56382000-12-09 Richard Henderson <rth@redhat.com>
5639
5640 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5641 (ffi_closure_osf_inner): Index rather than increment avalue
5642 and arg_types. Give ffi_closure_osf the raw return value type.
5643 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5644 promotion.
5645
56462000-12-07 Richard Henderson <rth@redhat.com>
5647
5648 * src/raw_api.c (ffi_translate_args): Fix typo.
5649 (ffi_prep_closure): Likewise.
5650
5651 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5652 FFI_TRAMPOLINE_SIZE.
5653 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5654 cif->bytes for new ffi_call_osf implementation.
5655 (ffi_prep_args): Absorb into ...
5656 (ffi_call): ... here. Do all stack allocation here and
5657 avoid a callback function.
5658 (ffi_prep_closure, ffi_closure_osf_inner): New.
5659 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5660 (ffi_closure_osf): New.
5661
56622000-09-10 Alexandre Oliva <aoliva@redhat.com>
5663
5664 * config.guess, config.sub, install-sh: Removed.
5665 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5666 * Makefile.in: Rebuilt.
5667
5668 * acinclude.m4: Include libtool macros from the top level.
5669 * aclocal.m4, configure: Rebuilt.
5670
56712000-08-22 Alexandre Oliva <aoliva@redhat.com>
5672
5673 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5674 * configure: Rebuilt.
5675
56762000-05-11 Scott Bambrough <scottb@netwinder.org>
5677
5678 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5679 memory correctly. Use conditional instructions, not branches where
5680 possible.
5681
56822000-05-04 Tom Tromey <tromey@cygnus.com>
5683
5684 * configure: Rebuilt.
5685 * configure.in: Match `arm*-*-linux-*'.
5686 From Chris Dornan <cdornan@arm.com>.
5687
56882000-04-28 Jakub Jelinek <jakub@redhat.com>
5689
5690 * Makefile.am (SUBDIRS): Define.
5691 (AM_MAKEFLAGS): Likewise.
5692 (Multilib support.): Add section.
5693 * Makefile.in: Rebuilt.
5694 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5695 New variables. Set for gcc using -print-multi-lib. Export them
5696 to libtool.
5697 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5698 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5699 for -shared links.
5700 (extra_compiler_flags_value, extra_compiler_flags): Check these
5701 for extra compiler options which need to be passed down in
5702 compiler_flags.
5703
57042000-04-16 Anthony Green <green@redhat.com>
5705
5706 * configure: Rebuilt.
5707 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5708
57092000-04-14 Jakub Jelinek <jakub@redhat.com>
5710
5711 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5712 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5713 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5714 Replace all void * sizeofs with sizeof(int).
5715 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5716 different than DOUBLE.
5717 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5718 (ffi_prep_args_v9): New function.
5719 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5720 (ffi_V9_return_struct): New function.
5721 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5722 32bit code (not yet cross-arch calls).
5723 * src/sparc/v8.S: Add struct return delay nop.
5724 Handle long long.
5725 * src/sparc/v9.S: New file.
5726 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5727 is used on sparc64 only for structures larger than 32 bytes.
5728 Pass by reference for structures is done for structure arguments
5729 larger than 16 bytes.
5730 * src/ffitest.c (main): Use 64bit rint on sparc64.
5731 Run long long tests on sparc.
5732 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5733 sparc64.
5734 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5735 on sparc64.
5736 * configure.in (sparc-*-linux*): New supported target.
5737 (sparc64-*-linux*): Likewise.
5738 * configure: Rebuilt.
5739 * Makefile.am: Add v9.S to SPARC files.
5740 * Makefile.in: Likewise.
5741 (LINK): Surround $(CCLD) into double quotes, so that multilib
5742 compiles work correctly.
5743
57442000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5745
5746 * configure: Rebuilt.
5747 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5748 proposed by Bryce McKinlay.
5749
57502000-03-20 Tom Tromey <tromey@cygnus.com>
5751
5752 * Makefile.in: Hand edit for java_raw_api.lo.
5753
57542000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5755
5756 * config.guess, config.sub: Update from the gcc tree.
5757 Fix for PR libgcj/168.
5758
57592000-03-03 Tom Tromey <tromey@cygnus.com>
5760
5761 * Makefile.in: Fixed ia64 by hand.
5762
5763 * configure: Rebuilt.
5764 * configure.in (--enable-multilib): New option.
5765 (libffi_basedir): New subst.
5766 (AC_OUTPUT): Added multilib code.
5767
57682000-03-02 Tom Tromey <tromey@cygnus.com>
5769
5770 * Makefile.in: Rebuilt.
5771 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5772 directory name.
5773
57742000-02-25 Hans Boehm <boehm@acm.org>
5775
5776 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5777 files.
5778 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5779 list.
5780 (ffi_prep_raw_closure): Use ffi_translate_args, not
5781 ffi_closure_translate.
5782 * src/java_raw_api.c: New file.
5783 * src/ffitest.c (closure_test_fn): New function.
5784 (main): Define `rint' as long long on IA64. Added new test when
5785 FFI_CLOSURES is defined.
5786 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5787 (ffi_abi): Recognize IA64.
5788 (ffi_raw): Added `flt' field.
5789 Added "Java raw API" code.
5790 * configure.in: Recognize ia64.
5791 * Makefile.am (TARGET_SRC_IA64): New macro.
5792 (libffi_la_common_SOURCES): Added java_raw_api.c.
5793 (libffi_la_SOURCES): Define in IA64 case.
5794
57952000-01-04 Tom Tromey <tromey@cygnus.com>
5796
5797 * Makefile.in: Rebuilt with newer automake.
5798
57991999-12-31 Tom Tromey <tromey@cygnus.com>
5800
5801 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5802
58031999-09-01 Tom Tromey <tromey@cygnus.com>
5804
5805 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5806 undefs.
5807 * fficonfig.h.in: Rebuilt.
5808 * configure: Rebuilt.
5809 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5810 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5811 * acconfig.h: Don't #undef PACKAGE or VERSION.
5812
58131999-08-09 Anthony Green <green@cygnus.com>
5814
5815 * include/ffi.h.in: Try to work around messy header problem
5816 with PACKAGE and VERSION.
5817
5818 * configure: Rebuilt.
5819 * configure.in: Change version to 2.00-beta.
5820
5821 * fficonfig.h.in: Rebuilt.
5822 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5823
5824 * src/x86/ffi.c (ffi_raw_call): Rename.
5825
58261999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5827
5828 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5829 (ffi_prep_incoming_args_SYSV): Ditto.
5830 (ffi_prep_closure): Ditto.
5831 (ffi_closure_raw_SYSV): Ditto.
5832 (ffi_prep_raw_closure): More ditto.
5833 (ffi_call_raw): Final ditto.
5834
5835 * include/ffi.h.in: Add definitions for closure and raw API.
5836
5837 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5838 FFI_TYPE_UINT64.
5839
5840 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5841
5842 * src/raw_api.c: New file.
5843
5844 * include/ffi.h.in (ffi_raw): New type.
5845 (UINT_ARG, SINT_ARG): New defines.
5846 (ffi_closure, ffi_raw_closure): New types.
5847 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5848
5849 * configure.in: Add check for endianness and sizeof void*.
5850
5851 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5852 instead of directly.
5853
5854 * configure: Rebuilt.
5855
5856Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5857
5858 * configure.in: Add x86 and powerpc BeOS configurations.
5859 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5860
58611999-05-09 Anthony Green <green@cygnus.com>
5862
5863 * configure.in: Add warning about this being beta code.
5864 Remove src/Makefile.am from the picture.
5865 * configure: Rebuilt.
5866
5867 * Makefile.am: Move logic from src/Makefile.am. Add changes
5868 to support libffi as a target library.
5869 * Makefile.in: Rebuilt.
5870
5871 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5872 Upgraded to new autoconf, automake, libtool.
5873
5874 * README: Tweaks.
5875
5876 * LICENSE: Update copyright date.
5877
5878 * src/Makefile.am, src/Makefile.in: Removed.
5879
58801998-11-29 Anthony Green <green@cygnus.com>
5881
5882 * include/ChangeLog: Removed.
5883 * src/ChangeLog: Removed.
5884 * src/mips/ChangeLog: Removed.
5885 * src/sparc/ChangeLog: Remboved.
5886 * src/x86/ChangeLog: Removed.
5887
5888 * ChangeLog.v1: Created.