blob: f24e251d16b02898eb77799711194587554e0e4b [file] [log] [blame]
Ryan VanderMeulendfa37382014-03-10 14:53:48 -040012014-03-10 Landry Breuil <landry@openbsd.org>
2
3 * configure.ac: Ensure the linker supports @unwind sections in libffi.
4
Anthony Green634a4752014-03-01 18:37:29 -050052014-03-01 Anthony Green <green@moxielogic.com>
6
7 * Makefile.am (EXTRA_DIST): Replace old scripts with
8 generate-darwin-source-and-headers.py.
9 * Makefile.in: Rebuilt.
10
Anthony Greena04e30b2014-02-28 17:20:59 -0500112014-02-28 Anthony Green <green@moxielogic.com>
12
13 * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for
14 --enable-debug builds.
15 * Makefile.in: Rebuilt.
16
172014-02-28 Makoto Kato <m_kato@ga2.so-net.ne.jp>
18
19 * src/closures.c: Fix build failure when using clang for Android.
20
Anthony Greenb40aeda2014-02-28 01:01:29 -0500212014-02-28 Marcin Wojdyr <wojdyr@gmail.com>
22
23 * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead
24 of -L${libdir}.
25
Anthony Green20698ab2014-02-28 00:56:27 -0500262014-02-28 Paulo Pizarro <paulo.pizarro@gmail.com>
27
28 * src/bfin/sysv.S: Calling functions in shared libraries requires
29 considering the GOT.
30
Anthony Green64bd0692014-02-28 00:52:56 -0500312014-02-28 Josh Triplett <josh@joshtriplett.org>
32
33 * src/x86/ffi64.c (classify_argument): Handle case where
34 FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE.
35
Anthony Green33c99542014-02-28 00:38:41 -0500362014-02-28 Anthony Green <green@moxielogic.com>
37
38 * ltmain.sh: Generate with libtool-2.4.2.418.
39 * m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto.
40 * configure: Rebuilt.
41
Anthony Green5a88c852014-02-28 00:23:04 -0500422014-02-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
43
44 * configure.ac (AC_ARG_ENABLE struct): Fix typo in help
45 message.
46 (AC_ARG_ENABLE raw_api): Ditto.
47 * configure, fficonfig.h.in: Rebuilt.
48
Anthony Green001aaf42014-02-28 00:20:17 -0500492014-02-28 Will Newton <will.newton@linaro.org>
50
51 * src/arm/sysv.S: Initialize IP register with FP.
52
Anthony Green49f77292014-02-28 00:17:16 -0500532014-02-28 Yufeng Zhang <yufeng.zhang@arm.com>
54
55 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
56 main CFA reg; update cfi_rel_offset.
57
Heiher40927bd2014-01-21 23:18:27 +0800582014-02-09 Heiher <r@hev.cc>
59
60 * src/mips/n32.S: Fix call floating point va function.
61
Zachary Waldowskif466aad2014-01-21 16:38:31 -0500622014-01-21 Zachary Waldowski <zach@waldowski.me>
63
64 * src/aarch64/ffi.c: Fix missing semicolons on assertions under
65 debug mode.
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050066
672013-12-30 Zachary Waldowski <zach@waldowski.me>
68
69 * .gitignore: Exclude darwin_* generated source and build_* trees.
70 * src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang
71 previous prototype warnings.
72 * src/arm/ffi.c: Prevent NULL dereference, fix short type warning
73 * src/dlmalloc.c: Fix warnings from set_segment_flags return type,
74 and the native use of size_t for malloc on platforms
75 * src/arm/sysv.S: Use unified syntax. Clang clean-ups for
76 ARM_FUNC_START.
77 * generate-osx-source-and-headers.py: Remove.
78 * build-ios.sh: Remove.
79 * libffi.xcodeproj/project.pbxproj: Rebuild targets. Include
80 x86_64+aarch64 pieces in library. Export headers properly.
81 * src/x86/ffi64.c: More Clang warning clean-ups.
82 * src/closures.c (open_temp_exec_file_dir): Use size_t.
83 * src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result.
84 * src/aarch64/sysv.S: Use CNAME for global symbols. Only use
85 .size for ELF targets.
86 * src/aarch64/ffi.c: Clean up for double == long double. Clean up
Zachary Waldowskif466aad2014-01-21 16:38:31 -050087 from Clang warnings. Use Clang cache invalidation builtin. Use
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050088 size_t in place of unsigned in many places. Accommodate for
89 differences in Apple AArch64 ABI.
90
912013-12-02 Daniel Rodríguez Troitiño <drodrigueztroitino@yahoo.es>
92
93 * generate-darwin-source-and-headers.py: Clean up, modernize,
Anthony Green447483d2014-02-27 15:42:41 -050094 merged version of previous scripts.
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050095
Alan Modraab79d6e2013-11-21 06:12:35 -0500962013-11-21 Anthony Green <green@moxielogic.com>
97
98 * configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
99 man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt.
100
1012013-11-21 Alan Modra <amodra@gmail.com>
102
103 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
104 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
105 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
106 * include/ffi.h.in (ffi_prep_types): Declare.
107 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
108 * src/types.c (FFI_NONCONST_TYPEDEF): Define and use for
109 HAVE_LONG_DOUBLE_VARIANT.
110 * src/powerpc/ffi_powerpc.h: New file.
111 * src/powerpc/ffi.c: Split into..
112 * src/powerpc/ffi_sysv.c: ..new file, and..
113 * src/powerpc/ffi_linux64.c: ..new file, rewriting parts.
114 * src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI
115 selection as bits controlling features.
116 * src/powerpc/linux64.S: For consistency, use POWERPC64 rather
117 than __powerpc64__.
118 * src/powerpc/linux64_closure.S: Likewise.
119 * src/powerpc/ppc_closure.S: Likewise. Move .note.FNU-stack
120 inside guard.
121 * src/powerpc/sysv.S: Likewise.
122 * configure: Regenerate.
123 * fficonfig.h.in: Regenerate.
124 * Makefile.in: Regenerate.
125
1262013-11-20 Alan Modra <amodra@gmail.com>
127
128 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use
129 NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their
130 32-bit versions for 64-bit code.
131 * src/powerpc/linux64_closure.S: Don't use the return value area
132 as a parameter save area on ELFv2.
133
Iain Sandoeaa1f62c2013-11-18 13:11:56 +00001342013-11-18 Iain Sandoe <iain@codesourcery.com>
135
136 * src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding.
137 * src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase
138 labels.
139
Anthony Green2f450822013-11-18 06:52:29 -05001402013-11-18 Anthony Green <green@moxielogic.com>
141
142 * src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of
143 function.
144 * src/arm/ffi.c (ffi_closure_inner): Moderize function declaration
145 to appease compiler.
146 Thanks for Gregory P. Smith <greg@krypto.org>.
147
1482013-11-18 Anthony Green <green@moxielogic.com>
149
150 * README (tested): Mention PowerPC ELFv2.
151
Alan Modra164283f2013-11-16 06:38:55 -05001522013-11-16 Alan Modra <amodra@gmail.com>
153
Alan Modra16d56c52013-11-18 06:36:03 -0500154 * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
155 Don't bl .Luint128.
156
1572013-11-16 Alan Modra <amodra@gmail.com>
158
Alan Modra83f65b62013-11-16 06:53:50 -0500159 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
160 test to select parameter save sizing for ELFv2 vs. ELFv1.
161 * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
162 FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define.
163 (FFI_TRAMPOLINE_SIZE): Define variant for ELFv2.
164 * src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define.
165 (discover_homogeneous_aggregate): New function.
166 (ffi_prep_args64): Adjust start of param save area for ELFv2.
167 Handle homogenous floating point struct parms.
168 (ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2.
169 Handle ELFv2 return values. Set FLAG_ARG_NEEDS_PSAVE. Handle
170 homogenous floating point structs.
171 (ffi_call): Increase size of smst_buffer for ELFv2. Handle ELFv2.
172 (flush_icache): Compile for ELFv2.
173 (ffi_prep_closure_loc): Set up ELFv2 trampoline.
174 (ffi_closure_helper_LINUX64): Don't return all structs directly
175 to caller. Handle homogenous floating point structs. Handle
176 ELFv2 struct return values.
177 * src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for
178 ELFv2. Adjust toc save location. Call function pointer using
179 r12. Handle FLAG_RETURNS_SMST. Don't predict branches.
180 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2
181 for ELFv2. Define ELFv2 versions of STACKFRAME, PARMSAVE, and
182 RETVAL. Handle possibly missing parameter save area. Handle
183 ELFv2 return values.
184 (.note.GNU-stack): Move inside outer #ifdef.
185
1862013-11-16 Alan Modra <amodra@gmail.com>
187
Alan Modra36285132013-11-16 06:52:43 -0500188 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08
189 change. Do not consume an int arg when returning a small struct
190 for FFI_SYSV ABI.
191 (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST.
192 Properly copy bounce buffer to destination.
193 * src/powerpc/sysv.S: Revert 2013-02-08 change.
194 * src/powerpc/ppc_closure.S: Remove stray '+'.
195
1962013-11-16 Alan Modra <amodra@gmail.com>
197
Alan Modra1c065152013-11-16 06:41:36 -0500198 * src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters
199 according to __STRUCT_PARM_ALIGN__.
200 (ffi_prep_cif_machdep_core): Likewise.
201 (ffi_closure_helper_LINUX64): Likewise.
202
2032013-11-16 Alan Modra <amodra@gmail.com>
204
Alan Modraa97cf1f2013-11-16 06:40:13 -0500205 * src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28.
206 (.note.GNU-stack): Move inside outer #ifdef.
207 * src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE,
208 RETVAL): Define and use throughout.
209 (ffi_closure_LINUX64): Save fprs before buying stack.
210 (.note.GNU-stack): Move inside outer #ifdef.
211
2122013-11-16 Alan Modra <amodra@gmail.com>
213
Alan Modra164283f2013-11-16 06:38:55 -0500214 * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
215 (FFI_EXTRA_CIF_FIELDS): Define.
216 * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
217 ABI, not to both fpr and param save area.
218 (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
219 Keep initial flags. Formatting. Remove dead FFI_LINUX_SOFT_FLOAT
220 code.
221 (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
222 (ffi_closure_helper_LINUX64): Pass floating point as per ABI,
223 not to both fpr and parameter save areas.
224
225 * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
226 function cast and don't call ffi_prep_cif.
227 * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
228
Andrew Haleydb0ace32013-11-16 06:29:25 -05002292013-11-15 Andrew Haley <aph@redhat.com>
230
Andrew Haley31257b32013-11-16 06:35:51 -0500231 * doc/libffi.texi (Closure Example): Fix the sample code.
232 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
233
2342013-11-15 Andrew Haley <aph@redhat.com>
235
Andrew Haleydb0ace32013-11-16 06:29:25 -0500236 * testsuite/libffi.call/va_struct1.c (main): Fix broken test.
237 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
238 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
239 * testsuite/libffi.call/va_1.c (main): Likewise.
240
David Schneiderf3657da2013-11-14 13:02:16 +01002412013-11-14 David Schneider <david.schneider@bivab.de>
242
Anthony Greende10f502013-11-14 10:56:29 -0500243 * src/arm/ffi.c: Fix register allocation for mixed float and
244 doubles.
245 * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
246 for many mixed float and double arguments.
247
Alan Modra58c25772013-11-13 16:55:36 -05002482013-11-13 Alan Modra <amodra@gmail.com>
249
250 * doc/libffi.texi (Simple Example): Correct example code.
251 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
252
Anthony Green8af42f92013-11-13 16:40:28 -05002532013-11-13 Anthony Green <green@moxielogic.com>
254
255 * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
256 based build. (Thanks to tmr111116 on github)
257
Anthony Green2f5b7ce2013-11-09 06:16:32 -05002582013-11-09 Anthony Green <green@moxielogic.com>
259
260 * m4/libtool.m4: Refresh.
261 * configure, Makefile.in: Rebuilt.
262 * README: Add more notes about next release.
263
2642013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp>
265
266 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
267 UltraSPARC-IIi as ultrasparc3.
268
Mark Kettenisbecd7542013-11-06 06:43:49 -05002692013-11-06 Mark Kettenis <kettenis@gnu.org>
270
271 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
272 16-bytes.
273
Konstantin Belousov05c31092013-11-06 06:40:58 -05002742013-11-06 Konstantin Belousov <kib@freebsd.org>
275
276 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
277 source as not requiring executable stack.
278
Anthony Greencf6bf982013-11-02 17:23:59 -04002792013-11-02 Anthony Green <green@moxielogic.com>
280
281 * doc/libffi.texi (The Basics): Clarify return value buffer size
282 requirements. Also, NULL result buffer pointers are no longer
283 supported.
284 * doc/libffi.info: Rebuilt.
285
Anthony Greenc2422172013-11-02 14:08:23 -07002862013-11-02 Mischa Jonker <mjonker@synopsys.com>
287
288 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
289 * Makefile.in: Rebuilt.
290
2912013-11-02 David Schneider <david.schneider@bivab.de>
292
293 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
294 * testsuite/libffi.call/many_mixed.c: New file.
295 * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
296
Anthony Greenf4b843f2013-11-02 17:01:15 -04002972013-11-02 Vitaly Budovski
298
299 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
300
Mark H Weaverd3372c52013-10-26 08:30:06 -04003012013-10-23 Mark H Weaver <mhw@netris.org>
302
303 * src/mips/ffi.c: Fix handling of uint32_t arguments on the
304 MIPS N32 ABI.
305
Sandra Loosemore16b93a22013-10-15 15:33:59 -04003062013-10-13 Sandra Loosemore <sandra@codesourcery.com>
307
308 * README: Add Nios II to table of supported platforms.
309 * Makefile.am (EXTRA_DIST): Add nios2 files.
310 (nodist_libffi_la_SOURCES): Likewise.
311 * Makefile.in: Regenerated.
312 * configure.ac (nios2*-linux*): New host.
313 (NIOS2): Add AM_CONDITIONAL.
314 * configure: Regenerated.
315 * src/nios2/ffi.c: New.
316 * src/nios2/ffitarget.h: New.
317 * src/nios2/sysv.S: New.
318 * src/prep_cif.c (initialize_aggregate): Handle extra structure
319 alignment via FFI_AGGREGATE_ALIGNMENT.
320 (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
321
Sandra Loosemore2f5626c2013-10-15 15:32:16 -04003222013-10-10 Sandra Loosemore <sandra@codesourcery.com>
323
324 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
325 Fix uninitialized variable.
326
Marcus Shawcroftf64e4a82013-10-15 15:20:14 -04003272013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
328
329 * testsuite/libffi.call/many.c (many): Replace * with +.
330
Anthony Green128cd1d2013-10-08 06:45:51 -04003312013-10-08 Ondřej Bílka <neleai@seznam.cz>
332
333 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
334 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
335 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
336 src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
337 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
338 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
339 spelling errors.
340
Anthony Greend2fcbcd2013-10-08 06:27:46 -04003412013-10-08 Anthony Green <green@moxielogic.com>
342
343 * aclocal.m4, compile, config.guess, config.sub, depcomp,
344 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
345 * configure.ac: Update version to 3.0.14-rc0.
346 * Makefile.in, configure, Makefile.in, include/Makefile.in,
347 man/Makefile.in, testsuite/Makefile.in: Rebuilt.
Anthony Green128cd1d2013-10-08 06:45:51 -0400348 * README: Mention M88K and VAX.
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400349
3502013-07-15 Miod Vallat <miod@openbsd.org>
351
352 * Makefile.am,
353 configure.ac,
354 src/m88k/ffi.c,
355 src/m88k/ffitarget.h,
356 src/m88k/obsd.S,
357 src/vax/elfbsd.S,
358 src/vax/ffi.c,
359 src/vax/ffitarget.h: Add m88k and vax support.
360
Anthony Greend3d099b2013-07-02 16:11:38 -04003612013-06-24 Alan Modra <amodra@gmail.com>
362
363 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
364 before statements.
365 (ffi_prep_args64): Support little-endian.
366 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
367 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
368 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
369
Mischa Jonkerb082e152013-06-10 16:19:33 +02003702013-06-12 Mischa Jonker <mjonker@synopsys.com>
371
372 * configure.ac: Add support for ARC.
373 * Makefile.am: Likewise.
374 * README: Add ARC details.
375 * src/arc/arcompact.S: New.
376 * src/arc/ffi.c: Likewise.
377 * src/arc/ffitarget.h: Likewise.
378
David Schneider4750e3c2013-03-28 16:56:36 +01003792013-03-28 David Schneider <david.schneider@bivab.de>
380
381 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
382 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
383 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
384 mixed arguments, many doubles.
385 * testsuite/libffi.call/many_double.c: testcase for calling a function using
386 more than 8 doubles.
387 * testcase/libffi.call/many.c: use absolute value to check result against an
388 epsilon
389
Anthony Greencb32c812013-03-17 09:27:55 -04003902013-03-17 Anthony Green <green@moxielogic.com>
391
Anthony Green12b18862013-03-17 18:32:12 -0400392 * README: Update for 3.0.13.
393 * configure.ac: Ditto.
394 * configure: Rebuilt.
395 * doc/*: Update version.
396
3972013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
398
399 * src/closures.c (is_emutramp_enabled
400 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
401 enclosing #if scope.
402
4032013-03-17 Anthony Green <green@moxielogic.com>
404
Anthony Greencb32c812013-03-17 09:27:55 -0400405 * configure.ac: Only modify toolexecdir in certain cases.
406 * configure: Rebuilt.
407
Anthony Green4acf0052013-03-16 08:18:45 -04004082013-03-16 Gilles Talis <gilles.talis@gmail.com>
409
410 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
411 fparg_count,etc on __NO_FPRS__ targets.
412
Anthony Green8a286f52013-03-16 08:01:19 -04004132013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
414
Anthony Green4acf0052013-03-16 08:18:45 -0400415 * src/m68k/sysv.S (epilogue): Don't use extb instruction on
Anthony Green8a286f52013-03-16 08:01:19 -0400416 m680000 machines.
417
Anthony Green211a9eb2013-03-16 04:24:40 -07004182013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
419
420 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
421
Anthony Green2fb527a2013-03-16 07:46:38 -04004222013-03-13 Markos Chandras <markos.chandras@imgtec.com>
423
424 * configure.ac: Add support for Imagination Technologies Meta.
425 * Makefile.am: Likewise.
426 * README: Add Imagination Technologies Meta details.
427 * src/metag/ffi.c: New.
428 * src/metag/ffitarget.h: Likewise.
429 * src/metag/sysv.S: Likewise.
430
Anthony Green675c9832013-03-16 08:12:38 -04004312013-02-24 Andreas Schwab <schwab@linux-m68k.org>
432
433 * doc/libffi.texi (Structures): Fix missing category argument of
434 @deftp.
435
Anthony Greenf308faf2013-02-11 14:25:13 -05004362013-02-11 Anthony Green <green@moxielogic.com>
437
438 * configure.ac: Update release number to 3.0.12.
439 * configure: Rebuilt.
440 * README: Update release info.
441
4422013-02-10 Anthony Green <green@moxielogic.com>
443
444 * README: Add Moxie.
445 * src/moxie/ffi.c: Created.
446 * src/moxie/eabi.S: Created.
447 * src/moxie/ffitarget.h: Created.
448 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
449 * Makefile.in: Rebuilt.
450 * configure.ac: Add Moxie.
451 * configure: Rebuilt.
452 * testsuite/libffi.call/huge_struct.c: Disable format string
453 warnings for moxie*-*-elf tests.
454
4552013-02-10 Anthony Green <green@moxielogic.com>
456
457 * Makefile.am (LTLDFLAGS): Fix reference.
458 * Makefile.in: Rebuilt.
459
Anthony Green4ea22e52013-02-10 08:48:38 -05004602013-02-10 Anthony Green <green@moxielogic.com>
461
462 * README: Update supported platforms. Update test results link.
463
Anthony Green10e77222013-02-10 08:47:26 -05004642013-02-09 Anthony Green <green@moxielogic.com>
465
466 * testsuite/libffi.call/negint.c: Remove forced -O2.
467 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
468 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
469
470 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
471 closure return type fix developed by Martin v. Löwis for cpython
472 fork.
473
Anthony Green70b11b42013-02-08 16:12:19 -05004742013-02-08 Andreas Tobler <andreast@fgznet.ch>
475
476 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
477 support.
478 * src/powerpc/sysv.S: Ditto.
479
Anthony Green63ba1fa2013-02-08 15:18:19 -05004802013-02-08 Anthony Green <green@moxielogic.com>
481
482 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
483 arm*-*-*.
484
4852013-02-08 Anthony Green <green@moxielogic.com>
486
487 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
488
Anthony Green24fbca42013-02-08 14:19:56 -05004892013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -0500490
491 * man/ffi_prep_cif.3: Clean up for debian linter.
492
Anthony Green24fbca42013-02-08 14:19:56 -05004932013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -0500494
495 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
496 on the stack.
497
Anthony Greencb03ea82013-02-08 12:25:18 -05004982013-02-08 Anthony Green <green@moxielogic.com>
499
Anthony Green7aab8252013-02-08 13:26:21 -0500500 * Makefile.am (EXTRA_DIST): Add missing files.
501 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
502 * Makefile.in: Rebuilt.
503
5042013-02-08 Anthony Green <green@moxielogic.com>
505
Anthony Greencb03ea82013-02-08 12:25:18 -0500506 * configure.ac: Move sparc asm config checks to within functions
507 for compatibility with sun tools.
508 * configure: Rebuilt.
509 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
510 systems.
511 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
512 flusher.
513
Anthony Green35ee8d42013-02-08 07:12:41 -05005142013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
515
516 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
517 small big-endian structures.
518 (ffi_prep_args): Ditto.
519
Anthony Greened6ae952013-02-07 16:43:36 -05005202013-02-07 Anthony Green <green@moxielogic.com>
521
Anthony Green9db7e1a2013-02-07 21:06:08 -0500522 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
523 (effectively hiding ffi_call_v8).
524
5252013-02-07 Anthony Green <green@moxielogic.com>
526
Anthony Greence0138e2013-02-07 18:04:01 -0500527 * configure.ac: Update bug reporting address.
528 * configure.in: Rebuild.
529
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500530 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
531 Sun compiler.
532 * src/sparc/ffi.c (ffi_call): Remove warning.
533 Call ffi_flush_icache for non-GCC builds.
534 (ffi_prep_closure_loc): Use ffi_flush_icache.
535
Anthony Greened6ae952013-02-07 16:43:36 -0500536 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
537 * Makefile.in: Rebuilt.
538 * libtool-ldflags: New file.
539
Anthony Greenffef2e02013-02-07 15:47:01 -05005402013-02-07 Daniel Schepler <dschepler@gmail.com>
541
542 * configure.ac: Correctly identify x32 systems as 64-bit.
543 * m4/libtool.m4: Remove libtool expr error.
544 * aclocal.m4, configure: Rebuilt.
545
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05005462013-02-07 Anthony Green <green@moxielogic.com>
547
Anthony Green176aa9d2013-02-07 15:29:22 -0500548 * configure.ac: Fix GCC usage test.
549 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500550 * README: Mention LLVM/GCC x86_64 issue.
551 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500552
5532013-02-07 Anthony Green <green@moxielogic.com>
554
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500555 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
556 comments with /* */ for xlc compiler.
557 * testsuite/libffi.call/stret_large.c (main): Ditto.
558 * testsuite/libffi.call/stret_large2.c (main): Ditto.
559 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
560 * testsuite/libffi.call/huge_struct.c (main): Ditto.
561 * testsuite/libffi.call/float_va.c (main): Ditto.
562 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
563 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
564 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
565 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
566
Anthony Greenf7cd61e2013-02-06 17:38:04 -05005672013-02-06 Anthony Green <green@moxielogic.com>
568
Anthony Green522f8fe2013-02-06 20:31:31 -0500569 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
570
5712013-02-06 Anthony Green <green@moxielogic.com>
572
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500573 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
574 * Makefile.in: Rebuild.
575
Anthony Green6a790122013-02-06 17:37:15 -05005762013-02-02 Mark H Weaver <mhw@netris.org>
577
578 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
579 via general purpose registers.
580
Anthony Greenaeb87192013-01-21 07:37:30 -05005812013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
582
583 * README: Add MicroBlaze details.
584 * Makefile.am: Add MicroBlaze support.
585 * configure.ac: Likewise.
586 * src/microblaze/ffi.c: New.
587 * src/microblaze/ffitarget.h: Likewise.
588 * src/microblaze/sysv.S: Likewise.
589
5902013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
591 * testsuite/libffi.call/return_uc.c: Fixed issue.
592
Anthony Green20cae322013-01-21 07:07:38 -05005932013-01-21 Chris Zankel <chris@zankel.net>
594
595 * README: Add Xtensa support.
596 * Makefile.am: Likewise.
597 * configure.ac: Likewise.
598 * Makefile.in Regenerate.
599 * configure: Likewise.
600 * src/prep_cif.c: Handle Xtensa.
601 * src/xtensa: New directory.
602 * src/xtensa/ffi.c: New file.
603 * src/xtensa/ffitarget.h: Ditto.
604 * src/xtensa/sysv.S: Ditto.
605
Anthony Greenbff052d2013-01-11 10:24:32 -05006062013-01-11 Anthony Green <green@moxielogic.com>
607
Anthony Green05fbe1f2013-01-11 16:54:40 -0500608 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
609 comments with /* */ for xlc compiler.
610 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500611 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
612 deprecated inline function.
613 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500614 * README: Add update for AIX support.
615
6162013-01-11 Anthony Green <green@moxielogic.com>
617
Anthony Greenbff052d2013-01-11 10:24:32 -0500618 * configure.ac: Robustify pc relative reloc check.
619 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
620 changing option for 32-bit x86.
621 * aclocal.m4, configure: Rebuilt.
622 * README: Update supported target list.
623
Anthony Green2d9b3932013-01-09 21:14:54 -05006242013-01-10 Anthony Green <green@moxielogic.com>
625
Anthony Greencd41aea2013-01-10 17:25:45 -0500626 * README (tested): Add Compiler column to table.
627
6282013-01-10 Anthony Green <green@moxielogic.com>
629
Anthony Green8bf987d2013-01-10 17:24:51 -0500630 * src/x86/ffi64.c (struct register_args): Make sse array and array
631 of unions for sunpro compiler compatibility.
632
6332013-01-10 Anthony Green <green@moxielogic.com>
634
Anthony Green13e2d7b2013-01-10 10:52:02 -0500635 * configure.ac: Test target platform size_t size. Handle both 32
636 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
637 CFLAG option to change default settings).
638 * configure, aclocal.m4: Rebuilt.
639
6402013-01-10 Anthony Green <green@moxielogic.com>
641
Anthony Green51415432013-01-10 07:35:53 -0500642 * testsuite/libffi.special/special.exp: Only run exception
643 handling tests when using GNU compiler.
644
Anthony Green56ba8d82013-01-10 07:25:10 -0500645 * m4/ax_compiler_vendor.m4: New file.
646 * configure.ac: Test for compiler vendor and don't use
647 AX_CFLAGS_WARN_ALL with the sun compiler.
648 * aclocal.m4, configure: Rebuilt.
649
6502013-01-10 Anthony Green <green@moxielogic.com>
651
Anthony Green6a028ca2013-01-10 01:19:43 -0500652 * include/ffi_common.h: Don't use GCCisms to define types when
653 building with the SUNPRO compiler.
654
6552013-01-10 Anthony Green <green@moxielogic.com>
656
Anthony Green2d9b3932013-01-09 21:14:54 -0500657 * configure.ac: Put local.exp in the right place.
658 * configure: Rebuilt.
659
660 * src/x86/ffi.c: Update comment about regparm function attributes.
661 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
662 that all function arguments be passed on the stack (no regparm
663 support).
664
Anthony Greenf7879bc2013-01-08 07:30:28 -05006652013-01-08 Anthony Green <green@moxielogic.com>
666
Anthony Green83089842013-01-08 15:14:21 -0500667 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
668 when we are using the vendor compiler.
669 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
670 ../local.exp.
671 * configure, testsuite/Makefile.in: Rebuilt.
672
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500673 * testsuite/libffi.call/call.exp: Run tests with different
674 options, depending on whether or not we are using gcc or the
675 vendor compiler.
676 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
677 whether or not we are building/testing with gcc.
678
6792013-01-08 Anthony Green <green@moxielogic.com>
680
Anthony Green74c776e2013-01-08 12:25:54 -0500681 * configure.ac: Switch x86 solaris target to X86 by default.
682 * configure: Rebuilt.
683
6842013-01-08 Anthony Green <green@moxielogic.com>
685
Anthony Green8962c8c2013-01-08 12:22:24 -0500686 * configure.ac: Fix test for read-only eh_frame.
687 * configure: Rebuilt.
688
6892013-01-08 Anthony Green <green@moxielogic.com>
690
Anthony Green35ddb692013-01-08 07:53:37 -0500691 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
692 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500693 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
694 compiler.
695
Anthony Green8f4772f2013-01-07 06:14:53 -05006962013-01-07 Thorsten Glaser <tg@mirbsd.org>
697
Anthony Green67cea902013-01-07 06:30:24 -0500698 * testsuite/libffi.call/cls_uchar_va.c,
699 testsuite/libffi.call/cls_ushort_va.c,
700 testsuite/libffi.call/va_1.c: Testsuite fixes.
701
7022013-01-07 Thorsten Glaser <tg@mirbsd.org>
703
Anthony Green8f4772f2013-01-07 06:14:53 -0500704 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
705 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
706 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
707
Anthony Greenea7f8442013-01-04 09:09:32 -05007082013-01-04 Anthony Green <green@moxielogic.com>
709
710 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
711 and -Wall. This is set in the configure script after testing for
712 GCC.
713 * Makefile.in: Rebuilt.
714
Anthony Greenf06c0f12013-01-02 09:39:17 -05007152013-01-02 rofl0r <https://github.com/rofl0r>
716
717 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
718 when long double == double.
719
7202013-01-02 Reini Urban <rurban@x-ray.at>
721
722 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
723 (required for shared libs on cygwin/mingw).
724 * Makefile.in: Rebuilt.
725
Anthony Greend3d099b2013-07-02 16:11:38 -04007262012-10-31 Alan Modra <amodra@gmail.co>
Anthony Greendfadfb12012-10-31 06:46:41 -0400727
728 * src/powerpc/linux64_closure.S: Add new ABI support.
729 * src/powerpc/linux64.S: Likewise.
730
Anthony Greene944b8c2012-10-30 14:06:09 -04007312012-10-30 Magnus Granberg <zorry@gentoo.org>
732 Pavel Labushev <pavel.labushev@runbox.ru>
733
734 * configure.ac: New options pax_emutramp
735 * configure, fficonfig.h.in: Regenerated
736 * src/closures.c: New function emutramp_enabled_check() and
737 checks.
738
Anthony Greenf3429962012-10-30 07:42:27 -04007392012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
740
741 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
742 lion) and future version.
743 * configure: Rebuild.
744
Anthony Green58e8b662012-10-30 07:07:19 -04007452012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
746 Marcus Shawcroft <marcus.shawcroft at arm.com>
747
748 * README: Add details of aarch64 port.
749 * src/aarch64/ffi.c: New.
750 * src/aarch64/ffitarget.h: Likewise.
751 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500752 * Makefile.am: Support aarch64.
753 * configure.ac: Support aarch64.
754 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400755
7562012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
757 Marcus Shawcroft <marcus.shawcroft at arm.com>
758
759 * testsuite/lib/libffi.exp: Add support for aarch64.
760 * testsuite/libffi.call/cls_struct_va1.c: New.
761 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
762 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500763 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400764 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
765 * testsuite/libffi.call/nested_struct11.c: Likewise.
766 * testsuite/libffi.call/uninitialized.c: Likewise.
767 * testsuite/libffi.call/va_1.c: Likewise.
768 * testsuite/libffi.call/va_struct1.c: Likewise.
769 * testsuite/libffi.call/va_struct2.c: Likewise.
770 * testsuite/libffi.call/va_struct3.c: Likewise.
771
Anthony Green9c00a3f2012-10-12 16:46:06 -04007722012-10-12 Walter Lee <walt@tilera.com>
773
774 * Makefile.am: Add TILE-Gx/TILEPro support.
775 * configure.ac: Likewise.
776 * Makefile.in: Regenerate.
777 * configure: Likewise.
778 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
779 * src/tile: New directory.
780 * src/tile/ffi.c: New file.
781 * src/tile/ffitarget.h: Ditto.
782 * src/tile/tile.S: Ditto.
783
7842012-10-12 Matthias Klose <doko@ubuntu.com>
785
786 * generate-osx-source-and-headers.py: Normalize whitespace.
787
Anthony Green048d2f42012-10-11 10:55:25 -04007882012-09-14 David Edelsohn <dje.gcc@gmail.com>
789
790 * configure: Regenerated.
791
7922012-08-26 Andrew Pinski <apinski@cavium.com>
793
794 PR libffi/53014
795 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
796 soft-float.
797
7982012-08-08 Uros Bizjak <ubizjak@gmail.com>
799
800 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
801 just return FFI_BAD_ABI when things are wrong.
802
8032012-07-18 H.J. Lu <hongjiu.lu@intel.com>
804
805 PR libffi/53982
806 PR libffi/53973
807 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
808 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
809
8102012-05-16 H.J. Lu <hongjiu.lu@intel.com>
811
812 * configure: Regenerated.
813
Nicolas Lelongd330f192012-05-05 09:37:02 -04008142012-05-05 Nicolas Lelong
815
816 * libffi.xcodeproj/project.pbxproj: Fixes.
817 * README: Update for iOS builds.
818
Anthony Green213ed152012-04-27 01:34:15 -04008192012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
820
821 * configure.ac: Add Blackfin/sysv support
822 * Makefile.am: Add Blackfin/sysv support
823 * src/bfin/ffi.c: Add Blackfin/sysv support
824 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400825
Anthony Green7e0a4122012-04-11 22:47:44 -04008262012-04-11 Anthony Green <green@moxielogic.com>
827
828 * Makefile.am (EXTRA_DIST): Add new script.
829 * Makefile.in: Rebuilt.
830
Zachary Waldowski39e6a582012-04-11 22:39:46 -04008312012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
832
833 * generate-ios-source-and-headers.py,
834 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
835 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
836 generation into an Xcode "run script" phase. Include both as
837 Xcode build scripts. Don't always regenerate config files.
838
Anthony Green853cc722012-04-10 06:33:33 -04008392012-04-10 Anthony Green <green@moxielogic.com>
840
841 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
842
Anthony Green3f502302012-04-06 20:34:51 -04008432012-04-06 Anthony Green <green@moxielogic.com>
844
845 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
846 * Makefile.in: Rebuilt.
847
Mike Lewisebb8e892012-04-06 20:02:08 -04008482012-04-06 Mike Lewis <mikelikespie@gmail.com>
849
850 * generate-ios-source-and-headers.py: New file.
851 * libffi.xcodeproj/project.pbxproj: New file.
852 * README: Update instructions on building iOS binary.
853 * build-ios.sh: Delete.
854
Anthony Greena044a562012-04-06 10:39:10 -04008552012-04-06 Anthony Green <green@moxielogic.com>
856
857 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
858 compilers, then use it.
859
Anthony Green048d2f42012-10-11 10:55:25 -04008602012-04-06 H.J. Lu <hongjiu.lu@intel.com>
861
862 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
863
Anthony Green59bb61a2012-04-06 08:26:14 -04008642012-04-06 Anthony Green <green@moxielogic.com>
865
866 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
867 * testsuite/Makefile.in: Rebuilt.
868
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04008692012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
870
871 * include/ffi.h.in: Add missing trampoline table fields.
872 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
873 in CNAME.
874 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
875
Anthony Green089dbce2013-01-02 08:37:35 -05008762012-04-02 Peter Bergner <bergner@vnet.ibm.com>
877
878 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
879 Silence casting pointer to integer of different size warning.
880 Delete goto to previously deleted label.
881 (ffi_call): Silence possibly undefined warning.
882 (ffi_closure_helper_SYSV): Declare variable type.
883
8842012-04-02 Peter Rosin <peda@lysator.liu.se>
885
886 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
887 value in the Intel version as is already done for the AT&T version.
888 (ffi_closure_SYSV): Likewise.
889 (ffi_closure_raw_SYSV): Likewise.
890 (ffi_closure_STDCALL): Likewise.
891
Peter Rosin0a1ab122012-03-30 08:14:08 -04008922012-03-29 Peter Rosin <peda@lysator.liu.se>
893
894 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
895 generation, fix the ENDP label and remove the surplus third arg
896 from the 'lea' insn.
897
8982012-03-29 Peter Rosin <peda@lysator.liu.se>
899
900 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
901 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
902 it. Also instruct the assembler to add a frame to the function.
903
9042012-03-23 Peter Rosin <peda@lysator.liu.se>
905
906 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
907 * Makefile.in: Rebuilt.
908 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
909 to all data exports, when compiling libffi clients using MSVC.
910
9112012-03-29 Peter Rosin <peda@lysator.liu.se>
912
913 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
914 make it the default for MSVC.
915 (FFI_TYPE_MS_STRUCT): New structure return convention.
916 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
917 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
918 instead of an ordinary FFI_TYPE_STRUCT.
919 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
920 (ffi_call): Likewise.
921 (ffi_prep_incoming_args_SYSV): Likewise.
922 (ffi_raw_call): Likewise.
923 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
924 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
925 return a pointer to the result structure in eax and don't pop
926 that pointer from the stack, the caller takes care of it.
927 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
928 (ffi_closure_raw_SYSV): Likewise.
929
9302012-03-22 Peter Rosin <peda@lysator.liu.se>
931
932 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
933 assembly version with Intel syntax.
934 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
935
9362012-03-23 Peter Rosin <peda@lysator.liu.se>
937
938 * testsuite/libffi.call/ffitest.h: Provide abstration of
939 __attribute__((fastcall)) in the form of a __FASTCALL__
940 define. Define it to __fastcall for MSVC.
941 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
942 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
943 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
944 * testsuite/libffi.call/strlen2_win32.c: Likewise.
945 * testsuite/libffi.call/struct1_win32.c: Likewise.
946 * testsuite/libffi.call/struct2_win32.c: Likewise.
947
9482012-03-22 Peter Rosin <peda@lysator.liu.se>
949
950 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
951 frame on function entry, MASM adds one automatically.
952
9532012-03-22 Peter Rosin <peda@lysator.liu.se>
954
955 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
956 bits in the MSVC headers.
957
9582012-03-22 Peter Rosin <peda@lysator.liu.se>
959
960 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
961 with no declarations after statements.
962 * testsuite/libffi.call/cls_16byte.c: Likewise.
963 * testsuite/libffi.call/cls_18byte.c: Likewise.
964 * testsuite/libffi.call/cls_19byte.c: Likewise.
965 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
966 * testsuite/libffi.call/cls_20byte.c: Likewise.
967 * testsuite/libffi.call/cls_20byte1.c: Likewise.
968 * testsuite/libffi.call/cls_24byte.c: Likewise.
969 * testsuite/libffi.call/cls_2byte.c: Likewise.
970 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
971 * testsuite/libffi.call/cls_3byte1.c: Likewise.
972 * testsuite/libffi.call/cls_3byte2.c: Likewise.
973 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
974 * testsuite/libffi.call/cls_4byte.c: Likewise.
975 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
976 * testsuite/libffi.call/cls_5byte.c: Likewise.
977 * testsuite/libffi.call/cls_64byte.c: Likewise.
978 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
979 * testsuite/libffi.call/cls_6byte.c: Likewise.
980 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
981 * testsuite/libffi.call/cls_7byte.c: Likewise.
982 * testsuite/libffi.call/cls_8byte.c: Likewise.
983 * testsuite/libffi.call/cls_9byte1.c: Likewise.
984 * testsuite/libffi.call/cls_9byte2.c: Likewise.
985 * testsuite/libffi.call/cls_align_double.c: Likewise.
986 * testsuite/libffi.call/cls_align_float.c: Likewise.
987 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
988 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
989 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
990 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
991 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
992 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
993 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
994 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
995 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
996 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
997 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
998 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
999 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1000 * testsuite/libffi.call/huge_struct.c: Likewise.
1001 * testsuite/libffi.call/nested_struct.c: Likewise.
1002 * testsuite/libffi.call/nested_struct1.c: Likewise.
1003 * testsuite/libffi.call/nested_struct10.c: Likewise.
1004 * testsuite/libffi.call/nested_struct2.c: Likewise.
1005 * testsuite/libffi.call/nested_struct3.c: Likewise.
1006 * testsuite/libffi.call/nested_struct4.c: Likewise.
1007 * testsuite/libffi.call/nested_struct5.c: Likewise.
1008 * testsuite/libffi.call/nested_struct6.c: Likewise.
1009 * testsuite/libffi.call/nested_struct7.c: Likewise.
1010 * testsuite/libffi.call/nested_struct8.c: Likewise.
1011 * testsuite/libffi.call/nested_struct9.c: Likewise.
1012 * testsuite/libffi.call/stret_large.c: Likewise.
1013 * testsuite/libffi.call/stret_large2.c: Likewise.
1014 * testsuite/libffi.call/stret_medium.c: Likewise.
1015 * testsuite/libffi.call/stret_medium2.c: Likewise.
1016 * testsuite/libffi.call/struct1.c: Likewise.
1017 * testsuite/libffi.call/struct1_win32.c: Likewise.
1018 * testsuite/libffi.call/struct2.c: Likewise.
1019 * testsuite/libffi.call/struct2_win32.c: Likewise.
1020 * testsuite/libffi.call/struct3.c: Likewise.
1021 * testsuite/libffi.call/struct4.c: Likewise.
1022 * testsuite/libffi.call/struct5.c: Likewise.
1023 * testsuite/libffi.call/struct6.c: Likewise.
1024 * testsuite/libffi.call/struct7.c: Likewise.
1025 * testsuite/libffi.call/struct8.c: Likewise.
1026 * testsuite/libffi.call/struct9.c: Likewise.
1027 * testsuite/libffi.call/testclosure.c: Likewise.
1028
Anthony Greene72ed5e2012-03-21 09:52:28 -040010292012-03-21 Peter Rosin <peda@lysator.liu.se>
1030
1031 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
1032 printing doubles (%lf is for long doubles).
1033 (main): Likewise.
1034
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010352012-03-21 Peter Rosin <peda@lysator.liu.se>
1036
1037 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1038 (set_ld_library_path_env_vars): Add the library search dir to PATH
1039 (and save PATH for later).
1040 (restore_ld_library_path_env_vars): Restore PATH.
1041
Anthony Greenccee09a2013-01-02 08:41:55 -050010422012-03-21 Peter Rosin <peda@lysator.liu.se>
1043
1044 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1045 (set_ld_library_path_env_vars): Add the library search dir to PATH
1046 (and save PATH for later).
1047 (restore_ld_library_path_env_vars): Restore PATH.
1048
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010492012-03-20 Peter Rosin <peda@lysator.liu.se>
1050
1051 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1052 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1053 visible outside the PROC, so that ffi_closure_THISCALL can see it.
1054
Anthony Green048d2f42012-10-11 10:55:25 -040010552012-03-20 Peter Rosin <peda@lysator.liu.se>
1056
1057 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1058 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1059 visible outside the PROC, so that ffi_closure_THISCALL can see it.
1060
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010612012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
1062
1063 * src/m68k/ffi.c: Add MINT support.
1064 * src/m68k/sysv.S: Ditto.
1065
Anthony Green048d2f42012-10-11 10:55:25 -040010662012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
1067
1068 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
1069 ffi_call_VFP().
1070 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
1071 ffi_closure_VFP.
1072 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
1073
Anthony Green089dbce2013-01-02 08:37:35 -050010742012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -04001075
Anthony Green089dbce2013-01-02 08:37:35 -05001076 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
1077 support.
Anthony Green048d2f42012-10-11 10:55:25 -04001078
Anthony Green84d32532012-03-19 23:07:35 -040010792012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
1080
1081 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1082 just return FFI_BAD_ABI when things are wrong.
1083 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
1084
10852012-03-09 David Edelsohn <dje.gcc@gmail.com>
1086
1087 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
1088 change to return value of ffi_closure_helper_DARWIN and load type
1089 from return type.
1090
Anthony Green964c5b92012-03-03 14:46:20 -050010912012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1092
1093 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
1094 long.
1095 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
1096 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
1097 first.
1098
1099 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
1100 (ffi_arg): Set to unsigned long long for x32.
1101 (ffi_sarg): Set to long long for x32.
1102
11032012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1104
1105 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
1106
Anthony Green6c194232012-03-03 14:17:54 -050011072012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
1108
1109 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
1110 windows-like hosts.
1111 * configure: Rebuilt.
1112
Anthony Green7c5e60b2012-03-29 08:48:22 -040011132012-02-27 Mikael Pettersson <mikpe@it.uu.se>
1114
1115 PR libffi/52223
1116 * Makefile.am (FLAGS_TO_PASS): Define.
1117 * Makefile.in: Regenerate.
1118
Anthony Green8360bf12012-02-23 07:01:13 -050011192012-02-23 Anthony Green <green@moxielogic.com>
1120
1121 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
1122 directly.
1123
Anthony Green7c5e60b2012-03-29 08:48:22 -040011242012-02-23 Kai Tietz <ktietz@redhat.com>
1125
1126 PR libffi/52221
1127 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
1128 prototype.
1129 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
1130 thiscall-convention.
1131 (ffi_raw_call): Use ffi_prep_args_raw.
1132 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
1133 implementation for stub.
1134
Anthony Greendee20f82012-02-10 13:06:46 -050011352012-02-10 Kai Tietz <ktietz@redhat.com>
1136
1137 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
1138 windows target.
1139 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -05001140
Anthony Greendee20f82012-02-10 13:06:46 -050011412012-02-08 Kai Tietz <ktietz@redhat.com>
1142
1143 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
1144 also FFI_THISCALL.
1145 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
1146 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
1147 (ffi_prep_closure_loc): Add FFI_THISCALL support.
1148 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
1149 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
1150 for thiscall-calling convention.
1151 * testsuite/libffi.call/closure_thiscall.c: New test.
1152
Anthony Green1ff9c602012-02-01 16:34:30 -060011532012-01-28 Kai Tietz <ktietz@redhat.com>
1154
1155 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
1156 argument to prototype for specify calling-convention.
1157 (ffi_call): Add support for stdcall/thiscall convention.
1158 (ffi_prep_args): Likewise.
1159 (ffi_raw_call): Likewise.
1160 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
1161 FFI_FASTCALL.
1162 * src/x86/win32.S (_ffi_call_win32): Add support for
1163 fastcall/thiscall calling-convention calls.
1164 * testsuite/libffi.call/fastthis1_win32.c: New test.
1165 * testsuite/libffi.call/fastthis2_win32.c: New test.
1166 * testsuite/libffi.call/fastthis3_win32.c: New test.
1167 * testsuite/libffi.call/strlen2_win32.c: New test.
1168 * testsuite/libffi.call/many2_win32.c: New test.
1169 * testsuite/libffi.call/struct1_win32.c: New test.
1170 * testsuite/libffi.call/struct2_win32.c: New test.
1171
Anthony Green211060e2012-01-23 14:24:01 -050011722012-01-23 Uros Bizjak <ubizjak@gmail.com>
1173
1174 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
1175
Anthony Green1ff9c602012-02-01 16:34:30 -060011762012-01-23 Anthony Green <green@moxielogic.com>
1177 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -05001178
1179 * configure.ac: Add Amiga support.
1180 * configure: Rebuilt.
1181
11822012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -05001183
1184 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
1185
Anthony Green1ff9c602012-02-01 16:34:30 -060011862012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -05001187
1188 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
1189 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
1190
Anthony Greenc365ee72012-01-23 11:13:18 -050011912012-01-19 Jakub Jelinek <jakub@redhat.com>
1192
1193 PR rtl-optimization/48496
1194 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
1195
11962012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1197
1198 * configure.ac (i?86-*-*): Set TARGET to X86_64.
1199 * configure: Regenerate.
1200
12012011-12-07 Andrew Pinski <apinski@cavium.com>
1202
1203 PR libffi/50051
1204 * src/mips/n32.S: Add ".set mips4".
1205
12062011-11-21 Andreas Tobler <andreast@fgznet.ch>
1207
1208 * configure: Regenerate.
1209
Anthony Greenff9454d2011-11-12 17:18:51 -050012102011-11-12 David Gilbert <david.gilbert@linaro.org>
1211
1212 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
1213 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
1214 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
1215 src/cris/ffi.c, src/prep_cif.c,
1216 testsuite/libffi.call/cls_double_va.c,
1217 testsuite/libffi.call/cls_longdouble_va.c,
1218 testsuite/libffi.call/float_va.c: Many changes to support variadic
1219 function calls.
1220
Anthony Green52891f82011-11-12 16:35:55 -050012212011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1222
1223 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
1224 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
1225 softfloat powerpc variants.
1226
Anthony Green6a6e7f82011-11-12 16:20:42 -050012272011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
1228
1229 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
1230 * configure: Rebuilt.
1231
Anthony Greend52fbed2011-11-12 16:13:41 -050012322011-11-12 Timothy Wall <twall@users.sf.net>
1233
1234 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
1235 alignment of 4 for wince on ARM.
1236
Anthony Greenaf18df22011-11-12 15:52:08 -050012372011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1238 Anthony Green <green@moxielogic.com>
1239
1240 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
1241 instructions (not available on some cores, like the PPC440).
1242
Anthony Greenc411f142011-11-12 07:32:36 -050012432011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -04001244
Anthony Greenc411f142011-11-12 07:32:36 -05001245 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -05001246 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -05001247 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
1248 X 10.7.
1249 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -04001250
Anthony Green6a6e7f82011-11-12 16:20:42 -050012512011-11-12 Anthony Green <green@moxielogic.com>
1252
1253 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1254 files with debug info.
1255 * Makefile.in: Rebuilt.
1256
12572011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1258
1259 * README: Update list of supported OpenBSD systems.
1260
12612011-11-12 Anthony Green <green@moxielogic.com>
1262
1263 * libtool-version: Update.
1264 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1265 FFI_DEBUG.
1266 (libffi_la_SOURCES): Remove src/debug.c
1267 (EXTRA_DIST): Add src/debug.c
1268 * Makefile.in: Rebuilt.
1269 * README: Update for 3.0.11.
1270
Anthony Green3d561062011-11-12 07:20:24 -050012712011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -04001272
Anthony Green3d561062011-11-12 07:20:24 -05001273 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1274 * configure, aclocal.m4: Rebuild.
1275
12762011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1277
1278 PR libffi/49594
1279 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1280 helper reference track the architecture pointer size.
1281
12822011-08-25 Andrew Haley <aph@redhat.com>
1283
1284 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1285 instructions.
1286 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -04001287
Anthony Greend992ac52011-07-29 17:32:53 -040012882011-07-11 Andrew Haley <aph@redhat.com>
1289
1290 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1291
12922011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1293
1294 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1295 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1296
12972011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1298
1299 PR libffi/46660
1300 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1301 mips-sgi-irix6*.
1302 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1303
13042011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1305
1306 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1307 PRId8 instead of %hhu, %hhd.
1308 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1309 PRIu8): Define.
1310 [__sgi__] (PRId8, PRIu8): Define.
1311
13122011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1313
1314 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1315 Define.
1316 Use them to handle ELF vs. ECOFF differences.
1317 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1318
Anthony Green2d3fb362011-03-30 16:54:42 -040013192011-03-30 Timothy Wall <twall@users.sf.net>
1320
1321 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1322 * src/powerpc/darwin_closure.S: ditto.
1323
Anthony Green25416792011-02-25 15:09:13 -050013242011-02-25 Anthony Green <green@moxielogic.com>
1325
Anthony Green74ee6ea2011-02-25 15:52:14 -05001326 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1327 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05001328
Anthony Green8cf88782011-02-15 15:19:49 -050013292011-02-15 Anthony Green <green@moxielogic.com>
1330
1331 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1332 * configure: Rebuilt.
1333
Anthony Greend992ac52011-07-29 17:32:53 -040013342011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1335
1336 * configure: Regenerate.
1337
Anthony Green1fbf9dc2011-02-13 08:06:39 -050013382011-02-13 Anthony Green <green@moxielogic.com>
1339
1340 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1341 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1342 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1343
1344 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1345 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1346
1347 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1348 just return FFI_BAD_ABI when things are wrong.
1349 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1350 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1351 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1352 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1353 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1354
Anthony Green1833aa02011-02-11 07:11:04 -050013552011-02-11 Anthony Green <green@moxielogic.com>
1356
1357 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1358 just return FFI_BAD_ABI when things are wrong.
1359
Anthony Green7c5e60b2012-03-29 08:48:22 -040013602012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1361
1362 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1363
Anthony Green42695e72011-02-09 15:12:35 -050013642011-02-09 Stuart Shelton <srcshelton@gmail.com>
1365
1366 http://bugs.gentoo.org/show_bug.cgi?id=286911
1367 * src/mips/ffitarget.h: Clean up error messages.
1368 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1369 ffi_raw*.
1370 * include/ffi.h.in: Add pragma for SGI compiler.
1371
Anthony Greena6e56b92011-02-09 15:00:42 -050013722011-02-09 Anthony Green <green@moxielogic.com>
1373
1374 * configure.ac: Add powerpc64-*-darwin* support.
1375
Anthony Green0cad4382011-02-09 06:11:46 -050013762011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05001377
Anthony Green747d6c32011-02-09 14:56:23 -05001378 * README: Mention Interix.
1379
13802011-02-09 Jonathan Callen <abcd@gentoo.org>
1381
1382 * configure.ac: Add Interix to win32/cygwin/mingw case.
1383 * configure: Ditto.
1384 * src/closures.c: Treat Interix like Cygwin, instead of as a
1385 generic win32.
1386
13872011-02-09 Anthony Green <green@moxielogic.com>
1388
Anthony Green69dbe842011-02-09 07:38:43 -05001389 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1390 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1391 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1392 (ffi_prep_closure_loc): Check for bad ABI.
1393 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1394 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -05001395
Anthony Green90af15e2011-02-12 12:29:36 -050013962011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -05001397
1398 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1399 src/arm/trampoline.S.
1400 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1401 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1402 * src/arm/ffi.c (ffi_trampoline_table)
1403 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1404 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1405 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1406 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1407 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1408 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1409 separately.
1410 * src/arm/sysv.S: Handle Apple iOS host.
1411 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001412 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001413 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001414 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001415
Anthony Greendc411e82011-02-08 10:49:29 -050014162011-02-08 Oren Held <orenhe@il.ibm.com>
1417
1418 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1419 redefinition of mallinfo on HP-UX.
1420
Anthony Green404585d2011-02-08 10:44:36 -050014212011-02-08 Ginn Chen <ginn.chen@oracle.com>
1422
1423 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001424 aggregate return ABI. Flush cache.
1425 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001426
Anthony Green6972a4f2011-02-11 07:32:51 -050014272011-02-11 Anthony Green <green@moxielogic.com>
1428
1429 From Tom Honermann <tom.honermann@oracle.com>:
1430 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1431 AIX. Declare .ffi_prep_args. Insert nops after branch
1432 instructions so that the AIX linker can insert TOC reload
1433 instructions.
1434 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1435
Anthony Greend992ac52011-07-29 17:32:53 -040014362011-02-08 Ed <ed@kdtc.net>
1437
1438 * src/powerpc/asm.h: Fix grammar nit in comment.
1439
Anthony Green89284fe2011-02-08 10:19:19 -050014402011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1441
1442 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1443
Anthony Greend992ac52011-07-29 17:32:53 -040014442011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1445
1446 PR libffi/46661
1447 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1448 uintptr_t first.
1449 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1450
Anthony Greened2c5182011-02-08 10:10:07 -050014512011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1452
1453 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001454 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001455
Anthony Green3b836242011-02-08 14:28:59 -050014562011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1457
1458 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1459 Handle case when CPU variant does not have long double support.
1460 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1461 and cores with soft floating point.
1462
14632011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1464
1465 * configure.ac: Add mips*-*-rtems* support.
1466 * configure: Regenerate.
1467 * src/mips/ffitarget.h: Ensure needed constants are available
1468 for targets which do not have sgidefs.h.
1469
Anthony Green0e584392011-02-08 07:52:40 -050014702011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1471
1472 PR target/40125
1473 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1474 * configure: Regenerate.
1475
14762010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1477
1478 PR libffi/29152
1479 PR libffi/42378
1480 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1481 update comments.
1482 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1483 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1484 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1485 update comments.
1486 * src/powerpc/ffi_darwin.c: Likewise.
1487
14882010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1489
1490 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1491 backslashes.
1492 (libffi_cv_as_string_pseudo_op): Likewise.
1493 * configure: Regenerate.
1494
14952010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1496
1497 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1498 (ffi_closure_VFP): Same.
1499 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1500 directive.
1501
15022010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1503
1504 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1505 (PRIuPTR): Define.
1506
15072010-11-29 Richard Henderson <rth@redhat.com>
1508 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1509
1510 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1511 (.eh_frame): Use FDE_ENCODING.
1512 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1513
Anthony Green5b9cd522010-11-22 15:19:57 -050015142010-11-22 Jacek Caban <jacek@codeweavers.com>
1515
1516 * configure.ac: Check for symbol underscores on mingw-w64.
1517 * configure: Rebuilt.
1518 * src/x86/win64.S: Correctly access extern symbols in respect to
1519 underscores.
1520
Anthony Green2db72612010-11-21 10:50:56 -050015212010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1522
1523 * testsuite/lib/libffi-dg.exp: Rename ...
1524 * testsuite/lib/libffi.exp: ... to this.
1525 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1526 * libffi/testsuite/libffi.special/special.exp: Likewise.
1527
15282010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1529
1530 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1531 code, new parameter, and return value. Update comments.
1532 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1533 call to layout_vfp_args().
1534 (ffi_call_SYSV): Update declaration.
1535 (ffi_call_VFP): New declaration.
1536 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1537 when ABI is FFI_VFP.
1538 (ffi_closure_VFP): New declaration.
1539 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1540 ffi_prep_incoming_args_SYSV().
1541 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1542 case handling.
1543 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1544 construction under VFP hard-float.
1545 (rec_vfp_type_p): New function.
1546 (vfp_type_p): Same.
1547 (place_vfp_arg): Same.
1548 (layout_vfp_args): Same.
1549 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1550 based on __ARM_PCS_VFP.
1551 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1552 fields.
1553 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1554 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1555 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1556 direct call. Move function pointer load upwards.
1557 (ffi_call_VFP): New function.
1558 (ffi_closure_VFP): Same.
1559
1560 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1561 (dg-skip-if): New function.
1562 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1563 and compiler options include -mfloat-abi=hard.
1564 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1565
15662010-10-01 Jakub Jelinek <jakub@redhat.com>
1567
1568 PR libffi/45677
1569 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1570 a multiple of 8.
1571 * testsuite/libffi.call/many2.c: New test.
1572
15732010-08-20 Mark Wielaard <mjw@redhat.com>
1574
1575 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1576 returns NULL.
1577
15782010-08-09 Andreas Tobler <andreast@fgznet.ch>
1579
1580 * configure.ac: Add target powerpc64-*-freebsd*.
1581 * configure: Regenerate.
1582 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1583 -mlong-double-128 only to linux targets.
1584 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1585 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1586 * testsuite/libffi.call/huge_struct.c: Likewise.
1587
Anthony Green00d0b592010-08-05 14:56:53 -040015882010-08-05 Dan Witte <dwitte@mozilla.com>
1589
1590 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1591 debug CRT when --enable-debug is given.
1592 * configure.ac: Define it.
1593 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1594
Anthony Greenc1d28ba2010-08-05 08:48:16 -040015952010-08-04 Dan Witte <dwitte@mozilla.com>
1596
1597 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1598 platforms.
1599 * src/x86/ffi.c: Remove redundant ifdef checks.
1600 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1601 for X86_ANY so return value space doesn't get added twice.
1602
Anthony Greenbda487e2010-08-05 09:02:41 -040016032010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1604
1605 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1606
Anthony Greend14178b2010-07-23 09:14:00 -040016072010-07-22 Dan Witte <dwitte@mozilla.com>
1608
1609 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1610 * src/prep_cif.c: Fix ABI assertion.
1611 * src/cris/ffi.c: Ditto.
1612
Anthony Greeneaf444e2010-07-10 08:59:09 -040016132010-07-10 Evan Phoenix <evan@fallingsnow.net>
1614
1615 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1616
Anthony Green5feacad2010-08-05 08:30:04 -040016172010-07-07 Dan Horák <dan@danny.cz>
1618
1619 * include/ffi.h.in: Protect #define with #ifndef.
1620 * src/powerpc/ffitarget.h: Ditto.
1621 * src/s390/ffitarget.h: Ditto.
1622 * src/sparc/ffitarget.h: Ditto.
1623
Anthony Green2db72612010-11-21 10:50:56 -050016242010-07-07 Neil Roberts <neil@linux.intel.com>
1625
1626 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1627 16-bytes.
1628
16292010-07-02 Jakub Jelinek <jakub@redhat.com>
1630
1631 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1632 * Makefile.in: Regenerated.
1633
16342010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1635
1636 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1637 output, too.
1638 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1639 (libffi_cv_as_string_pseudo_op): Check for .string.
1640 * configure: Regenerate.
1641 * fficonfig.h.in: Regenerate.
1642 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1643
Anthony Green10ea8482010-08-05 08:24:27 -040016442010-05-11 Dan Witte <dwitte@mozilla.com>
1645
1646 * doc/libffi.tex: Document previous change.
1647
16482010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1649
1650 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1651
Anthony Green63097412010-05-05 20:14:56 -040016522010-05-05 Michael Kohler <michaelkohler@live.com>
1653
1654 * src/dlmalloc.c (dlfree): Fix spelling.
1655 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1656 * configure.ac: Ditto.
1657 * configure: Rebuilt.
1658
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040016592010-04-13 Dan Witte <dwitte@mozilla.com>
1660
1661 * msvcc.sh: Build with -W3 instead of -Wall.
1662 * src/powerpc/ffi_darwin.c: Remove build warnings.
1663 * src/x86/ffi.c: Ditto.
1664 * src/x86/ffitarget.h: Ditto.
1665
Anthony Green2db72612010-11-21 10:50:56 -050016662010-04-12 Dan Witte <dwitte@mozilla.com>
1667 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001668
Anthony Green2db72612010-11-21 10:50:56 -05001669 * configure.ac: Add OS/2 support.
1670 * configure: Rebuilt.
1671 * src/closures.c: Ditto.
1672 * src/dlmalloc.c: Ditto.
1673 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001674
16752010-04-07 Jakub Jelinek <jakub@redhat.com>
1676
Anthony Green2db72612010-11-21 10:50:56 -05001677 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001678
16792010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1680
1681 * Makefile.in: Regenerate.
1682 * aclocal.m4: Regenerate.
1683 * include/Makefile.in: Regenerate.
1684 * man/Makefile.in: Regenerate.
1685 * testsuite/Makefile.in: Regenerate.
1686
Anthony Green2db72612010-11-21 10:50:56 -050016872010-03-30 Dan Witte <dwitte@mozilla.com>
1688
1689 * msvcc.sh: Disable build warnings.
1690 * README (tested): Clarify windows build procedure.
1691
Anthony Green3f5b1372010-07-12 14:39:18 -040016922010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1693
1694 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1695 * configure: Regenerate.
1696 * fficonfig.h.in: Regenerate.
1697 * libffi/src/x86/unix64.S (.eh_frame)
1698 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1699
Anthony Green2db72612010-11-21 10:50:56 -050017002010-03-14 Matthias Klose <doko@ubuntu.com>
1701
1702 * src/x86/ffi64.c: Fix typo in comment.
1703 * src/x86/ffi.c: Use /* ... */ comment style.
1704
Anthony Green9dc9a292010-04-13 10:33:52 -040017052010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1706
1707 * doc/libffi.texi (The Closure API): Fix typo.
1708 * doc/libffi.info: Remove.
1709
17102010-02-15 Matthias Klose <doko@ubuntu.com>
1711
1712 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1713 __ARM_ARCH_7EM__.
1714
Anthony Green2db72612010-11-21 10:50:56 -050017152010-01-15 Anthony Green <green@redhat.com>
1716
1717 * README: Add notes on building with Microsoft Visual C++.
1718
17192010-01-15 Daniel Witte <dwitte@mozilla.com>
1720
1721 * msvcc.sh: New file.
1722
1723 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1724 * src/x86/ffi.c: Tweak function declaration and remove excess
1725 parens.
1726 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1727 ffi_closure.
1728
1729 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1730 function ffi_call_win32 on X86_WIN32.
1731 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1732 (ffi_call_STDCALL): Remove.
1733
1734 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1735 to ffi_prep_cif_machdep for x86.
1736 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1737
17382010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1739
1740 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001741 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001742
17432010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1744
1745 * doc/libffi.texi: Add closure example.
1746
Anthony Green7b7a42f2010-01-12 09:14:14 -050017472010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1748
1749 PR libffi/40701
1750 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1751 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1752 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1753 alpha*-dec-osf*.
1754 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1755 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1756 * testsuite/libffi.call/return_ll1.c: Likewise.
1757 * testsuite/libffi.call/stret_medium2.c: Likewise.
1758 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1759 MAP_FAILED to char *.
1760
17612010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1762
1763 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1764
Anthony Greenc3042af2010-01-01 08:08:02 -050017652009-12-31 Anthony Green <green@redhat.com>
1766
1767 * README: Update for libffi 3.0.9.
1768
17692009-12-27 Matthias Klose <doko@ubuntu.com>
1770
1771 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1772 appropriate.
1773 * configure: Rebuilt.
1774
17752009-12-26 Anthony Green <green@redhat.com>
1776
1777 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1778 avr32*-*-*.
1779 * testsuite/libffi.call/cls_double_va.c: Ditto.
1780
17812009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1782
1783 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1784 and inttypes.h.
1785 * testsuite/libffi.special/unwindtest.cc: Ditto.
1786
17872009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1788
1789 * configure.ac: Add amd64-*-openbsd*.
1790 * configure: Rebuilt.
1791 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1792 openbsd programs with -lpthread.
1793
17942009-12-26 Anthony Green <green@redhat.com>
1795
1796 * testsuite/libffi.call/cls_double_va.c,
1797 testsuite/libffi.call/cls_longdouble.c,
1798 testsuite/libffi.call/cls_longdouble_va.c,
1799 testsuite/libffi.call/cls_pointer.c,
1800 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1801 mips*-*-* and arm*-*-*.
1802 * testsuite/libffi.call/cls_align_longdouble_split.c,
1803 testsuite/libffi.call/cls_align_longdouble_split2.c,
1804 testsuite/libffi.call/stret_medium2.c,
1805 testsuite/libffi.call/stret_medium.c,
1806 testsuite/libffi.call/stret_large.c,
1807 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1808
18092009-12-31 Kay Tietz <ktietz70@googlemail.com>
1810
1811 * testsuite/libffi.call/ffitest.h,
1812 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1813 definitions.
1814
18152009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1816
1817 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1818 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1819 * configure: Rebuilt.
1820 * Makefile.in: Rebuilt.
1821
18222009-12-31 Anthony Green <green@redhat.com>
1823 Blake Chaffin.
1824
1825 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1826 Chaffin @ Apple.
1827
Anthony Green0cfe60e2009-12-29 10:06:04 -050018282009-12-28 David Edelsohn <edelsohn@gnu.org>
1829
1830 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1831 local variables.
1832 (aix_adjust_aggregate_sizes): New function.
1833 (ffi_prep_cif_machdep): Call it.
1834
18352009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1836
1837 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1838 * configure: Regenerate.
1839 * fficonfig.h.in: Likewise.
1840 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1841 Solaris/x86.
1842
18432009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1844
1845 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1846 when a float arguments is passed in memory.
1847 (ffi_closure_helper_SYSV): Mark general registers as used up when
1848 a 64bit or soft-float long double argument is passed in memory.
1849
Anthony Green9458d882009-12-26 07:02:27 -050018502009-12-25 Matthias Klose <doko@ubuntu.com>
1851
1852 * man/ffi_call.3: Fix #include in examples.
1853 * doc/libffi.texi: Add dircategory.
1854
18552009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1856
1857 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1858 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1859 IRIX MIPSPro c99.
1860 * include/ffi_common.h: Added '__sgi' define to non
1861 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001862 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001863 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1864 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1865 FFI_LONGDOUBLE support and alignment(N32 only).
1866 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1867 fixed non '__attribute__((__mode__()))' integer typedefs.
1868 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1869 since they are Linux/GNU Assembler specific.
1870
18712009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1872
1873 * configure.ac, Makefile.am, src/avr32/ffi.c,
1874 src/avr32/ffitarget.h,
1875 src/avr32/sysv.S: Add AVR32 port.
1876 * configure, Makefile.in: Rebuilt.
1877
Anthony Green115ab362009-12-24 00:22:00 -050018782009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1879
1880 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1881 * configure: Regenerate.
1882
18832009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1884
1885 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1886
18872009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1888
1889 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1890 type on HP-UX.
1891
Anthony Green7c5e60b2012-03-29 08:48:22 -040018922012-02-13 Kai Tietz <ktietz@redhat.com>
1893
1894 PR libffi/52221
1895 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1896 support for X86_WIN32.
1897 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1898
Anthony Green115ab362009-12-24 00:22:00 -050018992009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1900
1901 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1902 double' arguments.
1903
19042009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1905
1906 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1907
19082009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1909
1910 PR libffi/40700
1911 * src/closures.c [X86_64 && __sun__ && __svr4__]
1912 (FFI_MMAP_EXEC_WRIT): Define.
1913
19142009-12-08 David Daney <ddaney@caviumnetworks.com>
1915
1916 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1917 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1918 * testsuite/libffi.call/stret_large.c: Same.
1919 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1920 * testsuite/libffi.call/stret_large2.c: Same.
1921 * testsuite/libffi.call/stret_medium2.c: Same.
1922
19232009-12-07 David Edelsohn <edelsohn@gnu.org>
1924
1925 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1926 typo.
1927
19282009-12-05 David Edelsohn <edelsohn@gnu.org>
1929
1930 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1931 code.
1932 * src/powerpc/aix_closure.S: Same.
1933
19342009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1935
1936 * Makefile.in: Regenerate.
1937 * configure: Regenerate.
1938 * include/Makefile.in: Regenerate.
1939 * man/Makefile.in: Regenerate.
1940 * testsuite/Makefile.in: Regenerate.
1941
19422009-12-04 David Edelsohn <edelsohn@gnu.org>
1943
1944 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001945 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001946
19472009-12-04 Uros Bizjak <ubizjak@gmail.com>
1948
1949 PR libffi/41908
1950 * src/x86/ffi64.c (classify_argument): Update from
1951 gcc/config/i386/i386.c.
1952 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1953 SSE registers directly.
1954 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1955 for x86_64 linux targets.
1956
19572009-12-04 David Edelsohn <edelsohn@gnu.org>
1958
1959 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1960 pfr for long double split between fpr13 and stack.
1961
19622009-12-03 David Edelsohn <edelsohn@gnu.org>
1963
1964 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1965 fparg_count twice for long double.
1966
19672009-12-03 David Edelsohn <edelsohn@gnu.org>
1968
1969 PR libffi/42243
1970 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1971
19722009-12-03 Uros Bizjak <ubizjak@gmail.com>
1973
1974 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1975 Remove xfails for x86 linux targets.
1976
19772009-12-02 David Edelsohn <edelsohn@gnu.org>
1978
1979 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1980 case.
1981
19822009-12-01 David Edelsohn <edelsohn@gnu.org>
1983
1984 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1985 register usage. Call ffi_prep_args directly. Add long double
1986 return value support.
1987 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1988 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1989 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1990 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1991 mode.
1992 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1993 into case.
1994 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1995 Allocate result area between params and FPRs.
1996
19972009-11-30 David Edelsohn <edelsohn@gnu.org>
1998
1999 PR target/35484
2000 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
2001 AIX64.
2002 * src/powerpc/aix.S: Implement AIX64 version.
2003 * src/powerpc/aix_closure.S: Implement AIX64 version.
2004 (ffi_closure_ASM): Use extsb, lha and displament addresses.
2005 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
2006 support.
2007 (ffi_prep_cif_machdep): Same.
2008 (ffi_call): Same.
2009 (ffi_closure_helper_DARWIN): Same.
2010
20112009-11-02 Andreas Tobler <a.tobler@schweiz.org>
2012
2013 PR libffi/41908
2014 * testsuite/libffi.call/testclosure.c: New test.
2015
Anthony Greenc6dddbd2009-10-04 08:11:33 -040020162009-09-28 Kai Tietz <kai.tietz@onevision.com>
2017
2018 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
2019 assembly version use of ___chkstk.
2020
20212009-09-23 Matthias Klose <doko@ubuntu.com>
2022
2023 PR libffi/40242, PR libffi/41443
2024 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
2025 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
2026 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
2027 Change the conditionals to __SOFTFP__ || __ARM_EABI__
2028 for -mfloat-abi=softfp to work.
2029
20302009-09-17 Loren J. Rittle <ljrittle@acm.org>
2031
2032 PR testsuite/32843 (strikes again)
2033 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
2034 enable proper extension on char and short.
2035
20362009-09-15 David Daney <ddaney@caviumnetworks.com>
2037
2038 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
2039 handling for FFI_TYPE_POINTER.
2040 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
2041 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
2042 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
2043 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
2044 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
2045 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
2046 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
2047 structure and pointer returns.
2048 (ffi_closure_N32): Add handling for pointer returns.
2049 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
2050 calc_n32_return_struct_flags): Handle soft-float.
2051 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
2052 (ffi_call_N32): Declare proper argument types.
2053 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
2054 soft-float.
2055
20562009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2057
2058 * configure.ac (AC_PREREQ): Bump to 2.64.
2059
20602009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2061
2062 * Makefile.am (install-html, install-pdf): Remove.
2063 * Makefile.in: Regenerate.
2064
2065 * Makefile.in: Regenerate.
2066 * aclocal.m4: Regenerate.
2067 * configure: Regenerate.
2068 * fficonfig.h.in: Regenerate.
2069 * include/Makefile.in: Regenerate.
2070 * man/Makefile.in: Regenerate.
2071 * testsuite/Makefile.in: Regenerate.
2072
Anthony Green3d561062011-11-12 07:20:24 -050020732011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
2074
2075 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
2076 * configure: Rebuilt.
2077
Anthony Greenc6dddbd2009-10-04 08:11:33 -040020782009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2079
2080 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2081
20822009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
2083
2084 PR libffi/40807
2085 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
2086 return types for X86_WIN32.
2087 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
2088 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
2089 _ffi_closure_STDCALL): Likewise.
2090
2091 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
2092 (dlmmap, dlmunmap): Also use these functions on Cygwin.
2093
20942009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
2095
2096 PR testsuite/40699
2097 PR testsuite/40707
2098 PR testsuite/40709
2099 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
2100 2009-06-30 commits.
2101
21022009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2103
2104 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
2105 to "" before adding paths. (This reinstates an assignment that
2106 was removed by my 2009-06-30 commit, but changes the initial
2107 value from "." to "".)
2108
21092009-07-01 H.J. Lu <hongjiu.lu@intel.com>
2110
2111 PR testsuite/40601
2112 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
2113 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
2114 empty.
2115
21162009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
2117
2118 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
2119 to ld_library_path. Use add_path. Add just find_libgcc_s
2120 to ld_library_path, not every libgcc multilib directory.
2121
21222009-06-16 Wim Lewis <wiml@hhhh.org>
2123
2124 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
2125 supposed to be callee-saved.
2126 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
2127 return buffer for odd-size structs.
2128
21292009-06-16 Andreas Tobler <a.tobler@schweiz.org>
2130
2131 PR libffi/40444
2132 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
2133 allow_stack_execute for Darwin.
2134
21352009-06-16 Andrew Haley <aph@redhat.com>
2136
2137 * configure.ac (TARGETDIR): Add missing blank lines.
2138 * configure: Regenerate.
2139
21402009-06-16 Andrew Haley <aph@redhat.com>
2141
2142 * testsuite/libffi.call/cls_align_sint64.c,
2143 testsuite/libffi.call/cls_align_uint64.c,
2144 testsuite/libffi.call/cls_longdouble_va.c,
2145 testsuite/libffi.call/cls_ulonglong.c,
2146 testsuite/libffi.call/return_ll1.c,
2147 testsuite/libffi.call/stret_medium2.c: Fix printf format
2148 specifiers.
2149 * testsuite/libffi.call/ffitest.h,
2150 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
2151
21522009-06-15 Andrew Haley <aph@redhat.com>
2153
2154 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
2155 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002156
Anthony Greenc6dddbd2009-10-04 08:11:33 -040021572009-06-12 Andrew Haley <aph@redhat.com>
2158
2159 * Makefile.am: Remove info_TEXINFOS.
2160
21612009-06-12 Andrew Haley <aph@redhat.com>
2162
2163 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
2164 testsuite/libffi.call/cls_align_uint64.c,
2165 testsuite/libffi.call/cls_ulonglong.c,
2166 testsuite/libffi.call/return_ll1.c,
2167 testsuite/libffi.call/stret_medium2.c: Fix printf format
2168 specifiers.
2169 testsuite/libffi.special/unwindtest.cc: include stdint.h.
2170
21712009-06-11 Timothy Wall <twall@users.sf.net>
2172
2173 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002174 configure.ac,
2175 include/ffi.h.in,
2176 include/ffi_common.h,
2177 src/closures.c,
2178 src/dlmalloc.c,
2179 src/x86/ffi.c,
2180 src/x86/ffitarget.h,
2181 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002182 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05002183 * Makefile.in,
2184 include/Makefile.in,
2185 man/Makefile.in,
2186 testsuite/Makefile.in,
2187 configure,
2188 aclocal.m4: Regenerated
2189 * ltcf-c.sh: properly escape cygwin/w32 path
2190 * man/ffi_call.3: Clarify size requirements for return value.
2191 * src/x86/ffi64.c: Fix filename in comment.
2192 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002193
Anthony Green0cfe60e2009-12-29 10:06:04 -05002194 * testsuite/libffi.call/closure_fn0.c,
2195 testsuite/libffi.call/closure_fn1.c,
2196 testsuite/libffi.call/closure_fn2.c,
2197 testsuite/libffi.call/closure_fn3.c,
2198 testsuite/libffi.call/closure_fn4.c,
2199 testsuite/libffi.call/closure_fn5.c,
2200 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002201 testsuite/libffi.call/closure_stdcall.c,
2202 testsuite/libffi.call/cls_12byte.c,
2203 testsuite/libffi.call/cls_16byte.c,
2204 testsuite/libffi.call/cls_18byte.c,
2205 testsuite/libffi.call/cls_19byte.c,
2206 testsuite/libffi.call/cls_1_1byte.c,
2207 testsuite/libffi.call/cls_20byte.c,
2208 testsuite/libffi.call/cls_20byte1.c,
2209 testsuite/libffi.call/cls_24byte.c,
2210 testsuite/libffi.call/cls_2byte.c,
2211 testsuite/libffi.call/cls_3_1byte.c,
2212 testsuite/libffi.call/cls_3byte1.c,
2213 testsuite/libffi.call/cls_3byte2.c,
2214 testsuite/libffi.call/cls_4_1byte.c,
2215 testsuite/libffi.call/cls_4byte.c,
2216 testsuite/libffi.call/cls_5_1_byte.c,
2217 testsuite/libffi.call/cls_5byte.c,
2218 testsuite/libffi.call/cls_64byte.c,
2219 testsuite/libffi.call/cls_6_1_byte.c,
2220 testsuite/libffi.call/cls_6byte.c,
2221 testsuite/libffi.call/cls_7_1_byte.c,
2222 testsuite/libffi.call/cls_7byte.c,
2223 testsuite/libffi.call/cls_8byte.c,
2224 testsuite/libffi.call/cls_9byte1.c,
2225 testsuite/libffi.call/cls_9byte2.c,
2226 testsuite/libffi.call/cls_align_double.c,
2227 testsuite/libffi.call/cls_align_float.c,
2228 testsuite/libffi.call/cls_align_longdouble.c,
2229 testsuite/libffi.call/cls_align_longdouble_split.c,
2230 testsuite/libffi.call/cls_align_longdouble_split2.c,
2231 testsuite/libffi.call/cls_align_pointer.c,
2232 testsuite/libffi.call/cls_align_sint16.c,
2233 testsuite/libffi.call/cls_align_sint32.c,
2234 testsuite/libffi.call/cls_align_sint64.c,
2235 testsuite/libffi.call/cls_align_uint16.c,
2236 testsuite/libffi.call/cls_align_uint32.c,
2237 testsuite/libffi.call/cls_align_uint64.c,
2238 testsuite/libffi.call/cls_dbls_struct.c,
2239 testsuite/libffi.call/cls_double.c,
2240 testsuite/libffi.call/cls_double_va.c,
2241 testsuite/libffi.call/cls_float.c,
2242 testsuite/libffi.call/cls_longdouble.c,
2243 testsuite/libffi.call/cls_longdouble_va.c,
2244 testsuite/libffi.call/cls_multi_schar.c,
2245 testsuite/libffi.call/cls_multi_sshort.c,
2246 testsuite/libffi.call/cls_multi_sshortchar.c,
2247 testsuite/libffi.call/cls_multi_uchar.c,
2248 testsuite/libffi.call/cls_multi_ushort.c,
2249 testsuite/libffi.call/cls_multi_ushortchar.c,
2250 testsuite/libffi.call/cls_pointer.c,
2251 testsuite/libffi.call/cls_pointer_stack.c,
2252 testsuite/libffi.call/cls_schar.c,
2253 testsuite/libffi.call/cls_sint.c,
2254 testsuite/libffi.call/cls_sshort.c,
2255 testsuite/libffi.call/cls_uchar.c,
2256 testsuite/libffi.call/cls_uint.c,
2257 testsuite/libffi.call/cls_ulonglong.c,
2258 testsuite/libffi.call/cls_ushort.c,
2259 testsuite/libffi.call/err_bad_abi.c,
2260 testsuite/libffi.call/err_bad_typedef.c,
2261 testsuite/libffi.call/float2.c,
2262 testsuite/libffi.call/huge_struct.c,
2263 testsuite/libffi.call/nested_struct.c,
2264 testsuite/libffi.call/nested_struct1.c,
2265 testsuite/libffi.call/nested_struct10.c,
2266 testsuite/libffi.call/nested_struct2.c,
2267 testsuite/libffi.call/nested_struct3.c,
2268 testsuite/libffi.call/nested_struct4.c,
2269 testsuite/libffi.call/nested_struct5.c,
2270 testsuite/libffi.call/nested_struct6.c,
2271 testsuite/libffi.call/nested_struct7.c,
2272 testsuite/libffi.call/nested_struct8.c,
2273 testsuite/libffi.call/nested_struct9.c,
2274 testsuite/libffi.call/problem1.c,
2275 testsuite/libffi.call/return_ldl.c,
2276 testsuite/libffi.call/return_ll1.c,
2277 testsuite/libffi.call/stret_large.c,
2278 testsuite/libffi.call/stret_large2.c,
2279 testsuite/libffi.call/stret_medium.c,
2280 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002281 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2282 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002283
22842009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2285
2286 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2287 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2288 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2289
22902009-06-09 Andrew Haley <aph@redhat.com>
2291
2292 * src/x86/freebsd.S: Add missing file.
2293
22942009-06-08 Andrew Haley <aph@redhat.com>
2295
2296 Import from libffi 3.0.8:
2297
2298 * doc/libffi.texi: New file.
2299 * doc/libffi.info: Likewise.
2300 * doc/stamp-vti: Likewise.
2301 * man/Makefile.am: New file.
2302 * man/ffi_call.3: New file.
2303
2304 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2305 src/dlmalloc.c.
2306 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2307
2308 * configure.ac: Bump version to 3.0.8.
2309 parisc*-*-linux*: Add.
2310 i386-*-freebsd* | i386-*-openbsd*: Add.
2311 powerpc-*-beos*: Add.
2312 AM_CONDITIONAL X86_FREEBSD: Add.
2313 AC_CONFIG_FILES: Add man/Makefile.
2314
2315 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2316
23172009-06-08 Andrew Haley <aph@redhat.com>
2318
2319 * README: Import from libffi 3.0.8.
2320
23212009-06-08 Andrew Haley <aph@redhat.com>
2322
2323 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2324 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2325 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2326 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2327
2328 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2329 * testsuite/libffi.call/stret_medium.c: Likewise.
2330 * testsuite/libffi.call/stret_large2.c: Likewise.
2331 * testsuite/libffi.call/stret_large.c: Likewise.
2332
23332008-12-26 Timothy Wall <twall@users.sf.net>
2334
Anthony Green0cfe60e2009-12-29 10:06:04 -05002335 * testsuite/libffi.call/cls_longdouble.c,
2336 testsuite/libffi.call/cls_longdouble_va.c,
2337 testsuite/libffi.call/cls_align_longdouble.c,
2338 testsuite/libffi.call/cls_align_longdouble_split.c,
2339 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2340 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002341
23422008-12-22 Timothy Wall <twall@users.sf.net>
2343
Anthony Green0cfe60e2009-12-29 10:06:04 -05002344 * testsuite/libffi.call/closure_fn0.c,
2345 testsuite/libffi.call/closure_fn1.c,
2346 testsuite/libffi.call/closure_fn2.c,
2347 testsuite/libffi.call/closure_fn3.c,
2348 testsuite/libffi.call/closure_fn4.c,
2349 testsuite/libffi.call/closure_fn5.c,
2350 testsuite/libffi.call/closure_fn6.c,
2351 testsuite/libffi.call/closure_loc_fn0.c,
2352 testsuite/libffi.call/closure_stdcall.c,
2353 testsuite/libffi.call/cls_align_pointer.c,
2354 testsuite/libffi.call/cls_pointer.c,
2355 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2356 pointer to integer (intptr_t).
2357 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002358
23592008-07-24 Anthony Green <green@redhat.com>
2360
Anthony Green0cfe60e2009-12-29 10:06:04 -05002361 * testsuite/libffi.call/cls_dbls_struct.c,
2362 testsuite/libffi.call/cls_double_va.c,
2363 testsuite/libffi.call/cls_longdouble.c,
2364 testsuite/libffi.call/cls_longdouble_va.c,
2365 testsuite/libffi.call/cls_pointer.c,
2366 testsuite/libffi.call/cls_pointer_stack.c,
2367 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2368 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002369
23702008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002371 Blake Chaffin
2372 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002373
Anthony Green0cfe60e2009-12-29 10:06:04 -05002374 * testsuite/libffi.call/cls_align_longdouble_split2.c
2375 testsuite/libffi.call/cls_align_longdouble_split.c
2376 testsuite/libffi.call/cls_dbls_struct.c
2377 testsuite/libffi.call/cls_double_va.c
2378 testsuite/libffi.call/cls_longdouble.c
2379 testsuite/libffi.call/cls_longdouble_va.c
2380 testsuite/libffi.call/cls_pointer.c
2381 testsuite/libffi.call/cls_pointer_stack.c
2382 testsuite/libffi.call/err_bad_abi.c
2383 testsuite/libffi.call/err_bad_typedef.c
2384 testsuite/libffi.call/stret_large2.c
2385 testsuite/libffi.call/stret_large.c
2386 testsuite/libffi.call/stret_medium2.c
2387 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002388
23892009-06-05 Andrew Haley <aph@redhat.com>
2390
2391 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2392 libffi.
2393
23942009-06-04 Andrew Haley <aph@redhat.com>
2395
2396 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2397 stdcall changes.
2398
23992008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002400 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002401
Anthony Green0cfe60e2009-12-29 10:06:04 -05002402 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2403 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002404
24052008-02-03 Timothy Wall <twall@users.sf.net>
2406
Anthony Green0cfe60e2009-12-29 10:06:04 -05002407 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2408 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002409
24102008-01-31 Timothy Wall <twall@users.sf.net>
2411
Anthony Green0cfe60e2009-12-29 10:06:04 -05002412 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2413 closures.
2414 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2415 closures.
2416 * src/x86/win32.S: Add assembly for stdcall closure.
2417 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002418
24192009-06-04 Andrew Haley <aph@redhat.com>
2420
2421 * include/ffi.h.in: Change void (*)() to void (*)(void).
2422 * src/x86/ffi.c: Likewise.
2423
24242009-06-04 Andrew Haley <aph@redhat.com>
2425
2426 * src/powerpc/ppc_closure.S: Insert licence header.
2427 * src/powerpc/linux64_closure.S: Likewise.
2428 * src/m68k/sysv.S: Likewise.
2429
2430 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2431 * src/powerpc/ffi.c: Likewise.
2432 * src/powerpc/ffi_darwin.c: Likewise.
2433 * src/m32r/ffi.c: Likewise.
2434 * src/sh64/ffi.c: Likewise.
2435 * src/x86/ffi64.c: Likewise.
2436 * src/alpha/ffi.c: Likewise.
2437 * src/alpha/osf.S: Likewise.
2438 * src/frv/ffi.c: Likewise.
2439 * src/s390/ffi.c: Likewise.
2440 * src/pa/ffi.c: Likewise.
2441 * src/pa/hpux32.S: Likewise.
2442 * src/ia64/unix.S: Likewise.
2443 * src/ia64/ffi.c: Likewise.
2444 * src/sparc/ffi.c: Likewise.
2445 * src/mips/ffi.c: Likewise.
2446 * src/sh/ffi.c: Likewise.
2447
24482008-02-15 David Daney <ddaney@avtrex.com>
2449
Anthony Green0cfe60e2009-12-29 10:06:04 -05002450 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2451 Define (conditionally), and use it to include cachectl.h.
2452 (ffi_prep_closure_loc): Fix cache flushing.
2453 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002454
24552009-06-04 Andrew Haley <aph@redhat.com>
2456
2457 include/ffi.h.in,
2458 src/arm/ffitarget.h,
2459 src/arm/ffi.c,
2460 src/arm/sysv.S,
2461 src/powerpc/ffitarget.h,
2462 src/closures.c,
2463 src/sh64/ffitarget.h,
2464 src/sh64/ffi.c,
2465 src/sh64/sysv.S,
2466 src/types.c,
2467 src/x86/ffi64.c,
2468 src/x86/ffitarget.h,
2469 src/x86/win32.S,
2470 src/x86/darwin.S,
2471 src/x86/ffi.c,
2472 src/x86/sysv.S,
2473 src/x86/unix64.S,
2474 src/alpha/ffitarget.h,
2475 src/alpha/ffi.c,
2476 src/alpha/osf.S,
2477 src/m68k/ffitarget.h,
2478 src/frv/ffitarget.h,
2479 src/frv/ffi.c,
2480 src/s390/ffitarget.h,
2481 src/s390/sysv.S,
2482 src/cris/ffitarget.h,
2483 src/pa/linux.S,
2484 src/pa/ffitarget.h,
2485 src/pa/ffi.c,
2486 src/raw_api.c,
2487 src/ia64/ffitarget.h,
2488 src/ia64/unix.S,
2489 src/ia64/ffi.c,
2490 src/ia64/ia64_flags.h,
2491 src/java_raw_api.c,
2492 src/debug.c,
2493 src/sparc/v9.S,
2494 src/sparc/ffitarget.h,
2495 src/sparc/ffi.c,
2496 src/sparc/v8.S,
2497 src/mips/ffitarget.h,
2498 src/mips/n32.S,
2499 src/mips/o32.S,
2500 src/mips/ffi.c,
2501 src/prep_cif.c,
2502 src/sh/ffitarget.h,
2503 src/sh/ffi.c,
2504 src/sh/sysv.S: Update license text.
2505
25062009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2507
2508 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2509 (.eh_frame): Add FDE for it.
2510
25112009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2512
2513 * configure.ac: Also check if assembler supports pc-relative
2514 relocs on X86_WIN32 targets.
2515 * configure: Regenerate.
2516 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2517 (_ffi_call_SYSV): Add missing function type symbol .def and
2518 add EH markup labels.
2519 (_ffi_call_STDCALL): Likewise.
2520 (_ffi_closure_SYSV): Likewise.
2521 (_ffi_closure_raw_SYSV): Likewise.
2522 (.eh_frame): Add hand-crafted EH data.
2523
25242009-04-09 Jakub Jelinek <jakub@redhat.com>
2525
2526 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2527 version 3 of the GNU General Public License and to point readers
2528 at the COPYING3 file and the FSF's license web page.
2529 * testsuite/libffi.call/call.exp: Likewise.
2530 * testsuite/libffi.special/special.exp: Likewise.
2531
25322009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2533
2534 * configure: Regenerate.
2535
25362008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2537
2538 PR libffi/26048
2539 * configure.ac (HAVE_AS_X86_PCREL): New test.
2540 * configure: Regenerate.
2541 * fficonfig.h.in: Regenerate.
2542 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2543 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2544 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2545 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2546 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2547 (.Lload_table): Likewise.
2548 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2549
25502008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2551
2552 * configure: Regenerate.
2553
25542008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2555
2556 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2557 signed/unsigned int8/16 return values.
2558 * src/sparc/v8.S (ffi_call_v8): Likewise.
2559 (ffi_closure_v8): Likewise.
2560
25612008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002562 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002563
2564 * configure: Regenerate for new libtool.
2565 * Makefile.in: Ditto.
2566 * include/Makefile.in: Ditto.
2567 * aclocal.m4: Ditto.
2568
25692008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2570
2571 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2572 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2573 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2574 Adjust copyright notice.
2575 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2576 register or two register to use for FFI_SYSV structs.
2577 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2578 (ffi_closure_helper_SYSV): Fix the return type for
2579 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2580 Adjust copyright notice.
2581
25822008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2583
2584 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2585 int.
2586
25872008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2588
2589 * configure: Regenerate.
2590 * include/Makefile.in: Regenerate.
2591 * testsuite/Makefile.in: Regenerate.
2592
25932008-06-07 Joseph Myers <joseph@codesourcery.com>
2594
2595 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2596 powerpc-*-beos*): Remove.
2597 * configure: Regenerate.
2598
25992008-05-09 Julian Brown <julian@codesourcery.com>
2600
2601 * Makefile.am (LTLDFLAGS): New.
2602 (libffi_la_LDFLAGS): Use above.
2603 * Makefile.in: Regenerate.
2604
26052008-04-18 Paolo Bonzini <bonzini@gnu.org>
2606
2607 PR bootstrap/35457
2608 * aclocal.m4: Regenerate.
2609 * configure: Regenerate.
2610
26112008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2612
2613 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2614 * src/sh64/sysv.S: Likewise.
2615
26162008-03-26 Daniel Jacobowitz <dan@debian.org>
2617
2618 * src/arm/sysv.S: Fix ARM comment marker.
2619
26202008-03-26 Jakub Jelinek <jakub@redhat.com>
2621
2622 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2623 * src/s390/sysv.S: Likewise.
2624 * src/powerpc/ppc_closure.S: Likewise.
2625 * src/powerpc/sysv.S: Likewise.
2626 * src/x86/unix64.S: Likewise.
2627 * src/x86/sysv.S: Likewise.
2628 * src/sparc/v8.S: Likewise.
2629 * src/sparc/v9.S: Likewise.
2630 * src/m68k/sysv.S: Likewise.
2631 * src/arm/sysv.S: Likewise.
2632
26332008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2634
2635 * aclocal.m4: Regenerate.
2636 * configure: Likewise.
2637 * Makefile.in: Likewise.
2638 * include/Makefile.in: Likewise.
2639 * testsuite/Makefile.in: Likewise.
2640
26412008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2642 Andreas Tobler <a.tobler@schweiz.org>
2643
2644 * configure.ac: Add amd64-*-freebsd* target.
2645 * configure: Regenerate.
2646
26472008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2648
2649 PR libffi/34612
2650 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2651 returning struct.
2652
2653 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2654 tests.
2655
26562008-01-24 David Edelsohn <edelsohn@gnu.org>
2657
2658 * configure: Regenerate.
2659
26602008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2661
2662 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2663
26642008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2665
2666 PR testsuite/32843
2667 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2668 signed/unsigned int8/16 for X86_DARWIN.
2669 Updated copyright info.
2670 Handle one and two byte structs with special cif->flags.
2671 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2672 Updated copyright info.
2673 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2674 sysv.S
2675 Remove code to pop args from the stack after call.
2676 Special-case signed/unsigned for int8/16, one and two byte structs.
2677 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2678 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2679 FFI_TYPE_SINT32.
2680 Updated copyright info.
2681
26822007-12-08 David Daney <ddaney@avtrex.com>
2683
Anthony Green0cfe60e2009-12-29 10:06:04 -05002684 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002685 SUBU, add with ADDU and use smaller code sequences.
2686
26872007-12-07 David Daney <ddaney@avtrex.com>
2688
2689 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2690 type.
2691
26922007-12-06 David Daney <ddaney@avtrex.com>
2693
2694 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2695 defined.
2696 (ffi_java_raw): New typedef.
2697 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2698 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2699 ffi_java_raw.
2700 (ffi_java_raw_closure) : Same.
2701 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2702 parameter types.
2703 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2704 FFI_SIZEOF_JAVA_RAW.
2705 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2706 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2707 sizeof(ffi_java_raw) for alignment calculations.
2708 (ffi_java_ptrarray_to_raw): Same.
2709 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002710 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002711 (ffi_java_raw_to_rvalue): Same.
2712 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2713 (ffi_java_translate_args): Same.
2714 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2715 parameter types.
2716 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2717
27182007-12-06 David Daney <ddaney@avtrex.com>
2719
Anthony Green0cfe60e2009-12-29 10:06:04 -05002720 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002721 pointer values.
2722
27232007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2724
2725 PR libffi/31937
2726 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2727 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2728 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2729 set the NUM_FPR_ARG_REGISTERS according to.
2730 Add support for potential soft-float support under hard-float
2731 architecture.
2732 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2733 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2734 to the FFI_LINUX_SOFT_FLOAT ABI.
2735 (ffi_prep_cif_machdep): Likewise.
2736 (ffi_closure_helper_SYSV): Likewise.
2737 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2738 on archs where __NO_FPRS__ is true.
2739 Add FFI_TYPE_UINT128 support.
2740 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2741 Adjust copyright notice.
2742
27432007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2744
2745 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2746 * include/ffi_common.h: ... here.
2747 Update copyright.
2748
27492007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2750
2751 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2752 * src/powerpc/linux64.S: Likewise.
2753 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2754 * testsuite/libffi.call/return_ldl.c: New test.
2755
27562007-09-04 <aph@redhat.com>
2757
2758 * src/arm/sysv.S (UNWIND): New.
2759 (Whole file): Conditionally compile unwinder directives.
2760 * src/arm/sysv.S: Add unwinder directives.
2761
2762 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2763 Only treat r0 as a struct address if we're actually returning a
2764 struct by address.
2765 Only copy the bytes that are actually within a struct.
2766 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2767 is returned in r0, not passed by address.
2768 (ffi_call): Allocate a word-sized temporary for the case where
2769 a composite is returned in r0.
2770 (ffi_prep_incoming_args_SYSV): Align as necessary.
2771
27722007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2773
Anthony Green0cfe60e2009-12-29 10:06:04 -05002774 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002775 directly using the sys_cacheflush syscall.
2776
27772007-07-27 Andrew Haley <aph@redhat.com>
2778
2779 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2780
27812007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2782
2783 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2784 * configure.ac: Likewise.
2785 * Makefile.in: Regenerate.
2786 * include/Makefile.in: Likewise.
2787 * testsuite/Makefile.in: Likewise.
2788 * configure: Likewise.
2789
27902007-08-24 David Daney <ddaney@avtrex.com>
2791
2792 * testsuite/libffi.call/return_sl.c: New test.
2793
27942007-08-10 David Daney <ddaney@avtrex.com>
2795
2796 * testsuite/libffi.call/cls_multi_ushort.c,
2797 testsuite/libffi.call/cls_align_uint16.c,
2798 testsuite/libffi.call/nested_struct1.c,
2799 testsuite/libffi.call/nested_struct3.c,
2800 testsuite/libffi.call/cls_7_1_byte.c,
2801 testsuite/libffi.call/nested_struct5.c,
2802 testsuite/libffi.call/cls_double.c,
2803 testsuite/libffi.call/nested_struct7.c,
2804 testsuite/libffi.call/cls_sint.c,
2805 testsuite/libffi.call/nested_struct9.c,
2806 testsuite/libffi.call/cls_20byte1.c,
2807 testsuite/libffi.call/cls_multi_sshortchar.c,
2808 testsuite/libffi.call/cls_align_sint64.c,
2809 testsuite/libffi.call/cls_3byte2.c,
2810 testsuite/libffi.call/cls_multi_schar.c,
2811 testsuite/libffi.call/cls_multi_uchar.c,
2812 testsuite/libffi.call/cls_19byte.c,
2813 testsuite/libffi.call/cls_9byte1.c,
2814 testsuite/libffi.call/cls_align_float.c,
2815 testsuite/libffi.call/closure_fn1.c,
2816 testsuite/libffi.call/problem1.c,
2817 testsuite/libffi.call/closure_fn3.c,
2818 testsuite/libffi.call/cls_sshort.c,
2819 testsuite/libffi.call/closure_fn5.c,
2820 testsuite/libffi.call/cls_align_double.c,
2821 testsuite/libffi.call/nested_struct.c,
2822 testsuite/libffi.call/cls_2byte.c,
2823 testsuite/libffi.call/nested_struct10.c,
2824 testsuite/libffi.call/cls_4byte.c,
2825 testsuite/libffi.call/cls_6byte.c,
2826 testsuite/libffi.call/cls_8byte.c,
2827 testsuite/libffi.call/cls_multi_sshort.c,
2828 testsuite/libffi.call/cls_align_sint16.c,
2829 testsuite/libffi.call/cls_align_uint32.c,
2830 testsuite/libffi.call/cls_20byte.c,
2831 testsuite/libffi.call/cls_float.c,
2832 testsuite/libffi.call/nested_struct2.c,
2833 testsuite/libffi.call/cls_5_1_byte.c,
2834 testsuite/libffi.call/nested_struct4.c,
2835 testsuite/libffi.call/cls_24byte.c,
2836 testsuite/libffi.call/nested_struct6.c,
2837 testsuite/libffi.call/cls_64byte.c,
2838 testsuite/libffi.call/nested_struct8.c,
2839 testsuite/libffi.call/cls_uint.c,
2840 testsuite/libffi.call/cls_multi_ushortchar.c,
2841 testsuite/libffi.call/cls_schar.c,
2842 testsuite/libffi.call/cls_uchar.c,
2843 testsuite/libffi.call/cls_align_uint64.c,
2844 testsuite/libffi.call/cls_ulonglong.c,
2845 testsuite/libffi.call/cls_align_longdouble.c,
2846 testsuite/libffi.call/cls_1_1byte.c,
2847 testsuite/libffi.call/cls_12byte.c,
2848 testsuite/libffi.call/cls_3_1byte.c,
2849 testsuite/libffi.call/cls_3byte1.c,
2850 testsuite/libffi.call/cls_4_1byte.c,
2851 testsuite/libffi.call/cls_6_1_byte.c,
2852 testsuite/libffi.call/cls_16byte.c,
2853 testsuite/libffi.call/cls_18byte.c,
2854 testsuite/libffi.call/closure_fn0.c,
2855 testsuite/libffi.call/cls_9byte2.c,
2856 testsuite/libffi.call/closure_fn2.c,
2857 testsuite/libffi.call/closure_fn4.c,
2858 testsuite/libffi.call/cls_ushort.c,
2859 testsuite/libffi.call/closure_fn6.c,
2860 testsuite/libffi.call/cls_5byte.c,
2861 testsuite/libffi.call/cls_align_pointer.c,
2862 testsuite/libffi.call/cls_7byte.c,
2863 testsuite/libffi.call/cls_align_sint32.c,
2864 testsuite/libffi.special/unwindtest_ffi_call.cc,
2865 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2866
28672007-08-10 David Daney <ddaney@avtrex.com>
2868
2869 PR libffi/28313
2870 * configure.ac: Don't treat mips64 as a special case.
2871 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2872 * configure: Regenerate
2873 * Makefile.in: Ditto.
2874 * fficonfig.h.in: Ditto.
2875 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2876 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2877 (FFI_DEFAULT_ABI): Set for n64 case.
2878 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2879 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2880 (ffi_closure_N32): New function.
2881 (.eh_frame): New section
2882 * src/mips/o32.S: Clean up comments.
2883 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2884 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2885 _MIPS_SIM == _ABIN32 throughout.
2886 (FFI_MIPS_STOP_HERE): New, use in place of
2887 ffi_stop_here.
2888 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2889 to support n32/n64 ABIs.
2890 (calc_n32_struct_flags): Rewrite.
2891 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2892 position of flag bits.
2893 (ffi_prep_cif_machdep): Rewrite n32 portion.
2894 (ffi_call): Enable for n64. Add special handling for small structure
2895 return values.
2896 (ffi_prep_closure_loc): Add n32 and n64 support.
2897 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2898 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2899
29002007-08-08 David Daney <ddaney@avtrex.com>
2901
2902 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2903 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2904 specifiers.
2905 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2906 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2907 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2908 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2909 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2910 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2911 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2912 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2913 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2914 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2915 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2916 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2917 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2918 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2919 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2920 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2921 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2922 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2923 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2924 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2925 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2926 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2927 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2928 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2929 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2930 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2931 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2932 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2933 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2934 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2935 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2936
29372007-08-07 Andrew Haley <aph@redhat.com>
2938
2939 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2940 checkin.
2941
29422007-08-06 Andrew Haley <aph@redhat.com>
2943
2944 PR testsuite/32843
2945 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2946 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2947 FFI_TYPE_SINT32.
2948
29492007-08-02 David Daney <ddaney@avtrex.com>
2950
2951 * testsuite/libffi.call/return_ul.c (main): Define return type as
2952 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002953
Anthony Greenc6dddbd2009-10-04 08:11:33 -040029542007-07-30 Andrew Haley <aph@redhat.com>
2955
2956 PR testsuite/32843
2957 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2958 signed/unsigned int8/16.
2959 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2960 Use a jump table.
2961 Remove code to pop args from the stack after call.
2962 Special-case signed/unsigned int8/16.
2963 * testsuite/libffi.call/return_sc.c (main): Revert.
2964
29652007-07-26 Richard Guenther <rguenther@suse.de>
2966
2967 PR testsuite/32843
2968 * testsuite/libffi.call/return_sc.c (main): Verify call
2969 result as signed char, not ffi_arg.
2970
29712007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2972
2973 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2974 * configure: Regenerate.
2975
29762007-07-11 David Daney <ddaney@avtrex.com>
2977
2978 * src/mips/ffi.c: Don't include sys/cachectl.h.
2979 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2980 cacheflush().
2981
29822007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2983
2984 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2985 from (ffi_prep_closure): ... this.
2986 (FFI_INIT_TRAMPOLINE): Adjust.
2987
29882005-12-31 Phil Blundell <pb@reciva.com>
2989
Anthony Green0cfe60e2009-12-29 10:06:04 -05002990 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2991 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002992 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2993 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2994 (FFI_CLOSURES): Enable closure support.
2995
29962007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2997
Anthony Green0cfe60e2009-12-29 10:06:04 -05002998 * testsuite/libffi.call/cls_multi_ushort.c,
2999 testsuite/libffi.call/cls_align_uint16.c,
3000 testsuite/libffi.call/nested_struct1.c,
3001 testsuite/libffi.call/nested_struct3.c,
3002 testsuite/libffi.call/cls_7_1_byte.c,
3003 testsuite/libffi.call/cls_double.c,
3004 testsuite/libffi.call/nested_struct5.c,
3005 testsuite/libffi.call/nested_struct7.c,
3006 testsuite/libffi.call/cls_sint.c,
3007 testsuite/libffi.call/nested_struct9.c,
3008 testsuite/libffi.call/cls_20byte1.c,
3009 testsuite/libffi.call/cls_multi_sshortchar.c,
3010 testsuite/libffi.call/cls_align_sint64.c,
3011 testsuite/libffi.call/cls_3byte2.c,
3012 testsuite/libffi.call/cls_multi_schar.c,
3013 testsuite/libffi.call/cls_multi_uchar.c,
3014 testsuite/libffi.call/cls_19byte.c,
3015 testsuite/libffi.call/cls_9byte1.c,
3016 testsuite/libffi.call/cls_align_float.c,
3017 testsuite/libffi.call/closure_fn1.c,
3018 testsuite/libffi.call/problem1.c,
3019 testsuite/libffi.call/closure_fn3.c,
3020 testsuite/libffi.call/cls_sshort.c,
3021 testsuite/libffi.call/closure_fn5.c,
3022 testsuite/libffi.call/cls_align_double.c,
3023 testsuite/libffi.call/cls_2byte.c,
3024 testsuite/libffi.call/nested_struct.c,
3025 testsuite/libffi.call/nested_struct10.c,
3026 testsuite/libffi.call/cls_4byte.c,
3027 testsuite/libffi.call/cls_6byte.c,
3028 testsuite/libffi.call/cls_8byte.c,
3029 testsuite/libffi.call/cls_multi_sshort.c,
3030 testsuite/libffi.call/cls_align_uint32.c,
3031 testsuite/libffi.call/cls_align_sint16.c,
3032 testsuite/libffi.call/cls_float.c,
3033 testsuite/libffi.call/cls_20byte.c,
3034 testsuite/libffi.call/cls_5_1_byte.c,
3035 testsuite/libffi.call/nested_struct2.c,
3036 testsuite/libffi.call/cls_24byte.c,
3037 testsuite/libffi.call/nested_struct4.c,
3038 testsuite/libffi.call/nested_struct6.c,
3039 testsuite/libffi.call/cls_64byte.c,
3040 testsuite/libffi.call/nested_struct8.c,
3041 testsuite/libffi.call/cls_uint.c,
3042 testsuite/libffi.call/cls_multi_ushortchar.c,
3043 testsuite/libffi.call/cls_schar.c,
3044 testsuite/libffi.call/cls_uchar.c,
3045 testsuite/libffi.call/cls_align_uint64.c,
3046 testsuite/libffi.call/cls_ulonglong.c,
3047 testsuite/libffi.call/cls_align_longdouble.c,
3048 testsuite/libffi.call/cls_1_1byte.c,
3049 testsuite/libffi.call/cls_12byte.c,
3050 testsuite/libffi.call/cls_3_1byte.c,
3051 testsuite/libffi.call/cls_3byte1.c,
3052 testsuite/libffi.call/cls_4_1byte.c,
3053 testsuite/libffi.call/cls_6_1_byte.c,
3054 testsuite/libffi.call/cls_16byte.c,
3055 testsuite/libffi.call/cls_18byte.c,
3056 testsuite/libffi.call/closure_fn0.c,
3057 testsuite/libffi.call/cls_9byte2.c,
3058 testsuite/libffi.call/closure_fn2.c,
3059 testsuite/libffi.call/closure_fn4.c,
3060 testsuite/libffi.call/cls_ushort.c,
3061 testsuite/libffi.call/closure_fn6.c,
3062 testsuite/libffi.call/cls_5byte.c,
3063 testsuite/libffi.call/cls_align_pointer.c,
3064 testsuite/libffi.call/cls_7byte.c,
3065 testsuite/libffi.call/cls_align_sint32.c,
3066 testsuite/libffi.special/unwindtest_ffi_call.cc,
3067 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003068
30692007-07-05 H.J. Lu <hongjiu.lu@intel.com>
3070
3071 * aclocal.m4: Regenerated.
3072
30732007-06-02 Paolo Bonzini <bonzini@gnu.org>
3074
3075 * configure: Regenerate.
3076
30772007-05-23 Steve Ellcey <sje@cup.hp.com>
3078
3079 * Makefile.in: Regenerate.
3080 * configure: Regenerate.
3081 * aclocal.m4: Regenerate.
3082 * include/Makefile.in: Regenerate.
3083 * testsuite/Makefile.in: Regenerate.
3084
30852007-05-10 Roman Zippel <zippel@linux-m68k.org>
3086
3087 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
3088 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
3089 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
3090 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
3091 (FFI_CLOSURES): Enable closure support.
3092
30932007-05-10 Roman Zippel <zippel@linux-m68k.org>
3094
3095 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
3096 * configure: Regenerate.
3097 * fficonfig.h.in: Regenerate.
3098 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
3099 CFI_OFFSET,CFI_DEF_CFA): New macros.
3100 (ffi_call_SYSV): Add callframe annotation.
3101
31022007-05-10 Roman Zippel <zippel@linux-m68k.org>
3103
3104 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
3105 numerous test suite failures.
3106 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
3107
31082007-04-11 Paolo Bonzini <bonzini@gnu.org>
3109
3110 * Makefile.am (EXTRA_DIST): Bring up to date.
3111 * Makefile.in: Regenerate.
3112 * src/frv/eabi.S: Remove RCS keyword.
3113
31142007-04-06 Richard Henderson <rth@redhat.com>
3115
3116 * configure.ac: Tidy target case.
3117 (HAVE_LONG_DOUBLE): Allow the target to override.
3118 * configure: Regenerate.
3119 * include/ffi.h.in: Don't define ffi_type_foo if
3120 LIBFFI_HIDE_BASIC_TYPES is defined.
3121 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
3122 to ffi_type_double.
3123 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
3124 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
3125 (ffi_type_longdouble): Special case for Alpha. Don't define
3126 if long double == double.
3127
3128 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
3129 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
3130 (ffi_call, ffi_closure_osf_inner): Likewise.
3131 (ffi_closure_osf_inner): Likewise. Mark hidden.
3132 (ffi_call_osf, ffi_closure_osf): Mark hidden.
3133 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
3134 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
3135 (load_table): Handle 128-bit long double.
3136
3137 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
3138
31392007-04-06 Tom Tromey <tromey@redhat.com>
3140
3141 PR libffi/31491:
3142 * README: Fixed bug in example.
3143
31442007-04-03 Jakub Jelinek <jakub@redhat.com>
3145
3146 * src/closures.c: Include sys/statfs.h.
3147 (_GNU_SOURCE): Define on Linux.
3148 (FFI_MMAP_EXEC_SELINUX): Define.
3149 (selinux_enabled): New variable.
3150 (selinux_enabled_check): New function.
3151 (is_selinux_enabled): Define.
3152 (dlmmap): Use it.
3153
31542007-03-24 Uros Bizjak <ubizjak@gmail.com>
3155
3156 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
3157 Use 'volatile float sum' to create sum of floats to avoid false
3158 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003159 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003160
31612007-03-08 Alexandre Oliva <aoliva@redhat.com>
3162
3163 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
3164 patch.
3165 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
3166
31672007-03-07 Alexandre Oliva <aoliva@redhat.com>
3168
3169 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
3170 (ffi_prep_closure_loc): New.
3171 (ffi_prep_raw_closure_loc): New.
3172 (ffi_prep_java_raw_closure_loc): New.
3173 * src/closures.c: New file.
3174 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
3175 Replace sflags with exec_offset.
3176 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
3177 sub_segment_exec_offset): New macros.
3178 (get_segment_flags, set_segment_flags, check_segment_merge): New
3179 macros.
3180 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
3181 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
3182 destroy_mspace): Use new macros.
3183 (sys_alloc): Silence warning.
3184 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
3185 * Makefile.in: Rebuilt.
3186 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
3187 terms of ffi_prep_closure_loc.
3188 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
3189 from...
3190 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
3191 renamed version.
3192 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
3193 adjusted from...
3194 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
3195 the renamed version.
3196 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
3197 (ffi_prep_closure): ... this.
3198 * src/pa/ffi.c: Likewise.
3199 * src/cris/ffi.c: Likewise. Adjust.
3200 * src/frv/ffi.c: Likewise.
3201 * src/ia64/ffi.c: Likewise.
3202 * src/mips/ffi.c: Likewise.
3203 * src/powerpc/ffi_darwin.c: Likewise.
3204 * src/s390/ffi.c: Likewise.
3205 * src/sh/ffi.c: Likewise.
3206 * src/sh64/ffi.c: Likewise.
3207 * src/sparc/ffi.c: Likewise.
3208 * src/x86/ffi64.c: Likewise.
3209 * src/x86/ffi.c: Likewise.
3210 (FFI_INIT_TRAMPOLINE): Adjust.
3211 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
3212 (ffi_prep_raw_closure): ... this.
3213 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
3214 (ffi_prep_closure): ... this.
3215 (flush_icache): Adjust.
3216
32172007-03-07 Alexandre Oliva <aoliva@redhat.com>
3218
3219 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
3220 Lea's malloc.
3221
32222007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
3223
3224 * Makefile.am: Add dummy install-pdf target.
3225 * Makefile.in: Regenerate
3226
32272007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
3228
3229 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
3230 ffi_closure_helper_SYSV): Add long double handling.
3231
32322007-02-02 Jakub Jelinek <jakub@redhat.com>
3233
3234 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
3235 immediately after bctrl instruction.
3236
32372007-01-18 Alexandre Oliva <aoliva@redhat.com>
3238
3239 * Makefile.am (all-recursive, install-recursive,
3240 mostlyclean-recursive, clean-recursive, distclean-recursive,
3241 maintainer-clean-recursive): Add missing targets.
3242 * Makefile.in: Rebuilt.
3243
32442006-12-14 Andreas Tobler <a.tobler@schweiz.org>
3245
3246 * configure.ac: Add TARGET for x86_64-*-darwin*.
3247 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
3248 for X86_DARWIN.
3249 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
3250 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
3251 * configure: Regenerate.
3252 * Makefile.in: Regenerate.
3253 * include/Makefile.in: Regenerate.
3254 * testsuite/Makefile.in: Regenerate.
3255 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
3256 ffi_call only.
3257
32582006-12-13 Andreas Tobler <a.tobler@schweiz.org>
3259
3260 * aclocal.m4: Regenerate with aclocal -I .. as written in the
3261 Makefile.am.
3262
32632006-10-31 Geoffrey Keating <geoffk@apple.com>
3264
3265 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3266 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3267 Darwin.
3268 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3269 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3270
32712006-10-10 Paolo Bonzini <bonzini@gnu.org>
3272 Sandro Tolaini <tolaini@libero.it>
3273
Anthony Green0cfe60e2009-12-29 10:06:04 -05003274 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003275 conditional.
3276 * configure: Regenerated.
3277 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3278 (EXTRA_DIST): Add src/x86/darwin.S.
3279 * Makefile.in: Regenerated.
3280 * include/Makefile.in: Regenerated.
3281 * testsuite/Makefile.in: Regenerated.
3282
3283 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3284 X86_WIN32, and additionally align stack to 16 bytes.
3285 * src/x86/darwin.S: New, based on sysv.S.
3286 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3287
32882006-09-12 David Daney <ddaney@avtrex.com>
3289
3290 PR libffi/23935
3291 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3292 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3293 * aclocal.m4: Regenerated for automake 1.9.6.
3294 * Makefile.in: Regenerated.
3295 * include/Makefile.in: Regenerated.
3296 * testsuite/Makefile.in: Regenerated.
3297
32982006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3299
3300 * include/ffi_common.h (struct): Revert accidental commit.
3301
33022006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3303
3304 * include/ffi_common.h: Remove lint directives.
3305 * include/ffi.h.in: Likewise.
3306
33072006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3308
3309 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3310 for 32-bit architectures.
3311 * testsuite/libffi.call/return_ul.c: New test case.
3312
33132006-07-19 David Daney <ddaney@avtrex.com>
3314
3315 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3316 xfail remains for mips64.
3317
33182006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3319
3320 * Makefile.am: Add install-html target. Add install-html to .PHONY
3321 * Makefile.in: Regenerate.
3322 * aclocal.m4: Regenerate.
3323 * include/Makefile.in: Regenerate.
3324 * testsuite/Makefile.in: Regenerate.
3325
33262006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3327
3328 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3329 stack slot.
3330
33312006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3332
3333 * README: Remove notice about 'Crazy Comments'.
3334 * src/debug.c: Remove lint directives. Cleanup white spaces.
3335 * src/java_raw_api.c: Likewise.
3336 * src/prep_cif.c: Likewise.
3337 * src/raw_api.c: Likewise.
3338 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3339 to the testsuite.
3340 * src/arm/ffi.c: Remove lint directives.
3341 * src/m32r/ffi.c: Likewise.
3342 * src/pa/ffi.c: Likewise.
3343 * src/powerpc/ffi.c: Likewise.
3344 * src/powerpc/ffi_darwin.c: Likewise.
3345 * src/sh/ffi.c: Likewise.
3346 * src/sh64/ffi.c: Likewise.
3347 * src/x86/ffi.c: Likewise.
3348 * testsuite/libffi.call/float2.c: Likewise.
3349 * testsuite/libffi.call/promotion.c: Likewise.
3350 * testsuite/libffi.call/struct1.c: Likewise.
3351
33522006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3353
3354 * src/pa/hpux32.S: Correct unwind offset calculation for
3355 ffi_closure_pa32.
3356 * src/pa/linux.S: Likewise.
3357
33582006-04-12 James E Wilson <wilson@specifix.com>
3359
3360 PR libgcj/26483
3361 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3362 (hfa_type_load): Call stf_spill.
3363 (hfa_type_store): Call ldf_fill.
3364 (ffi_call): Adjust calls to above routines. Add local temps for
3365 macro result.
3366
33672006-04-10 Matthias Klose <doko@debian.org>
3368
3369 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3370 directory names containing underscores.
3371
33722006-04-07 James E Wilson <wilson@specifix.com>
3373
3374 * testsuite/libffi.call/float4.c: New testcase.
3375
33762006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3377 Andreas Tobler <a.tobler@schweiz.ch>
3378
3379 * Makefile.am: Add PA_HPUX port.
3380 * Makefile.in: Regenerate.
3381 * include/Makefile.in: Likewise.
3382 * testsuite/Makefile.in: Likewise.
3383 * configure.ac: Add PA_HPUX rules.
3384 * configure: Regenerate.
3385 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3386 Add PA_HPUX and PA64_HPUX.
3387 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3388 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3389 (FFI_TYPE_SMALL_STRUCT2): Define.
3390 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3391 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3392 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3393 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3394 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3395 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3396 * src/pa/ffi.c (ROUND_DOWN): Delete.
3397 (fldw, fstw, fldd, fstd): Use '__asm__'.
3398 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3399 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3400 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3401 Simplify incrementing of stack slot variable. Change type of local
3402 'n' to unsigned int.
3403 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3404 double on PA_HPUX.
3405 (ffi_prep_cif_machdep): Likewise.
3406 (ffi_call): Likewise.
3407 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3408 return type to ffi_status. Simplify incrementing of stack slot
3409 variable. Only copy floating point argument registers when PA_LINUX
3410 is true. Reformat debug statement.
3411 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3412 FFI_TYPE_SMALL_STRUCT8.
3413 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3414 declaration.
3415 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3416 Add nops to cache flush. Add trampoline for PA_HPUX.
3417 * src/pa/hpux32.S: New file.
3418 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3419 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3420 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3421 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3422 argument type checks so that common argument types appear first.
3423 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3424 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3425
34262006-03-24 Alan Modra <amodra@bigpond.net.au>
3427
3428 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3429 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3430 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3431 FFI_TYPE_LONGDOUBLE.
3432 (ffi_prep_args64): Assert using IBM extended double.
3433 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3434 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3435 (ffi_call): Handle FFI_LINUX.
3436 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3437 gpr3 return pointer as for struct return. Handle FFI_LINUX
3438 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3439 unnecessarily.
3440 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3441 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3442 Don't use r6 as pointer to results, instead use sp offset. Don't
3443 make a special call to load lr with case table address, instead
3444 use offset from previous call.
3445 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3446 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3447 return.
3448
34492006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3450
3451 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3452 passed with FP registers correctly.
3453 (ffi_closure_helper_SYSV): Likewise.
3454 * src/sh64/sysv.S: Likewise.
3455
34562006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3457
3458 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3459 args and userdata unused.
3460 (closure_test_fn1): Mark cif and userdata unused.
3461 (main): Remove unused res.
3462
34632006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3464
3465 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3466 -O2, -O3, -Os and the warning flags -W -Wall.
3467 * testsuite/libffi.special/special.exp: Likewise.
3468 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3469 unused parameter unused for gcc or else do nothing.
3470 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3471 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3472 and userdata unused.
3473 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3474 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3475 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3476 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3477 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3478 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3479 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3480 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3481 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3482 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3483 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3484 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3485 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3486 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3487 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3488 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3489 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3490 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3491 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3492 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3493 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3494 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3495 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3496 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3497 Likewise.
3498 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3499 Likewise.
3500 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3501 Likewise.
3502 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3503 void* to avoid compiler warning.
3504 (main): Likewise.
3505 (cls_struct_align_gn): Mark cif and userdata unused.
3506 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3507 Likewise.
3508 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3509 Likewise.
3510 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3511 Likewise.
3512 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3513 Likewise.
3514 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3515 Likewise.
3516 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3517 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3518 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3519 data unused.
3520 (main): Cast res_call to silence gcc.
3521 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3522 data unused.
3523 (main): Cast res_call to silence gcc.
3524 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3525 and data unused.
3526 (main): Cast res_call to silence gcc.
3527 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3528 data unused.
3529 (main): Cast res_call to silence gcc.
3530 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3531 data unused.
3532 (main): Cast res_call to silence gcc.
3533 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3534 and data unused.
3535 (main): Cast res_call to silence gcc.
3536 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3537 userdata unused.
3538 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3539 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3540 userdata unused.
3541 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3542 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3543 userdata unused.
3544 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3545 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3546 userdata unused.
3547 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3548 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3549 userdata unused.
3550 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3551 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3552 and userdata unused.
3553 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3554 userdata unused.
3555 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3556 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3557 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3558 Cleanup white spaces.
3559 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3560 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3561 cif and userdata unused.
3562 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3563 Likewise.
3564 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3565 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3566 formatters to silence gcc.
3567 (B_gn): Mark cif and userdata unused.
3568 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3569 unused.
3570 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3571 (B_gn): Mark cif and userdata unused.
3572 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3573 unused.
3574 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3575 (B_gn): Mark cif and userdata unused.
3576 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3577 unused.
3578 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3579 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3580 * testsuite/libffi.call/problem1.c (stub): Likewise.
3581 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3582 gcc.
3583 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3584 in the last commit for this test case in the test case itself.
3585 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3586 unused.
3587 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3588 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3589 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3590 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3591 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3592 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3593
35942006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3595
3596 * src/sh/sysv.S: Fix register numbers in the FDE for
3597 ffi_closure_SYSV.
3598
35992006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3600
3601 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3602 declaration to avoid a false negative on ix86. See PR323.
3603
36042006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3605
3606 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3607 and cast integer to void * if needed. Update the pointer to
3608 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003609
Anthony Greenc6dddbd2009-10-04 08:11:33 -040036102006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3611
3612 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3613 is fixed.
3614 * testsuite/libffi.call/nested_struct4.c: Likewise.
3615
36162006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3617
3618 * testsuite/libffi.call/return_dbl.c: New test case.
3619 * testsuite/libffi.call/return_dbl1.c: Likewise.
3620 * testsuite/libffi.call/return_dbl2.c: Likewise.
3621 * testsuite/libffi.call/return_fl.c: Likewise.
3622 * testsuite/libffi.call/return_fl1.c: Likewise.
3623 * testsuite/libffi.call/return_fl2.c: Likewise.
3624 * testsuite/libffi.call/return_fl3.c: Likewise.
3625 * testsuite/libffi.call/closure_fn6.c: Likewise.
3626
3627 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3628 definition.
3629 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3630 here to be used by other test cases too.
3631
3632 * testsuite/libffi.call/nested_struct10.c: New test case.
3633 * testsuite/libffi.call/nested_struct9.c: Likewise.
3634 * testsuite/libffi.call/nested_struct8.c: Likewise.
3635 * testsuite/libffi.call/nested_struct7.c: Likewise.
3636 * testsuite/libffi.call/nested_struct6.c: Likewise.
3637 * testsuite/libffi.call/nested_struct5.c: Likewise.
3638 * testsuite/libffi.call/nested_struct4.c: Likewise.
3639
36402006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3641
3642 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3643 * configure: Rebuilt.
3644
36452006-01-18 Jakub Jelinek <jakub@redhat.com>
3646
3647 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3648 instead do the shifting inline.
3649 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3650 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3651 and 8 byte structs, for the remaining struct sizes don't call
3652 __lshrdi3, instead do the shifting inline.
3653
36542005-12-07 Thiemo Seufer <ths@networkno.de>
3655
3656 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3657 missing parentheses.
3658 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3659 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3660 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3661 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3662 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3663 FA_0_0_OFF2.
3664 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3665 endianness bugs.
3666 (ffi_prep_closure): Improve trampoline instruction scheduling.
3667 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3668
36692005-12-03 Alan Modra <amodra@bigpond.net.au>
3670
3671 * src/powerpc/ffi.c: Formatting.
3672 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3673 (ffi_prep_args64): Likewise.
3674
36752005-09-30 Geoffrey Keating <geoffk@apple.com>
3676
3677 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3678 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3679
36802005-09-26 Tom Tromey <tromey@redhat.com>
3681
3682 * testsuite/libffi.call/float1.c (value_type): New typedef.
3683 (CANARY): New define.
3684 (main): Check for result buffer overflow.
3685 * src/powerpc/linux64.S: Handle linux64 long double returns.
3686 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3687 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3688
36892005-08-25 Alan Modra <amodra@bigpond.net.au>
3690
3691 PR target/23404
3692 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3693 homed fp args.
3694 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3695
36962005-08-11 Jakub Jelinek <jakub@redhat.com>
3697
3698 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3699 (AH_BOTTOM): Add FFI_HIDDEN definition.
3700 * configure: Rebuilt.
3701 * fficonfig.h.in: Rebuilt.
3702 * src/powerpc/ffi.c (hidden): Remove.
3703 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3704 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3705 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3706 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3707 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3708 add FFI_HIDDEN to its prototype.
3709 (ffi_closure_SYSV_inner): New.
3710 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3711 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3712
37132005-08-10 Alfred M. Szmidt <ams@gnu.org>
3714
3715 PR libffi/21819:
3716 * configure: Rebuilt.
3717 * configure.ac: Handle i*86-*-gnu*.
3718
37192005-08-09 Jakub Jelinek <jakub@redhat.com>
3720
3721 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3722 DW_CFA_offset_extended_sf rather than
3723 DW_CFA_GNU_negative_offset_extended.
3724 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3725
37262005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3727
3728 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3729 on sh3.
3730 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3731 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3732 partially on register.
3733 (ffi_closure_helper_SYSV): Likewise.
3734 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3735
37362005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3737
3738 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3739 Remove empty line.
3740 * src/sh64/ffi.c (simple_type): Remove.
3741 (return_type): Handle small structures correctly.
3742 (ffi_prep_args): Likewise.
3743 (ffi_call): Likewise.
3744 (ffi_closure_helper_SYSV): Likewise.
3745 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3746 Emit position independent code if PIC and remove wrong datalabel
3747 prefixes from EH data.
3748
37492005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3750
3751 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3752 * Makefile.in: Regenerate.
3753 * include/Makefile.in: Likewise.
3754 * testsuite/Makefile.in: Likewise.
3755 * configure.ac: Add POWERPC_FREEBSD rules.
3756 * configure: Regenerate.
3757 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3758 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3759 * src/powerpc/ffi.c: Add flags to handle small structure returns
3760 in ffi_call_SYSV.
3761 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3762 Aka FFI_SYSV.
3763 (ffi_closure_helper_SYSV): Likewise.
3764 * src/powerpc/ppc_closure.S: Add return types for small structures.
3765 * src/powerpc/sysv.S: Add bits to handle small structures for
3766 final SYSV 4 ABI.
3767
37682005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3769
3770 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3771 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3772 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3773
37742005-07-05 Randolph Chung <tausq@debian.org>
3775
3776 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3777 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3778 structures. Kill compilation warnings.
3779 (ffi_closure_inner_LINUX): Print return values as hex in debug
3780 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3781 Properly handle 5-7 byte structure returns.
3782 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3783 (FFI_TYPE_SMALL_STRUCT2): Remove.
3784 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3785 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3786 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3787 (checksmst1, checksmst2): Remove.
3788 (checksmst3): Optimize handling of 3-byte struct returns.
3789 (checksmst567): Properly handle 5-7 byte struct returns.
3790
37912005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3792
3793 PR libgcj/21943
3794 * src/mips/n32.S: Enforce PIC code.
3795 * src/mips/o32.S: Likewise.
3796
37972005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3798
3799 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3800 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003801
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038022005-06-01 Alan Modra <amodra@bigpond.net.au>
3803
3804 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3805 to call ffi_closure_helper_SYSV. Append @local instead.
3806 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3807
38082005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3809
3810 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3811 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3812 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3813 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3814 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003815
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038162005-05-09 Mike Stump <mrs@apple.com>
3817
3818 * configure: Regenerate.
3819
38202005-05-08 Richard Henderson <rth@redhat.com>
3821
3822 PR libffi/21285
3823 * src/alpha/osf.S: Update unwind into to match code.
3824
38252005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3826 Richard Henderson <rth@redhat.com>
3827
3828 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3829 bit 11 of flags.
3830 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3831 (ffi_prep_closure): Set carry bit if sse-used flag set.
3832 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3833 Only load sse registers if ssecount non-zero.
3834 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3835
38362005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3837
3838 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3839 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3840 * configure: Regenerate.
3841
38422005-04-20 Hans-Peter Nilsson <hp@axis.com>
3843
3844 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3845 have Tcl8.3-compatible intermediate variable.
3846
Anthony Green0cfe60e2009-12-29 10:06:04 -050038472005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003848 Hans-Peter Nilsson <hp@axis.com>
3849
3850 * Makefile.am: Add CRIS support.
3851 * configure.ac: Likewise.
3852 * Makefile.in, configure, testsuite/Makefile.in,
3853 include/Makefile.in: Regenerate.
3854 * src/cris: New directory.
3855 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3856 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3857
3858 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3859 \r?\n in output tests.
3860
38612005-04-12 Mike Stump <mrs@apple.com>
3862
3863 * configure: Regenerate.
3864
38652005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3866
3867 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003868
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038692005-03-30 Steve Ellcey <sje@cup.hp.com>
3870
3871 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3872 (ffi_sarg) Ditto.
3873 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3874 to 64 bits in ILP32 mode.
3875 Load 64 bits even for short data.
3876
38772005-03-23 Mike Stump <mrs@apple.com>
3878
3879 * src/powerpc/darwin.S: Update for -m64 multilib.
3880 * src/powerpc/darwin_closure.S: Likewise.
3881
38822005-03-21 Zack Weinberg <zack@codesourcery.com>
3883
3884 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3885 Do not set tool_include_dir.
3886 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3887 Regenerate.
3888 * include/Makefile.am: Set gcc_version and toollibffidir.
3889 * include/Makefile.in: Regenerate.
3890
38912005-02-22 Andrew Haley <aph@redhat.com>
3892
3893 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3894 odd-numbered register pairs for 64-bit integer types.
3895
38962005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3897
3898 PR libffi/20104
3899 * testsuite/libffi.call/return_ll1.c: New test case.
3900
39012005-02-11 Janis Johnson <janis187@us.ibm.com>
3902
3903 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3904 * testsuite/libffi.call/float.c: Ditto.
3905 * testsuite/libffi.call/float2.c: Ditto.
3906 * testsuite/libffi.call/float3.c: Ditto.
3907
39082005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3909
3910 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3911
39122005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3913
3914 * testsuite/libffi.special/special.exp (cxx_options): Add
3915 -shared-libgcc.
3916
39172004-12-31 Richard Henderson <rth@redhat.com>
3918
3919 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3920 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3921 offset parameters with a type parameter; deduce size and structure
3922 alignment. Update all users.
3923
39242004-12-31 Richard Henderson <rth@redhat.com>
3925
3926 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3927 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3928 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3929 into ffi_prep_closure.
3930 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3931 from scratch.
3932
39332004-12-27 Richard Henderson <rth@redhat.com>
3934
3935 * src/x86/unix64.S: Fix typo in unwind info.
3936
39372004-12-25 Richard Henderson <rth@redhat.com>
3938
3939 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3940 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3941 (merge_classes): Check for it.
3942 (SSE_CLASS_P): New.
3943 (classify_argument): Pass byte_offset by value; perform all updates
3944 inside struct case.
3945 (examine_argument): Add classes argument; handle
3946 X86_64_COMPLEX_X87_CLASS.
3947 (ffi_prep_args): Merge into ...
3948 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3949 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3950 (ffi_fill_return_value): Remove.
3951 (ffi_prep_closure): Remove dead assert.
3952 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3953 Rewrite to use struct register_args instead of va_list. Create
3954 flags for handling structure returns.
3955 * src/x86/unix64.S: Remove dead strings.
3956 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3957 stack frame with ffi_call. Handle structure returns properly.
3958 (float2sse, floatfloat2sse, double2sse): Remove.
3959 (sse2float, sse2double, sse2floatfloat): Remove.
3960 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3961 to handle structure returns properly.
3962
39632004-12-08 David Edelsohn <edelsohn@gnu.org>
3964
3965 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3966 PICFLAG.
3967 * Makefile.in: Regenerated.
3968
39692004-12-02 Richard Sandiford <rsandifo@redhat.com>
3970
3971 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3972 * configure, aclocal.m4, Makefile.in: Regenerate.
3973 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3974
39752004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3976
3977 * configure: Regenerate for libtool change.
3978
39792004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3980
3981 * configure: Regenerate for libtool reversion.
3982
39832004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3984
3985 * configure: Regenerate for libtool change.
3986
39872004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3988
3989 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3990
39912004-11-23 Richard Sandiford <rsandifo@redhat.com>
3992
3993 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3994 of jal. Use an absolute encoding for the frame information.
3995
39962004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3997
3998 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3999 * acinclude.m4: Delete logic for sincludes.
4000 * aclocal.m4, Makefile.in, configure: Regenerate.
4001 * include/Makefile: Likewise.
4002 * testsuite/Makefile: Likewise.
4003
40042004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
4005
4006 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
4007 on a 8-byte boundary.
4008 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
4009
40102004-10-27 Richard Earnshaw <rearnsha@arm.com>
4011
4012 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
4013 long long values. Round stack allocation to a multiple of 8 bytes
4014 for ATPCS compatibility.
4015 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
4016 names. Handle returning long long types. Add Thumb and interworking
4017 support. Improve soft-float code.
4018
40192004-10-27 Richard Earnshaw <rearnsha@arm.com>
4020
4021 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
4022 (libffi_exit): New function.
4023 (libffi_init): Build the testglue wrapper if needed.
4024
40252004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4026
4027 PR other/18138
4028 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
4029
40302004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4031
4032 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
4033
40342004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
4035
4036 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
4037 * testsuite/libffi.call/float3.c: New test case.
4038
40392004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
4040
4041 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
4042 the function returning a structure pointed with R2.
4043 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
4044 the structure return value if T bit set. Emit position
4045 independent code and EH data if PIC.
4046
40472004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4048
4049 * Makefile.am: Add m32r support.
4050 * configure.ac: Likewise.
4051 * Makefile.in: Regenerate.
4052 * confiugre: Regenerate.
4053 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
4054 (uint64, sint64, double, longdouble)
4055 * src/m32r: New directory.
4056 * src/m32r/ffi.c: New file.
4057 * src/m32r/sysv.S: Likewise.
4058 * src/m32r/ffitarget.h: Likewise.
4059
40602004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
4061
4062 * testsuite/libffi.call/negint.c: New test case.
4063
40642004-09-14 H.J. Lu <hongjiu.lu@intel.com>
4065
4066 PR libgcj/17465
4067 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
4068 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
4069 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
4070 DYLD_LIBRARY_PATH.
4071
40722004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
4073
4074 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
4075 * testsuite/libffi.call/promotion.c: Likewise.
4076 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
4077 whitespaces.
4078 * testsuite/libffi.call/return_sc.c: Likewise.
4079 * testsuite/libffi.call/return_uc.c: Likewise.
4080
40812004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
4082
4083 * src/powerpc/darwin.S: Fix comments and identation.
4084 * src/powerpc/darwin_closure.S: Likewise.
4085
40862004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
4087
4088 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
4089 (ffi_prep_args): Handle longdouble arguments.
4090 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
4091 longdouble.
4092 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
4093 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
4094 values.
4095 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
4096 * src/types.c: Defined longdouble size and alignment for darwin.
4097
40982004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
4099
4100 * src/powerpc/aix.S: Remove whitespaces.
4101 * src/powerpc/aix_closure.S: Likewise.
4102 * src/powerpc/asm.h: Likewise.
4103 * src/powerpc/ffi.c: Likewise.
4104 * src/powerpc/ffitarget.h: Likewise.
4105 * src/powerpc/linux64.S: Likewise.
4106 * src/powerpc/linux64_closure.S: Likewise.
4107 * src/powerpc/ppc_closure.S: Likewise.
4108 * src/powerpc/sysv.S: Likewise.
4109
41102004-08-30 Anthony Green <green@redhat.com>
4111
4112 * Makefile.am: Add frv support.
4113 * Makefile.in, testsuite/Makefile.in: Rebuilt.
4114 * configure.ac: Read configure.host.
4115 * configure.in: Read configure.host.
4116 * configure.host: New file. frv-elf needs libgloss.
4117 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
4118 alignment. This is needed to frv and shouldn't harm the others.
4119 * include/ffi_common.h (ALIGN_DOWN): New macro.
4120 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
4121
41222004-08-24 David Daney <daney@avtrex.com>
4123
4124 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
4125 * testsuite/libffi.call/closure_fn1.c: Likewise.
4126 * testsuite/libffi.call/closure_fn2.c Likewise.
4127 * testsuite/libffi.call/closure_fn3.c: Likewise.
4128 * testsuite/libffi.call/closure_fn4.c: Likewise.
4129 * testsuite/libffi.call/closure_fn5.c: Likewise.
4130 * testsuite/libffi.call/cls_18byte.c: Likewise.
4131 * testsuite/libffi.call/cls_19byte.c: Likewise.
4132 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4133 * testsuite/libffi.call/cls_20byte.c: Likewise.
4134 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4135 * testsuite/libffi.call/cls_24byte.c: Likewise.
4136 * testsuite/libffi.call/cls_2byte.c: Likewise.
4137 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4138 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4139 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4140 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4141 * testsuite/libffi.call/cls_4byte.c: Likewise.
4142 * testsuite/libffi.call/cls_64byte.c: Likewise.
4143 * testsuite/libffi.call/cls_6byte.c: Likewise.
4144 * testsuite/libffi.call/cls_7byte.c: Likewise.
4145 * testsuite/libffi.call/cls_8byte.c: Likewise.
4146 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4147 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4148 * testsuite/libffi.call/cls_align_double.c: Likewise.
4149 * testsuite/libffi.call/cls_align_float.c: Likewise.
4150 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4151 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4152 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4153 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4154 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4155 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4156 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4157 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
4158 * testsuite/libffi.call/cls_double.c: Likewise.
4159 * testsuite/libffi.call/cls_float.c: Likewise.
4160 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4161 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
4162 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4163 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4164 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4165 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4166 * testsuite/libffi.call/cls_schar.c: Likewise.
4167 * testsuite/libffi.call/cls_sint.c: Likewise.
4168 * testsuite/libffi.call/cls_sshort.c: Likewise.
4169 * testsuite/libffi.call/cls_uchar.c: Likewise.
4170 * testsuite/libffi.call/cls_uint.c: Likewise.
4171 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4172 * testsuite/libffi.call/cls_ushort.c: Likewise.
4173 * testsuite/libffi.call/nested_struct.c: Likewise.
4174 * testsuite/libffi.call/nested_struct1.c: Likewise.
4175 * testsuite/libffi.call/nested_struct2.c: Likewise.
4176 * testsuite/libffi.call/nested_struct3.c: Likewise.
4177 * testsuite/libffi.call/problem1.c: Likewise.
4178 * testsuite/libffi.special/unwindtest.cc: Likewise.
4179 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
4180 to zero.
4181 * testsuite/libffi.call/cls_16byte.c: Likewise.
4182 * testsuite/libffi.call/cls_5byte.c: Likewise.
4183
41842004-08-23 David Daney <daney@avtrex.com>
4185
4186 PR libgcj/13141
4187 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
4188 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
4189 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
4190 parameters and return types.
4191 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
4192 (ffi_prep_closure): Ditto.
4193 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
4194 alignment calculations.
4195 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
4196 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
4197
41982004-08-14 Casey Marshall <csm@gnu.org>
4199
4200 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
4201 contain `FFI_TYPE_UINT64' as return type for any 64-bit
4202 integer (O32 ABI only).
4203 (ffi_prep_closure): new function.
4204 (ffi_closure_mips_inner_O32): new function.
4205 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
4206 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
4207 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
4208 64 bit integers correctly.
4209 (ffi_closure_O32): new function.
4210 Added DWARF-2 unwind info for both functions.
4211
42122004-08-10 Andrew Haley <aph@redhat.com>
4213
4214 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
4215
42162004-08-01 Robert Millan <robertmh@gnu.org>
4217
4218 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
4219 * configure: Regenerate.
4220
42212004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
4222
4223 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4224 and mmap() explicitly instead of relying on preset autoconf cache
4225 variables.
4226 * aclocal.m4: Regenerate.
4227 * configure: Regenerate.
4228
42292004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
4230
4231 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
4232 (ffi_check_float_struct): Remove unused prototype.
4233
42342004-06-30 Geoffrey Keating <geoffk@apple.com>
4235
4236 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
4237 character on Darwin, use '\n\t' instead.
4238
42392004-06-26 Matthias Klose <doko@debian.org>
4240
4241 * libtool-version: Fix typo in revision/age.
4242
42432004-06-17 Matthias Klose <doko@debian.org>
4244
4245 * libtool-version: New.
4246 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
4247 * Makefile.in: Regenerate.
4248
42492004-06-15 Paolo Bonzini <bonzini@gnu.org>
4250
4251 * Makefile.am: Remove useless multilib rules.
4252 * Makefile.in: Regenerate.
4253 * aclocal.m4: Regenerate with automake 1.8.5.
4254 * configure.ac: Remove useless multilib configury.
4255 * configure: Regenerate.
4256
42572004-06-15 Paolo Bonzini <bonzini@gnu.org>
4258
4259 * .cvsignore: New file.
4260
42612004-06-10 Jakub Jelinek <jakub@redhat.com>
4262
4263 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4264 fp_done.
4265 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4266 changed from 8.
4267
42682004-06-06 Sean McNeil <sean@mcneil.com>
4269
4270 * configure.ac: Add x86_64-*-freebsd* support.
4271 * configure: Regenerate.
4272
42732004-04-26 Joe Buck <jbuck@welsh-buck.org>
4274
4275 Bug 15093
4276 * configure.ac: Test for existence of mmap and sys/mman.h before
4277 checking blacklist. Fix suggested by Jim Wilson.
4278 * configure: Regenerate.
4279
42802004-04-26 Matt Austern <austern@apple.com>
4281
4282 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4283 FDE location.
4284 * src/powerpc/darwin_closure.S: Likewise.
4285
42862004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4287
4288 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4289 error. Reported by Thomas Heller <theller@python.net>.
4290 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4291 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4292
42932004-03-20 Matthias Klose <doko@debian.org>
4294
4295 * src/pa/linux.S: Fix typo.
4296
42972004-03-19 Matthias Klose <doko@debian.org>
4298
4299 * Makefile.am: Update.
4300 * Makefile.in: Regenerate.
4301 * src/pa/ffi.h.in: Remove.
4302 * src/pa/ffitarget.h: New file.
4303
43042004-02-10 Randolph Chung <tausq@debian.org>
4305
4306 * Makefile.am: Add PA support.
4307 * Makefile.in: Regenerate.
4308 * include/Makefile.in: Regenerate.
4309 * configure.ac: Add PA target.
4310 * configure: Regenerate.
4311 * src/pa/ffi.c: New file.
4312 * src/pa/ffi.h.in: Add PA support.
4313 * src/pa/linux.S: New file.
4314 * prep_cif.c: Add PA support.
4315
43162004-03-16 Hosaka Yuji <hos@tamanegi.org>
4317
4318 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4319 double.
4320 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4321 with ecif->cif->flags.
4322 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4323 with cif->flags.
4324 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4325 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4326 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4327 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4328
43292004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4330
4331 * configure.in: Rename file to ...
4332 * configure.ac: ... this.
4333 * fficonfig.h.in: Regenerate.
4334 * Makefile.in: Regenerate.
4335 * include/Makefile.in: Regenerate.
4336 * testsuite/Makefile.in: Regenerate.
4337
43382004-03-12 Matt Austern <austern@apple.com>
4339
4340 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4341 changes in EH format resulting from addition of linkonce support.
4342 * src/powerpc/darwin_closure.S: Likewise.
4343
43442004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4345 Paolo Bonzini <bonzini@gnu.org>
4346
4347 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4348 Remove VPATH. Remove rules for object files. Remove multilib support.
4349 (AM_CCASFLAGS): Add.
4350 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4351 (AC_PREREQ): Bump version to 2.59.
4352 (AC_INIT): Fill with version info and bug address.
4353 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4354 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4355 De-precious CC so that the right flags are passed down to multilibs.
4356 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4357 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4358 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4359 * configure: Rebuilt.
4360 * aclocal.m4: Likewise.
4361 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4362 * fficonfig.h.in: Likewise.
4363
43642004-03-11 Andreas Schwab <schwab@suse.de>
4365
4366 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4367 arguments from fp registers only for the first 8 parameter slots.
4368 Don't convert a float parameter when passed in memory.
4369
43702004-03-09 Hans-Peter Nilsson <hp@axis.com>
4371
4372 * configure: Regenerate for config/accross.m4 correction.
4373
43742004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4375
4376 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4377 ecif->cif->bytes to bytes.
4378 (ffi_prep_cif_machdep): Add braces around nested if statement.
4379
43802004-02-09 Alan Modra <amodra@bigpond.net.au>
4381
4382 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4383
4384 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4385 (ffi_closure_helper_LINUX64): Fix typo.
4386 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4387 for powerpc64-*-*.
4388 * testsuite/libffi.call/float.c: Likewise.
4389 * testsuite/libffi.call/float2.c: Likewise.
4390
43912004-02-08 Alan Modra <amodra@bigpond.net.au>
4392
4393 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4394 long double function return and long double arg handling.
4395 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4396 Use "end_pfr" instead of "nf". Correct long double handling.
4397 Localise "temp".
4398 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4399 return value.
4400 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4401 space for long double return value. Adjust stack frame and offsets.
4402 Load f2 long double return.
4403
44042004-02-07 Alan Modra <amodra@bigpond.net.au>
4405
4406 * src/types.c: Use 16 byte long double for POWERPC64.
4407
44082004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4409
4410 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4411 when the structure return address is passed in %o0.
4412 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4413 (ffi_v9_layout_struct): Align the field following a nested structure
4414 on a word boundary. Use memmove instead of memcpy.
4415 (ffi_call): Update call to ffi_V9_return_struct.
4416 (ffi_prep_closure): Define 'ctx' only for V8.
4417 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4418 and ffi_closure_sparc_inner_v9.
4419 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4420 Always skip the structure return address. For structures and long
4421 doubles, copy the argument directly.
4422 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4423 if required. Shift the maximum floating-point slot accordingly. For
4424 big structures, copy the argument directly; otherwise, left-justify the
4425 argument and call ffi_v9_layout_struct to lay out the structure on
4426 the stack.
4427 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4428 (ffi_closure_v8): Pass the structure return address. Update call to
4429 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4430 Skip the 'unimp' insn when returning long doubles and structures.
4431 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4432 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4433 FFI_TYPE_INT handling. Load structures both in integers and
4434 floating-point registers on return.
4435 * README: Update status of the SPARC port.
4436
44372004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4438
4439 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4440 as of type ffi_arg.
4441 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4442
44432004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4444
4445 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4446 value as of type ffi_arg, not unsigned int.
4447
44482004-01-21 Michael Ritzert <ritzert@t-online.de>
4449
4450 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4451 of the LHS.
4452
44532004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4454
4455 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4456 Solaris.
4457
44582004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4459
4460 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4461 to void *.
4462
44632003-12-10 Richard Henderson <rth@redhat.com>
4464
4465 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4466 size_t instead of int.
4467
44682003-12-04 Hosaka Yuji <hos@tamanegi.org>
4469
4470 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4471 * testsuite/libffi.call/many_win32.c (main): Replace variable
4472 int i with unsigned long ul.
4473
4474 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4475 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4476 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4477 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4478 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4479 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4480 * testsuite/libffi.call/cls_align_float.c: Likewise.
4481 * testsuite/libffi.call/cls_align_double.c: Likewise.
4482 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4483 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4484
44852003-12-02 Hosaka Yuji <hos@tamanegi.org>
4486
4487 PR other/13221
4488 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4489 Align arguments to 32 bits.
4490
44912003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4492
4493 PR other/13221
4494 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4495 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4496 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4497 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4498 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4499 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4500
4501 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4502
45032003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4504
4505 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4506 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4507
45082003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4509
4510 * Makefile.in: Rebuilt.
4511 * configure: Likewise.
4512 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4513 the right type.
4514
45152003-11-21 Andreas Jaeger <aj@suse.de>
4516 Andreas Tobler <a.tobler@schweiz.ch>
4517
4518 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4519 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4520 * Makefile.in: Rebuilt.
4521 * aclocal.m4: Likewise.
4522 * configure: Likewise.
4523 * fficonfig.h.in: Likewise.
4524 * testsuite/lib/libffi-dg.exp: Add include dir.
4525 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4526 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4527 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4528 for ffi_closure if available.
4529 * testsuite/libffi.call/closure_fn1.c: Likewise.
4530 * testsuite/libffi.call/closure_fn2.c: Likewise.
4531 * testsuite/libffi.call/closure_fn3.c: Likewise.
4532 * testsuite/libffi.call/closure_fn4.c: Likewise.
4533 * testsuite/libffi.call/closure_fn5.c: Likewise.
4534 * testsuite/libffi.call/cls_12byte.c: Likewise.
4535 * testsuite/libffi.call/cls_16byte.c: Likewise.
4536 * testsuite/libffi.call/cls_18byte.c: Likewise.
4537 * testsuite/libffi.call/cls_19byte.c: Likewise.
4538 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4539 * testsuite/libffi.call/cls_20byte.c: Likewise.
4540 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4541 * testsuite/libffi.call/cls_24byte.c: Likewise.
4542 * testsuite/libffi.call/cls_2byte.c: Likewise.
4543 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4544 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4545 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4546 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4547 * testsuite/libffi.call/cls_4byte.c: Likewise.
4548 * testsuite/libffi.call/cls_5byte.c: Likewise.
4549 * testsuite/libffi.call/cls_64byte.c: Likewise.
4550 * testsuite/libffi.call/cls_6byte.c: Likewise.
4551 * testsuite/libffi.call/cls_7byte.c: Likewise.
4552 * testsuite/libffi.call/cls_8byte.c: Likewise.
4553 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4554 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4555 * testsuite/libffi.call/cls_double.c: Likewise.
4556 * testsuite/libffi.call/cls_float.c: Likewise.
4557 * testsuite/libffi.call/cls_schar.c: Likewise.
4558 * testsuite/libffi.call/cls_sint.c: Likewise.
4559 * testsuite/libffi.call/cls_sshort.c: Likewise.
4560 * testsuite/libffi.call/cls_uchar.c: Likewise.
4561 * testsuite/libffi.call/cls_uint.c: Likewise.
4562 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4563 * testsuite/libffi.call/cls_ushort.c: Likewise.
4564 * testsuite/libffi.call/nested_struct.c: Likewise.
4565 * testsuite/libffi.call/nested_struct1.c: Likewise.
4566 * testsuite/libffi.call/nested_struct2.c: Likewise.
4567 * testsuite/libffi.call/nested_struct3.c: Likewise.
4568 * testsuite/libffi.call/problem1.c: Likewise.
4569 * testsuite/libffi.special/unwindtest.cc: Likewise.
4570
45712003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4572
4573 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4574
45752003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4576
4577 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4578 Add -lgcc_s to additional flags.
4579
45802003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4581
4582 * configure.in, include/Makefile.am: PR libgcj/11147, install
4583 the ffitarget.h header file in a gcc versioned and target
4584 dependent place.
4585 * configure: Regenerated.
4586 * Makefile.in, include/Makefile.in: Likewise.
4587 * testsuite/Makefile.in: Likewise.
4588
45892003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4590
4591 * testsuite/libffi.call/closure_fn0.c: Print result and check
4592 with dg-output to make debugging easier.
4593 * testsuite/libffi.call/closure_fn1.c: Likewise.
4594 * testsuite/libffi.call/closure_fn2.c: Likewise.
4595 * testsuite/libffi.call/closure_fn3.c: Likewise.
4596 * testsuite/libffi.call/closure_fn4.c: Likewise.
4597 * testsuite/libffi.call/closure_fn5.c: Likewise.
4598 * testsuite/libffi.call/cls_12byte.c: Likewise.
4599 * testsuite/libffi.call/cls_16byte.c: Likewise.
4600 * testsuite/libffi.call/cls_18byte.c: Likewise.
4601 * testsuite/libffi.call/cls_19byte.c: Likewise.
4602 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4603 * testsuite/libffi.call/cls_20byte.c: Likewise.
4604 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4605 * testsuite/libffi.call/cls_24byte.c: Likewise.
4606 * testsuite/libffi.call/cls_2byte.c: Likewise.
4607 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4608 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4609 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4610 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4611 * testsuite/libffi.call/cls_4byte.c: Likewise.
4612 * testsuite/libffi.call/cls_5byte.c: Likewise.
4613 * testsuite/libffi.call/cls_64byte.c: Likewise.
4614 * testsuite/libffi.call/cls_6byte.c: Likewise.
4615 * testsuite/libffi.call/cls_7byte.c: Likewise.
4616 * testsuite/libffi.call/cls_8byte.c: Likewise.
4617 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4618 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4619 * testsuite/libffi.call/cls_double.c: Likewise.
4620 * testsuite/libffi.call/cls_float.c: Likewise.
4621 * testsuite/libffi.call/cls_schar.c: Likewise.
4622 * testsuite/libffi.call/cls_sint.c: Likewise.
4623 * testsuite/libffi.call/cls_sshort.c: Likewise.
4624 * testsuite/libffi.call/cls_uchar.c: Likewise.
4625 * testsuite/libffi.call/cls_uint.c: Likewise.
4626 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4627 * testsuite/libffi.call/cls_ushort.c: Likewise.
4628 * testsuite/libffi.call/problem1.c: Likewise.
4629
4630 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4631 static.
4632
46332003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4634
4635 * testsuite/libffi.call/cls_9byte2.c: New test case.
4636 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4637 * testsuite/libffi.call/cls_64byte.c: Likewise.
4638 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4639 * testsuite/libffi.call/cls_19byte.c: Likewise.
4640 * testsuite/libffi.call/cls_18byte.c: Likewise.
4641 * testsuite/libffi.call/closure_fn4.c: Likewise.
4642 * testsuite/libffi.call/closure_fn5.c: Likewise.
4643 * testsuite/libffi.call/cls_schar.c: Likewise.
4644 * testsuite/libffi.call/cls_sint.c: Likewise.
4645 * testsuite/libffi.call/cls_sshort.c: Likewise.
4646 * testsuite/libffi.call/nested_struct2.c: Likewise.
4647 * testsuite/libffi.call/nested_struct3.c: Likewise.
4648
46492003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4650
4651 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4652 * testsuite/libffi.call/cls_uchar.c: Likewise.
4653 * testsuite/libffi.call/cls_uint.c: Likewise.
4654 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4655 * testsuite/libffi.call/cls_ushort.c: Likewise.
4656 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4657
46582003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4659
4660 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4661 the initialization.
4662
46632003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4664
4665 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4666 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4667
46682003-10-22 David Daney <ddaney@avtrex.com>
4669
4670 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4671 __attribute__((__mode__(__SI__))) and friends.
4672
46732003-10-22 Andreas Schwab <schwab@suse.de>
4674
4675 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4676
46772003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4678
4679 * configure.in: AC_LINK_FILES(ffitarget.h).
4680 * configure: Regenerate.
4681 * Makefile.in: Likewise.
4682 * include/Makefile.in: Likewise.
4683 * testsuite/Makefile.in: Likewise.
4684 * fficonfig.h.in: Likewise.
4685
46862003-10-21 Paolo Bonzini <bonzini@gnu.org>
4687 Richard Henderson <rth@redhat.com>
4688
4689 Avoid that ffi.h includes fficonfig.h.
4690
4691 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4692 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4693 (TARGET_SRC_MIPS_SGI): Removed.
4694 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4695 (MIPS_SGI): Removed.
4696 (CLEANFILES): Removed.
4697 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4698 targets.
4699 * acconfig.h: Removed.
4700 * configure.in: Compute sizeofs only for double and long double.
4701 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4702 into AC_DEFINE instead of using acconfig.h. Create
4703 include/ffitarget.h instead of include/fficonfig.h. Rename
4704 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4705 AC_DEFINE EH_FRAME_FLAGS.
4706 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4707 (hack_DATA): Add ffitarget.h.
4708 * include/ffi.h.in: Remove all system specific definitions.
4709 Declare raw API even if it is not installed, why bother?
4710 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4711 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4712 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4713 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4714 * include/ffi_common.h (bool): Do not define.
4715 (ffi_assert): Accept failed assertion.
4716 (ffi_type_test): Return void and accept file/line.
4717 (FFI_ASSERT): Pass stringized failed assertion.
4718 (FFI_ASSERT_AT): New macro.
4719 (FFI_ASSERT_VALID_TYPE): New macro.
4720 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4721 UINT64, SINT64): Define here with gcc's __attribute__ macro
4722 instead of in ffi.h
4723 (FLOAT32, ALIGN): Define here instead of in ffi.h
4724 * include/ffi-mips.h: Removed. Its content moved to
4725 src/mips/ffitarget.h after separating assembly and C sections.
4726 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4727 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4728 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4729 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4730 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4731 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4732 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4733 (ffi_type_test): Rewritten.
4734 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4735 FFI_ASSERT_VALID_TYPE.
4736 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4737 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4738 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4739 src/s390/ffitarget.h, src/sh/ffitarget.h,
4740 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4741 src/x86/ffitarget.h: New files.
4742 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4743 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4744 src/powerpc/aix.S, src/powerpc/darwin.S,
4745 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4746 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4747 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4748 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4749 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4750 include fficonfig.h
4751
47522003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4753
4754 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4755 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4756
47572003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4758
4759 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4760 Used when FFI_DEBUG = 1.
4761
47622003-10-14 Alan Modra <amodra@bigpond.net.au>
4763
4764 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4765 and align.
4766
47672003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4768
4769 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4770 FFI_MIPS_O32 for O32 ABI.
4771
47722003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4773
4774 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4775 SPARC64. Cleanup whitespaces.
4776
47772003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4778
4779 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4780 strongarm, xscale. Cleanup whitespaces.
4781 * testsuite/libffi.call/closure_fn1.c: Likewise.
4782 * testsuite/libffi.call/closure_fn2.c: Likewise.
4783 * testsuite/libffi.call/closure_fn3.c: Likewise.
4784 * testsuite/libffi.call/cls_12byte.c: Likewise.
4785 * testsuite/libffi.call/cls_16byte.c: Likewise.
4786 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4787 * testsuite/libffi.call/cls_20byte.c: Likewise.
4788 * testsuite/libffi.call/cls_24byte.c: Likewise.
4789 * testsuite/libffi.call/cls_2byte.c: Likewise.
4790 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4791 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4792 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4793 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4794 * testsuite/libffi.call/cls_4byte.c: Likewise.
4795 * testsuite/libffi.call/cls_5byte.c: Likewise.
4796 * testsuite/libffi.call/cls_6byte.c: Likewise.
4797 * testsuite/libffi.call/cls_7byte.c: Likewise.
4798 * testsuite/libffi.call/cls_8byte.c: Likewise.
4799 * testsuite/libffi.call/cls_double.c: Likewise.
4800 * testsuite/libffi.call/cls_float.c: Likewise.
4801 * testsuite/libffi.call/cls_uchar.c: Likewise.
4802 * testsuite/libffi.call/cls_uint.c: Likewise.
4803 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4804 * testsuite/libffi.call/cls_ushort.c: Likewise.
4805 * testsuite/libffi.call/nested_struct.c: Likewise.
4806 * testsuite/libffi.call/nested_struct1.c: Likewise.
4807 * testsuite/libffi.call/problem1.c: Likewise.
4808 * testsuite/libffi.special/unwindtest.cc: Likewise.
4809 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4810
48112003-09-18 David Edelsohn <edelsohn@gnu.org>
4812
4813 * src/powerpc/aix.S: Cleanup whitespaces.
4814 * src/powerpc/aix_closure.S: Likewise.
4815
48162003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4817
4818 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4819 * src/powerpc/darwin_closure.S: Likewise.
4820 * src/powerpc/ffi_darwin.c: Likewise.
4821
48222003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4823 David Edelsohn <edelsohn@gnu.org>
4824
4825 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4826 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4827 parameter stack.
4828 * src/powerpc/darwin_closure.S: Likewise.
4829 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4830 according to the Darwin/AIX ABI.
4831 (ffi_prep_cif_machdep): Likewise.
4832 (ffi_closure_helper_DARWIN): Likewise.
4833 Remove the outgoing parameter stack logic. Simplify the evaluation
4834 of the different CASE types.
4835 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4836 statement in the trampoline code.
4837
48382003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4839
4840 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4841 for the register size.
4842 (ffi_closure_helper_SYSV): Handle the structure return value
4843 address correctly.
4844 (ffi_closure_helper_SYSV): Return the appropriate type when
4845 the registers are used for the structure return value.
4846 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4847 the 64-bit return value. Update copyright years.
4848
48492003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4850
4851 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4852 srcdir for ffi_mips.h.
4853
48542003-09-12 Alan Modra <amodra@bigpond.net.au>
4855
4856 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4857 structure size.
4858 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4859 placement of float result.
4860 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4861 cast of "resp" for big-endian 64 bit machines.
4862
48632003-09-11 Alan Modra <amodra@bigpond.net.au>
4864
4865 * src/types.c (double, longdouble): Merge identical SH and ARM
4866 typedefs, and add POWERPC64.
4867 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4868 struct split over gpr and rest.
4869 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4870 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4871
48722003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4873
4874 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4875 passing correctly.
4876
48772003-09-09 Alan Modra <amodra@bigpond.net.au>
4878
4879 * configure: Regenerate.
4880
48812003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4882
4883 * Makefile.am: Remove build rules for ffitest.
4884 * Makefile.in: Rebuilt.
4885
48862003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4887
4888 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4889 about implicit declaration of abort().
4890
48912003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4892
4893 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4894 * Makefile.in: Rebuilt.
4895 * configure.in: Add dejagnu test framework.
4896 * configure: Rebuilt.
4897
4898 * testsuite/Makefile.am: New file.
4899 * testsuite/Makefile.in: Built
4900 * testsuite/lib/libffi-dg.exp: New file.
4901 * testsuite/config/default.exp: Likewise.
4902 * testsuite/libffi.call/call.exp: Likewise.
4903 * testsuite/libffi.call/ffitest.h: Likewise.
4904 * testsuite/libffi.call/closure_fn0.c: Likewise.
4905 * testsuite/libffi.call/closure_fn1.c: Likewise.
4906 * testsuite/libffi.call/closure_fn2.c: Likewise.
4907 * testsuite/libffi.call/closure_fn3.c: Likewise.
4908 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4909 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4910 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4911 * testsuite/libffi.call/cls_2byte.c: Likewise.
4912 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4913 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4914 * testsuite/libffi.call/cls_4byte.c: Likewise.
4915 * testsuite/libffi.call/cls_5byte.c: Likewise.
4916 * testsuite/libffi.call/cls_6byte.c: Likewise.
4917 * testsuite/libffi.call/cls_7byte.c: Likewise.
4918 * testsuite/libffi.call/cls_8byte.c: Likewise.
4919 * testsuite/libffi.call/cls_12byte.c: Likewise.
4920 * testsuite/libffi.call/cls_16byte.c: Likewise.
4921 * testsuite/libffi.call/cls_20byte.c: Likewise.
4922 * testsuite/libffi.call/cls_24byte.c: Likewise.
4923 * testsuite/libffi.call/cls_double.c: Likewise.
4924 * testsuite/libffi.call/cls_float.c: Likewise.
4925 * testsuite/libffi.call/cls_uchar.c: Likewise.
4926 * testsuite/libffi.call/cls_uint.c: Likewise.
4927 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4928 * testsuite/libffi.call/cls_ushort.c: Likewise.
4929 * testsuite/libffi.call/float.c: Likewise.
4930 * testsuite/libffi.call/float1.c: Likewise.
4931 * testsuite/libffi.call/float2.c: Likewise.
4932 * testsuite/libffi.call/many.c: Likewise.
4933 * testsuite/libffi.call/many_win32.c: Likewise.
4934 * testsuite/libffi.call/nested_struct.c: Likewise.
4935 * testsuite/libffi.call/nested_struct1.c: Likewise.
4936 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4937 * testsuite/libffi.call/problem1.c: Likewise.
4938 * testsuite/libffi.call/promotion.c: Likewise.
4939 * testsuite/libffi.call/return_ll.c: Likewise.
4940 * testsuite/libffi.call/return_sc.c: Likewise.
4941 * testsuite/libffi.call/return_uc.c: Likewise.
4942 * testsuite/libffi.call/strlen.c: Likewise.
4943 * testsuite/libffi.call/strlen_win32.c: Likewise.
4944 * testsuite/libffi.call/struct1.c: Likewise.
4945 * testsuite/libffi.call/struct2.c: Likewise.
4946 * testsuite/libffi.call/struct3.c: Likewise.
4947 * testsuite/libffi.call/struct4.c: Likewise.
4948 * testsuite/libffi.call/struct5.c: Likewise.
4949 * testsuite/libffi.call/struct6.c: Likewise.
4950 * testsuite/libffi.call/struct7.c: Likewise.
4951 * testsuite/libffi.call/struct8.c: Likewise.
4952 * testsuite/libffi.call/struct9.c: Likewise.
4953 * testsuite/libffi.special/special.exp: New file.
4954 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4955 * testsuite/libffi.special/unwindtest.cc: Likewise.
4956
4957
49582003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4959
4960 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4961 copyright years.
4962
49632003-08-02 Alan Modra <amodra@bigpond.net.au>
4964
4965 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4966 structure passing.
4967 (ffi_closure_helper_LINUX64): Likewise.
4968 * src/powerpc/linux64.S: Remove code writing to parm save area.
4969 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4970 address in lr from ffi_closure_helper_LINUX64 call to calculate
4971 table address. Optimize function tail.
4972
49732003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4974
4975 * src/sparc/ffi.c: Handle all floating point registers.
4976 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4977
49782003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4979
4980 * README: Note that libffi is not part of GCC. Update the project
4981 URL and status.
4982
49832003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4984
4985 * src/powerpc/ppc_closure.S: Include ffi.h.
4986
49872003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4988
4989 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4990 Use C style comments.
4991
49922003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4993
4994 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4995 * Makefile.in: Regenerate.
4996 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4997 * configure: Regenerate.
4998 * include/ffi.h.in: Add SHmedia support.
4999 * src/sh64/ffi.c: New file.
5000 * src/sh64/sysv.S: New file.
5001
50022003-05-16 Jakub Jelinek <jakub@redhat.com>
5003
5004 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
5005 should be read-only.
5006 * configure: Rebuilt.
5007 * fficonfig.h.in: Rebuilt.
5008 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
5009 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
5010 * src/powerpc/linux64.S: Likewise.
5011 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
5012 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
5013 if -fpic/-fPIC/-mrelocatable.
5014 * src/powerpc/powerpc_closure.S: Likewise.
5015 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
5016 #write in .eh_frame flags.
5017 * src/sparc/v9.S: Likewise.
5018 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
5019 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
5020 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
5021
50222003-05-07 Jeff Sturm <jsturm@one-point.com>
5023
5024 Fixes PR bootstrap/10656
5025 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
5026 support for .register pseudo-op.
5027 * src/sparc/v8.S: Use it.
5028 * fficonfig.h.in: Rebuilt.
5029 * configure: Rebuilt.
5030
50312003-04-18 Jakub Jelinek <jakub@redhat.com>
5032
5033 * include/ffi.h.in (POWERPC64): Define if 64-bit.
5034 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
5035 Make it the default on POWERPC64.
5036 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
5037 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
5038 * configure: Rebuilt.
5039 * src/powerpc/ffi.c (hidden): Define.
5040 (ffi_prep_args_SYSV): Renamed from
5041 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
5042 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
5043 ASM_NEEDS_REGISTERS64): New.
5044 (ffi_prep_args64): New function.
5045 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
5046 (ffi_call): Likewise.
5047 (ffi_prep_closure): Likewise.
5048 (flush_icache): Surround by #ifndef POWERPC64.
5049 (ffi_dblfl): New union type.
5050 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
5051 (ffi_closure_helper_LINUX64): New function.
5052 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
5053 __powerpc64__.
5054 * src/powerpc/sysv.S: Likewise.
5055 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
5056 * src/powerpc/linux64.S: New file.
5057 * src/powerpc/linux64_closure.S: New file.
5058 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
5059 src/powerpc/linux64_closure.S.
5060 (TARGET_SRC_POWERPC): Likewise.
5061
5062 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
5063 closure_test_fn3): Fix result printing on big-endian 64-bit
5064 machines.
5065 (main): Print tst2_arg instead of uninitialized tst2_result.
5066
5067 * src/ffitest.c (main): Hide what closure pointer really points to
5068 from the compiler.
5069
50702003-04-16 Richard Earnshaw <rearnsha@arm.com>
5071
5072 * configure.in (arm-*-netbsdelf*): Add configuration.
5073 (configure): Regenerated.
5074
50752003-04-04 Loren J. Rittle <ljrittle@acm.org>
5076
5077 * include/Makefile.in: Regenerate.
5078
50792003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5080
5081 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
5082 bit mode.
5083 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
5084 Receive closure pointer through parameter, read args using
5085 __builtin_dwarf_cfa.
5086 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
5087
50882003-03-12 Andreas Schwab <schwab@suse.de>
5089
5090 * configure.in: Avoid trailing /. in toolexeclibdir.
5091 * configure: Rebuilt.
5092
50932003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
5094
5095 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
5096
50972003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
5098
5099 * libffi/src/powerpc/darwin_closure.S:
5100 Fix alignement bug, allocate 8 bytes for the result.
5101 * libffi/src/powerpc/aix_closure.S:
5102 Likewise.
5103 * libffi/src/powerpc/ffi_darwin.c:
5104 Update stackframe description for aix/darwin_closure.S.
5105
51062003-02-06 Jakub Jelinek <jakub@redhat.com>
5107
5108 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
5109 attribute.
5110
51112003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
5112 Andreas Schwab <schwab@suse.de>
5113
5114 * configure.in: Adjust command to source config-ml.in to account
5115 for changes to the libffi_basedir definition.
5116 (libffi_basedir): Remove ${srcdir} from value and include trailing
5117 slash if nonempty.
5118
5119 * configure: Regenerate.
5120
51212003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5122
5123 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
5124
51252003-01-28 Andrew Haley <aph@redhat.com>
5126
5127 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
5128 * src/x86/ffi64.c (ffi_prep_closure): New.
5129 (ffi_closure_UNIX64_inner): New.
5130 * src/x86/unix64.S (ffi_closure_UNIX64): New.
5131
51322003-01-27 Alexandre Oliva <aoliva@redhat.com>
5133
5134 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
5135 Remove USE_LIBDIR conditional.
5136 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
5137 * Makefile.in, configure: Rebuilt.
5138
51392003-01027 David Edelsohn <edelsohn@gnu.org>
5140
5141 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
5142 * Makefile.in: Regenerate.
5143
51442003-01-22 Andrew Haley <aph@redhat.com>
5145
5146 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
5147 unwind info.
5148
51492003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
5150
5151 * src/powerpc/darwin.S: Add unwind info.
5152 * src/powerpc/darwin_closure.S: Likewise.
5153
51542003-01-14 Andrew Haley <aph@redhat.com>
5155
5156 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
5157 (ffi_prep_cif_machdep): Likewise.
5158 * src/x86/unix64.S: Add unwind info.
5159
51602003-01-14 Andreas Jaeger <aj@suse.de>
5161
5162 * src/ffitest.c (main): Only use ffi_closures if those are
5163 supported.
5164
51652003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
5166
5167 * libffi/src/ffitest.c
5168 add closure testcases
5169
51702003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
5171
5172 * libffi/src/powerpc/ffi.c
5173 fix alignment bug for float (4 byte aligned iso 8 byte)
5174
51752003-01-09 Geoffrey Keating <geoffk@apple.com>
5176
5177 * src/powerpc/ffi_darwin.c: Remove RCS version string.
5178 * src/powerpc/darwin.S: Remove RCS version string.
5179
51802003-01-03 Jeff Sturm <jsturm@one-point.com>
5181
5182 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
5183 * src/ffitest.c (main): Use static storage for closure.
5184 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
5185 * src/sparc/v8.S (ffi_closure_v8): New.
5186 * src/sparc/v9.S (ffi_closure_v9): New.
5187
51882002-11-10 Ranjit Mathew <rmathew@hotmail.com>
5189
5190 * include/ffi.h.in: Added FFI_STDCALL ffi_type
5191 enumeration for X86_WIN32.
5192 * src/x86/win32.S: Added ffi_call_STDCALL function
5193 definition.
5194 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
5195 switch cases for recognising FFI_STDCALL and
5196 calling ffi_call_STDCALL if target is X86_WIN32.
5197 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
5198 stdcall versions of the "my_strlen" and "many"
5199 test functions (for X86_WIN32).
5200 Added test cases to test stdcall invocation using
5201 these functions.
5202
52032002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
5204
5205 * src/sh/sysv.S: Add DWARF2 unwind info.
5206
52072002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
5208
5209 * src/s390/sysv.S (.eh_frame section): Make section read-only.
5210
52112002-11-26 Jim Wilson <wilson@redhat.com>
5212
5213 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
5214
52152002-11-23 H.J. Lu <hjl@gnu.org>
5216
5217 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
5218 Include ../config/accross.m4.
5219 * aclocal.m4; Rebuild.
5220 * configure: Likewise.
5221
52222002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
5223
5224 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
5225
52262002-11-11 DJ Delorie <dj@redhat.com>
5227
5228 * configure.in: Look for common files in the right place.
5229
52302002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
5231
5232 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
5233 raw data as _Jv_word values, not ffi_raw.
5234 (ffi_java_ptrarray_to_raw): Likewise.
5235 (ffi_java_rvalue_to_raw): New function.
5236 (ffi_java_raw_call): Call it.
5237 (ffi_java_raw_to_rvalue): New function.
5238 (ffi_java_translate_args): Call it.
5239 * src/ffitest.c (closure_test_fn): Interpret return value
5240 as ffi_arg, not int.
5241 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
5242 FFI_TYPE_POINTER case.
5243 (ffi_closure_helper_SYSV): Likewise. Also, assume return
5244 values extended to word size.
5245
52462002-10-02 Andreas Jaeger <aj@suse.de>
5247
5248 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
5249
52502002-10-01 Bo Thorsen <bo@smetana.suse.de>
5251
5252 * include/ffi.h.in: Fix i386 win32 compilation.
5253
52542002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
5255
5256 * configure.in: Add s390x-*-linux-* target.
5257 * configure: Regenerate.
5258 * include/ffi.h.in: Define S390X for s390x targets.
5259 (FFI_CLOSURES): Define for s390/s390x.
5260 (FFI_TRAMPOLINE_SIZE): Likewise.
5261 (FFI_NATIVE_RAW_API): Likewise.
5262 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5263 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5264 * src/s390/ffi.c: Major rework of existing code. Add support for
5265 s390x targets. Add closure support.
5266 * src/s390/sysv.S: Likewise.
5267
52682002-09-29 Richard Earnshaw <rearnsha@arm.com>
5269
5270 * src/arm/sysv.S: Fix typo.
5271
52722002-09-28 Richard Earnshaw <rearnsha@arm.com>
5273
5274 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5275 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5276 (ffi_call_SYSV): Handle soft-float.
5277
52782002-09-27 Bo Thorsen <bo@suse.de>
5279
5280 * include/ffi.h.in: Fix multilib x86-64 support.
5281
52822002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5283
5284 * Makefile.am (all-multi): Fix multilib parallel build.
5285
52862002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5287
5288 * configure.in (sh[34]*-*-linux*): Add brackets.
5289 * configure: Regenerate.
5290
52912002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5292
5293 * Makefile.am: Add SH support.
5294 * Makefile.in: Regenerate.
5295 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5296 * configure: Regenerate.
5297 * include/ffi.h.in: Add SH support.
5298 * src/sh/ffi.c: New file.
5299 * src/sh/sysv.S: New file.
5300 * src/types.c: Add SH support.
5301
53022002-07-16 Bo Thorsen <bo@suse.de>
5303
5304 * src/x86/ffi64.c: New file that adds x86-64 support.
5305 * src/x86/unix64.S: New file that handles argument setup for
5306 x86-64.
5307 * src/x86/sysv.S: Don't use this on x86-64.
5308 * src/x86/ffi.c: Don't use this on x86-64.
5309 Remove unused vars.
5310 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5311 for x86-64.
5312 * src/ffitest.c (struct6): New test that tests a special case in
5313 the x86-64 ABI.
5314 (struct7): Likewise.
5315 (struct8): Likewise.
5316 (struct9): Likewise.
5317 (closure_test_fn): Silence warning about this when it's not used.
5318 (main): Add the new tests.
5319 (main): Fix a couple of wrong casts and silence some compiler warnings.
5320 * include/ffi.h.in: Add x86-64 ABI definition.
5321 * fficonfig.h.in: Regenerate.
5322 * Makefile.am: Add x86-64 support.
5323 * configure.in: Likewise.
5324 * Makefile.in: Regenerate.
5325 * configure: Likewise.
5326
53272002-06-24 Bo Thorsen <bo@suse.de>
5328
5329 * src/types.c: Merge settings for similar architectures.
5330 Add x86-64 sizes and alignments.
5331
53322002-06-23 Bo Thorsen <bo@suse.de>
5333
5334 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5335 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5336 * src/mips/ffi.c (ffi_prep_args): Likewise.
5337 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5338
53392002-07-18 H.J. Lu (hjl@gnu.org)
5340
5341 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5342 (libffi_la_SOURCES): Support MIPS_LINUX.
5343 (libffi_convenience_la_SOURCES): Likewise.
5344 * Makefile.in: Regenerated.
5345
5346 * configure.in (mips64*-*): Skip.
5347 (mips*-*-linux*): New.
5348 * configure: Regenerated.
5349
5350 * src/mips/ffi.c: Include <sgidefs.h>.
5351
53522002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5353
5354 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5355
53562002-05-27 Roger Sayle <roger@eyesopen.com>
5357
5358 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5359
53602002-05-27 Bo Thorsen <bo@suse.de>
5361
5362 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5363 fix formatting.
5364
53652002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5366
5367 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5368 beginning of function (for older apple cc).
5369
53702002-05-08 Alexandre Oliva <aoliva@redhat.com>
5371
5372 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5373 script entry, and set LD to it when configuring multilibs.
5374 * configure: Rebuilt.
5375
53762002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5377
5378 * configure.in (sparc64-*-netbsd*): Add target.
5379 (sparc-*-netbsdelf*): Likewise.
5380 * configure: Regenerate.
5381
53822002-04-28 David S. Miller <davem@redhat.com>
5383
5384 * configure.in, configure: Fix SPARC test in previous change.
5385
53862002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5387
5388 * Makefile.am: Add Linux for S/390 support.
5389 * Makefile.in: Regenerate.
5390 * configure.in: Add Linux for S/390 support.
5391 * configure: Regenerate.
5392 * include/ffi.h.in: Add Linux for S/390 support.
5393 * src/s390/ffi.c: New file from libffi CVS tree.
5394 * src/s390/sysv.S: New file from libffi CVS tree.
5395
53962002-04-28 Jakub Jelinek <jakub@redhat.com>
5397
5398 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5399 %r_disp32().
5400 * src/sparc/v8.S: Use it.
5401 * src/sparc/v9.S: Likewise.
5402 * fficonfig.h.in: Rebuilt.
5403 * configure: Rebuilt.
5404
54052002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5406
5407 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5408 correctly.
5409 * src/ia64/unix.S: Add unwind information. Fix comments.
5410 Save sp in a way that's compatible with unwind info.
5411 (ffi_call_unix): Correctly restore sp in all cases.
5412 * src/ia64/ffi.c: Add, fix comments.
5413
54142002-04-08 Jakub Jelinek <jakub@redhat.com>
5415
5416 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5417
54182002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5419
5420 * configure.in (alpha*-*-netbsd*): Add target.
5421 * configure: Regenerate.
5422
54232002-04-04 Jeff Sturm <jsturm@one-point.com>
5424
5425 * src/sparc/v8.S: Add unwind info.
5426 * src/sparc/v9.S: Likewise.
5427
54282002-03-30 Krister Walfridsson <cato@df.lth.se>
5429
5430 * configure.in: Enable i*86-*-netbsdelf*.
5431 * configure: Rebuilt.
5432
54332002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5434
5435 PR other/2620
5436 * src/mips/n32.s: Delete
5437 * src/mips/o32.s: Delete
5438
54392002-03-21 Loren J. Rittle <ljrittle@acm.org>
5440
5441 * configure.in: Enable alpha*-*-freebsd*.
5442 * configure: Rebuilt.
5443
54442002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5445
5446 * Makefile.am: libfficonvenience -> libffi_convenience.
5447 * Makefile.in: Rebuilt.
5448
5449 * Makefile.am: Define ffitest_OBJECTS.
5450 * Makefile.in: Rebuilt.
5451
54522002-03-07 Andreas Tobler <toa@pop.agri.ch>
5453 David Edelsohn <edelsohn@gnu.org>
5454
5455 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5456 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5457 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5458 * Makefile.in: Regenerate.
5459 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5460 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5461 (flush_icache, flush_range): New functions.
5462 (ffi_closure_helper_DARWIN): New function.
5463 * src/powerpc/aix_closure.S: New file.
5464 * src/powerpc/darwin_closure.S: New file.
5465
54662002-02-24 Jeff Sturm <jsturm@one-point.com>
5467
5468 * include/ffi.h.in: Add typedef for ffi_arg.
5469 * src/ffitest.c (main): Declare rint with ffi_arg.
5470
54712002-02-21 Andreas Tobler <toa@pop.agri.ch>
5472
5473 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5474 number of GPRs for floating-point arguments.
5475
54762002-01-31 Anthony Green <green@redhat.com>
5477
5478 * configure: Rebuilt.
5479 * configure.in: Replace CHECK_SIZEOF and endian tests with
5480 cross-compiler friendly macros.
5481 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5482 macros.
5483
54842002-01-18 David Edelsohn <edelsohn@gnu.org>
5485
5486 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5487 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5488
54892002-01-17 David Edelsohn <edelsohn@gnu.org>
5490
5491 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5492 (TARGET_SRC_POWERPC_AIX): New.
5493 (POWERPC_AIX): New stanza.
5494 * Makefile.in: Regenerate.
5495 * configure.in: Add AIX case.
5496 * configure: Regenerate.
5497 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5498 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5499 size. Fix "long double" support.
5500 (ffi_call): Add FFI_AIX case.
5501 * src/powerpc/aix.S: New.
5502
55032001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5504
5505 Implement Darwin PowerPC ABI.
5506 * configure.in: Handle powerpc-*-darwin*.
5507 * Makefile.am: Set source files for POWERPC_DARWIN.
5508 * configure: Rebuilt.
5509 * Makefile.in: Rebuilt.
5510 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5511 POWERPC_DARWIN.
5512 * src/powerpc/darwin.S: New file.
5513 * src/powerpc/ffi_darwin.c: New file.
5514
55152001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5516
5517 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5518
55192001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5520
5521 * src/x86/sysv.S: Avoid gas-only .balign directive.
5522 Use C style comments.
5523
55242001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5525
5526 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5527 Fixes PR bootstrap/3563.
5528
55292001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5530
5531 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5532
55332001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5534
5535 * configure.in: Recognize sparc*-sun-* host.
5536 * configure: Regenerate.
5537
55382001-06-06 Andrew Haley <aph@redhat.com>
5539
5540 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5541
55422001-06-03 Andrew Haley <aph@redhat.com>
5543
5544 * src/alpha/osf.S: Add unwind info.
5545 * src/powerpc/sysv.S: Add unwind info.
5546 * src/powerpc/ppc_closure.S: Likewise.
5547
55482000-05-31 Jeff Sturm <jsturm@one-point.com>
5549
5550 * configure.in: Fix AC_ARG_ENABLE usage.
5551 * configure: Rebuilt.
5552
55532001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5554
5555 * configure.in: Remove warning about beta code.
5556 * configure: Rebuilt.
5557
55582001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5559
5560 * src/ia64/unix.S: Restore stack pointer when returning from
5561 ffi_closure_UNIX.
5562 * src/ia64/ffi.c: Fix typo in comment.
5563
55642001-04-18 Jim Wilson <wilson@redhat.com>
5565
5566 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5567 to eliminate RAW DV.
5568
55692001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5570
5571 * Makefile.am: Make a libtool convenience library.
5572 * Makefile.in: Rebuilt.
5573
55742001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5575
5576 * configure.in: Use different syntax for subdirectory creation.
5577 * configure: Rebuilt.
5578
55792001-03-27 Jon Beniston <jon@beniston.com>
5580
5581 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5582 * configure: Rebuilt.
5583 * Makefile.am: Added X86_WIN32 target support.
5584 * Makefile.in: Rebuilt.
5585
5586 * include/ffi.h.in: Added X86_WIN32 target support.
5587
5588 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5589 * src/types.c: Added X86_WIN32 target support.
5590
5591 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5592 stuff removed and made to work with CygWin's gas.
5593
55942001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5595
5596 * configure.in: Make target subdirectory in build dir.
5597 * Makefile.am: Override suffix based rules to specify correct output
5598 subdirectory.
5599 * Makefile.in: Rebuilt.
5600 * configure: Rebuilt.
5601
56022001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5603
5604 * src/powerpc/ppc_closure.S: New file.
5605 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5606 involving long long and register pairs.
5607 (ffi_prep_closure): New function.
5608 (flush_icache): Likewise.
5609 (ffi_closure_helper_SYSV): Likewise.
5610 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5611 (FFI_TRAMPOLINE_SIZE): Likewise.
5612 (FFI_NATIVE_RAW_API): Likewise.
5613 * Makefile.in: Rebuilt.
5614 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5615 (TARGET_SRC_POWERPC): Likewise.
5616
56172001-03-19 Tom Tromey <tromey@redhat.com>
5618
5619 * Makefile.in: Rebuilt.
5620 * Makefile.am (ffitest_LDFLAGS): New macro.
5621
56222001-03-02 Nick Clifton <nickc@redhat.com>
5623
5624 * include/ffi.h.in: Remove RCS ident string.
5625 * include/ffi_mips.h: Remove RCS ident string.
5626 * src/debug.c: Remove RCS ident string.
5627 * src/ffitest.c: Remove RCS ident string.
5628 * src/prep_cif.c: Remove RCS ident string.
5629 * src/types.c: Remove RCS ident string.
5630 * src/alpha/ffi.c: Remove RCS ident string.
5631 * src/alpha/osf.S: Remove RCS ident string.
5632 * src/arm/ffi.c: Remove RCS ident string.
5633 * src/arm/sysv.S: Remove RCS ident string.
5634 * src/mips/ffi.c: Remove RCS ident string.
5635 * src/mips/n32.S: Remove RCS ident string.
5636 * src/mips/o32.S: Remove RCS ident string.
5637 * src/sparc/ffi.c: Remove RCS ident string.
5638 * src/sparc/v8.S: Remove RCS ident string.
5639 * src/sparc/v9.S: Remove RCS ident string.
5640 * src/x86/ffi.c: Remove RCS ident string.
5641 * src/x86/sysv.S: Remove RCS ident string.
5642
56432001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5644
5645 * include/ffi.h.in: Change sourceware.cygnus.com references to
5646 gcc.gnu.org.
5647
56482000-12-09 Richard Henderson <rth@redhat.com>
5649
5650 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5651 (ffi_closure_osf_inner): Index rather than increment avalue
5652 and arg_types. Give ffi_closure_osf the raw return value type.
5653 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5654 promotion.
5655
56562000-12-07 Richard Henderson <rth@redhat.com>
5657
5658 * src/raw_api.c (ffi_translate_args): Fix typo.
5659 (ffi_prep_closure): Likewise.
5660
5661 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5662 FFI_TRAMPOLINE_SIZE.
5663 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5664 cif->bytes for new ffi_call_osf implementation.
5665 (ffi_prep_args): Absorb into ...
5666 (ffi_call): ... here. Do all stack allocation here and
5667 avoid a callback function.
5668 (ffi_prep_closure, ffi_closure_osf_inner): New.
5669 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5670 (ffi_closure_osf): New.
5671
56722000-09-10 Alexandre Oliva <aoliva@redhat.com>
5673
5674 * config.guess, config.sub, install-sh: Removed.
5675 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5676 * Makefile.in: Rebuilt.
5677
5678 * acinclude.m4: Include libtool macros from the top level.
5679 * aclocal.m4, configure: Rebuilt.
5680
56812000-08-22 Alexandre Oliva <aoliva@redhat.com>
5682
5683 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5684 * configure: Rebuilt.
5685
56862000-05-11 Scott Bambrough <scottb@netwinder.org>
5687
5688 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5689 memory correctly. Use conditional instructions, not branches where
5690 possible.
5691
56922000-05-04 Tom Tromey <tromey@cygnus.com>
5693
5694 * configure: Rebuilt.
5695 * configure.in: Match `arm*-*-linux-*'.
5696 From Chris Dornan <cdornan@arm.com>.
5697
56982000-04-28 Jakub Jelinek <jakub@redhat.com>
5699
5700 * Makefile.am (SUBDIRS): Define.
5701 (AM_MAKEFLAGS): Likewise.
5702 (Multilib support.): Add section.
5703 * Makefile.in: Rebuilt.
5704 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5705 New variables. Set for gcc using -print-multi-lib. Export them
5706 to libtool.
5707 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5708 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5709 for -shared links.
5710 (extra_compiler_flags_value, extra_compiler_flags): Check these
5711 for extra compiler options which need to be passed down in
5712 compiler_flags.
5713
57142000-04-16 Anthony Green <green@redhat.com>
5715
5716 * configure: Rebuilt.
5717 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5718
57192000-04-14 Jakub Jelinek <jakub@redhat.com>
5720
5721 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5722 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5723 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5724 Replace all void * sizeofs with sizeof(int).
5725 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5726 different than DOUBLE.
5727 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5728 (ffi_prep_args_v9): New function.
5729 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5730 (ffi_V9_return_struct): New function.
5731 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5732 32bit code (not yet cross-arch calls).
5733 * src/sparc/v8.S: Add struct return delay nop.
5734 Handle long long.
5735 * src/sparc/v9.S: New file.
5736 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5737 is used on sparc64 only for structures larger than 32 bytes.
5738 Pass by reference for structures is done for structure arguments
5739 larger than 16 bytes.
5740 * src/ffitest.c (main): Use 64bit rint on sparc64.
5741 Run long long tests on sparc.
5742 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5743 sparc64.
5744 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5745 on sparc64.
5746 * configure.in (sparc-*-linux*): New supported target.
5747 (sparc64-*-linux*): Likewise.
5748 * configure: Rebuilt.
5749 * Makefile.am: Add v9.S to SPARC files.
5750 * Makefile.in: Likewise.
5751 (LINK): Surround $(CCLD) into double quotes, so that multilib
5752 compiles work correctly.
5753
57542000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5755
5756 * configure: Rebuilt.
5757 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5758 proposed by Bryce McKinlay.
5759
57602000-03-20 Tom Tromey <tromey@cygnus.com>
5761
5762 * Makefile.in: Hand edit for java_raw_api.lo.
5763
57642000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5765
5766 * config.guess, config.sub: Update from the gcc tree.
5767 Fix for PR libgcj/168.
5768
57692000-03-03 Tom Tromey <tromey@cygnus.com>
5770
5771 * Makefile.in: Fixed ia64 by hand.
5772
5773 * configure: Rebuilt.
5774 * configure.in (--enable-multilib): New option.
5775 (libffi_basedir): New subst.
5776 (AC_OUTPUT): Added multilib code.
5777
57782000-03-02 Tom Tromey <tromey@cygnus.com>
5779
5780 * Makefile.in: Rebuilt.
5781 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5782 directory name.
5783
57842000-02-25 Hans Boehm <boehm@acm.org>
5785
5786 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5787 files.
5788 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5789 list.
5790 (ffi_prep_raw_closure): Use ffi_translate_args, not
5791 ffi_closure_translate.
5792 * src/java_raw_api.c: New file.
5793 * src/ffitest.c (closure_test_fn): New function.
5794 (main): Define `rint' as long long on IA64. Added new test when
5795 FFI_CLOSURES is defined.
5796 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5797 (ffi_abi): Recognize IA64.
5798 (ffi_raw): Added `flt' field.
5799 Added "Java raw API" code.
5800 * configure.in: Recognize ia64.
5801 * Makefile.am (TARGET_SRC_IA64): New macro.
5802 (libffi_la_common_SOURCES): Added java_raw_api.c.
5803 (libffi_la_SOURCES): Define in IA64 case.
5804
58052000-01-04 Tom Tromey <tromey@cygnus.com>
5806
5807 * Makefile.in: Rebuilt with newer automake.
5808
58091999-12-31 Tom Tromey <tromey@cygnus.com>
5810
5811 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5812
58131999-09-01 Tom Tromey <tromey@cygnus.com>
5814
5815 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5816 undefs.
5817 * fficonfig.h.in: Rebuilt.
5818 * configure: Rebuilt.
5819 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5820 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5821 * acconfig.h: Don't #undef PACKAGE or VERSION.
5822
58231999-08-09 Anthony Green <green@cygnus.com>
5824
5825 * include/ffi.h.in: Try to work around messy header problem
5826 with PACKAGE and VERSION.
5827
5828 * configure: Rebuilt.
5829 * configure.in: Change version to 2.00-beta.
5830
5831 * fficonfig.h.in: Rebuilt.
5832 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5833
5834 * src/x86/ffi.c (ffi_raw_call): Rename.
5835
58361999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5837
5838 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5839 (ffi_prep_incoming_args_SYSV): Ditto.
5840 (ffi_prep_closure): Ditto.
5841 (ffi_closure_raw_SYSV): Ditto.
5842 (ffi_prep_raw_closure): More ditto.
5843 (ffi_call_raw): Final ditto.
5844
5845 * include/ffi.h.in: Add definitions for closure and raw API.
5846
5847 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5848 FFI_TYPE_UINT64.
5849
5850 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5851
5852 * src/raw_api.c: New file.
5853
5854 * include/ffi.h.in (ffi_raw): New type.
5855 (UINT_ARG, SINT_ARG): New defines.
5856 (ffi_closure, ffi_raw_closure): New types.
5857 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5858
5859 * configure.in: Add check for endianness and sizeof void*.
5860
5861 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5862 instead of directly.
5863
5864 * configure: Rebuilt.
5865
5866Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5867
5868 * configure.in: Add x86 and powerpc BeOS configurations.
5869 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5870
58711999-05-09 Anthony Green <green@cygnus.com>
5872
5873 * configure.in: Add warning about this being beta code.
5874 Remove src/Makefile.am from the picture.
5875 * configure: Rebuilt.
5876
5877 * Makefile.am: Move logic from src/Makefile.am. Add changes
5878 to support libffi as a target library.
5879 * Makefile.in: Rebuilt.
5880
5881 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5882 Upgraded to new autoconf, automake, libtool.
5883
5884 * README: Tweaks.
5885
5886 * LICENSE: Update copyright date.
5887
5888 * src/Makefile.am, src/Makefile.in: Removed.
5889
58901998-11-29 Anthony Green <green@cygnus.com>
5891
5892 * include/ChangeLog: Removed.
5893 * src/ChangeLog: Removed.
5894 * src/mips/ChangeLog: Removed.
5895 * src/sparc/ChangeLog: Remboved.
5896 * src/x86/ChangeLog: Removed.
5897
5898 * ChangeLog.v1: Created.