blob: 1b3c6e46c08f823d4473e8a27f444d01397ef432 [file] [log] [blame]
Anthony Green76d19d02014-03-14 16:54:31 -040012014-03-14 Anthony Green <green@moxielogic.com>
2
3 * configure, Makefile.in: Rebuilt.
4
Ryan VanderMeulen18eb81d2014-03-10 14:43:37 -040052014-03-10 Mike Hommey <mh+mozilla@glandium.org>
6
7 * configure.ac: Allow building for mipsel with Android NDK r8.
Ryan VanderMeulenf8cdf112014-03-10 15:04:58 -04008 * Makefile.am (AM_MAKEFLAGS): Replace double quotes with single quotes.
Ryan VanderMeulen18eb81d2014-03-10 14:43:37 -04009
Ryan VanderMeulendfa37382014-03-10 14:53:48 -0400102014-03-10 Landry Breuil <landry@openbsd.org>
11
12 * configure.ac: Ensure the linker supports @unwind sections in libffi.
13
Anthony Green634a4752014-03-01 18:37:29 -0500142014-03-01 Anthony Green <green@moxielogic.com>
15
16 * Makefile.am (EXTRA_DIST): Replace old scripts with
17 generate-darwin-source-and-headers.py.
18 * Makefile.in: Rebuilt.
19
Anthony Greena04e30b2014-02-28 17:20:59 -0500202014-02-28 Anthony Green <green@moxielogic.com>
21
22 * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for
23 --enable-debug builds.
24 * Makefile.in: Rebuilt.
25
262014-02-28 Makoto Kato <m_kato@ga2.so-net.ne.jp>
27
28 * src/closures.c: Fix build failure when using clang for Android.
29
Anthony Greenb40aeda2014-02-28 01:01:29 -0500302014-02-28 Marcin Wojdyr <wojdyr@gmail.com>
31
32 * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead
33 of -L${libdir}.
34
Anthony Green20698ab2014-02-28 00:56:27 -0500352014-02-28 Paulo Pizarro <paulo.pizarro@gmail.com>
36
37 * src/bfin/sysv.S: Calling functions in shared libraries requires
38 considering the GOT.
39
Anthony Green64bd0692014-02-28 00:52:56 -0500402014-02-28 Josh Triplett <josh@joshtriplett.org>
41
42 * src/x86/ffi64.c (classify_argument): Handle case where
43 FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE.
44
Anthony Green33c99542014-02-28 00:38:41 -0500452014-02-28 Anthony Green <green@moxielogic.com>
46
47 * ltmain.sh: Generate with libtool-2.4.2.418.
48 * m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto.
49 * configure: Rebuilt.
50
Anthony Green5a88c852014-02-28 00:23:04 -0500512014-02-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
52
53 * configure.ac (AC_ARG_ENABLE struct): Fix typo in help
54 message.
55 (AC_ARG_ENABLE raw_api): Ditto.
56 * configure, fficonfig.h.in: Rebuilt.
57
Anthony Green001aaf42014-02-28 00:20:17 -0500582014-02-28 Will Newton <will.newton@linaro.org>
59
60 * src/arm/sysv.S: Initialize IP register with FP.
61
Anthony Green49f77292014-02-28 00:17:16 -0500622014-02-28 Yufeng Zhang <yufeng.zhang@arm.com>
63
64 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
65 main CFA reg; update cfi_rel_offset.
66
Heiher40927bd2014-01-21 23:18:27 +0800672014-02-09 Heiher <r@hev.cc>
68
69 * src/mips/n32.S: Fix call floating point va function.
70
Zachary Waldowskif466aad2014-01-21 16:38:31 -0500712014-01-21 Zachary Waldowski <zach@waldowski.me>
72
73 * src/aarch64/ffi.c: Fix missing semicolons on assertions under
74 debug mode.
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050075
762013-12-30 Zachary Waldowski <zach@waldowski.me>
77
78 * .gitignore: Exclude darwin_* generated source and build_* trees.
79 * src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang
80 previous prototype warnings.
81 * src/arm/ffi.c: Prevent NULL dereference, fix short type warning
82 * src/dlmalloc.c: Fix warnings from set_segment_flags return type,
83 and the native use of size_t for malloc on platforms
84 * src/arm/sysv.S: Use unified syntax. Clang clean-ups for
85 ARM_FUNC_START.
86 * generate-osx-source-and-headers.py: Remove.
87 * build-ios.sh: Remove.
88 * libffi.xcodeproj/project.pbxproj: Rebuild targets. Include
89 x86_64+aarch64 pieces in library. Export headers properly.
90 * src/x86/ffi64.c: More Clang warning clean-ups.
91 * src/closures.c (open_temp_exec_file_dir): Use size_t.
92 * src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result.
93 * src/aarch64/sysv.S: Use CNAME for global symbols. Only use
94 .size for ELF targets.
95 * src/aarch64/ffi.c: Clean up for double == long double. Clean up
Zachary Waldowskif466aad2014-01-21 16:38:31 -050096 from Clang warnings. Use Clang cache invalidation builtin. Use
Zachary Waldowskibfc06b32013-12-30 17:36:39 -050097 size_t in place of unsigned in many places. Accommodate for
98 differences in Apple AArch64 ABI.
99
1002013-12-02 Daniel Rodríguez Troitiño <drodrigueztroitino@yahoo.es>
101
102 * generate-darwin-source-and-headers.py: Clean up, modernize,
Anthony Green447483d2014-02-27 15:42:41 -0500103 merged version of previous scripts.
Zachary Waldowskibfc06b32013-12-30 17:36:39 -0500104
Alan Modraab79d6e2013-11-21 06:12:35 -05001052013-11-21 Anthony Green <green@moxielogic.com>
106
107 * configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
108 man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt.
109
1102013-11-21 Alan Modra <amodra@gmail.com>
111
112 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
113 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
114 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
115 * include/ffi.h.in (ffi_prep_types): Declare.
116 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
117 * src/types.c (FFI_NONCONST_TYPEDEF): Define and use for
118 HAVE_LONG_DOUBLE_VARIANT.
119 * src/powerpc/ffi_powerpc.h: New file.
120 * src/powerpc/ffi.c: Split into..
121 * src/powerpc/ffi_sysv.c: ..new file, and..
122 * src/powerpc/ffi_linux64.c: ..new file, rewriting parts.
123 * src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI
124 selection as bits controlling features.
125 * src/powerpc/linux64.S: For consistency, use POWERPC64 rather
126 than __powerpc64__.
127 * src/powerpc/linux64_closure.S: Likewise.
128 * src/powerpc/ppc_closure.S: Likewise. Move .note.FNU-stack
129 inside guard.
130 * src/powerpc/sysv.S: Likewise.
131 * configure: Regenerate.
132 * fficonfig.h.in: Regenerate.
133 * Makefile.in: Regenerate.
134
1352013-11-20 Alan Modra <amodra@gmail.com>
136
137 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use
138 NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their
139 32-bit versions for 64-bit code.
140 * src/powerpc/linux64_closure.S: Don't use the return value area
141 as a parameter save area on ELFv2.
142
Iain Sandoeaa1f62c2013-11-18 13:11:56 +00001432013-11-18 Iain Sandoe <iain@codesourcery.com>
144
145 * src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding.
146 * src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase
147 labels.
148
Anthony Green2f450822013-11-18 06:52:29 -05001492013-11-18 Anthony Green <green@moxielogic.com>
150
151 * src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of
152 function.
153 * src/arm/ffi.c (ffi_closure_inner): Moderize function declaration
154 to appease compiler.
155 Thanks for Gregory P. Smith <greg@krypto.org>.
156
1572013-11-18 Anthony Green <green@moxielogic.com>
158
159 * README (tested): Mention PowerPC ELFv2.
160
Alan Modra164283f2013-11-16 06:38:55 -05001612013-11-16 Alan Modra <amodra@gmail.com>
162
Alan Modra16d56c52013-11-18 06:36:03 -0500163 * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
164 Don't bl .Luint128.
165
1662013-11-16 Alan Modra <amodra@gmail.com>
167
Alan Modra83f65b62013-11-16 06:53:50 -0500168 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
169 test to select parameter save sizing for ELFv2 vs. ELFv1.
170 * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
171 FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define.
172 (FFI_TRAMPOLINE_SIZE): Define variant for ELFv2.
173 * src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define.
174 (discover_homogeneous_aggregate): New function.
175 (ffi_prep_args64): Adjust start of param save area for ELFv2.
176 Handle homogenous floating point struct parms.
177 (ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2.
178 Handle ELFv2 return values. Set FLAG_ARG_NEEDS_PSAVE. Handle
179 homogenous floating point structs.
180 (ffi_call): Increase size of smst_buffer for ELFv2. Handle ELFv2.
181 (flush_icache): Compile for ELFv2.
182 (ffi_prep_closure_loc): Set up ELFv2 trampoline.
183 (ffi_closure_helper_LINUX64): Don't return all structs directly
184 to caller. Handle homogenous floating point structs. Handle
185 ELFv2 struct return values.
186 * src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for
187 ELFv2. Adjust toc save location. Call function pointer using
188 r12. Handle FLAG_RETURNS_SMST. Don't predict branches.
189 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2
190 for ELFv2. Define ELFv2 versions of STACKFRAME, PARMSAVE, and
191 RETVAL. Handle possibly missing parameter save area. Handle
192 ELFv2 return values.
193 (.note.GNU-stack): Move inside outer #ifdef.
194
1952013-11-16 Alan Modra <amodra@gmail.com>
196
Alan Modra36285132013-11-16 06:52:43 -0500197 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08
198 change. Do not consume an int arg when returning a small struct
199 for FFI_SYSV ABI.
200 (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST.
201 Properly copy bounce buffer to destination.
202 * src/powerpc/sysv.S: Revert 2013-02-08 change.
203 * src/powerpc/ppc_closure.S: Remove stray '+'.
204
2052013-11-16 Alan Modra <amodra@gmail.com>
206
Alan Modra1c065152013-11-16 06:41:36 -0500207 * src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters
208 according to __STRUCT_PARM_ALIGN__.
209 (ffi_prep_cif_machdep_core): Likewise.
210 (ffi_closure_helper_LINUX64): Likewise.
211
2122013-11-16 Alan Modra <amodra@gmail.com>
213
Alan Modraa97cf1f2013-11-16 06:40:13 -0500214 * src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28.
215 (.note.GNU-stack): Move inside outer #ifdef.
216 * src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE,
217 RETVAL): Define and use throughout.
218 (ffi_closure_LINUX64): Save fprs before buying stack.
219 (.note.GNU-stack): Move inside outer #ifdef.
220
2212013-11-16 Alan Modra <amodra@gmail.com>
222
Alan Modra164283f2013-11-16 06:38:55 -0500223 * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
224 (FFI_EXTRA_CIF_FIELDS): Define.
225 * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
226 ABI, not to both fpr and param save area.
227 (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
228 Keep initial flags. Formatting. Remove dead FFI_LINUX_SOFT_FLOAT
229 code.
230 (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
231 (ffi_closure_helper_LINUX64): Pass floating point as per ABI,
232 not to both fpr and parameter save areas.
233
234 * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
235 function cast and don't call ffi_prep_cif.
236 * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
237
Andrew Haleydb0ace32013-11-16 06:29:25 -05002382013-11-15 Andrew Haley <aph@redhat.com>
239
Andrew Haley31257b32013-11-16 06:35:51 -0500240 * doc/libffi.texi (Closure Example): Fix the sample code.
241 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
242
2432013-11-15 Andrew Haley <aph@redhat.com>
244
Andrew Haleydb0ace32013-11-16 06:29:25 -0500245 * testsuite/libffi.call/va_struct1.c (main): Fix broken test.
246 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
247 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
248 * testsuite/libffi.call/va_1.c (main): Likewise.
249
David Schneiderf3657da2013-11-14 13:02:16 +01002502013-11-14 David Schneider <david.schneider@bivab.de>
251
Anthony Greende10f502013-11-14 10:56:29 -0500252 * src/arm/ffi.c: Fix register allocation for mixed float and
253 doubles.
254 * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
255 for many mixed float and double arguments.
256
Alan Modra58c25772013-11-13 16:55:36 -05002572013-11-13 Alan Modra <amodra@gmail.com>
258
259 * doc/libffi.texi (Simple Example): Correct example code.
260 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
261
Anthony Green8af42f92013-11-13 16:40:28 -05002622013-11-13 Anthony Green <green@moxielogic.com>
263
264 * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
265 based build. (Thanks to tmr111116 on github)
266
Anthony Green2f5b7ce2013-11-09 06:16:32 -05002672013-11-09 Anthony Green <green@moxielogic.com>
268
269 * m4/libtool.m4: Refresh.
270 * configure, Makefile.in: Rebuilt.
271 * README: Add more notes about next release.
272
2732013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp>
274
275 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
276 UltraSPARC-IIi as ultrasparc3.
277
Mark Kettenisbecd7542013-11-06 06:43:49 -05002782013-11-06 Mark Kettenis <kettenis@gnu.org>
279
280 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
281 16-bytes.
282
Konstantin Belousov05c31092013-11-06 06:40:58 -05002832013-11-06 Konstantin Belousov <kib@freebsd.org>
284
285 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
286 source as not requiring executable stack.
287
Anthony Greencf6bf982013-11-02 17:23:59 -04002882013-11-02 Anthony Green <green@moxielogic.com>
289
290 * doc/libffi.texi (The Basics): Clarify return value buffer size
291 requirements. Also, NULL result buffer pointers are no longer
292 supported.
293 * doc/libffi.info: Rebuilt.
294
Anthony Greenc2422172013-11-02 14:08:23 -07002952013-11-02 Mischa Jonker <mjonker@synopsys.com>
296
297 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
298 * Makefile.in: Rebuilt.
299
3002013-11-02 David Schneider <david.schneider@bivab.de>
301
302 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
303 * testsuite/libffi.call/many_mixed.c: New file.
304 * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
305
Anthony Greenf4b843f2013-11-02 17:01:15 -04003062013-11-02 Vitaly Budovski
307
308 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
309
Mark H Weaverd3372c52013-10-26 08:30:06 -04003102013-10-23 Mark H Weaver <mhw@netris.org>
311
312 * src/mips/ffi.c: Fix handling of uint32_t arguments on the
313 MIPS N32 ABI.
314
Sandra Loosemore16b93a22013-10-15 15:33:59 -04003152013-10-13 Sandra Loosemore <sandra@codesourcery.com>
316
317 * README: Add Nios II to table of supported platforms.
318 * Makefile.am (EXTRA_DIST): Add nios2 files.
319 (nodist_libffi_la_SOURCES): Likewise.
320 * Makefile.in: Regenerated.
321 * configure.ac (nios2*-linux*): New host.
322 (NIOS2): Add AM_CONDITIONAL.
323 * configure: Regenerated.
324 * src/nios2/ffi.c: New.
325 * src/nios2/ffitarget.h: New.
326 * src/nios2/sysv.S: New.
327 * src/prep_cif.c (initialize_aggregate): Handle extra structure
328 alignment via FFI_AGGREGATE_ALIGNMENT.
329 (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
330
Sandra Loosemore2f5626c2013-10-15 15:32:16 -04003312013-10-10 Sandra Loosemore <sandra@codesourcery.com>
332
333 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
334 Fix uninitialized variable.
335
Marcus Shawcroftf64e4a82013-10-15 15:20:14 -04003362013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com>
337
338 * testsuite/libffi.call/many.c (many): Replace * with +.
339
Anthony Green128cd1d2013-10-08 06:45:51 -04003402013-10-08 Ondřej Bílka <neleai@seznam.cz>
341
342 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
343 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
344 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
345 src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
346 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
347 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
348 spelling errors.
349
Anthony Greend2fcbcd2013-10-08 06:27:46 -04003502013-10-08 Anthony Green <green@moxielogic.com>
351
352 * aclocal.m4, compile, config.guess, config.sub, depcomp,
353 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
354 * configure.ac: Update version to 3.0.14-rc0.
355 * Makefile.in, configure, Makefile.in, include/Makefile.in,
356 man/Makefile.in, testsuite/Makefile.in: Rebuilt.
Anthony Green128cd1d2013-10-08 06:45:51 -0400357 * README: Mention M88K and VAX.
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400358
3592013-07-15 Miod Vallat <miod@openbsd.org>
360
361 * Makefile.am,
362 configure.ac,
363 src/m88k/ffi.c,
364 src/m88k/ffitarget.h,
365 src/m88k/obsd.S,
366 src/vax/elfbsd.S,
367 src/vax/ffi.c,
368 src/vax/ffitarget.h: Add m88k and vax support.
369
Anthony Greend3d099b2013-07-02 16:11:38 -04003702013-06-24 Alan Modra <amodra@gmail.com>
371
372 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
373 before statements.
374 (ffi_prep_args64): Support little-endian.
375 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
376 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
377 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
378
Mischa Jonkerb082e152013-06-10 16:19:33 +02003792013-06-12 Mischa Jonker <mjonker@synopsys.com>
380
381 * configure.ac: Add support for ARC.
382 * Makefile.am: Likewise.
383 * README: Add ARC details.
384 * src/arc/arcompact.S: New.
385 * src/arc/ffi.c: Likewise.
386 * src/arc/ffitarget.h: Likewise.
387
David Schneider4750e3c2013-03-28 16:56:36 +01003882013-03-28 David Schneider <david.schneider@bivab.de>
389
390 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
391 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
392 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
393 mixed arguments, many doubles.
394 * testsuite/libffi.call/many_double.c: testcase for calling a function using
395 more than 8 doubles.
396 * testcase/libffi.call/many.c: use absolute value to check result against an
397 epsilon
398
Anthony Greencb32c812013-03-17 09:27:55 -04003992013-03-17 Anthony Green <green@moxielogic.com>
400
Anthony Green12b18862013-03-17 18:32:12 -0400401 * README: Update for 3.0.13.
402 * configure.ac: Ditto.
403 * configure: Rebuilt.
404 * doc/*: Update version.
405
4062013-03-17 Dave Korn <dave.korn.cygwin@gmail.com>
407
408 * src/closures.c (is_emutramp_enabled
409 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
410 enclosing #if scope.
411
4122013-03-17 Anthony Green <green@moxielogic.com>
413
Anthony Greencb32c812013-03-17 09:27:55 -0400414 * configure.ac: Only modify toolexecdir in certain cases.
415 * configure: Rebuilt.
416
Anthony Green4acf0052013-03-16 08:18:45 -04004172013-03-16 Gilles Talis <gilles.talis@gmail.com>
418
419 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
420 fparg_count,etc on __NO_FPRS__ targets.
421
Anthony Green8a286f52013-03-16 08:01:19 -04004222013-03-16 Alan Hourihane <alanh@fairlite.co.uk>
423
Anthony Green4acf0052013-03-16 08:18:45 -0400424 * src/m68k/sysv.S (epilogue): Don't use extb instruction on
Anthony Green8a286f52013-03-16 08:01:19 -0400425 m680000 machines.
426
Anthony Green211a9eb2013-03-16 04:24:40 -07004272013-03-16 Alex Gaynor <alex.gaynor@gmail.com>
428
429 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
430
Anthony Green2fb527a2013-03-16 07:46:38 -04004312013-03-13 Markos Chandras <markos.chandras@imgtec.com>
432
433 * configure.ac: Add support for Imagination Technologies Meta.
434 * Makefile.am: Likewise.
435 * README: Add Imagination Technologies Meta details.
436 * src/metag/ffi.c: New.
437 * src/metag/ffitarget.h: Likewise.
438 * src/metag/sysv.S: Likewise.
439
Anthony Green675c9832013-03-16 08:12:38 -04004402013-02-24 Andreas Schwab <schwab@linux-m68k.org>
441
442 * doc/libffi.texi (Structures): Fix missing category argument of
443 @deftp.
444
Anthony Greenf308faf2013-02-11 14:25:13 -05004452013-02-11 Anthony Green <green@moxielogic.com>
446
447 * configure.ac: Update release number to 3.0.12.
448 * configure: Rebuilt.
449 * README: Update release info.
450
4512013-02-10 Anthony Green <green@moxielogic.com>
452
453 * README: Add Moxie.
454 * src/moxie/ffi.c: Created.
455 * src/moxie/eabi.S: Created.
456 * src/moxie/ffitarget.h: Created.
457 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
458 * Makefile.in: Rebuilt.
459 * configure.ac: Add Moxie.
460 * configure: Rebuilt.
461 * testsuite/libffi.call/huge_struct.c: Disable format string
462 warnings for moxie*-*-elf tests.
463
4642013-02-10 Anthony Green <green@moxielogic.com>
465
466 * Makefile.am (LTLDFLAGS): Fix reference.
467 * Makefile.in: Rebuilt.
468
Anthony Green4ea22e52013-02-10 08:48:38 -05004692013-02-10 Anthony Green <green@moxielogic.com>
470
471 * README: Update supported platforms. Update test results link.
472
Anthony Green10e77222013-02-10 08:47:26 -05004732013-02-09 Anthony Green <green@moxielogic.com>
474
475 * testsuite/libffi.call/negint.c: Remove forced -O2.
476 * testsuite/libffi.call/many2.c (foo): Remove GCCism.
477 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
478
479 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
480 closure return type fix developed by Martin v. Löwis for cpython
481 fork.
482
Anthony Green70b11b42013-02-08 16:12:19 -05004832013-02-08 Andreas Tobler <andreast@fgznet.ch>
484
485 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
486 support.
487 * src/powerpc/sysv.S: Ditto.
488
Anthony Green63ba1fa2013-02-08 15:18:19 -05004892013-02-08 Anthony Green <green@moxielogic.com>
490
491 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
492 arm*-*-*.
493
4942013-02-08 Anthony Green <green@moxielogic.com>
495
496 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
497
Anthony Green24fbca42013-02-08 14:19:56 -05004982013-02-08 Matthias Klose <doko@ubuntu.com>
Anthony Greenb0fa11c2013-02-08 14:17:13 -0500499
500 * man/ffi_prep_cif.3: Clean up for debian linter.
501
Anthony Green24fbca42013-02-08 14:19:56 -05005022013-02-08 Peter Bergner <bergner@vnet.ibm.com>
Anthony Green8bd15d12013-02-08 13:56:37 -0500503
504 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
505 on the stack.
506
Anthony Greencb03ea82013-02-08 12:25:18 -05005072013-02-08 Anthony Green <green@moxielogic.com>
508
Anthony Green7aab8252013-02-08 13:26:21 -0500509 * Makefile.am (EXTRA_DIST): Add missing files.
510 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
511 * Makefile.in: Rebuilt.
512
5132013-02-08 Anthony Green <green@moxielogic.com>
514
Anthony Greencb03ea82013-02-08 12:25:18 -0500515 * configure.ac: Move sparc asm config checks to within functions
516 for compatibility with sun tools.
517 * configure: Rebuilt.
518 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
519 systems.
520 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
521 flusher.
522
Anthony Green35ee8d42013-02-08 07:12:41 -05005232013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
524
525 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
526 small big-endian structures.
527 (ffi_prep_args): Ditto.
528
Anthony Greened6ae952013-02-07 16:43:36 -05005292013-02-07 Anthony Green <green@moxielogic.com>
530
Anthony Green9db7e1a2013-02-07 21:06:08 -0500531 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
532 (effectively hiding ffi_call_v8).
533
5342013-02-07 Anthony Green <green@moxielogic.com>
535
Anthony Greence0138e2013-02-07 18:04:01 -0500536 * configure.ac: Update bug reporting address.
537 * configure.in: Rebuild.
538
Anthony Greenfd07c9e2013-02-07 18:00:36 -0500539 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
540 Sun compiler.
541 * src/sparc/ffi.c (ffi_call): Remove warning.
542 Call ffi_flush_icache for non-GCC builds.
543 (ffi_prep_closure_loc): Use ffi_flush_icache.
544
Anthony Greened6ae952013-02-07 16:43:36 -0500545 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
546 * Makefile.in: Rebuilt.
547 * libtool-ldflags: New file.
548
Anthony Greenffef2e02013-02-07 15:47:01 -05005492013-02-07 Daniel Schepler <dschepler@gmail.com>
550
551 * configure.ac: Correctly identify x32 systems as 64-bit.
552 * m4/libtool.m4: Remove libtool expr error.
553 * aclocal.m4, configure: Rebuilt.
554
Anthony Greenf3a4f3f2013-02-07 09:57:20 -05005552013-02-07 Anthony Green <green@moxielogic.com>
556
Anthony Green176aa9d2013-02-07 15:29:22 -0500557 * configure.ac: Fix GCC usage test.
558 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -0500559 * README: Mention LLVM/GCC x86_64 issue.
560 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -0500561
5622013-02-07 Anthony Green <green@moxielogic.com>
563
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500564 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
565 comments with /* */ for xlc compiler.
566 * testsuite/libffi.call/stret_large.c (main): Ditto.
567 * testsuite/libffi.call/stret_large2.c (main): Ditto.
568 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
569 * testsuite/libffi.call/huge_struct.c (main): Ditto.
570 * testsuite/libffi.call/float_va.c (main): Ditto.
571 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
572 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
573 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
574 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
575
Anthony Greenf7cd61e2013-02-06 17:38:04 -05005762013-02-06 Anthony Green <green@moxielogic.com>
577
Anthony Green522f8fe2013-02-06 20:31:31 -0500578 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
579
5802013-02-06 Anthony Green <green@moxielogic.com>
581
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500582 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
583 * Makefile.in: Rebuild.
584
Anthony Green6a790122013-02-06 17:37:15 -05005852013-02-02 Mark H Weaver <mhw@netris.org>
586
587 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
588 via general purpose registers.
589
Anthony Greenaeb87192013-01-21 07:37:30 -05005902013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
591
592 * README: Add MicroBlaze details.
593 * Makefile.am: Add MicroBlaze support.
594 * configure.ac: Likewise.
595 * src/microblaze/ffi.c: New.
596 * src/microblaze/ffitarget.h: Likewise.
597 * src/microblaze/sysv.S: Likewise.
598
5992013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
600 * testsuite/libffi.call/return_uc.c: Fixed issue.
601
Anthony Green20cae322013-01-21 07:07:38 -05006022013-01-21 Chris Zankel <chris@zankel.net>
603
604 * README: Add Xtensa support.
605 * Makefile.am: Likewise.
606 * configure.ac: Likewise.
607 * Makefile.in Regenerate.
608 * configure: Likewise.
609 * src/prep_cif.c: Handle Xtensa.
610 * src/xtensa: New directory.
611 * src/xtensa/ffi.c: New file.
612 * src/xtensa/ffitarget.h: Ditto.
613 * src/xtensa/sysv.S: Ditto.
614
Anthony Greenbff052d2013-01-11 10:24:32 -05006152013-01-11 Anthony Green <green@moxielogic.com>
616
Anthony Green05fbe1f2013-01-11 16:54:40 -0500617 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
618 comments with /* */ for xlc compiler.
619 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500620 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
621 deprecated inline function.
622 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500623 * README: Add update for AIX support.
624
6252013-01-11 Anthony Green <green@moxielogic.com>
626
Anthony Greenbff052d2013-01-11 10:24:32 -0500627 * configure.ac: Robustify pc relative reloc check.
628 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
629 changing option for 32-bit x86.
630 * aclocal.m4, configure: Rebuilt.
631 * README: Update supported target list.
632
Anthony Green2d9b3932013-01-09 21:14:54 -05006332013-01-10 Anthony Green <green@moxielogic.com>
634
Anthony Greencd41aea2013-01-10 17:25:45 -0500635 * README (tested): Add Compiler column to table.
636
6372013-01-10 Anthony Green <green@moxielogic.com>
638
Anthony Green8bf987d2013-01-10 17:24:51 -0500639 * src/x86/ffi64.c (struct register_args): Make sse array and array
640 of unions for sunpro compiler compatibility.
641
6422013-01-10 Anthony Green <green@moxielogic.com>
643
Anthony Green13e2d7b2013-01-10 10:52:02 -0500644 * configure.ac: Test target platform size_t size. Handle both 32
645 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
646 CFLAG option to change default settings).
647 * configure, aclocal.m4: Rebuilt.
648
6492013-01-10 Anthony Green <green@moxielogic.com>
650
Anthony Green51415432013-01-10 07:35:53 -0500651 * testsuite/libffi.special/special.exp: Only run exception
652 handling tests when using GNU compiler.
653
Anthony Green56ba8d82013-01-10 07:25:10 -0500654 * m4/ax_compiler_vendor.m4: New file.
655 * configure.ac: Test for compiler vendor and don't use
656 AX_CFLAGS_WARN_ALL with the sun compiler.
657 * aclocal.m4, configure: Rebuilt.
658
6592013-01-10 Anthony Green <green@moxielogic.com>
660
Anthony Green6a028ca2013-01-10 01:19:43 -0500661 * include/ffi_common.h: Don't use GCCisms to define types when
662 building with the SUNPRO compiler.
663
6642013-01-10 Anthony Green <green@moxielogic.com>
665
Anthony Green2d9b3932013-01-09 21:14:54 -0500666 * configure.ac: Put local.exp in the right place.
667 * configure: Rebuilt.
668
669 * src/x86/ffi.c: Update comment about regparm function attributes.
670 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
671 that all function arguments be passed on the stack (no regparm
672 support).
673
Anthony Greenf7879bc2013-01-08 07:30:28 -05006742013-01-08 Anthony Green <green@moxielogic.com>
675
Anthony Green83089842013-01-08 15:14:21 -0500676 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
677 when we are using the vendor compiler.
678 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
679 ../local.exp.
680 * configure, testsuite/Makefile.in: Rebuilt.
681
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500682 * testsuite/libffi.call/call.exp: Run tests with different
683 options, depending on whether or not we are using gcc or the
684 vendor compiler.
685 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
686 whether or not we are building/testing with gcc.
687
6882013-01-08 Anthony Green <green@moxielogic.com>
689
Anthony Green74c776e2013-01-08 12:25:54 -0500690 * configure.ac: Switch x86 solaris target to X86 by default.
691 * configure: Rebuilt.
692
6932013-01-08 Anthony Green <green@moxielogic.com>
694
Anthony Green8962c8c2013-01-08 12:22:24 -0500695 * configure.ac: Fix test for read-only eh_frame.
696 * configure: Rebuilt.
697
6982013-01-08 Anthony Green <green@moxielogic.com>
699
Anthony Green35ddb692013-01-08 07:53:37 -0500700 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
701 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500702 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
703 compiler.
704
Anthony Green8f4772f2013-01-07 06:14:53 -05007052013-01-07 Thorsten Glaser <tg@mirbsd.org>
706
Anthony Green67cea902013-01-07 06:30:24 -0500707 * testsuite/libffi.call/cls_uchar_va.c,
708 testsuite/libffi.call/cls_ushort_va.c,
709 testsuite/libffi.call/va_1.c: Testsuite fixes.
710
7112013-01-07 Thorsten Glaser <tg@mirbsd.org>
712
Anthony Green8f4772f2013-01-07 06:14:53 -0500713 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
714 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
715 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
716
Anthony Greenea7f8442013-01-04 09:09:32 -05007172013-01-04 Anthony Green <green@moxielogic.com>
718
719 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
720 and -Wall. This is set in the configure script after testing for
721 GCC.
722 * Makefile.in: Rebuilt.
723
Anthony Greenf06c0f12013-01-02 09:39:17 -05007242013-01-02 rofl0r <https://github.com/rofl0r>
725
726 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
727 when long double == double.
728
7292013-01-02 Reini Urban <rurban@x-ray.at>
730
731 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
732 (required for shared libs on cygwin/mingw).
733 * Makefile.in: Rebuilt.
734
Anthony Greend3d099b2013-07-02 16:11:38 -04007352012-10-31 Alan Modra <amodra@gmail.co>
Anthony Greendfadfb12012-10-31 06:46:41 -0400736
737 * src/powerpc/linux64_closure.S: Add new ABI support.
738 * src/powerpc/linux64.S: Likewise.
739
Anthony Greene944b8c2012-10-30 14:06:09 -04007402012-10-30 Magnus Granberg <zorry@gentoo.org>
741 Pavel Labushev <pavel.labushev@runbox.ru>
742
743 * configure.ac: New options pax_emutramp
744 * configure, fficonfig.h.in: Regenerated
745 * src/closures.c: New function emutramp_enabled_check() and
746 checks.
747
Anthony Greenf3429962012-10-30 07:42:27 -04007482012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
749
750 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
751 lion) and future version.
752 * configure: Rebuild.
753
Anthony Green58e8b662012-10-30 07:07:19 -04007542012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
755 Marcus Shawcroft <marcus.shawcroft at arm.com>
756
757 * README: Add details of aarch64 port.
758 * src/aarch64/ffi.c: New.
759 * src/aarch64/ffitarget.h: Likewise.
760 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500761 * Makefile.am: Support aarch64.
762 * configure.ac: Support aarch64.
763 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400764
7652012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
766 Marcus Shawcroft <marcus.shawcroft at arm.com>
767
768 * testsuite/lib/libffi.exp: Add support for aarch64.
769 * testsuite/libffi.call/cls_struct_va1.c: New.
770 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
771 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500772 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400773 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
774 * testsuite/libffi.call/nested_struct11.c: Likewise.
775 * testsuite/libffi.call/uninitialized.c: Likewise.
776 * testsuite/libffi.call/va_1.c: Likewise.
777 * testsuite/libffi.call/va_struct1.c: Likewise.
778 * testsuite/libffi.call/va_struct2.c: Likewise.
779 * testsuite/libffi.call/va_struct3.c: Likewise.
780
Anthony Green9c00a3f2012-10-12 16:46:06 -04007812012-10-12 Walter Lee <walt@tilera.com>
782
783 * Makefile.am: Add TILE-Gx/TILEPro support.
784 * configure.ac: Likewise.
785 * Makefile.in: Regenerate.
786 * configure: Likewise.
787 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
788 * src/tile: New directory.
789 * src/tile/ffi.c: New file.
790 * src/tile/ffitarget.h: Ditto.
791 * src/tile/tile.S: Ditto.
792
7932012-10-12 Matthias Klose <doko@ubuntu.com>
794
795 * generate-osx-source-and-headers.py: Normalize whitespace.
796
Anthony Green048d2f42012-10-11 10:55:25 -04007972012-09-14 David Edelsohn <dje.gcc@gmail.com>
798
799 * configure: Regenerated.
800
8012012-08-26 Andrew Pinski <apinski@cavium.com>
802
803 PR libffi/53014
804 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
805 soft-float.
806
8072012-08-08 Uros Bizjak <ubizjak@gmail.com>
808
809 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
810 just return FFI_BAD_ABI when things are wrong.
811
8122012-07-18 H.J. Lu <hongjiu.lu@intel.com>
813
814 PR libffi/53982
815 PR libffi/53973
816 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
817 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
818
8192012-05-16 H.J. Lu <hongjiu.lu@intel.com>
820
821 * configure: Regenerated.
822
Nicolas Lelongd330f192012-05-05 09:37:02 -04008232012-05-05 Nicolas Lelong
824
825 * libffi.xcodeproj/project.pbxproj: Fixes.
826 * README: Update for iOS builds.
827
Anthony Green213ed152012-04-27 01:34:15 -04008282012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
829
830 * configure.ac: Add Blackfin/sysv support
831 * Makefile.am: Add Blackfin/sysv support
832 * src/bfin/ffi.c: Add Blackfin/sysv support
833 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400834
Anthony Green7e0a4122012-04-11 22:47:44 -04008352012-04-11 Anthony Green <green@moxielogic.com>
836
837 * Makefile.am (EXTRA_DIST): Add new script.
838 * Makefile.in: Rebuilt.
839
Zachary Waldowski39e6a582012-04-11 22:39:46 -04008402012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
841
842 * generate-ios-source-and-headers.py,
843 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
844 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
845 generation into an Xcode "run script" phase. Include both as
846 Xcode build scripts. Don't always regenerate config files.
847
Anthony Green853cc722012-04-10 06:33:33 -04008482012-04-10 Anthony Green <green@moxielogic.com>
849
850 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
851
Anthony Green3f502302012-04-06 20:34:51 -04008522012-04-06 Anthony Green <green@moxielogic.com>
853
854 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
855 * Makefile.in: Rebuilt.
856
Mike Lewisebb8e892012-04-06 20:02:08 -04008572012-04-06 Mike Lewis <mikelikespie@gmail.com>
858
859 * generate-ios-source-and-headers.py: New file.
860 * libffi.xcodeproj/project.pbxproj: New file.
861 * README: Update instructions on building iOS binary.
862 * build-ios.sh: Delete.
863
Anthony Greena044a562012-04-06 10:39:10 -04008642012-04-06 Anthony Green <green@moxielogic.com>
865
866 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
867 compilers, then use it.
868
Anthony Green048d2f42012-10-11 10:55:25 -04008692012-04-06 H.J. Lu <hongjiu.lu@intel.com>
870
871 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
872
Anthony Green59bb61a2012-04-06 08:26:14 -04008732012-04-06 Anthony Green <green@moxielogic.com>
874
875 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
876 * testsuite/Makefile.in: Rebuilt.
877
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04008782012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
879
880 * include/ffi.h.in: Add missing trampoline table fields.
881 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
882 in CNAME.
883 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
884
Anthony Green089dbce2013-01-02 08:37:35 -05008852012-04-02 Peter Bergner <bergner@vnet.ibm.com>
886
887 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
888 Silence casting pointer to integer of different size warning.
889 Delete goto to previously deleted label.
890 (ffi_call): Silence possibly undefined warning.
891 (ffi_closure_helper_SYSV): Declare variable type.
892
8932012-04-02 Peter Rosin <peda@lysator.liu.se>
894
895 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
896 value in the Intel version as is already done for the AT&T version.
897 (ffi_closure_SYSV): Likewise.
898 (ffi_closure_raw_SYSV): Likewise.
899 (ffi_closure_STDCALL): Likewise.
900
Peter Rosin0a1ab122012-03-30 08:14:08 -04009012012-03-29 Peter Rosin <peda@lysator.liu.se>
902
903 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
904 generation, fix the ENDP label and remove the surplus third arg
905 from the 'lea' insn.
906
9072012-03-29 Peter Rosin <peda@lysator.liu.se>
908
909 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
910 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
911 it. Also instruct the assembler to add a frame to the function.
912
9132012-03-23 Peter Rosin <peda@lysator.liu.se>
914
915 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
916 * Makefile.in: Rebuilt.
917 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
918 to all data exports, when compiling libffi clients using MSVC.
919
9202012-03-29 Peter Rosin <peda@lysator.liu.se>
921
922 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
923 make it the default for MSVC.
924 (FFI_TYPE_MS_STRUCT): New structure return convention.
925 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
926 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
927 instead of an ordinary FFI_TYPE_STRUCT.
928 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
929 (ffi_call): Likewise.
930 (ffi_prep_incoming_args_SYSV): Likewise.
931 (ffi_raw_call): Likewise.
932 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
933 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
934 return a pointer to the result structure in eax and don't pop
935 that pointer from the stack, the caller takes care of it.
936 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
937 (ffi_closure_raw_SYSV): Likewise.
938
9392012-03-22 Peter Rosin <peda@lysator.liu.se>
940
941 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
942 assembly version with Intel syntax.
943 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
944
9452012-03-23 Peter Rosin <peda@lysator.liu.se>
946
947 * testsuite/libffi.call/ffitest.h: Provide abstration of
948 __attribute__((fastcall)) in the form of a __FASTCALL__
949 define. Define it to __fastcall for MSVC.
950 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
951 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
952 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
953 * testsuite/libffi.call/strlen2_win32.c: Likewise.
954 * testsuite/libffi.call/struct1_win32.c: Likewise.
955 * testsuite/libffi.call/struct2_win32.c: Likewise.
956
9572012-03-22 Peter Rosin <peda@lysator.liu.se>
958
959 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
960 frame on function entry, MASM adds one automatically.
961
9622012-03-22 Peter Rosin <peda@lysator.liu.se>
963
964 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
965 bits in the MSVC headers.
966
9672012-03-22 Peter Rosin <peda@lysator.liu.se>
968
969 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
970 with no declarations after statements.
971 * testsuite/libffi.call/cls_16byte.c: Likewise.
972 * testsuite/libffi.call/cls_18byte.c: Likewise.
973 * testsuite/libffi.call/cls_19byte.c: Likewise.
974 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
975 * testsuite/libffi.call/cls_20byte.c: Likewise.
976 * testsuite/libffi.call/cls_20byte1.c: Likewise.
977 * testsuite/libffi.call/cls_24byte.c: Likewise.
978 * testsuite/libffi.call/cls_2byte.c: Likewise.
979 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
980 * testsuite/libffi.call/cls_3byte1.c: Likewise.
981 * testsuite/libffi.call/cls_3byte2.c: Likewise.
982 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
983 * testsuite/libffi.call/cls_4byte.c: Likewise.
984 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
985 * testsuite/libffi.call/cls_5byte.c: Likewise.
986 * testsuite/libffi.call/cls_64byte.c: Likewise.
987 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
988 * testsuite/libffi.call/cls_6byte.c: Likewise.
989 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
990 * testsuite/libffi.call/cls_7byte.c: Likewise.
991 * testsuite/libffi.call/cls_8byte.c: Likewise.
992 * testsuite/libffi.call/cls_9byte1.c: Likewise.
993 * testsuite/libffi.call/cls_9byte2.c: Likewise.
994 * testsuite/libffi.call/cls_align_double.c: Likewise.
995 * testsuite/libffi.call/cls_align_float.c: Likewise.
996 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
997 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
998 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
999 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
1000 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
1001 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
1002 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
1003 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
1004 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
1005 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1006 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
1007 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
1008 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1009 * testsuite/libffi.call/huge_struct.c: Likewise.
1010 * testsuite/libffi.call/nested_struct.c: Likewise.
1011 * testsuite/libffi.call/nested_struct1.c: Likewise.
1012 * testsuite/libffi.call/nested_struct10.c: Likewise.
1013 * testsuite/libffi.call/nested_struct2.c: Likewise.
1014 * testsuite/libffi.call/nested_struct3.c: Likewise.
1015 * testsuite/libffi.call/nested_struct4.c: Likewise.
1016 * testsuite/libffi.call/nested_struct5.c: Likewise.
1017 * testsuite/libffi.call/nested_struct6.c: Likewise.
1018 * testsuite/libffi.call/nested_struct7.c: Likewise.
1019 * testsuite/libffi.call/nested_struct8.c: Likewise.
1020 * testsuite/libffi.call/nested_struct9.c: Likewise.
1021 * testsuite/libffi.call/stret_large.c: Likewise.
1022 * testsuite/libffi.call/stret_large2.c: Likewise.
1023 * testsuite/libffi.call/stret_medium.c: Likewise.
1024 * testsuite/libffi.call/stret_medium2.c: Likewise.
1025 * testsuite/libffi.call/struct1.c: Likewise.
1026 * testsuite/libffi.call/struct1_win32.c: Likewise.
1027 * testsuite/libffi.call/struct2.c: Likewise.
1028 * testsuite/libffi.call/struct2_win32.c: Likewise.
1029 * testsuite/libffi.call/struct3.c: Likewise.
1030 * testsuite/libffi.call/struct4.c: Likewise.
1031 * testsuite/libffi.call/struct5.c: Likewise.
1032 * testsuite/libffi.call/struct6.c: Likewise.
1033 * testsuite/libffi.call/struct7.c: Likewise.
1034 * testsuite/libffi.call/struct8.c: Likewise.
1035 * testsuite/libffi.call/struct9.c: Likewise.
1036 * testsuite/libffi.call/testclosure.c: Likewise.
1037
Anthony Greene72ed5e2012-03-21 09:52:28 -040010382012-03-21 Peter Rosin <peda@lysator.liu.se>
1039
1040 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
1041 printing doubles (%lf is for long doubles).
1042 (main): Likewise.
1043
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010442012-03-21 Peter Rosin <peda@lysator.liu.se>
1045
1046 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1047 (set_ld_library_path_env_vars): Add the library search dir to PATH
1048 (and save PATH for later).
1049 (restore_ld_library_path_env_vars): Restore PATH.
1050
Anthony Greenccee09a2013-01-02 08:41:55 -050010512012-03-21 Peter Rosin <peda@lysator.liu.se>
1052
1053 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1054 (set_ld_library_path_env_vars): Add the library search dir to PATH
1055 (and save PATH for later).
1056 (restore_ld_library_path_env_vars): Restore PATH.
1057
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010582012-03-20 Peter Rosin <peda@lysator.liu.se>
1059
1060 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1061 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1062 visible outside the PROC, so that ffi_closure_THISCALL can see it.
1063
Anthony Green048d2f42012-10-11 10:55:25 -040010642012-03-20 Peter Rosin <peda@lysator.liu.se>
1065
1066 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1067 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1068 visible outside the PROC, so that ffi_closure_THISCALL can see it.
1069
Anthony Greenbd78c9c2012-03-21 08:09:30 -040010702012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
1071
1072 * src/m68k/ffi.c: Add MINT support.
1073 * src/m68k/sysv.S: Ditto.
1074
Anthony Green048d2f42012-10-11 10:55:25 -040010752012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
1076
1077 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
1078 ffi_call_VFP().
1079 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
1080 ffi_closure_VFP.
1081 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
1082
Anthony Green089dbce2013-01-02 08:37:35 -050010832012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -04001084
Anthony Green089dbce2013-01-02 08:37:35 -05001085 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
1086 support.
Anthony Green048d2f42012-10-11 10:55:25 -04001087
Anthony Green84d32532012-03-19 23:07:35 -040010882012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
1089
1090 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1091 just return FFI_BAD_ABI when things are wrong.
1092 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
1093
10942012-03-09 David Edelsohn <dje.gcc@gmail.com>
1095
1096 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
1097 change to return value of ffi_closure_helper_DARWIN and load type
1098 from return type.
1099
Anthony Green964c5b92012-03-03 14:46:20 -050011002012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1101
1102 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
1103 long.
1104 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
1105 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
1106 first.
1107
1108 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
1109 (ffi_arg): Set to unsigned long long for x32.
1110 (ffi_sarg): Set to long long for x32.
1111
11122012-03-03 H.J. Lu <hongjiu.lu@intel.com>
1113
1114 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
1115
Anthony Green6c194232012-03-03 14:17:54 -050011162012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
1117
1118 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
1119 windows-like hosts.
1120 * configure: Rebuilt.
1121
Anthony Green7c5e60b2012-03-29 08:48:22 -040011222012-02-27 Mikael Pettersson <mikpe@it.uu.se>
1123
1124 PR libffi/52223
1125 * Makefile.am (FLAGS_TO_PASS): Define.
1126 * Makefile.in: Regenerate.
1127
Anthony Green8360bf12012-02-23 07:01:13 -050011282012-02-23 Anthony Green <green@moxielogic.com>
1129
1130 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
1131 directly.
1132
Anthony Green7c5e60b2012-03-29 08:48:22 -040011332012-02-23 Kai Tietz <ktietz@redhat.com>
1134
1135 PR libffi/52221
1136 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
1137 prototype.
1138 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
1139 thiscall-convention.
1140 (ffi_raw_call): Use ffi_prep_args_raw.
1141 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
1142 implementation for stub.
1143
Anthony Greendee20f82012-02-10 13:06:46 -050011442012-02-10 Kai Tietz <ktietz@redhat.com>
1145
1146 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
1147 windows target.
1148 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -05001149
Anthony Greendee20f82012-02-10 13:06:46 -050011502012-02-08 Kai Tietz <ktietz@redhat.com>
1151
1152 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
1153 also FFI_THISCALL.
1154 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
1155 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
1156 (ffi_prep_closure_loc): Add FFI_THISCALL support.
1157 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
1158 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
1159 for thiscall-calling convention.
1160 * testsuite/libffi.call/closure_thiscall.c: New test.
1161
Anthony Green1ff9c602012-02-01 16:34:30 -060011622012-01-28 Kai Tietz <ktietz@redhat.com>
1163
1164 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
1165 argument to prototype for specify calling-convention.
1166 (ffi_call): Add support for stdcall/thiscall convention.
1167 (ffi_prep_args): Likewise.
1168 (ffi_raw_call): Likewise.
1169 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
1170 FFI_FASTCALL.
1171 * src/x86/win32.S (_ffi_call_win32): Add support for
1172 fastcall/thiscall calling-convention calls.
1173 * testsuite/libffi.call/fastthis1_win32.c: New test.
1174 * testsuite/libffi.call/fastthis2_win32.c: New test.
1175 * testsuite/libffi.call/fastthis3_win32.c: New test.
1176 * testsuite/libffi.call/strlen2_win32.c: New test.
1177 * testsuite/libffi.call/many2_win32.c: New test.
1178 * testsuite/libffi.call/struct1_win32.c: New test.
1179 * testsuite/libffi.call/struct2_win32.c: New test.
1180
Anthony Green211060e2012-01-23 14:24:01 -050011812012-01-23 Uros Bizjak <ubizjak@gmail.com>
1182
1183 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
1184
Anthony Green1ff9c602012-02-01 16:34:30 -060011852012-01-23 Anthony Green <green@moxielogic.com>
1186 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -05001187
1188 * configure.ac: Add Amiga support.
1189 * configure: Rebuilt.
1190
11912012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -05001192
1193 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
1194
Anthony Green1ff9c602012-02-01 16:34:30 -060011952012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -05001196
1197 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
1198 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
1199
Anthony Greenc365ee72012-01-23 11:13:18 -050012002012-01-19 Jakub Jelinek <jakub@redhat.com>
1201
1202 PR rtl-optimization/48496
1203 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
1204
12052012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1206
1207 * configure.ac (i?86-*-*): Set TARGET to X86_64.
1208 * configure: Regenerate.
1209
12102011-12-07 Andrew Pinski <apinski@cavium.com>
1211
1212 PR libffi/50051
1213 * src/mips/n32.S: Add ".set mips4".
1214
12152011-11-21 Andreas Tobler <andreast@fgznet.ch>
1216
1217 * configure: Regenerate.
1218
Anthony Greenff9454d2011-11-12 17:18:51 -050012192011-11-12 David Gilbert <david.gilbert@linaro.org>
1220
1221 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
1222 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
1223 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
1224 src/cris/ffi.c, src/prep_cif.c,
1225 testsuite/libffi.call/cls_double_va.c,
1226 testsuite/libffi.call/cls_longdouble_va.c,
1227 testsuite/libffi.call/float_va.c: Many changes to support variadic
1228 function calls.
1229
Anthony Green52891f82011-11-12 16:35:55 -050012302011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1231
1232 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
1233 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
1234 softfloat powerpc variants.
1235
Anthony Green6a6e7f82011-11-12 16:20:42 -050012362011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
1237
1238 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
1239 * configure: Rebuilt.
1240
Anthony Greend52fbed2011-11-12 16:13:41 -050012412011-11-12 Timothy Wall <twall@users.sf.net>
1242
1243 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
1244 alignment of 4 for wince on ARM.
1245
Anthony Greenaf18df22011-11-12 15:52:08 -050012462011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
1247 Anthony Green <green@moxielogic.com>
1248
1249 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
1250 instructions (not available on some cores, like the PPC440).
1251
Anthony Greenc411f142011-11-12 07:32:36 -050012522011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -04001253
Anthony Greenc411f142011-11-12 07:32:36 -05001254 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -05001255 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -05001256 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
1257 X 10.7.
1258 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -04001259
Anthony Green6a6e7f82011-11-12 16:20:42 -050012602011-11-12 Anthony Green <green@moxielogic.com>
1261
1262 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1263 files with debug info.
1264 * Makefile.in: Rebuilt.
1265
12662011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1267
1268 * README: Update list of supported OpenBSD systems.
1269
12702011-11-12 Anthony Green <green@moxielogic.com>
1271
1272 * libtool-version: Update.
1273 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1274 FFI_DEBUG.
1275 (libffi_la_SOURCES): Remove src/debug.c
1276 (EXTRA_DIST): Add src/debug.c
1277 * Makefile.in: Rebuilt.
1278 * README: Update for 3.0.11.
1279
Anthony Green3d561062011-11-12 07:20:24 -050012802011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -04001281
Anthony Green3d561062011-11-12 07:20:24 -05001282 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1283 * configure, aclocal.m4: Rebuild.
1284
12852011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1286
1287 PR libffi/49594
1288 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1289 helper reference track the architecture pointer size.
1290
12912011-08-25 Andrew Haley <aph@redhat.com>
1292
1293 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1294 instructions.
1295 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -04001296
Anthony Greend992ac52011-07-29 17:32:53 -040012972011-07-11 Andrew Haley <aph@redhat.com>
1298
1299 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1300
13012011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1302
1303 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1304 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1305
13062011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1307
1308 PR libffi/46660
1309 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1310 mips-sgi-irix6*.
1311 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1312
13132011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1314
1315 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1316 PRId8 instead of %hhu, %hhd.
1317 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1318 PRIu8): Define.
1319 [__sgi__] (PRId8, PRIu8): Define.
1320
13212011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1322
1323 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1324 Define.
1325 Use them to handle ELF vs. ECOFF differences.
1326 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1327
Anthony Green2d3fb362011-03-30 16:54:42 -040013282011-03-30 Timothy Wall <twall@users.sf.net>
1329
1330 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1331 * src/powerpc/darwin_closure.S: ditto.
1332
Anthony Green25416792011-02-25 15:09:13 -050013332011-02-25 Anthony Green <green@moxielogic.com>
1334
Anthony Green74ee6ea2011-02-25 15:52:14 -05001335 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1336 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05001337
Anthony Green8cf88782011-02-15 15:19:49 -050013382011-02-15 Anthony Green <green@moxielogic.com>
1339
1340 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1341 * configure: Rebuilt.
1342
Anthony Greend992ac52011-07-29 17:32:53 -040013432011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1344
1345 * configure: Regenerate.
1346
Anthony Green1fbf9dc2011-02-13 08:06:39 -050013472011-02-13 Anthony Green <green@moxielogic.com>
1348
1349 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1350 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1351 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1352
1353 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1354 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1355
1356 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1357 just return FFI_BAD_ABI when things are wrong.
1358 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1359 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1360 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1361 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1362 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1363
Anthony Green1833aa02011-02-11 07:11:04 -050013642011-02-11 Anthony Green <green@moxielogic.com>
1365
1366 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1367 just return FFI_BAD_ABI when things are wrong.
1368
Anthony Green7c5e60b2012-03-29 08:48:22 -040013692012-02-11 Eric Botcazou <ebotcazou@adacore.com>
1370
1371 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1372
Anthony Green42695e72011-02-09 15:12:35 -050013732011-02-09 Stuart Shelton <srcshelton@gmail.com>
1374
1375 http://bugs.gentoo.org/show_bug.cgi?id=286911
1376 * src/mips/ffitarget.h: Clean up error messages.
1377 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1378 ffi_raw*.
1379 * include/ffi.h.in: Add pragma for SGI compiler.
1380
Anthony Greena6e56b92011-02-09 15:00:42 -050013812011-02-09 Anthony Green <green@moxielogic.com>
1382
1383 * configure.ac: Add powerpc64-*-darwin* support.
1384
Anthony Green0cad4382011-02-09 06:11:46 -050013852011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05001386
Anthony Green747d6c32011-02-09 14:56:23 -05001387 * README: Mention Interix.
1388
13892011-02-09 Jonathan Callen <abcd@gentoo.org>
1390
1391 * configure.ac: Add Interix to win32/cygwin/mingw case.
1392 * configure: Ditto.
1393 * src/closures.c: Treat Interix like Cygwin, instead of as a
1394 generic win32.
1395
13962011-02-09 Anthony Green <green@moxielogic.com>
1397
Anthony Green69dbe842011-02-09 07:38:43 -05001398 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1399 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1400 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1401 (ffi_prep_closure_loc): Check for bad ABI.
1402 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1403 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -05001404
Anthony Green90af15e2011-02-12 12:29:36 -050014052011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -05001406
1407 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1408 src/arm/trampoline.S.
1409 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1410 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1411 * src/arm/ffi.c (ffi_trampoline_table)
1412 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1413 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1414 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1415 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1416 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1417 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1418 separately.
1419 * src/arm/sysv.S: Handle Apple iOS host.
1420 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -05001421 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -05001422 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -05001423 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -05001424
Anthony Greendc411e82011-02-08 10:49:29 -050014252011-02-08 Oren Held <orenhe@il.ibm.com>
1426
1427 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1428 redefinition of mallinfo on HP-UX.
1429
Anthony Green404585d2011-02-08 10:44:36 -050014302011-02-08 Ginn Chen <ginn.chen@oracle.com>
1431
1432 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -04001433 aggregate return ABI. Flush cache.
1434 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -05001435
Anthony Green6972a4f2011-02-11 07:32:51 -050014362011-02-11 Anthony Green <green@moxielogic.com>
1437
1438 From Tom Honermann <tom.honermann@oracle.com>:
1439 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1440 AIX. Declare .ffi_prep_args. Insert nops after branch
1441 instructions so that the AIX linker can insert TOC reload
1442 instructions.
1443 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1444
Anthony Greend992ac52011-07-29 17:32:53 -040014452011-02-08 Ed <ed@kdtc.net>
1446
1447 * src/powerpc/asm.h: Fix grammar nit in comment.
1448
Anthony Green89284fe2011-02-08 10:19:19 -050014492011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1450
1451 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1452
Anthony Greend992ac52011-07-29 17:32:53 -040014532011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1454
1455 PR libffi/46661
1456 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1457 uintptr_t first.
1458 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1459
Anthony Greened2c5182011-02-08 10:10:07 -050014602011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1461
1462 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -05001463 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -05001464
Anthony Green3b836242011-02-08 14:28:59 -050014652011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1466
1467 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1468 Handle case when CPU variant does not have long double support.
1469 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1470 and cores with soft floating point.
1471
14722011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1473
1474 * configure.ac: Add mips*-*-rtems* support.
1475 * configure: Regenerate.
1476 * src/mips/ffitarget.h: Ensure needed constants are available
1477 for targets which do not have sgidefs.h.
1478
Anthony Green0e584392011-02-08 07:52:40 -050014792011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1480
1481 PR target/40125
1482 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1483 * configure: Regenerate.
1484
14852010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1486
1487 PR libffi/29152
1488 PR libffi/42378
1489 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1490 update comments.
1491 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1492 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1493 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1494 update comments.
1495 * src/powerpc/ffi_darwin.c: Likewise.
1496
14972010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1498
1499 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1500 backslashes.
1501 (libffi_cv_as_string_pseudo_op): Likewise.
1502 * configure: Regenerate.
1503
15042010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1505
1506 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1507 (ffi_closure_VFP): Same.
1508 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1509 directive.
1510
15112010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1512
1513 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1514 (PRIuPTR): Define.
1515
15162010-11-29 Richard Henderson <rth@redhat.com>
1517 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1518
1519 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1520 (.eh_frame): Use FDE_ENCODING.
1521 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1522
Anthony Green5b9cd522010-11-22 15:19:57 -050015232010-11-22 Jacek Caban <jacek@codeweavers.com>
1524
1525 * configure.ac: Check for symbol underscores on mingw-w64.
1526 * configure: Rebuilt.
1527 * src/x86/win64.S: Correctly access extern symbols in respect to
1528 underscores.
1529
Anthony Green2db72612010-11-21 10:50:56 -050015302010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1531
1532 * testsuite/lib/libffi-dg.exp: Rename ...
1533 * testsuite/lib/libffi.exp: ... to this.
1534 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1535 * libffi/testsuite/libffi.special/special.exp: Likewise.
1536
15372010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1538
1539 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1540 code, new parameter, and return value. Update comments.
1541 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1542 call to layout_vfp_args().
1543 (ffi_call_SYSV): Update declaration.
1544 (ffi_call_VFP): New declaration.
1545 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1546 when ABI is FFI_VFP.
1547 (ffi_closure_VFP): New declaration.
1548 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1549 ffi_prep_incoming_args_SYSV().
1550 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1551 case handling.
1552 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1553 construction under VFP hard-float.
1554 (rec_vfp_type_p): New function.
1555 (vfp_type_p): Same.
1556 (place_vfp_arg): Same.
1557 (layout_vfp_args): Same.
1558 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1559 based on __ARM_PCS_VFP.
1560 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1561 fields.
1562 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1563 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1564 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1565 direct call. Move function pointer load upwards.
1566 (ffi_call_VFP): New function.
1567 (ffi_closure_VFP): Same.
1568
1569 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1570 (dg-skip-if): New function.
1571 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1572 and compiler options include -mfloat-abi=hard.
1573 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1574
15752010-10-01 Jakub Jelinek <jakub@redhat.com>
1576
1577 PR libffi/45677
1578 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1579 a multiple of 8.
1580 * testsuite/libffi.call/many2.c: New test.
1581
15822010-08-20 Mark Wielaard <mjw@redhat.com>
1583
1584 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1585 returns NULL.
1586
15872010-08-09 Andreas Tobler <andreast@fgznet.ch>
1588
1589 * configure.ac: Add target powerpc64-*-freebsd*.
1590 * configure: Regenerate.
1591 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1592 -mlong-double-128 only to linux targets.
1593 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1594 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1595 * testsuite/libffi.call/huge_struct.c: Likewise.
1596
Anthony Green00d0b592010-08-05 14:56:53 -040015972010-08-05 Dan Witte <dwitte@mozilla.com>
1598
1599 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1600 debug CRT when --enable-debug is given.
1601 * configure.ac: Define it.
1602 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1603
Anthony Greenc1d28ba2010-08-05 08:48:16 -040016042010-08-04 Dan Witte <dwitte@mozilla.com>
1605
1606 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1607 platforms.
1608 * src/x86/ffi.c: Remove redundant ifdef checks.
1609 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1610 for X86_ANY so return value space doesn't get added twice.
1611
Anthony Greenbda487e2010-08-05 09:02:41 -040016122010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1613
1614 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1615
Anthony Greend14178b2010-07-23 09:14:00 -040016162010-07-22 Dan Witte <dwitte@mozilla.com>
1617
1618 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1619 * src/prep_cif.c: Fix ABI assertion.
1620 * src/cris/ffi.c: Ditto.
1621
Anthony Greeneaf444e2010-07-10 08:59:09 -040016222010-07-10 Evan Phoenix <evan@fallingsnow.net>
1623
1624 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1625
Anthony Green5feacad2010-08-05 08:30:04 -040016262010-07-07 Dan Horák <dan@danny.cz>
1627
1628 * include/ffi.h.in: Protect #define with #ifndef.
1629 * src/powerpc/ffitarget.h: Ditto.
1630 * src/s390/ffitarget.h: Ditto.
1631 * src/sparc/ffitarget.h: Ditto.
1632
Anthony Green2db72612010-11-21 10:50:56 -050016332010-07-07 Neil Roberts <neil@linux.intel.com>
1634
1635 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1636 16-bytes.
1637
16382010-07-02 Jakub Jelinek <jakub@redhat.com>
1639
1640 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1641 * Makefile.in: Regenerated.
1642
16432010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1644
1645 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1646 output, too.
1647 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1648 (libffi_cv_as_string_pseudo_op): Check for .string.
1649 * configure: Regenerate.
1650 * fficonfig.h.in: Regenerate.
1651 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1652
Anthony Green10ea8482010-08-05 08:24:27 -040016532010-05-11 Dan Witte <dwitte@mozilla.com>
1654
1655 * doc/libffi.tex: Document previous change.
1656
16572010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1658
1659 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1660
Anthony Green63097412010-05-05 20:14:56 -040016612010-05-05 Michael Kohler <michaelkohler@live.com>
1662
1663 * src/dlmalloc.c (dlfree): Fix spelling.
1664 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1665 * configure.ac: Ditto.
1666 * configure: Rebuilt.
1667
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040016682010-04-13 Dan Witte <dwitte@mozilla.com>
1669
1670 * msvcc.sh: Build with -W3 instead of -Wall.
1671 * src/powerpc/ffi_darwin.c: Remove build warnings.
1672 * src/x86/ffi.c: Ditto.
1673 * src/x86/ffitarget.h: Ditto.
1674
Anthony Green2db72612010-11-21 10:50:56 -050016752010-04-12 Dan Witte <dwitte@mozilla.com>
1676 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001677
Anthony Green2db72612010-11-21 10:50:56 -05001678 * configure.ac: Add OS/2 support.
1679 * configure: Rebuilt.
1680 * src/closures.c: Ditto.
1681 * src/dlmalloc.c: Ditto.
1682 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001683
16842010-04-07 Jakub Jelinek <jakub@redhat.com>
1685
Anthony Green2db72612010-11-21 10:50:56 -05001686 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001687
16882010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1689
1690 * Makefile.in: Regenerate.
1691 * aclocal.m4: Regenerate.
1692 * include/Makefile.in: Regenerate.
1693 * man/Makefile.in: Regenerate.
1694 * testsuite/Makefile.in: Regenerate.
1695
Anthony Green2db72612010-11-21 10:50:56 -050016962010-03-30 Dan Witte <dwitte@mozilla.com>
1697
1698 * msvcc.sh: Disable build warnings.
1699 * README (tested): Clarify windows build procedure.
1700
Anthony Green3f5b1372010-07-12 14:39:18 -040017012010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1702
1703 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1704 * configure: Regenerate.
1705 * fficonfig.h.in: Regenerate.
1706 * libffi/src/x86/unix64.S (.eh_frame)
1707 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1708
Anthony Green2db72612010-11-21 10:50:56 -050017092010-03-14 Matthias Klose <doko@ubuntu.com>
1710
1711 * src/x86/ffi64.c: Fix typo in comment.
1712 * src/x86/ffi.c: Use /* ... */ comment style.
1713
Anthony Green9dc9a292010-04-13 10:33:52 -040017142010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1715
1716 * doc/libffi.texi (The Closure API): Fix typo.
1717 * doc/libffi.info: Remove.
1718
17192010-02-15 Matthias Klose <doko@ubuntu.com>
1720
1721 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1722 __ARM_ARCH_7EM__.
1723
Anthony Green2db72612010-11-21 10:50:56 -050017242010-01-15 Anthony Green <green@redhat.com>
1725
1726 * README: Add notes on building with Microsoft Visual C++.
1727
17282010-01-15 Daniel Witte <dwitte@mozilla.com>
1729
1730 * msvcc.sh: New file.
1731
1732 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1733 * src/x86/ffi.c: Tweak function declaration and remove excess
1734 parens.
1735 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1736 ffi_closure.
1737
1738 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1739 function ffi_call_win32 on X86_WIN32.
1740 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1741 (ffi_call_STDCALL): Remove.
1742
1743 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1744 to ffi_prep_cif_machdep for x86.
1745 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1746
17472010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1748
1749 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001750 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001751
17522010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1753
1754 * doc/libffi.texi: Add closure example.
1755
Anthony Green7b7a42f2010-01-12 09:14:14 -050017562010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1757
1758 PR libffi/40701
1759 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1760 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1761 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1762 alpha*-dec-osf*.
1763 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1764 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1765 * testsuite/libffi.call/return_ll1.c: Likewise.
1766 * testsuite/libffi.call/stret_medium2.c: Likewise.
1767 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1768 MAP_FAILED to char *.
1769
17702010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1771
1772 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1773
Anthony Greenc3042af2010-01-01 08:08:02 -050017742009-12-31 Anthony Green <green@redhat.com>
1775
1776 * README: Update for libffi 3.0.9.
1777
17782009-12-27 Matthias Klose <doko@ubuntu.com>
1779
1780 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1781 appropriate.
1782 * configure: Rebuilt.
1783
17842009-12-26 Anthony Green <green@redhat.com>
1785
1786 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1787 avr32*-*-*.
1788 * testsuite/libffi.call/cls_double_va.c: Ditto.
1789
17902009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1791
1792 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1793 and inttypes.h.
1794 * testsuite/libffi.special/unwindtest.cc: Ditto.
1795
17962009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1797
1798 * configure.ac: Add amd64-*-openbsd*.
1799 * configure: Rebuilt.
1800 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1801 openbsd programs with -lpthread.
1802
18032009-12-26 Anthony Green <green@redhat.com>
1804
1805 * testsuite/libffi.call/cls_double_va.c,
1806 testsuite/libffi.call/cls_longdouble.c,
1807 testsuite/libffi.call/cls_longdouble_va.c,
1808 testsuite/libffi.call/cls_pointer.c,
1809 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1810 mips*-*-* and arm*-*-*.
1811 * testsuite/libffi.call/cls_align_longdouble_split.c,
1812 testsuite/libffi.call/cls_align_longdouble_split2.c,
1813 testsuite/libffi.call/stret_medium2.c,
1814 testsuite/libffi.call/stret_medium.c,
1815 testsuite/libffi.call/stret_large.c,
1816 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1817
18182009-12-31 Kay Tietz <ktietz70@googlemail.com>
1819
1820 * testsuite/libffi.call/ffitest.h,
1821 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1822 definitions.
1823
18242009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1825
1826 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1827 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1828 * configure: Rebuilt.
1829 * Makefile.in: Rebuilt.
1830
18312009-12-31 Anthony Green <green@redhat.com>
1832 Blake Chaffin.
1833
1834 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1835 Chaffin @ Apple.
1836
Anthony Green0cfe60e2009-12-29 10:06:04 -050018372009-12-28 David Edelsohn <edelsohn@gnu.org>
1838
1839 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1840 local variables.
1841 (aix_adjust_aggregate_sizes): New function.
1842 (ffi_prep_cif_machdep): Call it.
1843
18442009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1845
1846 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1847 * configure: Regenerate.
1848 * fficonfig.h.in: Likewise.
1849 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1850 Solaris/x86.
1851
18522009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1853
1854 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1855 when a float arguments is passed in memory.
1856 (ffi_closure_helper_SYSV): Mark general registers as used up when
1857 a 64bit or soft-float long double argument is passed in memory.
1858
Anthony Green9458d882009-12-26 07:02:27 -050018592009-12-25 Matthias Klose <doko@ubuntu.com>
1860
1861 * man/ffi_call.3: Fix #include in examples.
1862 * doc/libffi.texi: Add dircategory.
1863
18642009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1865
1866 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1867 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1868 IRIX MIPSPro c99.
1869 * include/ffi_common.h: Added '__sgi' define to non
1870 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001871 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001872 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1873 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1874 FFI_LONGDOUBLE support and alignment(N32 only).
1875 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1876 fixed non '__attribute__((__mode__()))' integer typedefs.
1877 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1878 since they are Linux/GNU Assembler specific.
1879
18802009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1881
1882 * configure.ac, Makefile.am, src/avr32/ffi.c,
1883 src/avr32/ffitarget.h,
1884 src/avr32/sysv.S: Add AVR32 port.
1885 * configure, Makefile.in: Rebuilt.
1886
Anthony Green115ab362009-12-24 00:22:00 -050018872009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1888
1889 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1890 * configure: Regenerate.
1891
18922009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1893
1894 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1895
18962009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1897
1898 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1899 type on HP-UX.
1900
Anthony Green7c5e60b2012-03-29 08:48:22 -040019012012-02-13 Kai Tietz <ktietz@redhat.com>
1902
1903 PR libffi/52221
1904 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1905 support for X86_WIN32.
1906 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1907
Anthony Green115ab362009-12-24 00:22:00 -050019082009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1909
1910 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1911 double' arguments.
1912
19132009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1914
1915 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1916
19172009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1918
1919 PR libffi/40700
1920 * src/closures.c [X86_64 && __sun__ && __svr4__]
1921 (FFI_MMAP_EXEC_WRIT): Define.
1922
19232009-12-08 David Daney <ddaney@caviumnetworks.com>
1924
1925 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1926 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1927 * testsuite/libffi.call/stret_large.c: Same.
1928 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1929 * testsuite/libffi.call/stret_large2.c: Same.
1930 * testsuite/libffi.call/stret_medium2.c: Same.
1931
19322009-12-07 David Edelsohn <edelsohn@gnu.org>
1933
1934 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1935 typo.
1936
19372009-12-05 David Edelsohn <edelsohn@gnu.org>
1938
1939 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1940 code.
1941 * src/powerpc/aix_closure.S: Same.
1942
19432009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1944
1945 * Makefile.in: Regenerate.
1946 * configure: Regenerate.
1947 * include/Makefile.in: Regenerate.
1948 * man/Makefile.in: Regenerate.
1949 * testsuite/Makefile.in: Regenerate.
1950
19512009-12-04 David Edelsohn <edelsohn@gnu.org>
1952
1953 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001954 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001955
19562009-12-04 Uros Bizjak <ubizjak@gmail.com>
1957
1958 PR libffi/41908
1959 * src/x86/ffi64.c (classify_argument): Update from
1960 gcc/config/i386/i386.c.
1961 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1962 SSE registers directly.
1963 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1964 for x86_64 linux targets.
1965
19662009-12-04 David Edelsohn <edelsohn@gnu.org>
1967
1968 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1969 pfr for long double split between fpr13 and stack.
1970
19712009-12-03 David Edelsohn <edelsohn@gnu.org>
1972
1973 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1974 fparg_count twice for long double.
1975
19762009-12-03 David Edelsohn <edelsohn@gnu.org>
1977
1978 PR libffi/42243
1979 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1980
19812009-12-03 Uros Bizjak <ubizjak@gmail.com>
1982
1983 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1984 Remove xfails for x86 linux targets.
1985
19862009-12-02 David Edelsohn <edelsohn@gnu.org>
1987
1988 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1989 case.
1990
19912009-12-01 David Edelsohn <edelsohn@gnu.org>
1992
1993 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1994 register usage. Call ffi_prep_args directly. Add long double
1995 return value support.
1996 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1997 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1998 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1999 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
2000 mode.
2001 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
2002 into case.
2003 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
2004 Allocate result area between params and FPRs.
2005
20062009-11-30 David Edelsohn <edelsohn@gnu.org>
2007
2008 PR target/35484
2009 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
2010 AIX64.
2011 * src/powerpc/aix.S: Implement AIX64 version.
2012 * src/powerpc/aix_closure.S: Implement AIX64 version.
2013 (ffi_closure_ASM): Use extsb, lha and displament addresses.
2014 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
2015 support.
2016 (ffi_prep_cif_machdep): Same.
2017 (ffi_call): Same.
2018 (ffi_closure_helper_DARWIN): Same.
2019
20202009-11-02 Andreas Tobler <a.tobler@schweiz.org>
2021
2022 PR libffi/41908
2023 * testsuite/libffi.call/testclosure.c: New test.
2024
Anthony Greenc6dddbd2009-10-04 08:11:33 -040020252009-09-28 Kai Tietz <kai.tietz@onevision.com>
2026
2027 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
2028 assembly version use of ___chkstk.
2029
20302009-09-23 Matthias Klose <doko@ubuntu.com>
2031
2032 PR libffi/40242, PR libffi/41443
2033 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
2034 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
2035 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
2036 Change the conditionals to __SOFTFP__ || __ARM_EABI__
2037 for -mfloat-abi=softfp to work.
2038
20392009-09-17 Loren J. Rittle <ljrittle@acm.org>
2040
2041 PR testsuite/32843 (strikes again)
2042 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
2043 enable proper extension on char and short.
2044
20452009-09-15 David Daney <ddaney@caviumnetworks.com>
2046
2047 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
2048 handling for FFI_TYPE_POINTER.
2049 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
2050 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
2051 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
2052 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
2053 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
2054 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
2055 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
2056 structure and pointer returns.
2057 (ffi_closure_N32): Add handling for pointer returns.
2058 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
2059 calc_n32_return_struct_flags): Handle soft-float.
2060 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
2061 (ffi_call_N32): Declare proper argument types.
2062 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
2063 soft-float.
2064
20652009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2066
2067 * configure.ac (AC_PREREQ): Bump to 2.64.
2068
20692009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2070
2071 * Makefile.am (install-html, install-pdf): Remove.
2072 * Makefile.in: Regenerate.
2073
2074 * Makefile.in: Regenerate.
2075 * aclocal.m4: Regenerate.
2076 * configure: Regenerate.
2077 * fficonfig.h.in: Regenerate.
2078 * include/Makefile.in: Regenerate.
2079 * man/Makefile.in: Regenerate.
2080 * testsuite/Makefile.in: Regenerate.
2081
Anthony Green3d561062011-11-12 07:20:24 -050020822011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
2083
2084 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
2085 * configure: Rebuilt.
2086
Anthony Greenc6dddbd2009-10-04 08:11:33 -040020872009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2088
2089 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2090
20912009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
2092
2093 PR libffi/40807
2094 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
2095 return types for X86_WIN32.
2096 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
2097 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
2098 _ffi_closure_STDCALL): Likewise.
2099
2100 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
2101 (dlmmap, dlmunmap): Also use these functions on Cygwin.
2102
21032009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
2104
2105 PR testsuite/40699
2106 PR testsuite/40707
2107 PR testsuite/40709
2108 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
2109 2009-06-30 commits.
2110
21112009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
2112
2113 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
2114 to "" before adding paths. (This reinstates an assignment that
2115 was removed by my 2009-06-30 commit, but changes the initial
2116 value from "." to "".)
2117
21182009-07-01 H.J. Lu <hongjiu.lu@intel.com>
2119
2120 PR testsuite/40601
2121 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
2122 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
2123 empty.
2124
21252009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
2126
2127 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
2128 to ld_library_path. Use add_path. Add just find_libgcc_s
2129 to ld_library_path, not every libgcc multilib directory.
2130
21312009-06-16 Wim Lewis <wiml@hhhh.org>
2132
2133 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
2134 supposed to be callee-saved.
2135 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
2136 return buffer for odd-size structs.
2137
21382009-06-16 Andreas Tobler <a.tobler@schweiz.org>
2139
2140 PR libffi/40444
2141 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
2142 allow_stack_execute for Darwin.
2143
21442009-06-16 Andrew Haley <aph@redhat.com>
2145
2146 * configure.ac (TARGETDIR): Add missing blank lines.
2147 * configure: Regenerate.
2148
21492009-06-16 Andrew Haley <aph@redhat.com>
2150
2151 * testsuite/libffi.call/cls_align_sint64.c,
2152 testsuite/libffi.call/cls_align_uint64.c,
2153 testsuite/libffi.call/cls_longdouble_va.c,
2154 testsuite/libffi.call/cls_ulonglong.c,
2155 testsuite/libffi.call/return_ll1.c,
2156 testsuite/libffi.call/stret_medium2.c: Fix printf format
2157 specifiers.
2158 * testsuite/libffi.call/ffitest.h,
2159 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
2160
21612009-06-15 Andrew Haley <aph@redhat.com>
2162
2163 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
2164 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002165
Anthony Greenc6dddbd2009-10-04 08:11:33 -040021662009-06-12 Andrew Haley <aph@redhat.com>
2167
2168 * Makefile.am: Remove info_TEXINFOS.
2169
21702009-06-12 Andrew Haley <aph@redhat.com>
2171
2172 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
2173 testsuite/libffi.call/cls_align_uint64.c,
2174 testsuite/libffi.call/cls_ulonglong.c,
2175 testsuite/libffi.call/return_ll1.c,
2176 testsuite/libffi.call/stret_medium2.c: Fix printf format
2177 specifiers.
2178 testsuite/libffi.special/unwindtest.cc: include stdint.h.
2179
21802009-06-11 Timothy Wall <twall@users.sf.net>
2181
2182 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002183 configure.ac,
2184 include/ffi.h.in,
2185 include/ffi_common.h,
2186 src/closures.c,
2187 src/dlmalloc.c,
2188 src/x86/ffi.c,
2189 src/x86/ffitarget.h,
2190 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002191 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05002192 * Makefile.in,
2193 include/Makefile.in,
2194 man/Makefile.in,
2195 testsuite/Makefile.in,
2196 configure,
2197 aclocal.m4: Regenerated
2198 * ltcf-c.sh: properly escape cygwin/w32 path
2199 * man/ffi_call.3: Clarify size requirements for return value.
2200 * src/x86/ffi64.c: Fix filename in comment.
2201 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002202
Anthony Green0cfe60e2009-12-29 10:06:04 -05002203 * testsuite/libffi.call/closure_fn0.c,
2204 testsuite/libffi.call/closure_fn1.c,
2205 testsuite/libffi.call/closure_fn2.c,
2206 testsuite/libffi.call/closure_fn3.c,
2207 testsuite/libffi.call/closure_fn4.c,
2208 testsuite/libffi.call/closure_fn5.c,
2209 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002210 testsuite/libffi.call/closure_stdcall.c,
2211 testsuite/libffi.call/cls_12byte.c,
2212 testsuite/libffi.call/cls_16byte.c,
2213 testsuite/libffi.call/cls_18byte.c,
2214 testsuite/libffi.call/cls_19byte.c,
2215 testsuite/libffi.call/cls_1_1byte.c,
2216 testsuite/libffi.call/cls_20byte.c,
2217 testsuite/libffi.call/cls_20byte1.c,
2218 testsuite/libffi.call/cls_24byte.c,
2219 testsuite/libffi.call/cls_2byte.c,
2220 testsuite/libffi.call/cls_3_1byte.c,
2221 testsuite/libffi.call/cls_3byte1.c,
2222 testsuite/libffi.call/cls_3byte2.c,
2223 testsuite/libffi.call/cls_4_1byte.c,
2224 testsuite/libffi.call/cls_4byte.c,
2225 testsuite/libffi.call/cls_5_1_byte.c,
2226 testsuite/libffi.call/cls_5byte.c,
2227 testsuite/libffi.call/cls_64byte.c,
2228 testsuite/libffi.call/cls_6_1_byte.c,
2229 testsuite/libffi.call/cls_6byte.c,
2230 testsuite/libffi.call/cls_7_1_byte.c,
2231 testsuite/libffi.call/cls_7byte.c,
2232 testsuite/libffi.call/cls_8byte.c,
2233 testsuite/libffi.call/cls_9byte1.c,
2234 testsuite/libffi.call/cls_9byte2.c,
2235 testsuite/libffi.call/cls_align_double.c,
2236 testsuite/libffi.call/cls_align_float.c,
2237 testsuite/libffi.call/cls_align_longdouble.c,
2238 testsuite/libffi.call/cls_align_longdouble_split.c,
2239 testsuite/libffi.call/cls_align_longdouble_split2.c,
2240 testsuite/libffi.call/cls_align_pointer.c,
2241 testsuite/libffi.call/cls_align_sint16.c,
2242 testsuite/libffi.call/cls_align_sint32.c,
2243 testsuite/libffi.call/cls_align_sint64.c,
2244 testsuite/libffi.call/cls_align_uint16.c,
2245 testsuite/libffi.call/cls_align_uint32.c,
2246 testsuite/libffi.call/cls_align_uint64.c,
2247 testsuite/libffi.call/cls_dbls_struct.c,
2248 testsuite/libffi.call/cls_double.c,
2249 testsuite/libffi.call/cls_double_va.c,
2250 testsuite/libffi.call/cls_float.c,
2251 testsuite/libffi.call/cls_longdouble.c,
2252 testsuite/libffi.call/cls_longdouble_va.c,
2253 testsuite/libffi.call/cls_multi_schar.c,
2254 testsuite/libffi.call/cls_multi_sshort.c,
2255 testsuite/libffi.call/cls_multi_sshortchar.c,
2256 testsuite/libffi.call/cls_multi_uchar.c,
2257 testsuite/libffi.call/cls_multi_ushort.c,
2258 testsuite/libffi.call/cls_multi_ushortchar.c,
2259 testsuite/libffi.call/cls_pointer.c,
2260 testsuite/libffi.call/cls_pointer_stack.c,
2261 testsuite/libffi.call/cls_schar.c,
2262 testsuite/libffi.call/cls_sint.c,
2263 testsuite/libffi.call/cls_sshort.c,
2264 testsuite/libffi.call/cls_uchar.c,
2265 testsuite/libffi.call/cls_uint.c,
2266 testsuite/libffi.call/cls_ulonglong.c,
2267 testsuite/libffi.call/cls_ushort.c,
2268 testsuite/libffi.call/err_bad_abi.c,
2269 testsuite/libffi.call/err_bad_typedef.c,
2270 testsuite/libffi.call/float2.c,
2271 testsuite/libffi.call/huge_struct.c,
2272 testsuite/libffi.call/nested_struct.c,
2273 testsuite/libffi.call/nested_struct1.c,
2274 testsuite/libffi.call/nested_struct10.c,
2275 testsuite/libffi.call/nested_struct2.c,
2276 testsuite/libffi.call/nested_struct3.c,
2277 testsuite/libffi.call/nested_struct4.c,
2278 testsuite/libffi.call/nested_struct5.c,
2279 testsuite/libffi.call/nested_struct6.c,
2280 testsuite/libffi.call/nested_struct7.c,
2281 testsuite/libffi.call/nested_struct8.c,
2282 testsuite/libffi.call/nested_struct9.c,
2283 testsuite/libffi.call/problem1.c,
2284 testsuite/libffi.call/return_ldl.c,
2285 testsuite/libffi.call/return_ll1.c,
2286 testsuite/libffi.call/stret_large.c,
2287 testsuite/libffi.call/stret_large2.c,
2288 testsuite/libffi.call/stret_medium.c,
2289 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05002290 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2291 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002292
22932009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2294
2295 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2296 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2297 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2298
22992009-06-09 Andrew Haley <aph@redhat.com>
2300
2301 * src/x86/freebsd.S: Add missing file.
2302
23032009-06-08 Andrew Haley <aph@redhat.com>
2304
2305 Import from libffi 3.0.8:
2306
2307 * doc/libffi.texi: New file.
2308 * doc/libffi.info: Likewise.
2309 * doc/stamp-vti: Likewise.
2310 * man/Makefile.am: New file.
2311 * man/ffi_call.3: New file.
2312
2313 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2314 src/dlmalloc.c.
2315 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2316
2317 * configure.ac: Bump version to 3.0.8.
2318 parisc*-*-linux*: Add.
2319 i386-*-freebsd* | i386-*-openbsd*: Add.
2320 powerpc-*-beos*: Add.
2321 AM_CONDITIONAL X86_FREEBSD: Add.
2322 AC_CONFIG_FILES: Add man/Makefile.
2323
2324 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2325
23262009-06-08 Andrew Haley <aph@redhat.com>
2327
2328 * README: Import from libffi 3.0.8.
2329
23302009-06-08 Andrew Haley <aph@redhat.com>
2331
2332 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2333 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2334 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2335 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2336
2337 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2338 * testsuite/libffi.call/stret_medium.c: Likewise.
2339 * testsuite/libffi.call/stret_large2.c: Likewise.
2340 * testsuite/libffi.call/stret_large.c: Likewise.
2341
23422008-12-26 Timothy Wall <twall@users.sf.net>
2343
Anthony Green0cfe60e2009-12-29 10:06:04 -05002344 * testsuite/libffi.call/cls_longdouble.c,
2345 testsuite/libffi.call/cls_longdouble_va.c,
2346 testsuite/libffi.call/cls_align_longdouble.c,
2347 testsuite/libffi.call/cls_align_longdouble_split.c,
2348 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2349 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002350
23512008-12-22 Timothy Wall <twall@users.sf.net>
2352
Anthony Green0cfe60e2009-12-29 10:06:04 -05002353 * testsuite/libffi.call/closure_fn0.c,
2354 testsuite/libffi.call/closure_fn1.c,
2355 testsuite/libffi.call/closure_fn2.c,
2356 testsuite/libffi.call/closure_fn3.c,
2357 testsuite/libffi.call/closure_fn4.c,
2358 testsuite/libffi.call/closure_fn5.c,
2359 testsuite/libffi.call/closure_fn6.c,
2360 testsuite/libffi.call/closure_loc_fn0.c,
2361 testsuite/libffi.call/closure_stdcall.c,
2362 testsuite/libffi.call/cls_align_pointer.c,
2363 testsuite/libffi.call/cls_pointer.c,
2364 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2365 pointer to integer (intptr_t).
2366 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002367
23682008-07-24 Anthony Green <green@redhat.com>
2369
Anthony Green0cfe60e2009-12-29 10:06:04 -05002370 * testsuite/libffi.call/cls_dbls_struct.c,
2371 testsuite/libffi.call/cls_double_va.c,
2372 testsuite/libffi.call/cls_longdouble.c,
2373 testsuite/libffi.call/cls_longdouble_va.c,
2374 testsuite/libffi.call/cls_pointer.c,
2375 testsuite/libffi.call/cls_pointer_stack.c,
2376 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2377 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002378
23792008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002380 Blake Chaffin
2381 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002382
Anthony Green0cfe60e2009-12-29 10:06:04 -05002383 * testsuite/libffi.call/cls_align_longdouble_split2.c
2384 testsuite/libffi.call/cls_align_longdouble_split.c
2385 testsuite/libffi.call/cls_dbls_struct.c
2386 testsuite/libffi.call/cls_double_va.c
2387 testsuite/libffi.call/cls_longdouble.c
2388 testsuite/libffi.call/cls_longdouble_va.c
2389 testsuite/libffi.call/cls_pointer.c
2390 testsuite/libffi.call/cls_pointer_stack.c
2391 testsuite/libffi.call/err_bad_abi.c
2392 testsuite/libffi.call/err_bad_typedef.c
2393 testsuite/libffi.call/stret_large2.c
2394 testsuite/libffi.call/stret_large.c
2395 testsuite/libffi.call/stret_medium2.c
2396 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002397
23982009-06-05 Andrew Haley <aph@redhat.com>
2399
2400 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2401 libffi.
2402
24032009-06-04 Andrew Haley <aph@redhat.com>
2404
2405 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2406 stdcall changes.
2407
24082008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002409 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002410
Anthony Green0cfe60e2009-12-29 10:06:04 -05002411 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2412 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002413
24142008-02-03 Timothy Wall <twall@users.sf.net>
2415
Anthony Green0cfe60e2009-12-29 10:06:04 -05002416 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2417 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002418
24192008-01-31 Timothy Wall <twall@users.sf.net>
2420
Anthony Green0cfe60e2009-12-29 10:06:04 -05002421 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2422 closures.
2423 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2424 closures.
2425 * src/x86/win32.S: Add assembly for stdcall closure.
2426 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002427
24282009-06-04 Andrew Haley <aph@redhat.com>
2429
2430 * include/ffi.h.in: Change void (*)() to void (*)(void).
2431 * src/x86/ffi.c: Likewise.
2432
24332009-06-04 Andrew Haley <aph@redhat.com>
2434
2435 * src/powerpc/ppc_closure.S: Insert licence header.
2436 * src/powerpc/linux64_closure.S: Likewise.
2437 * src/m68k/sysv.S: Likewise.
2438
2439 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2440 * src/powerpc/ffi.c: Likewise.
2441 * src/powerpc/ffi_darwin.c: Likewise.
2442 * src/m32r/ffi.c: Likewise.
2443 * src/sh64/ffi.c: Likewise.
2444 * src/x86/ffi64.c: Likewise.
2445 * src/alpha/ffi.c: Likewise.
2446 * src/alpha/osf.S: Likewise.
2447 * src/frv/ffi.c: Likewise.
2448 * src/s390/ffi.c: Likewise.
2449 * src/pa/ffi.c: Likewise.
2450 * src/pa/hpux32.S: Likewise.
2451 * src/ia64/unix.S: Likewise.
2452 * src/ia64/ffi.c: Likewise.
2453 * src/sparc/ffi.c: Likewise.
2454 * src/mips/ffi.c: Likewise.
2455 * src/sh/ffi.c: Likewise.
2456
24572008-02-15 David Daney <ddaney@avtrex.com>
2458
Anthony Green0cfe60e2009-12-29 10:06:04 -05002459 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2460 Define (conditionally), and use it to include cachectl.h.
2461 (ffi_prep_closure_loc): Fix cache flushing.
2462 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002463
24642009-06-04 Andrew Haley <aph@redhat.com>
2465
2466 include/ffi.h.in,
2467 src/arm/ffitarget.h,
2468 src/arm/ffi.c,
2469 src/arm/sysv.S,
2470 src/powerpc/ffitarget.h,
2471 src/closures.c,
2472 src/sh64/ffitarget.h,
2473 src/sh64/ffi.c,
2474 src/sh64/sysv.S,
2475 src/types.c,
2476 src/x86/ffi64.c,
2477 src/x86/ffitarget.h,
2478 src/x86/win32.S,
2479 src/x86/darwin.S,
2480 src/x86/ffi.c,
2481 src/x86/sysv.S,
2482 src/x86/unix64.S,
2483 src/alpha/ffitarget.h,
2484 src/alpha/ffi.c,
2485 src/alpha/osf.S,
2486 src/m68k/ffitarget.h,
2487 src/frv/ffitarget.h,
2488 src/frv/ffi.c,
2489 src/s390/ffitarget.h,
2490 src/s390/sysv.S,
2491 src/cris/ffitarget.h,
2492 src/pa/linux.S,
2493 src/pa/ffitarget.h,
2494 src/pa/ffi.c,
2495 src/raw_api.c,
2496 src/ia64/ffitarget.h,
2497 src/ia64/unix.S,
2498 src/ia64/ffi.c,
2499 src/ia64/ia64_flags.h,
2500 src/java_raw_api.c,
2501 src/debug.c,
2502 src/sparc/v9.S,
2503 src/sparc/ffitarget.h,
2504 src/sparc/ffi.c,
2505 src/sparc/v8.S,
2506 src/mips/ffitarget.h,
2507 src/mips/n32.S,
2508 src/mips/o32.S,
2509 src/mips/ffi.c,
2510 src/prep_cif.c,
2511 src/sh/ffitarget.h,
2512 src/sh/ffi.c,
2513 src/sh/sysv.S: Update license text.
2514
25152009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2516
2517 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2518 (.eh_frame): Add FDE for it.
2519
25202009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2521
2522 * configure.ac: Also check if assembler supports pc-relative
2523 relocs on X86_WIN32 targets.
2524 * configure: Regenerate.
2525 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2526 (_ffi_call_SYSV): Add missing function type symbol .def and
2527 add EH markup labels.
2528 (_ffi_call_STDCALL): Likewise.
2529 (_ffi_closure_SYSV): Likewise.
2530 (_ffi_closure_raw_SYSV): Likewise.
2531 (.eh_frame): Add hand-crafted EH data.
2532
25332009-04-09 Jakub Jelinek <jakub@redhat.com>
2534
2535 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2536 version 3 of the GNU General Public License and to point readers
2537 at the COPYING3 file and the FSF's license web page.
2538 * testsuite/libffi.call/call.exp: Likewise.
2539 * testsuite/libffi.special/special.exp: Likewise.
2540
25412009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2542
2543 * configure: Regenerate.
2544
25452008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2546
2547 PR libffi/26048
2548 * configure.ac (HAVE_AS_X86_PCREL): New test.
2549 * configure: Regenerate.
2550 * fficonfig.h.in: Regenerate.
2551 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2552 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2553 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2554 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2555 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2556 (.Lload_table): Likewise.
2557 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2558
25592008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2560
2561 * configure: Regenerate.
2562
25632008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2564
2565 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2566 signed/unsigned int8/16 return values.
2567 * src/sparc/v8.S (ffi_call_v8): Likewise.
2568 (ffi_closure_v8): Likewise.
2569
25702008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002571 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002572
2573 * configure: Regenerate for new libtool.
2574 * Makefile.in: Ditto.
2575 * include/Makefile.in: Ditto.
2576 * aclocal.m4: Ditto.
2577
25782008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2579
2580 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2581 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2582 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2583 Adjust copyright notice.
2584 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2585 register or two register to use for FFI_SYSV structs.
2586 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2587 (ffi_closure_helper_SYSV): Fix the return type for
2588 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2589 Adjust copyright notice.
2590
25912008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2592
2593 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2594 int.
2595
25962008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2597
2598 * configure: Regenerate.
2599 * include/Makefile.in: Regenerate.
2600 * testsuite/Makefile.in: Regenerate.
2601
26022008-06-07 Joseph Myers <joseph@codesourcery.com>
2603
2604 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2605 powerpc-*-beos*): Remove.
2606 * configure: Regenerate.
2607
26082008-05-09 Julian Brown <julian@codesourcery.com>
2609
2610 * Makefile.am (LTLDFLAGS): New.
2611 (libffi_la_LDFLAGS): Use above.
2612 * Makefile.in: Regenerate.
2613
26142008-04-18 Paolo Bonzini <bonzini@gnu.org>
2615
2616 PR bootstrap/35457
2617 * aclocal.m4: Regenerate.
2618 * configure: Regenerate.
2619
26202008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2621
2622 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2623 * src/sh64/sysv.S: Likewise.
2624
26252008-03-26 Daniel Jacobowitz <dan@debian.org>
2626
2627 * src/arm/sysv.S: Fix ARM comment marker.
2628
26292008-03-26 Jakub Jelinek <jakub@redhat.com>
2630
2631 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2632 * src/s390/sysv.S: Likewise.
2633 * src/powerpc/ppc_closure.S: Likewise.
2634 * src/powerpc/sysv.S: Likewise.
2635 * src/x86/unix64.S: Likewise.
2636 * src/x86/sysv.S: Likewise.
2637 * src/sparc/v8.S: Likewise.
2638 * src/sparc/v9.S: Likewise.
2639 * src/m68k/sysv.S: Likewise.
2640 * src/arm/sysv.S: Likewise.
2641
26422008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2643
2644 * aclocal.m4: Regenerate.
2645 * configure: Likewise.
2646 * Makefile.in: Likewise.
2647 * include/Makefile.in: Likewise.
2648 * testsuite/Makefile.in: Likewise.
2649
26502008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2651 Andreas Tobler <a.tobler@schweiz.org>
2652
2653 * configure.ac: Add amd64-*-freebsd* target.
2654 * configure: Regenerate.
2655
26562008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2657
2658 PR libffi/34612
2659 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2660 returning struct.
2661
2662 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2663 tests.
2664
26652008-01-24 David Edelsohn <edelsohn@gnu.org>
2666
2667 * configure: Regenerate.
2668
26692008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2670
2671 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2672
26732008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2674
2675 PR testsuite/32843
2676 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2677 signed/unsigned int8/16 for X86_DARWIN.
2678 Updated copyright info.
2679 Handle one and two byte structs with special cif->flags.
2680 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2681 Updated copyright info.
2682 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2683 sysv.S
2684 Remove code to pop args from the stack after call.
2685 Special-case signed/unsigned for int8/16, one and two byte structs.
2686 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2687 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2688 FFI_TYPE_SINT32.
2689 Updated copyright info.
2690
26912007-12-08 David Daney <ddaney@avtrex.com>
2692
Anthony Green0cfe60e2009-12-29 10:06:04 -05002693 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002694 SUBU, add with ADDU and use smaller code sequences.
2695
26962007-12-07 David Daney <ddaney@avtrex.com>
2697
2698 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2699 type.
2700
27012007-12-06 David Daney <ddaney@avtrex.com>
2702
2703 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2704 defined.
2705 (ffi_java_raw): New typedef.
2706 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2707 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2708 ffi_java_raw.
2709 (ffi_java_raw_closure) : Same.
2710 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2711 parameter types.
2712 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2713 FFI_SIZEOF_JAVA_RAW.
2714 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2715 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2716 sizeof(ffi_java_raw) for alignment calculations.
2717 (ffi_java_ptrarray_to_raw): Same.
2718 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002719 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002720 (ffi_java_raw_to_rvalue): Same.
2721 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2722 (ffi_java_translate_args): Same.
2723 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2724 parameter types.
2725 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2726
27272007-12-06 David Daney <ddaney@avtrex.com>
2728
Anthony Green0cfe60e2009-12-29 10:06:04 -05002729 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002730 pointer values.
2731
27322007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2733
2734 PR libffi/31937
2735 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2736 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2737 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2738 set the NUM_FPR_ARG_REGISTERS according to.
2739 Add support for potential soft-float support under hard-float
2740 architecture.
2741 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2742 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2743 to the FFI_LINUX_SOFT_FLOAT ABI.
2744 (ffi_prep_cif_machdep): Likewise.
2745 (ffi_closure_helper_SYSV): Likewise.
2746 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2747 on archs where __NO_FPRS__ is true.
2748 Add FFI_TYPE_UINT128 support.
2749 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2750 Adjust copyright notice.
2751
27522007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2753
2754 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2755 * include/ffi_common.h: ... here.
2756 Update copyright.
2757
27582007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2759
2760 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2761 * src/powerpc/linux64.S: Likewise.
2762 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2763 * testsuite/libffi.call/return_ldl.c: New test.
2764
27652007-09-04 <aph@redhat.com>
2766
2767 * src/arm/sysv.S (UNWIND): New.
2768 (Whole file): Conditionally compile unwinder directives.
2769 * src/arm/sysv.S: Add unwinder directives.
2770
2771 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2772 Only treat r0 as a struct address if we're actually returning a
2773 struct by address.
2774 Only copy the bytes that are actually within a struct.
2775 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2776 is returned in r0, not passed by address.
2777 (ffi_call): Allocate a word-sized temporary for the case where
2778 a composite is returned in r0.
2779 (ffi_prep_incoming_args_SYSV): Align as necessary.
2780
27812007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2782
Anthony Green0cfe60e2009-12-29 10:06:04 -05002783 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002784 directly using the sys_cacheflush syscall.
2785
27862007-07-27 Andrew Haley <aph@redhat.com>
2787
2788 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2789
27902007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2791
2792 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2793 * configure.ac: Likewise.
2794 * Makefile.in: Regenerate.
2795 * include/Makefile.in: Likewise.
2796 * testsuite/Makefile.in: Likewise.
2797 * configure: Likewise.
2798
27992007-08-24 David Daney <ddaney@avtrex.com>
2800
2801 * testsuite/libffi.call/return_sl.c: New test.
2802
28032007-08-10 David Daney <ddaney@avtrex.com>
2804
2805 * testsuite/libffi.call/cls_multi_ushort.c,
2806 testsuite/libffi.call/cls_align_uint16.c,
2807 testsuite/libffi.call/nested_struct1.c,
2808 testsuite/libffi.call/nested_struct3.c,
2809 testsuite/libffi.call/cls_7_1_byte.c,
2810 testsuite/libffi.call/nested_struct5.c,
2811 testsuite/libffi.call/cls_double.c,
2812 testsuite/libffi.call/nested_struct7.c,
2813 testsuite/libffi.call/cls_sint.c,
2814 testsuite/libffi.call/nested_struct9.c,
2815 testsuite/libffi.call/cls_20byte1.c,
2816 testsuite/libffi.call/cls_multi_sshortchar.c,
2817 testsuite/libffi.call/cls_align_sint64.c,
2818 testsuite/libffi.call/cls_3byte2.c,
2819 testsuite/libffi.call/cls_multi_schar.c,
2820 testsuite/libffi.call/cls_multi_uchar.c,
2821 testsuite/libffi.call/cls_19byte.c,
2822 testsuite/libffi.call/cls_9byte1.c,
2823 testsuite/libffi.call/cls_align_float.c,
2824 testsuite/libffi.call/closure_fn1.c,
2825 testsuite/libffi.call/problem1.c,
2826 testsuite/libffi.call/closure_fn3.c,
2827 testsuite/libffi.call/cls_sshort.c,
2828 testsuite/libffi.call/closure_fn5.c,
2829 testsuite/libffi.call/cls_align_double.c,
2830 testsuite/libffi.call/nested_struct.c,
2831 testsuite/libffi.call/cls_2byte.c,
2832 testsuite/libffi.call/nested_struct10.c,
2833 testsuite/libffi.call/cls_4byte.c,
2834 testsuite/libffi.call/cls_6byte.c,
2835 testsuite/libffi.call/cls_8byte.c,
2836 testsuite/libffi.call/cls_multi_sshort.c,
2837 testsuite/libffi.call/cls_align_sint16.c,
2838 testsuite/libffi.call/cls_align_uint32.c,
2839 testsuite/libffi.call/cls_20byte.c,
2840 testsuite/libffi.call/cls_float.c,
2841 testsuite/libffi.call/nested_struct2.c,
2842 testsuite/libffi.call/cls_5_1_byte.c,
2843 testsuite/libffi.call/nested_struct4.c,
2844 testsuite/libffi.call/cls_24byte.c,
2845 testsuite/libffi.call/nested_struct6.c,
2846 testsuite/libffi.call/cls_64byte.c,
2847 testsuite/libffi.call/nested_struct8.c,
2848 testsuite/libffi.call/cls_uint.c,
2849 testsuite/libffi.call/cls_multi_ushortchar.c,
2850 testsuite/libffi.call/cls_schar.c,
2851 testsuite/libffi.call/cls_uchar.c,
2852 testsuite/libffi.call/cls_align_uint64.c,
2853 testsuite/libffi.call/cls_ulonglong.c,
2854 testsuite/libffi.call/cls_align_longdouble.c,
2855 testsuite/libffi.call/cls_1_1byte.c,
2856 testsuite/libffi.call/cls_12byte.c,
2857 testsuite/libffi.call/cls_3_1byte.c,
2858 testsuite/libffi.call/cls_3byte1.c,
2859 testsuite/libffi.call/cls_4_1byte.c,
2860 testsuite/libffi.call/cls_6_1_byte.c,
2861 testsuite/libffi.call/cls_16byte.c,
2862 testsuite/libffi.call/cls_18byte.c,
2863 testsuite/libffi.call/closure_fn0.c,
2864 testsuite/libffi.call/cls_9byte2.c,
2865 testsuite/libffi.call/closure_fn2.c,
2866 testsuite/libffi.call/closure_fn4.c,
2867 testsuite/libffi.call/cls_ushort.c,
2868 testsuite/libffi.call/closure_fn6.c,
2869 testsuite/libffi.call/cls_5byte.c,
2870 testsuite/libffi.call/cls_align_pointer.c,
2871 testsuite/libffi.call/cls_7byte.c,
2872 testsuite/libffi.call/cls_align_sint32.c,
2873 testsuite/libffi.special/unwindtest_ffi_call.cc,
2874 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2875
28762007-08-10 David Daney <ddaney@avtrex.com>
2877
2878 PR libffi/28313
2879 * configure.ac: Don't treat mips64 as a special case.
2880 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2881 * configure: Regenerate
2882 * Makefile.in: Ditto.
2883 * fficonfig.h.in: Ditto.
2884 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2885 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2886 (FFI_DEFAULT_ABI): Set for n64 case.
2887 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2888 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2889 (ffi_closure_N32): New function.
2890 (.eh_frame): New section
2891 * src/mips/o32.S: Clean up comments.
2892 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2893 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2894 _MIPS_SIM == _ABIN32 throughout.
2895 (FFI_MIPS_STOP_HERE): New, use in place of
2896 ffi_stop_here.
2897 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2898 to support n32/n64 ABIs.
2899 (calc_n32_struct_flags): Rewrite.
2900 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2901 position of flag bits.
2902 (ffi_prep_cif_machdep): Rewrite n32 portion.
2903 (ffi_call): Enable for n64. Add special handling for small structure
2904 return values.
2905 (ffi_prep_closure_loc): Add n32 and n64 support.
2906 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2907 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2908
29092007-08-08 David Daney <ddaney@avtrex.com>
2910
2911 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2912 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2913 specifiers.
2914 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2915 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2916 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2917 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2918 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2919 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2920 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2921 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2922 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2923 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2924 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2925 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2926 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2927 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2928 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2929 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2930 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2931 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2932 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2933 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2934 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2935 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2936 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2937 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2938 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2939 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2940 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2941 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2942 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2943 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2944 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2945
29462007-08-07 Andrew Haley <aph@redhat.com>
2947
2948 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2949 checkin.
2950
29512007-08-06 Andrew Haley <aph@redhat.com>
2952
2953 PR testsuite/32843
2954 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2955 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2956 FFI_TYPE_SINT32.
2957
29582007-08-02 David Daney <ddaney@avtrex.com>
2959
2960 * testsuite/libffi.call/return_ul.c (main): Define return type as
2961 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002962
Anthony Greenc6dddbd2009-10-04 08:11:33 -040029632007-07-30 Andrew Haley <aph@redhat.com>
2964
2965 PR testsuite/32843
2966 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2967 signed/unsigned int8/16.
2968 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2969 Use a jump table.
2970 Remove code to pop args from the stack after call.
2971 Special-case signed/unsigned int8/16.
2972 * testsuite/libffi.call/return_sc.c (main): Revert.
2973
29742007-07-26 Richard Guenther <rguenther@suse.de>
2975
2976 PR testsuite/32843
2977 * testsuite/libffi.call/return_sc.c (main): Verify call
2978 result as signed char, not ffi_arg.
2979
29802007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2981
2982 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2983 * configure: Regenerate.
2984
29852007-07-11 David Daney <ddaney@avtrex.com>
2986
2987 * src/mips/ffi.c: Don't include sys/cachectl.h.
2988 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2989 cacheflush().
2990
29912007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2992
2993 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2994 from (ffi_prep_closure): ... this.
2995 (FFI_INIT_TRAMPOLINE): Adjust.
2996
29972005-12-31 Phil Blundell <pb@reciva.com>
2998
Anthony Green0cfe60e2009-12-29 10:06:04 -05002999 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
3000 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003001 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
3002 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
3003 (FFI_CLOSURES): Enable closure support.
3004
30052007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
3006
Anthony Green0cfe60e2009-12-29 10:06:04 -05003007 * testsuite/libffi.call/cls_multi_ushort.c,
3008 testsuite/libffi.call/cls_align_uint16.c,
3009 testsuite/libffi.call/nested_struct1.c,
3010 testsuite/libffi.call/nested_struct3.c,
3011 testsuite/libffi.call/cls_7_1_byte.c,
3012 testsuite/libffi.call/cls_double.c,
3013 testsuite/libffi.call/nested_struct5.c,
3014 testsuite/libffi.call/nested_struct7.c,
3015 testsuite/libffi.call/cls_sint.c,
3016 testsuite/libffi.call/nested_struct9.c,
3017 testsuite/libffi.call/cls_20byte1.c,
3018 testsuite/libffi.call/cls_multi_sshortchar.c,
3019 testsuite/libffi.call/cls_align_sint64.c,
3020 testsuite/libffi.call/cls_3byte2.c,
3021 testsuite/libffi.call/cls_multi_schar.c,
3022 testsuite/libffi.call/cls_multi_uchar.c,
3023 testsuite/libffi.call/cls_19byte.c,
3024 testsuite/libffi.call/cls_9byte1.c,
3025 testsuite/libffi.call/cls_align_float.c,
3026 testsuite/libffi.call/closure_fn1.c,
3027 testsuite/libffi.call/problem1.c,
3028 testsuite/libffi.call/closure_fn3.c,
3029 testsuite/libffi.call/cls_sshort.c,
3030 testsuite/libffi.call/closure_fn5.c,
3031 testsuite/libffi.call/cls_align_double.c,
3032 testsuite/libffi.call/cls_2byte.c,
3033 testsuite/libffi.call/nested_struct.c,
3034 testsuite/libffi.call/nested_struct10.c,
3035 testsuite/libffi.call/cls_4byte.c,
3036 testsuite/libffi.call/cls_6byte.c,
3037 testsuite/libffi.call/cls_8byte.c,
3038 testsuite/libffi.call/cls_multi_sshort.c,
3039 testsuite/libffi.call/cls_align_uint32.c,
3040 testsuite/libffi.call/cls_align_sint16.c,
3041 testsuite/libffi.call/cls_float.c,
3042 testsuite/libffi.call/cls_20byte.c,
3043 testsuite/libffi.call/cls_5_1_byte.c,
3044 testsuite/libffi.call/nested_struct2.c,
3045 testsuite/libffi.call/cls_24byte.c,
3046 testsuite/libffi.call/nested_struct4.c,
3047 testsuite/libffi.call/nested_struct6.c,
3048 testsuite/libffi.call/cls_64byte.c,
3049 testsuite/libffi.call/nested_struct8.c,
3050 testsuite/libffi.call/cls_uint.c,
3051 testsuite/libffi.call/cls_multi_ushortchar.c,
3052 testsuite/libffi.call/cls_schar.c,
3053 testsuite/libffi.call/cls_uchar.c,
3054 testsuite/libffi.call/cls_align_uint64.c,
3055 testsuite/libffi.call/cls_ulonglong.c,
3056 testsuite/libffi.call/cls_align_longdouble.c,
3057 testsuite/libffi.call/cls_1_1byte.c,
3058 testsuite/libffi.call/cls_12byte.c,
3059 testsuite/libffi.call/cls_3_1byte.c,
3060 testsuite/libffi.call/cls_3byte1.c,
3061 testsuite/libffi.call/cls_4_1byte.c,
3062 testsuite/libffi.call/cls_6_1_byte.c,
3063 testsuite/libffi.call/cls_16byte.c,
3064 testsuite/libffi.call/cls_18byte.c,
3065 testsuite/libffi.call/closure_fn0.c,
3066 testsuite/libffi.call/cls_9byte2.c,
3067 testsuite/libffi.call/closure_fn2.c,
3068 testsuite/libffi.call/closure_fn4.c,
3069 testsuite/libffi.call/cls_ushort.c,
3070 testsuite/libffi.call/closure_fn6.c,
3071 testsuite/libffi.call/cls_5byte.c,
3072 testsuite/libffi.call/cls_align_pointer.c,
3073 testsuite/libffi.call/cls_7byte.c,
3074 testsuite/libffi.call/cls_align_sint32.c,
3075 testsuite/libffi.special/unwindtest_ffi_call.cc,
3076 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003077
30782007-07-05 H.J. Lu <hongjiu.lu@intel.com>
3079
3080 * aclocal.m4: Regenerated.
3081
30822007-06-02 Paolo Bonzini <bonzini@gnu.org>
3083
3084 * configure: Regenerate.
3085
30862007-05-23 Steve Ellcey <sje@cup.hp.com>
3087
3088 * Makefile.in: Regenerate.
3089 * configure: Regenerate.
3090 * aclocal.m4: Regenerate.
3091 * include/Makefile.in: Regenerate.
3092 * testsuite/Makefile.in: Regenerate.
3093
30942007-05-10 Roman Zippel <zippel@linux-m68k.org>
3095
3096 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
3097 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
3098 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
3099 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
3100 (FFI_CLOSURES): Enable closure support.
3101
31022007-05-10 Roman Zippel <zippel@linux-m68k.org>
3103
3104 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
3105 * configure: Regenerate.
3106 * fficonfig.h.in: Regenerate.
3107 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
3108 CFI_OFFSET,CFI_DEF_CFA): New macros.
3109 (ffi_call_SYSV): Add callframe annotation.
3110
31112007-05-10 Roman Zippel <zippel@linux-m68k.org>
3112
3113 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
3114 numerous test suite failures.
3115 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
3116
31172007-04-11 Paolo Bonzini <bonzini@gnu.org>
3118
3119 * Makefile.am (EXTRA_DIST): Bring up to date.
3120 * Makefile.in: Regenerate.
3121 * src/frv/eabi.S: Remove RCS keyword.
3122
31232007-04-06 Richard Henderson <rth@redhat.com>
3124
3125 * configure.ac: Tidy target case.
3126 (HAVE_LONG_DOUBLE): Allow the target to override.
3127 * configure: Regenerate.
3128 * include/ffi.h.in: Don't define ffi_type_foo if
3129 LIBFFI_HIDE_BASIC_TYPES is defined.
3130 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
3131 to ffi_type_double.
3132 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
3133 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
3134 (ffi_type_longdouble): Special case for Alpha. Don't define
3135 if long double == double.
3136
3137 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
3138 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
3139 (ffi_call, ffi_closure_osf_inner): Likewise.
3140 (ffi_closure_osf_inner): Likewise. Mark hidden.
3141 (ffi_call_osf, ffi_closure_osf): Mark hidden.
3142 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
3143 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
3144 (load_table): Handle 128-bit long double.
3145
3146 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
3147
31482007-04-06 Tom Tromey <tromey@redhat.com>
3149
3150 PR libffi/31491:
3151 * README: Fixed bug in example.
3152
31532007-04-03 Jakub Jelinek <jakub@redhat.com>
3154
3155 * src/closures.c: Include sys/statfs.h.
3156 (_GNU_SOURCE): Define on Linux.
3157 (FFI_MMAP_EXEC_SELINUX): Define.
3158 (selinux_enabled): New variable.
3159 (selinux_enabled_check): New function.
3160 (is_selinux_enabled): Define.
3161 (dlmmap): Use it.
3162
31632007-03-24 Uros Bizjak <ubizjak@gmail.com>
3164
3165 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
3166 Use 'volatile float sum' to create sum of floats to avoid false
3167 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003168 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003169
31702007-03-08 Alexandre Oliva <aoliva@redhat.com>
3171
3172 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
3173 patch.
3174 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
3175
31762007-03-07 Alexandre Oliva <aoliva@redhat.com>
3177
3178 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
3179 (ffi_prep_closure_loc): New.
3180 (ffi_prep_raw_closure_loc): New.
3181 (ffi_prep_java_raw_closure_loc): New.
3182 * src/closures.c: New file.
3183 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
3184 Replace sflags with exec_offset.
3185 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
3186 sub_segment_exec_offset): New macros.
3187 (get_segment_flags, set_segment_flags, check_segment_merge): New
3188 macros.
3189 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
3190 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
3191 destroy_mspace): Use new macros.
3192 (sys_alloc): Silence warning.
3193 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
3194 * Makefile.in: Rebuilt.
3195 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
3196 terms of ffi_prep_closure_loc.
3197 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
3198 from...
3199 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
3200 renamed version.
3201 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
3202 adjusted from...
3203 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
3204 the renamed version.
3205 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
3206 (ffi_prep_closure): ... this.
3207 * src/pa/ffi.c: Likewise.
3208 * src/cris/ffi.c: Likewise. Adjust.
3209 * src/frv/ffi.c: Likewise.
3210 * src/ia64/ffi.c: Likewise.
3211 * src/mips/ffi.c: Likewise.
3212 * src/powerpc/ffi_darwin.c: Likewise.
3213 * src/s390/ffi.c: Likewise.
3214 * src/sh/ffi.c: Likewise.
3215 * src/sh64/ffi.c: Likewise.
3216 * src/sparc/ffi.c: Likewise.
3217 * src/x86/ffi64.c: Likewise.
3218 * src/x86/ffi.c: Likewise.
3219 (FFI_INIT_TRAMPOLINE): Adjust.
3220 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
3221 (ffi_prep_raw_closure): ... this.
3222 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
3223 (ffi_prep_closure): ... this.
3224 (flush_icache): Adjust.
3225
32262007-03-07 Alexandre Oliva <aoliva@redhat.com>
3227
3228 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
3229 Lea's malloc.
3230
32312007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
3232
3233 * Makefile.am: Add dummy install-pdf target.
3234 * Makefile.in: Regenerate
3235
32362007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
3237
3238 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
3239 ffi_closure_helper_SYSV): Add long double handling.
3240
32412007-02-02 Jakub Jelinek <jakub@redhat.com>
3242
3243 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
3244 immediately after bctrl instruction.
3245
32462007-01-18 Alexandre Oliva <aoliva@redhat.com>
3247
3248 * Makefile.am (all-recursive, install-recursive,
3249 mostlyclean-recursive, clean-recursive, distclean-recursive,
3250 maintainer-clean-recursive): Add missing targets.
3251 * Makefile.in: Rebuilt.
3252
32532006-12-14 Andreas Tobler <a.tobler@schweiz.org>
3254
3255 * configure.ac: Add TARGET for x86_64-*-darwin*.
3256 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
3257 for X86_DARWIN.
3258 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
3259 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
3260 * configure: Regenerate.
3261 * Makefile.in: Regenerate.
3262 * include/Makefile.in: Regenerate.
3263 * testsuite/Makefile.in: Regenerate.
3264 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
3265 ffi_call only.
3266
32672006-12-13 Andreas Tobler <a.tobler@schweiz.org>
3268
3269 * aclocal.m4: Regenerate with aclocal -I .. as written in the
3270 Makefile.am.
3271
32722006-10-31 Geoffrey Keating <geoffk@apple.com>
3273
3274 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3275 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3276 Darwin.
3277 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3278 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3279
32802006-10-10 Paolo Bonzini <bonzini@gnu.org>
3281 Sandro Tolaini <tolaini@libero.it>
3282
Anthony Green0cfe60e2009-12-29 10:06:04 -05003283 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003284 conditional.
3285 * configure: Regenerated.
3286 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3287 (EXTRA_DIST): Add src/x86/darwin.S.
3288 * Makefile.in: Regenerated.
3289 * include/Makefile.in: Regenerated.
3290 * testsuite/Makefile.in: Regenerated.
3291
3292 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3293 X86_WIN32, and additionally align stack to 16 bytes.
3294 * src/x86/darwin.S: New, based on sysv.S.
3295 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3296
32972006-09-12 David Daney <ddaney@avtrex.com>
3298
3299 PR libffi/23935
3300 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3301 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3302 * aclocal.m4: Regenerated for automake 1.9.6.
3303 * Makefile.in: Regenerated.
3304 * include/Makefile.in: Regenerated.
3305 * testsuite/Makefile.in: Regenerated.
3306
33072006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3308
3309 * include/ffi_common.h (struct): Revert accidental commit.
3310
33112006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3312
3313 * include/ffi_common.h: Remove lint directives.
3314 * include/ffi.h.in: Likewise.
3315
33162006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3317
3318 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3319 for 32-bit architectures.
3320 * testsuite/libffi.call/return_ul.c: New test case.
3321
33222006-07-19 David Daney <ddaney@avtrex.com>
3323
3324 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3325 xfail remains for mips64.
3326
33272006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3328
3329 * Makefile.am: Add install-html target. Add install-html to .PHONY
3330 * Makefile.in: Regenerate.
3331 * aclocal.m4: Regenerate.
3332 * include/Makefile.in: Regenerate.
3333 * testsuite/Makefile.in: Regenerate.
3334
33352006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3336
3337 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3338 stack slot.
3339
33402006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3341
3342 * README: Remove notice about 'Crazy Comments'.
3343 * src/debug.c: Remove lint directives. Cleanup white spaces.
3344 * src/java_raw_api.c: Likewise.
3345 * src/prep_cif.c: Likewise.
3346 * src/raw_api.c: Likewise.
3347 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3348 to the testsuite.
3349 * src/arm/ffi.c: Remove lint directives.
3350 * src/m32r/ffi.c: Likewise.
3351 * src/pa/ffi.c: Likewise.
3352 * src/powerpc/ffi.c: Likewise.
3353 * src/powerpc/ffi_darwin.c: Likewise.
3354 * src/sh/ffi.c: Likewise.
3355 * src/sh64/ffi.c: Likewise.
3356 * src/x86/ffi.c: Likewise.
3357 * testsuite/libffi.call/float2.c: Likewise.
3358 * testsuite/libffi.call/promotion.c: Likewise.
3359 * testsuite/libffi.call/struct1.c: Likewise.
3360
33612006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3362
3363 * src/pa/hpux32.S: Correct unwind offset calculation for
3364 ffi_closure_pa32.
3365 * src/pa/linux.S: Likewise.
3366
33672006-04-12 James E Wilson <wilson@specifix.com>
3368
3369 PR libgcj/26483
3370 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3371 (hfa_type_load): Call stf_spill.
3372 (hfa_type_store): Call ldf_fill.
3373 (ffi_call): Adjust calls to above routines. Add local temps for
3374 macro result.
3375
33762006-04-10 Matthias Klose <doko@debian.org>
3377
3378 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3379 directory names containing underscores.
3380
33812006-04-07 James E Wilson <wilson@specifix.com>
3382
3383 * testsuite/libffi.call/float4.c: New testcase.
3384
33852006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3386 Andreas Tobler <a.tobler@schweiz.ch>
3387
3388 * Makefile.am: Add PA_HPUX port.
3389 * Makefile.in: Regenerate.
3390 * include/Makefile.in: Likewise.
3391 * testsuite/Makefile.in: Likewise.
3392 * configure.ac: Add PA_HPUX rules.
3393 * configure: Regenerate.
3394 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3395 Add PA_HPUX and PA64_HPUX.
3396 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3397 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3398 (FFI_TYPE_SMALL_STRUCT2): Define.
3399 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3400 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3401 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3402 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3403 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3404 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3405 * src/pa/ffi.c (ROUND_DOWN): Delete.
3406 (fldw, fstw, fldd, fstd): Use '__asm__'.
3407 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3408 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3409 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3410 Simplify incrementing of stack slot variable. Change type of local
3411 'n' to unsigned int.
3412 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3413 double on PA_HPUX.
3414 (ffi_prep_cif_machdep): Likewise.
3415 (ffi_call): Likewise.
3416 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3417 return type to ffi_status. Simplify incrementing of stack slot
3418 variable. Only copy floating point argument registers when PA_LINUX
3419 is true. Reformat debug statement.
3420 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3421 FFI_TYPE_SMALL_STRUCT8.
3422 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3423 declaration.
3424 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3425 Add nops to cache flush. Add trampoline for PA_HPUX.
3426 * src/pa/hpux32.S: New file.
3427 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3428 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3429 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3430 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3431 argument type checks so that common argument types appear first.
3432 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3433 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3434
34352006-03-24 Alan Modra <amodra@bigpond.net.au>
3436
3437 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3438 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3439 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3440 FFI_TYPE_LONGDOUBLE.
3441 (ffi_prep_args64): Assert using IBM extended double.
3442 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3443 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3444 (ffi_call): Handle FFI_LINUX.
3445 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3446 gpr3 return pointer as for struct return. Handle FFI_LINUX
3447 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3448 unnecessarily.
3449 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3450 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3451 Don't use r6 as pointer to results, instead use sp offset. Don't
3452 make a special call to load lr with case table address, instead
3453 use offset from previous call.
3454 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3455 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3456 return.
3457
34582006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3459
3460 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3461 passed with FP registers correctly.
3462 (ffi_closure_helper_SYSV): Likewise.
3463 * src/sh64/sysv.S: Likewise.
3464
34652006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3466
3467 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3468 args and userdata unused.
3469 (closure_test_fn1): Mark cif and userdata unused.
3470 (main): Remove unused res.
3471
34722006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3473
3474 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3475 -O2, -O3, -Os and the warning flags -W -Wall.
3476 * testsuite/libffi.special/special.exp: Likewise.
3477 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3478 unused parameter unused for gcc or else do nothing.
3479 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3480 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3481 and userdata unused.
3482 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3483 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3484 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3485 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3486 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3487 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3488 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3489 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3490 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3491 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3492 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3493 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3494 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3495 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3496 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3497 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3498 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3499 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3500 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3501 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3502 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3503 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3504 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3505 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3506 Likewise.
3507 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3508 Likewise.
3509 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3510 Likewise.
3511 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3512 void* to avoid compiler warning.
3513 (main): Likewise.
3514 (cls_struct_align_gn): Mark cif and userdata unused.
3515 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3516 Likewise.
3517 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3518 Likewise.
3519 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3520 Likewise.
3521 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3522 Likewise.
3523 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3524 Likewise.
3525 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3526 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3527 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3528 data unused.
3529 (main): Cast res_call to silence gcc.
3530 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3531 data unused.
3532 (main): Cast res_call to silence gcc.
3533 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3534 and data unused.
3535 (main): Cast res_call to silence gcc.
3536 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3537 data unused.
3538 (main): Cast res_call to silence gcc.
3539 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3540 data unused.
3541 (main): Cast res_call to silence gcc.
3542 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3543 and data unused.
3544 (main): Cast res_call to silence gcc.
3545 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3546 userdata unused.
3547 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3548 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3549 userdata unused.
3550 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3551 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3552 userdata unused.
3553 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3554 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3555 userdata unused.
3556 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3557 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3558 userdata unused.
3559 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3560 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3561 and userdata unused.
3562 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3563 userdata unused.
3564 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3565 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3566 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3567 Cleanup white spaces.
3568 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3569 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3570 cif and userdata unused.
3571 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3572 Likewise.
3573 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3574 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3575 formatters to silence gcc.
3576 (B_gn): Mark cif and userdata unused.
3577 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3578 unused.
3579 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3580 (B_gn): Mark cif and userdata unused.
3581 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3582 unused.
3583 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3584 (B_gn): Mark cif and userdata unused.
3585 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3586 unused.
3587 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3588 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3589 * testsuite/libffi.call/problem1.c (stub): Likewise.
3590 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3591 gcc.
3592 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3593 in the last commit for this test case in the test case itself.
3594 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3595 unused.
3596 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3597 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3598 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3599 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3600 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3601 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3602
36032006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3604
3605 * src/sh/sysv.S: Fix register numbers in the FDE for
3606 ffi_closure_SYSV.
3607
36082006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3609
3610 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3611 declaration to avoid a false negative on ix86. See PR323.
3612
36132006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3614
3615 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3616 and cast integer to void * if needed. Update the pointer to
3617 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003618
Anthony Greenc6dddbd2009-10-04 08:11:33 -040036192006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3620
3621 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3622 is fixed.
3623 * testsuite/libffi.call/nested_struct4.c: Likewise.
3624
36252006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3626
3627 * testsuite/libffi.call/return_dbl.c: New test case.
3628 * testsuite/libffi.call/return_dbl1.c: Likewise.
3629 * testsuite/libffi.call/return_dbl2.c: Likewise.
3630 * testsuite/libffi.call/return_fl.c: Likewise.
3631 * testsuite/libffi.call/return_fl1.c: Likewise.
3632 * testsuite/libffi.call/return_fl2.c: Likewise.
3633 * testsuite/libffi.call/return_fl3.c: Likewise.
3634 * testsuite/libffi.call/closure_fn6.c: Likewise.
3635
3636 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3637 definition.
3638 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3639 here to be used by other test cases too.
3640
3641 * testsuite/libffi.call/nested_struct10.c: New test case.
3642 * testsuite/libffi.call/nested_struct9.c: Likewise.
3643 * testsuite/libffi.call/nested_struct8.c: Likewise.
3644 * testsuite/libffi.call/nested_struct7.c: Likewise.
3645 * testsuite/libffi.call/nested_struct6.c: Likewise.
3646 * testsuite/libffi.call/nested_struct5.c: Likewise.
3647 * testsuite/libffi.call/nested_struct4.c: Likewise.
3648
36492006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3650
3651 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3652 * configure: Rebuilt.
3653
36542006-01-18 Jakub Jelinek <jakub@redhat.com>
3655
3656 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3657 instead do the shifting inline.
3658 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3659 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3660 and 8 byte structs, for the remaining struct sizes don't call
3661 __lshrdi3, instead do the shifting inline.
3662
36632005-12-07 Thiemo Seufer <ths@networkno.de>
3664
3665 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3666 missing parentheses.
3667 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3668 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3669 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3670 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3671 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3672 FA_0_0_OFF2.
3673 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3674 endianness bugs.
3675 (ffi_prep_closure): Improve trampoline instruction scheduling.
3676 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3677
36782005-12-03 Alan Modra <amodra@bigpond.net.au>
3679
3680 * src/powerpc/ffi.c: Formatting.
3681 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3682 (ffi_prep_args64): Likewise.
3683
36842005-09-30 Geoffrey Keating <geoffk@apple.com>
3685
3686 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3687 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3688
36892005-09-26 Tom Tromey <tromey@redhat.com>
3690
3691 * testsuite/libffi.call/float1.c (value_type): New typedef.
3692 (CANARY): New define.
3693 (main): Check for result buffer overflow.
3694 * src/powerpc/linux64.S: Handle linux64 long double returns.
3695 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3696 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3697
36982005-08-25 Alan Modra <amodra@bigpond.net.au>
3699
3700 PR target/23404
3701 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3702 homed fp args.
3703 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3704
37052005-08-11 Jakub Jelinek <jakub@redhat.com>
3706
3707 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3708 (AH_BOTTOM): Add FFI_HIDDEN definition.
3709 * configure: Rebuilt.
3710 * fficonfig.h.in: Rebuilt.
3711 * src/powerpc/ffi.c (hidden): Remove.
3712 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3713 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3714 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3715 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3716 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3717 add FFI_HIDDEN to its prototype.
3718 (ffi_closure_SYSV_inner): New.
3719 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3720 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3721
37222005-08-10 Alfred M. Szmidt <ams@gnu.org>
3723
3724 PR libffi/21819:
3725 * configure: Rebuilt.
3726 * configure.ac: Handle i*86-*-gnu*.
3727
37282005-08-09 Jakub Jelinek <jakub@redhat.com>
3729
3730 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3731 DW_CFA_offset_extended_sf rather than
3732 DW_CFA_GNU_negative_offset_extended.
3733 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3734
37352005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3736
3737 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3738 on sh3.
3739 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3740 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3741 partially on register.
3742 (ffi_closure_helper_SYSV): Likewise.
3743 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3744
37452005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3746
3747 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3748 Remove empty line.
3749 * src/sh64/ffi.c (simple_type): Remove.
3750 (return_type): Handle small structures correctly.
3751 (ffi_prep_args): Likewise.
3752 (ffi_call): Likewise.
3753 (ffi_closure_helper_SYSV): Likewise.
3754 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3755 Emit position independent code if PIC and remove wrong datalabel
3756 prefixes from EH data.
3757
37582005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3759
3760 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3761 * Makefile.in: Regenerate.
3762 * include/Makefile.in: Likewise.
3763 * testsuite/Makefile.in: Likewise.
3764 * configure.ac: Add POWERPC_FREEBSD rules.
3765 * configure: Regenerate.
3766 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3767 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3768 * src/powerpc/ffi.c: Add flags to handle small structure returns
3769 in ffi_call_SYSV.
3770 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3771 Aka FFI_SYSV.
3772 (ffi_closure_helper_SYSV): Likewise.
3773 * src/powerpc/ppc_closure.S: Add return types for small structures.
3774 * src/powerpc/sysv.S: Add bits to handle small structures for
3775 final SYSV 4 ABI.
3776
37772005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3778
3779 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3780 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3781 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3782
37832005-07-05 Randolph Chung <tausq@debian.org>
3784
3785 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3786 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3787 structures. Kill compilation warnings.
3788 (ffi_closure_inner_LINUX): Print return values as hex in debug
3789 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3790 Properly handle 5-7 byte structure returns.
3791 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3792 (FFI_TYPE_SMALL_STRUCT2): Remove.
3793 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3794 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3795 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3796 (checksmst1, checksmst2): Remove.
3797 (checksmst3): Optimize handling of 3-byte struct returns.
3798 (checksmst567): Properly handle 5-7 byte struct returns.
3799
38002005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3801
3802 PR libgcj/21943
3803 * src/mips/n32.S: Enforce PIC code.
3804 * src/mips/o32.S: Likewise.
3805
38062005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3807
3808 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3809 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003810
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038112005-06-01 Alan Modra <amodra@bigpond.net.au>
3812
3813 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3814 to call ffi_closure_helper_SYSV. Append @local instead.
3815 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3816
38172005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3818
3819 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3820 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3821 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3822 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3823 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003824
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038252005-05-09 Mike Stump <mrs@apple.com>
3826
3827 * configure: Regenerate.
3828
38292005-05-08 Richard Henderson <rth@redhat.com>
3830
3831 PR libffi/21285
3832 * src/alpha/osf.S: Update unwind into to match code.
3833
38342005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3835 Richard Henderson <rth@redhat.com>
3836
3837 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3838 bit 11 of flags.
3839 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3840 (ffi_prep_closure): Set carry bit if sse-used flag set.
3841 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3842 Only load sse registers if ssecount non-zero.
3843 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3844
38452005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3846
3847 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3848 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3849 * configure: Regenerate.
3850
38512005-04-20 Hans-Peter Nilsson <hp@axis.com>
3852
3853 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3854 have Tcl8.3-compatible intermediate variable.
3855
Anthony Green0cfe60e2009-12-29 10:06:04 -050038562005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003857 Hans-Peter Nilsson <hp@axis.com>
3858
3859 * Makefile.am: Add CRIS support.
3860 * configure.ac: Likewise.
3861 * Makefile.in, configure, testsuite/Makefile.in,
3862 include/Makefile.in: Regenerate.
3863 * src/cris: New directory.
3864 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3865 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3866
3867 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3868 \r?\n in output tests.
3869
38702005-04-12 Mike Stump <mrs@apple.com>
3871
3872 * configure: Regenerate.
3873
38742005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3875
3876 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003877
Anthony Greenc6dddbd2009-10-04 08:11:33 -040038782005-03-30 Steve Ellcey <sje@cup.hp.com>
3879
3880 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3881 (ffi_sarg) Ditto.
3882 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3883 to 64 bits in ILP32 mode.
3884 Load 64 bits even for short data.
3885
38862005-03-23 Mike Stump <mrs@apple.com>
3887
3888 * src/powerpc/darwin.S: Update for -m64 multilib.
3889 * src/powerpc/darwin_closure.S: Likewise.
3890
38912005-03-21 Zack Weinberg <zack@codesourcery.com>
3892
3893 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3894 Do not set tool_include_dir.
3895 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3896 Regenerate.
3897 * include/Makefile.am: Set gcc_version and toollibffidir.
3898 * include/Makefile.in: Regenerate.
3899
39002005-02-22 Andrew Haley <aph@redhat.com>
3901
3902 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3903 odd-numbered register pairs for 64-bit integer types.
3904
39052005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3906
3907 PR libffi/20104
3908 * testsuite/libffi.call/return_ll1.c: New test case.
3909
39102005-02-11 Janis Johnson <janis187@us.ibm.com>
3911
3912 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3913 * testsuite/libffi.call/float.c: Ditto.
3914 * testsuite/libffi.call/float2.c: Ditto.
3915 * testsuite/libffi.call/float3.c: Ditto.
3916
39172005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3918
3919 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3920
39212005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3922
3923 * testsuite/libffi.special/special.exp (cxx_options): Add
3924 -shared-libgcc.
3925
39262004-12-31 Richard Henderson <rth@redhat.com>
3927
3928 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3929 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3930 offset parameters with a type parameter; deduce size and structure
3931 alignment. Update all users.
3932
39332004-12-31 Richard Henderson <rth@redhat.com>
3934
3935 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3936 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3937 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3938 into ffi_prep_closure.
3939 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3940 from scratch.
3941
39422004-12-27 Richard Henderson <rth@redhat.com>
3943
3944 * src/x86/unix64.S: Fix typo in unwind info.
3945
39462004-12-25 Richard Henderson <rth@redhat.com>
3947
3948 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3949 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3950 (merge_classes): Check for it.
3951 (SSE_CLASS_P): New.
3952 (classify_argument): Pass byte_offset by value; perform all updates
3953 inside struct case.
3954 (examine_argument): Add classes argument; handle
3955 X86_64_COMPLEX_X87_CLASS.
3956 (ffi_prep_args): Merge into ...
3957 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3958 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3959 (ffi_fill_return_value): Remove.
3960 (ffi_prep_closure): Remove dead assert.
3961 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3962 Rewrite to use struct register_args instead of va_list. Create
3963 flags for handling structure returns.
3964 * src/x86/unix64.S: Remove dead strings.
3965 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3966 stack frame with ffi_call. Handle structure returns properly.
3967 (float2sse, floatfloat2sse, double2sse): Remove.
3968 (sse2float, sse2double, sse2floatfloat): Remove.
3969 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3970 to handle structure returns properly.
3971
39722004-12-08 David Edelsohn <edelsohn@gnu.org>
3973
3974 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3975 PICFLAG.
3976 * Makefile.in: Regenerated.
3977
39782004-12-02 Richard Sandiford <rsandifo@redhat.com>
3979
3980 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3981 * configure, aclocal.m4, Makefile.in: Regenerate.
3982 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3983
39842004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3985
3986 * configure: Regenerate for libtool change.
3987
39882004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3989
3990 * configure: Regenerate for libtool reversion.
3991
39922004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3993
3994 * configure: Regenerate for libtool change.
3995
39962004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3997
3998 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3999
40002004-11-23 Richard Sandiford <rsandifo@redhat.com>
4001
4002 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
4003 of jal. Use an absolute encoding for the frame information.
4004
40052004-11-23 Kelley Cook <kcook@gcc.gnu.org>
4006
4007 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
4008 * acinclude.m4: Delete logic for sincludes.
4009 * aclocal.m4, Makefile.in, configure: Regenerate.
4010 * include/Makefile: Likewise.
4011 * testsuite/Makefile: Likewise.
4012
40132004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
4014
4015 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
4016 on a 8-byte boundary.
4017 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
4018
40192004-10-27 Richard Earnshaw <rearnsha@arm.com>
4020
4021 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
4022 long long values. Round stack allocation to a multiple of 8 bytes
4023 for ATPCS compatibility.
4024 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
4025 names. Handle returning long long types. Add Thumb and interworking
4026 support. Improve soft-float code.
4027
40282004-10-27 Richard Earnshaw <rearnsha@arm.com>
4029
4030 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
4031 (libffi_exit): New function.
4032 (libffi_init): Build the testglue wrapper if needed.
4033
40342004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4035
4036 PR other/18138
4037 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
4038
40392004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4040
4041 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
4042
40432004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
4044
4045 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
4046 * testsuite/libffi.call/float3.c: New test case.
4047
40482004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
4049
4050 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
4051 the function returning a structure pointed with R2.
4052 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
4053 the structure return value if T bit set. Emit position
4054 independent code and EH data if PIC.
4055
40562004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4057
4058 * Makefile.am: Add m32r support.
4059 * configure.ac: Likewise.
4060 * Makefile.in: Regenerate.
4061 * confiugre: Regenerate.
4062 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
4063 (uint64, sint64, double, longdouble)
4064 * src/m32r: New directory.
4065 * src/m32r/ffi.c: New file.
4066 * src/m32r/sysv.S: Likewise.
4067 * src/m32r/ffitarget.h: Likewise.
4068
40692004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
4070
4071 * testsuite/libffi.call/negint.c: New test case.
4072
40732004-09-14 H.J. Lu <hongjiu.lu@intel.com>
4074
4075 PR libgcj/17465
4076 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
4077 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
4078 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
4079 DYLD_LIBRARY_PATH.
4080
40812004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
4082
4083 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
4084 * testsuite/libffi.call/promotion.c: Likewise.
4085 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
4086 whitespaces.
4087 * testsuite/libffi.call/return_sc.c: Likewise.
4088 * testsuite/libffi.call/return_uc.c: Likewise.
4089
40902004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
4091
4092 * src/powerpc/darwin.S: Fix comments and identation.
4093 * src/powerpc/darwin_closure.S: Likewise.
4094
40952004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
4096
4097 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
4098 (ffi_prep_args): Handle longdouble arguments.
4099 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
4100 longdouble.
4101 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
4102 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
4103 values.
4104 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
4105 * src/types.c: Defined longdouble size and alignment for darwin.
4106
41072004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
4108
4109 * src/powerpc/aix.S: Remove whitespaces.
4110 * src/powerpc/aix_closure.S: Likewise.
4111 * src/powerpc/asm.h: Likewise.
4112 * src/powerpc/ffi.c: Likewise.
4113 * src/powerpc/ffitarget.h: Likewise.
4114 * src/powerpc/linux64.S: Likewise.
4115 * src/powerpc/linux64_closure.S: Likewise.
4116 * src/powerpc/ppc_closure.S: Likewise.
4117 * src/powerpc/sysv.S: Likewise.
4118
41192004-08-30 Anthony Green <green@redhat.com>
4120
4121 * Makefile.am: Add frv support.
4122 * Makefile.in, testsuite/Makefile.in: Rebuilt.
4123 * configure.ac: Read configure.host.
4124 * configure.in: Read configure.host.
4125 * configure.host: New file. frv-elf needs libgloss.
4126 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
4127 alignment. This is needed to frv and shouldn't harm the others.
4128 * include/ffi_common.h (ALIGN_DOWN): New macro.
4129 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
4130
41312004-08-24 David Daney <daney@avtrex.com>
4132
4133 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
4134 * testsuite/libffi.call/closure_fn1.c: Likewise.
4135 * testsuite/libffi.call/closure_fn2.c Likewise.
4136 * testsuite/libffi.call/closure_fn3.c: Likewise.
4137 * testsuite/libffi.call/closure_fn4.c: Likewise.
4138 * testsuite/libffi.call/closure_fn5.c: Likewise.
4139 * testsuite/libffi.call/cls_18byte.c: Likewise.
4140 * testsuite/libffi.call/cls_19byte.c: Likewise.
4141 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4142 * testsuite/libffi.call/cls_20byte.c: Likewise.
4143 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4144 * testsuite/libffi.call/cls_24byte.c: Likewise.
4145 * testsuite/libffi.call/cls_2byte.c: Likewise.
4146 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4147 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4148 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4149 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4150 * testsuite/libffi.call/cls_4byte.c: Likewise.
4151 * testsuite/libffi.call/cls_64byte.c: Likewise.
4152 * testsuite/libffi.call/cls_6byte.c: Likewise.
4153 * testsuite/libffi.call/cls_7byte.c: Likewise.
4154 * testsuite/libffi.call/cls_8byte.c: Likewise.
4155 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4156 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4157 * testsuite/libffi.call/cls_align_double.c: Likewise.
4158 * testsuite/libffi.call/cls_align_float.c: Likewise.
4159 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4160 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4161 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4162 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4163 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4164 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4165 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4166 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
4167 * testsuite/libffi.call/cls_double.c: Likewise.
4168 * testsuite/libffi.call/cls_float.c: Likewise.
4169 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4170 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
4171 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4172 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4173 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4174 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4175 * testsuite/libffi.call/cls_schar.c: Likewise.
4176 * testsuite/libffi.call/cls_sint.c: Likewise.
4177 * testsuite/libffi.call/cls_sshort.c: Likewise.
4178 * testsuite/libffi.call/cls_uchar.c: Likewise.
4179 * testsuite/libffi.call/cls_uint.c: Likewise.
4180 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4181 * testsuite/libffi.call/cls_ushort.c: Likewise.
4182 * testsuite/libffi.call/nested_struct.c: Likewise.
4183 * testsuite/libffi.call/nested_struct1.c: Likewise.
4184 * testsuite/libffi.call/nested_struct2.c: Likewise.
4185 * testsuite/libffi.call/nested_struct3.c: Likewise.
4186 * testsuite/libffi.call/problem1.c: Likewise.
4187 * testsuite/libffi.special/unwindtest.cc: Likewise.
4188 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
4189 to zero.
4190 * testsuite/libffi.call/cls_16byte.c: Likewise.
4191 * testsuite/libffi.call/cls_5byte.c: Likewise.
4192
41932004-08-23 David Daney <daney@avtrex.com>
4194
4195 PR libgcj/13141
4196 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
4197 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
4198 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
4199 parameters and return types.
4200 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
4201 (ffi_prep_closure): Ditto.
4202 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
4203 alignment calculations.
4204 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
4205 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
4206
42072004-08-14 Casey Marshall <csm@gnu.org>
4208
4209 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
4210 contain `FFI_TYPE_UINT64' as return type for any 64-bit
4211 integer (O32 ABI only).
4212 (ffi_prep_closure): new function.
4213 (ffi_closure_mips_inner_O32): new function.
4214 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
4215 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
4216 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
4217 64 bit integers correctly.
4218 (ffi_closure_O32): new function.
4219 Added DWARF-2 unwind info for both functions.
4220
42212004-08-10 Andrew Haley <aph@redhat.com>
4222
4223 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
4224
42252004-08-01 Robert Millan <robertmh@gnu.org>
4226
4227 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
4228 * configure: Regenerate.
4229
42302004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
4231
4232 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4233 and mmap() explicitly instead of relying on preset autoconf cache
4234 variables.
4235 * aclocal.m4: Regenerate.
4236 * configure: Regenerate.
4237
42382004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
4239
4240 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
4241 (ffi_check_float_struct): Remove unused prototype.
4242
42432004-06-30 Geoffrey Keating <geoffk@apple.com>
4244
4245 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
4246 character on Darwin, use '\n\t' instead.
4247
42482004-06-26 Matthias Klose <doko@debian.org>
4249
4250 * libtool-version: Fix typo in revision/age.
4251
42522004-06-17 Matthias Klose <doko@debian.org>
4253
4254 * libtool-version: New.
4255 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
4256 * Makefile.in: Regenerate.
4257
42582004-06-15 Paolo Bonzini <bonzini@gnu.org>
4259
4260 * Makefile.am: Remove useless multilib rules.
4261 * Makefile.in: Regenerate.
4262 * aclocal.m4: Regenerate with automake 1.8.5.
4263 * configure.ac: Remove useless multilib configury.
4264 * configure: Regenerate.
4265
42662004-06-15 Paolo Bonzini <bonzini@gnu.org>
4267
4268 * .cvsignore: New file.
4269
42702004-06-10 Jakub Jelinek <jakub@redhat.com>
4271
4272 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4273 fp_done.
4274 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4275 changed from 8.
4276
42772004-06-06 Sean McNeil <sean@mcneil.com>
4278
4279 * configure.ac: Add x86_64-*-freebsd* support.
4280 * configure: Regenerate.
4281
42822004-04-26 Joe Buck <jbuck@welsh-buck.org>
4283
4284 Bug 15093
4285 * configure.ac: Test for existence of mmap and sys/mman.h before
4286 checking blacklist. Fix suggested by Jim Wilson.
4287 * configure: Regenerate.
4288
42892004-04-26 Matt Austern <austern@apple.com>
4290
4291 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4292 FDE location.
4293 * src/powerpc/darwin_closure.S: Likewise.
4294
42952004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4296
4297 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4298 error. Reported by Thomas Heller <theller@python.net>.
4299 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4300 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4301
43022004-03-20 Matthias Klose <doko@debian.org>
4303
4304 * src/pa/linux.S: Fix typo.
4305
43062004-03-19 Matthias Klose <doko@debian.org>
4307
4308 * Makefile.am: Update.
4309 * Makefile.in: Regenerate.
4310 * src/pa/ffi.h.in: Remove.
4311 * src/pa/ffitarget.h: New file.
4312
43132004-02-10 Randolph Chung <tausq@debian.org>
4314
4315 * Makefile.am: Add PA support.
4316 * Makefile.in: Regenerate.
4317 * include/Makefile.in: Regenerate.
4318 * configure.ac: Add PA target.
4319 * configure: Regenerate.
4320 * src/pa/ffi.c: New file.
4321 * src/pa/ffi.h.in: Add PA support.
4322 * src/pa/linux.S: New file.
4323 * prep_cif.c: Add PA support.
4324
43252004-03-16 Hosaka Yuji <hos@tamanegi.org>
4326
4327 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4328 double.
4329 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4330 with ecif->cif->flags.
4331 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4332 with cif->flags.
4333 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4334 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4335 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4336 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4337
43382004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4339
4340 * configure.in: Rename file to ...
4341 * configure.ac: ... this.
4342 * fficonfig.h.in: Regenerate.
4343 * Makefile.in: Regenerate.
4344 * include/Makefile.in: Regenerate.
4345 * testsuite/Makefile.in: Regenerate.
4346
43472004-03-12 Matt Austern <austern@apple.com>
4348
4349 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4350 changes in EH format resulting from addition of linkonce support.
4351 * src/powerpc/darwin_closure.S: Likewise.
4352
43532004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4354 Paolo Bonzini <bonzini@gnu.org>
4355
4356 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4357 Remove VPATH. Remove rules for object files. Remove multilib support.
4358 (AM_CCASFLAGS): Add.
4359 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4360 (AC_PREREQ): Bump version to 2.59.
4361 (AC_INIT): Fill with version info and bug address.
4362 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4363 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4364 De-precious CC so that the right flags are passed down to multilibs.
4365 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4366 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4367 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4368 * configure: Rebuilt.
4369 * aclocal.m4: Likewise.
4370 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4371 * fficonfig.h.in: Likewise.
4372
43732004-03-11 Andreas Schwab <schwab@suse.de>
4374
4375 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4376 arguments from fp registers only for the first 8 parameter slots.
4377 Don't convert a float parameter when passed in memory.
4378
43792004-03-09 Hans-Peter Nilsson <hp@axis.com>
4380
4381 * configure: Regenerate for config/accross.m4 correction.
4382
43832004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4384
4385 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4386 ecif->cif->bytes to bytes.
4387 (ffi_prep_cif_machdep): Add braces around nested if statement.
4388
43892004-02-09 Alan Modra <amodra@bigpond.net.au>
4390
4391 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4392
4393 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4394 (ffi_closure_helper_LINUX64): Fix typo.
4395 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4396 for powerpc64-*-*.
4397 * testsuite/libffi.call/float.c: Likewise.
4398 * testsuite/libffi.call/float2.c: Likewise.
4399
44002004-02-08 Alan Modra <amodra@bigpond.net.au>
4401
4402 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4403 long double function return and long double arg handling.
4404 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4405 Use "end_pfr" instead of "nf". Correct long double handling.
4406 Localise "temp".
4407 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4408 return value.
4409 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4410 space for long double return value. Adjust stack frame and offsets.
4411 Load f2 long double return.
4412
44132004-02-07 Alan Modra <amodra@bigpond.net.au>
4414
4415 * src/types.c: Use 16 byte long double for POWERPC64.
4416
44172004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4418
4419 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4420 when the structure return address is passed in %o0.
4421 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4422 (ffi_v9_layout_struct): Align the field following a nested structure
4423 on a word boundary. Use memmove instead of memcpy.
4424 (ffi_call): Update call to ffi_V9_return_struct.
4425 (ffi_prep_closure): Define 'ctx' only for V8.
4426 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4427 and ffi_closure_sparc_inner_v9.
4428 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4429 Always skip the structure return address. For structures and long
4430 doubles, copy the argument directly.
4431 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4432 if required. Shift the maximum floating-point slot accordingly. For
4433 big structures, copy the argument directly; otherwise, left-justify the
4434 argument and call ffi_v9_layout_struct to lay out the structure on
4435 the stack.
4436 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4437 (ffi_closure_v8): Pass the structure return address. Update call to
4438 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4439 Skip the 'unimp' insn when returning long doubles and structures.
4440 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4441 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4442 FFI_TYPE_INT handling. Load structures both in integers and
4443 floating-point registers on return.
4444 * README: Update status of the SPARC port.
4445
44462004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4447
4448 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4449 as of type ffi_arg.
4450 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4451
44522004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4453
4454 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4455 value as of type ffi_arg, not unsigned int.
4456
44572004-01-21 Michael Ritzert <ritzert@t-online.de>
4458
4459 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4460 of the LHS.
4461
44622004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4463
4464 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4465 Solaris.
4466
44672004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4468
4469 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4470 to void *.
4471
44722003-12-10 Richard Henderson <rth@redhat.com>
4473
4474 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4475 size_t instead of int.
4476
44772003-12-04 Hosaka Yuji <hos@tamanegi.org>
4478
4479 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4480 * testsuite/libffi.call/many_win32.c (main): Replace variable
4481 int i with unsigned long ul.
4482
4483 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4484 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4485 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4486 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4487 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4488 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4489 * testsuite/libffi.call/cls_align_float.c: Likewise.
4490 * testsuite/libffi.call/cls_align_double.c: Likewise.
4491 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4492 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4493
44942003-12-02 Hosaka Yuji <hos@tamanegi.org>
4495
4496 PR other/13221
4497 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4498 Align arguments to 32 bits.
4499
45002003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4501
4502 PR other/13221
4503 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4504 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4505 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4506 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4507 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4508 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4509
4510 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4511
45122003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4513
4514 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4515 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4516
45172003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4518
4519 * Makefile.in: Rebuilt.
4520 * configure: Likewise.
4521 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4522 the right type.
4523
45242003-11-21 Andreas Jaeger <aj@suse.de>
4525 Andreas Tobler <a.tobler@schweiz.ch>
4526
4527 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4528 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4529 * Makefile.in: Rebuilt.
4530 * aclocal.m4: Likewise.
4531 * configure: Likewise.
4532 * fficonfig.h.in: Likewise.
4533 * testsuite/lib/libffi-dg.exp: Add include dir.
4534 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4535 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4536 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4537 for ffi_closure if available.
4538 * testsuite/libffi.call/closure_fn1.c: Likewise.
4539 * testsuite/libffi.call/closure_fn2.c: Likewise.
4540 * testsuite/libffi.call/closure_fn3.c: Likewise.
4541 * testsuite/libffi.call/closure_fn4.c: Likewise.
4542 * testsuite/libffi.call/closure_fn5.c: Likewise.
4543 * testsuite/libffi.call/cls_12byte.c: Likewise.
4544 * testsuite/libffi.call/cls_16byte.c: Likewise.
4545 * testsuite/libffi.call/cls_18byte.c: Likewise.
4546 * testsuite/libffi.call/cls_19byte.c: Likewise.
4547 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4548 * testsuite/libffi.call/cls_20byte.c: Likewise.
4549 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4550 * testsuite/libffi.call/cls_24byte.c: Likewise.
4551 * testsuite/libffi.call/cls_2byte.c: Likewise.
4552 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4553 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4554 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4555 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4556 * testsuite/libffi.call/cls_4byte.c: Likewise.
4557 * testsuite/libffi.call/cls_5byte.c: Likewise.
4558 * testsuite/libffi.call/cls_64byte.c: Likewise.
4559 * testsuite/libffi.call/cls_6byte.c: Likewise.
4560 * testsuite/libffi.call/cls_7byte.c: Likewise.
4561 * testsuite/libffi.call/cls_8byte.c: Likewise.
4562 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4563 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4564 * testsuite/libffi.call/cls_double.c: Likewise.
4565 * testsuite/libffi.call/cls_float.c: Likewise.
4566 * testsuite/libffi.call/cls_schar.c: Likewise.
4567 * testsuite/libffi.call/cls_sint.c: Likewise.
4568 * testsuite/libffi.call/cls_sshort.c: Likewise.
4569 * testsuite/libffi.call/cls_uchar.c: Likewise.
4570 * testsuite/libffi.call/cls_uint.c: Likewise.
4571 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4572 * testsuite/libffi.call/cls_ushort.c: Likewise.
4573 * testsuite/libffi.call/nested_struct.c: Likewise.
4574 * testsuite/libffi.call/nested_struct1.c: Likewise.
4575 * testsuite/libffi.call/nested_struct2.c: Likewise.
4576 * testsuite/libffi.call/nested_struct3.c: Likewise.
4577 * testsuite/libffi.call/problem1.c: Likewise.
4578 * testsuite/libffi.special/unwindtest.cc: Likewise.
4579
45802003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4581
4582 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4583
45842003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4585
4586 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4587 Add -lgcc_s to additional flags.
4588
45892003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4590
4591 * configure.in, include/Makefile.am: PR libgcj/11147, install
4592 the ffitarget.h header file in a gcc versioned and target
4593 dependent place.
4594 * configure: Regenerated.
4595 * Makefile.in, include/Makefile.in: Likewise.
4596 * testsuite/Makefile.in: Likewise.
4597
45982003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4599
4600 * testsuite/libffi.call/closure_fn0.c: Print result and check
4601 with dg-output to make debugging easier.
4602 * testsuite/libffi.call/closure_fn1.c: Likewise.
4603 * testsuite/libffi.call/closure_fn2.c: Likewise.
4604 * testsuite/libffi.call/closure_fn3.c: Likewise.
4605 * testsuite/libffi.call/closure_fn4.c: Likewise.
4606 * testsuite/libffi.call/closure_fn5.c: Likewise.
4607 * testsuite/libffi.call/cls_12byte.c: Likewise.
4608 * testsuite/libffi.call/cls_16byte.c: Likewise.
4609 * testsuite/libffi.call/cls_18byte.c: Likewise.
4610 * testsuite/libffi.call/cls_19byte.c: Likewise.
4611 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4612 * testsuite/libffi.call/cls_20byte.c: Likewise.
4613 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4614 * testsuite/libffi.call/cls_24byte.c: Likewise.
4615 * testsuite/libffi.call/cls_2byte.c: Likewise.
4616 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4617 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4618 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4619 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4620 * testsuite/libffi.call/cls_4byte.c: Likewise.
4621 * testsuite/libffi.call/cls_5byte.c: Likewise.
4622 * testsuite/libffi.call/cls_64byte.c: Likewise.
4623 * testsuite/libffi.call/cls_6byte.c: Likewise.
4624 * testsuite/libffi.call/cls_7byte.c: Likewise.
4625 * testsuite/libffi.call/cls_8byte.c: Likewise.
4626 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4627 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4628 * testsuite/libffi.call/cls_double.c: Likewise.
4629 * testsuite/libffi.call/cls_float.c: Likewise.
4630 * testsuite/libffi.call/cls_schar.c: Likewise.
4631 * testsuite/libffi.call/cls_sint.c: Likewise.
4632 * testsuite/libffi.call/cls_sshort.c: Likewise.
4633 * testsuite/libffi.call/cls_uchar.c: Likewise.
4634 * testsuite/libffi.call/cls_uint.c: Likewise.
4635 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4636 * testsuite/libffi.call/cls_ushort.c: Likewise.
4637 * testsuite/libffi.call/problem1.c: Likewise.
4638
4639 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4640 static.
4641
46422003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4643
4644 * testsuite/libffi.call/cls_9byte2.c: New test case.
4645 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4646 * testsuite/libffi.call/cls_64byte.c: Likewise.
4647 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4648 * testsuite/libffi.call/cls_19byte.c: Likewise.
4649 * testsuite/libffi.call/cls_18byte.c: Likewise.
4650 * testsuite/libffi.call/closure_fn4.c: Likewise.
4651 * testsuite/libffi.call/closure_fn5.c: Likewise.
4652 * testsuite/libffi.call/cls_schar.c: Likewise.
4653 * testsuite/libffi.call/cls_sint.c: Likewise.
4654 * testsuite/libffi.call/cls_sshort.c: Likewise.
4655 * testsuite/libffi.call/nested_struct2.c: Likewise.
4656 * testsuite/libffi.call/nested_struct3.c: Likewise.
4657
46582003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4659
4660 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4661 * testsuite/libffi.call/cls_uchar.c: Likewise.
4662 * testsuite/libffi.call/cls_uint.c: Likewise.
4663 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4664 * testsuite/libffi.call/cls_ushort.c: Likewise.
4665 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4666
46672003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4668
4669 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4670 the initialization.
4671
46722003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4673
4674 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4675 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4676
46772003-10-22 David Daney <ddaney@avtrex.com>
4678
4679 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4680 __attribute__((__mode__(__SI__))) and friends.
4681
46822003-10-22 Andreas Schwab <schwab@suse.de>
4683
4684 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4685
46862003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4687
4688 * configure.in: AC_LINK_FILES(ffitarget.h).
4689 * configure: Regenerate.
4690 * Makefile.in: Likewise.
4691 * include/Makefile.in: Likewise.
4692 * testsuite/Makefile.in: Likewise.
4693 * fficonfig.h.in: Likewise.
4694
46952003-10-21 Paolo Bonzini <bonzini@gnu.org>
4696 Richard Henderson <rth@redhat.com>
4697
4698 Avoid that ffi.h includes fficonfig.h.
4699
4700 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4701 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4702 (TARGET_SRC_MIPS_SGI): Removed.
4703 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4704 (MIPS_SGI): Removed.
4705 (CLEANFILES): Removed.
4706 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4707 targets.
4708 * acconfig.h: Removed.
4709 * configure.in: Compute sizeofs only for double and long double.
4710 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4711 into AC_DEFINE instead of using acconfig.h. Create
4712 include/ffitarget.h instead of include/fficonfig.h. Rename
4713 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4714 AC_DEFINE EH_FRAME_FLAGS.
4715 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4716 (hack_DATA): Add ffitarget.h.
4717 * include/ffi.h.in: Remove all system specific definitions.
4718 Declare raw API even if it is not installed, why bother?
4719 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4720 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4721 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4722 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4723 * include/ffi_common.h (bool): Do not define.
4724 (ffi_assert): Accept failed assertion.
4725 (ffi_type_test): Return void and accept file/line.
4726 (FFI_ASSERT): Pass stringized failed assertion.
4727 (FFI_ASSERT_AT): New macro.
4728 (FFI_ASSERT_VALID_TYPE): New macro.
4729 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4730 UINT64, SINT64): Define here with gcc's __attribute__ macro
4731 instead of in ffi.h
4732 (FLOAT32, ALIGN): Define here instead of in ffi.h
4733 * include/ffi-mips.h: Removed. Its content moved to
4734 src/mips/ffitarget.h after separating assembly and C sections.
4735 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4736 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4737 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4738 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4739 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4740 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4741 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4742 (ffi_type_test): Rewritten.
4743 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4744 FFI_ASSERT_VALID_TYPE.
4745 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4746 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4747 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4748 src/s390/ffitarget.h, src/sh/ffitarget.h,
4749 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4750 src/x86/ffitarget.h: New files.
4751 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4752 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4753 src/powerpc/aix.S, src/powerpc/darwin.S,
4754 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4755 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4756 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4757 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4758 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4759 include fficonfig.h
4760
47612003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4762
4763 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4764 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4765
47662003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4767
4768 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4769 Used when FFI_DEBUG = 1.
4770
47712003-10-14 Alan Modra <amodra@bigpond.net.au>
4772
4773 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4774 and align.
4775
47762003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4777
4778 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4779 FFI_MIPS_O32 for O32 ABI.
4780
47812003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4782
4783 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4784 SPARC64. Cleanup whitespaces.
4785
47862003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4787
4788 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4789 strongarm, xscale. Cleanup whitespaces.
4790 * testsuite/libffi.call/closure_fn1.c: Likewise.
4791 * testsuite/libffi.call/closure_fn2.c: Likewise.
4792 * testsuite/libffi.call/closure_fn3.c: Likewise.
4793 * testsuite/libffi.call/cls_12byte.c: Likewise.
4794 * testsuite/libffi.call/cls_16byte.c: Likewise.
4795 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4796 * testsuite/libffi.call/cls_20byte.c: Likewise.
4797 * testsuite/libffi.call/cls_24byte.c: Likewise.
4798 * testsuite/libffi.call/cls_2byte.c: Likewise.
4799 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4800 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4801 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4802 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4803 * testsuite/libffi.call/cls_4byte.c: Likewise.
4804 * testsuite/libffi.call/cls_5byte.c: Likewise.
4805 * testsuite/libffi.call/cls_6byte.c: Likewise.
4806 * testsuite/libffi.call/cls_7byte.c: Likewise.
4807 * testsuite/libffi.call/cls_8byte.c: Likewise.
4808 * testsuite/libffi.call/cls_double.c: Likewise.
4809 * testsuite/libffi.call/cls_float.c: Likewise.
4810 * testsuite/libffi.call/cls_uchar.c: Likewise.
4811 * testsuite/libffi.call/cls_uint.c: Likewise.
4812 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4813 * testsuite/libffi.call/cls_ushort.c: Likewise.
4814 * testsuite/libffi.call/nested_struct.c: Likewise.
4815 * testsuite/libffi.call/nested_struct1.c: Likewise.
4816 * testsuite/libffi.call/problem1.c: Likewise.
4817 * testsuite/libffi.special/unwindtest.cc: Likewise.
4818 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4819
48202003-09-18 David Edelsohn <edelsohn@gnu.org>
4821
4822 * src/powerpc/aix.S: Cleanup whitespaces.
4823 * src/powerpc/aix_closure.S: Likewise.
4824
48252003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4826
4827 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4828 * src/powerpc/darwin_closure.S: Likewise.
4829 * src/powerpc/ffi_darwin.c: Likewise.
4830
48312003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4832 David Edelsohn <edelsohn@gnu.org>
4833
4834 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4835 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4836 parameter stack.
4837 * src/powerpc/darwin_closure.S: Likewise.
4838 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4839 according to the Darwin/AIX ABI.
4840 (ffi_prep_cif_machdep): Likewise.
4841 (ffi_closure_helper_DARWIN): Likewise.
4842 Remove the outgoing parameter stack logic. Simplify the evaluation
4843 of the different CASE types.
4844 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4845 statement in the trampoline code.
4846
48472003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4848
4849 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4850 for the register size.
4851 (ffi_closure_helper_SYSV): Handle the structure return value
4852 address correctly.
4853 (ffi_closure_helper_SYSV): Return the appropriate type when
4854 the registers are used for the structure return value.
4855 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4856 the 64-bit return value. Update copyright years.
4857
48582003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4859
4860 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4861 srcdir for ffi_mips.h.
4862
48632003-09-12 Alan Modra <amodra@bigpond.net.au>
4864
4865 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4866 structure size.
4867 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4868 placement of float result.
4869 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4870 cast of "resp" for big-endian 64 bit machines.
4871
48722003-09-11 Alan Modra <amodra@bigpond.net.au>
4873
4874 * src/types.c (double, longdouble): Merge identical SH and ARM
4875 typedefs, and add POWERPC64.
4876 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4877 struct split over gpr and rest.
4878 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4879 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4880
48812003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4882
4883 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4884 passing correctly.
4885
48862003-09-09 Alan Modra <amodra@bigpond.net.au>
4887
4888 * configure: Regenerate.
4889
48902003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4891
4892 * Makefile.am: Remove build rules for ffitest.
4893 * Makefile.in: Rebuilt.
4894
48952003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4896
4897 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4898 about implicit declaration of abort().
4899
49002003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4901
4902 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4903 * Makefile.in: Rebuilt.
4904 * configure.in: Add dejagnu test framework.
4905 * configure: Rebuilt.
4906
4907 * testsuite/Makefile.am: New file.
4908 * testsuite/Makefile.in: Built
4909 * testsuite/lib/libffi-dg.exp: New file.
4910 * testsuite/config/default.exp: Likewise.
4911 * testsuite/libffi.call/call.exp: Likewise.
4912 * testsuite/libffi.call/ffitest.h: Likewise.
4913 * testsuite/libffi.call/closure_fn0.c: Likewise.
4914 * testsuite/libffi.call/closure_fn1.c: Likewise.
4915 * testsuite/libffi.call/closure_fn2.c: Likewise.
4916 * testsuite/libffi.call/closure_fn3.c: Likewise.
4917 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4918 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4919 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4920 * testsuite/libffi.call/cls_2byte.c: Likewise.
4921 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4922 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4923 * testsuite/libffi.call/cls_4byte.c: Likewise.
4924 * testsuite/libffi.call/cls_5byte.c: Likewise.
4925 * testsuite/libffi.call/cls_6byte.c: Likewise.
4926 * testsuite/libffi.call/cls_7byte.c: Likewise.
4927 * testsuite/libffi.call/cls_8byte.c: Likewise.
4928 * testsuite/libffi.call/cls_12byte.c: Likewise.
4929 * testsuite/libffi.call/cls_16byte.c: Likewise.
4930 * testsuite/libffi.call/cls_20byte.c: Likewise.
4931 * testsuite/libffi.call/cls_24byte.c: Likewise.
4932 * testsuite/libffi.call/cls_double.c: Likewise.
4933 * testsuite/libffi.call/cls_float.c: Likewise.
4934 * testsuite/libffi.call/cls_uchar.c: Likewise.
4935 * testsuite/libffi.call/cls_uint.c: Likewise.
4936 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4937 * testsuite/libffi.call/cls_ushort.c: Likewise.
4938 * testsuite/libffi.call/float.c: Likewise.
4939 * testsuite/libffi.call/float1.c: Likewise.
4940 * testsuite/libffi.call/float2.c: Likewise.
4941 * testsuite/libffi.call/many.c: Likewise.
4942 * testsuite/libffi.call/many_win32.c: Likewise.
4943 * testsuite/libffi.call/nested_struct.c: Likewise.
4944 * testsuite/libffi.call/nested_struct1.c: Likewise.
4945 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4946 * testsuite/libffi.call/problem1.c: Likewise.
4947 * testsuite/libffi.call/promotion.c: Likewise.
4948 * testsuite/libffi.call/return_ll.c: Likewise.
4949 * testsuite/libffi.call/return_sc.c: Likewise.
4950 * testsuite/libffi.call/return_uc.c: Likewise.
4951 * testsuite/libffi.call/strlen.c: Likewise.
4952 * testsuite/libffi.call/strlen_win32.c: Likewise.
4953 * testsuite/libffi.call/struct1.c: Likewise.
4954 * testsuite/libffi.call/struct2.c: Likewise.
4955 * testsuite/libffi.call/struct3.c: Likewise.
4956 * testsuite/libffi.call/struct4.c: Likewise.
4957 * testsuite/libffi.call/struct5.c: Likewise.
4958 * testsuite/libffi.call/struct6.c: Likewise.
4959 * testsuite/libffi.call/struct7.c: Likewise.
4960 * testsuite/libffi.call/struct8.c: Likewise.
4961 * testsuite/libffi.call/struct9.c: Likewise.
4962 * testsuite/libffi.special/special.exp: New file.
4963 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4964 * testsuite/libffi.special/unwindtest.cc: Likewise.
4965
4966
49672003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4968
4969 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4970 copyright years.
4971
49722003-08-02 Alan Modra <amodra@bigpond.net.au>
4973
4974 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4975 structure passing.
4976 (ffi_closure_helper_LINUX64): Likewise.
4977 * src/powerpc/linux64.S: Remove code writing to parm save area.
4978 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4979 address in lr from ffi_closure_helper_LINUX64 call to calculate
4980 table address. Optimize function tail.
4981
49822003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4983
4984 * src/sparc/ffi.c: Handle all floating point registers.
4985 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4986
49872003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4988
4989 * README: Note that libffi is not part of GCC. Update the project
4990 URL and status.
4991
49922003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4993
4994 * src/powerpc/ppc_closure.S: Include ffi.h.
4995
49962003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4997
4998 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4999 Use C style comments.
5000
50012003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5002
5003 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
5004 * Makefile.in: Regenerate.
5005 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
5006 * configure: Regenerate.
5007 * include/ffi.h.in: Add SHmedia support.
5008 * src/sh64/ffi.c: New file.
5009 * src/sh64/sysv.S: New file.
5010
50112003-05-16 Jakub Jelinek <jakub@redhat.com>
5012
5013 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
5014 should be read-only.
5015 * configure: Rebuilt.
5016 * fficonfig.h.in: Rebuilt.
5017 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
5018 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
5019 * src/powerpc/linux64.S: Likewise.
5020 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
5021 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
5022 if -fpic/-fPIC/-mrelocatable.
5023 * src/powerpc/powerpc_closure.S: Likewise.
5024 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
5025 #write in .eh_frame flags.
5026 * src/sparc/v9.S: Likewise.
5027 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
5028 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
5029 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
5030
50312003-05-07 Jeff Sturm <jsturm@one-point.com>
5032
5033 Fixes PR bootstrap/10656
5034 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
5035 support for .register pseudo-op.
5036 * src/sparc/v8.S: Use it.
5037 * fficonfig.h.in: Rebuilt.
5038 * configure: Rebuilt.
5039
50402003-04-18 Jakub Jelinek <jakub@redhat.com>
5041
5042 * include/ffi.h.in (POWERPC64): Define if 64-bit.
5043 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
5044 Make it the default on POWERPC64.
5045 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
5046 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
5047 * configure: Rebuilt.
5048 * src/powerpc/ffi.c (hidden): Define.
5049 (ffi_prep_args_SYSV): Renamed from
5050 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
5051 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
5052 ASM_NEEDS_REGISTERS64): New.
5053 (ffi_prep_args64): New function.
5054 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
5055 (ffi_call): Likewise.
5056 (ffi_prep_closure): Likewise.
5057 (flush_icache): Surround by #ifndef POWERPC64.
5058 (ffi_dblfl): New union type.
5059 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
5060 (ffi_closure_helper_LINUX64): New function.
5061 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
5062 __powerpc64__.
5063 * src/powerpc/sysv.S: Likewise.
5064 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
5065 * src/powerpc/linux64.S: New file.
5066 * src/powerpc/linux64_closure.S: New file.
5067 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
5068 src/powerpc/linux64_closure.S.
5069 (TARGET_SRC_POWERPC): Likewise.
5070
5071 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
5072 closure_test_fn3): Fix result printing on big-endian 64-bit
5073 machines.
5074 (main): Print tst2_arg instead of uninitialized tst2_result.
5075
5076 * src/ffitest.c (main): Hide what closure pointer really points to
5077 from the compiler.
5078
50792003-04-16 Richard Earnshaw <rearnsha@arm.com>
5080
5081 * configure.in (arm-*-netbsdelf*): Add configuration.
5082 (configure): Regenerated.
5083
50842003-04-04 Loren J. Rittle <ljrittle@acm.org>
5085
5086 * include/Makefile.in: Regenerate.
5087
50882003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5089
5090 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
5091 bit mode.
5092 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
5093 Receive closure pointer through parameter, read args using
5094 __builtin_dwarf_cfa.
5095 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
5096
50972003-03-12 Andreas Schwab <schwab@suse.de>
5098
5099 * configure.in: Avoid trailing /. in toolexeclibdir.
5100 * configure: Rebuilt.
5101
51022003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
5103
5104 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
5105
51062003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
5107
5108 * libffi/src/powerpc/darwin_closure.S:
5109 Fix alignement bug, allocate 8 bytes for the result.
5110 * libffi/src/powerpc/aix_closure.S:
5111 Likewise.
5112 * libffi/src/powerpc/ffi_darwin.c:
5113 Update stackframe description for aix/darwin_closure.S.
5114
51152003-02-06 Jakub Jelinek <jakub@redhat.com>
5116
5117 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
5118 attribute.
5119
51202003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
5121 Andreas Schwab <schwab@suse.de>
5122
5123 * configure.in: Adjust command to source config-ml.in to account
5124 for changes to the libffi_basedir definition.
5125 (libffi_basedir): Remove ${srcdir} from value and include trailing
5126 slash if nonempty.
5127
5128 * configure: Regenerate.
5129
51302003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5131
5132 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
5133
51342003-01-28 Andrew Haley <aph@redhat.com>
5135
5136 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
5137 * src/x86/ffi64.c (ffi_prep_closure): New.
5138 (ffi_closure_UNIX64_inner): New.
5139 * src/x86/unix64.S (ffi_closure_UNIX64): New.
5140
51412003-01-27 Alexandre Oliva <aoliva@redhat.com>
5142
5143 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
5144 Remove USE_LIBDIR conditional.
5145 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
5146 * Makefile.in, configure: Rebuilt.
5147
51482003-01027 David Edelsohn <edelsohn@gnu.org>
5149
5150 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
5151 * Makefile.in: Regenerate.
5152
51532003-01-22 Andrew Haley <aph@redhat.com>
5154
5155 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
5156 unwind info.
5157
51582003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
5159
5160 * src/powerpc/darwin.S: Add unwind info.
5161 * src/powerpc/darwin_closure.S: Likewise.
5162
51632003-01-14 Andrew Haley <aph@redhat.com>
5164
5165 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
5166 (ffi_prep_cif_machdep): Likewise.
5167 * src/x86/unix64.S: Add unwind info.
5168
51692003-01-14 Andreas Jaeger <aj@suse.de>
5170
5171 * src/ffitest.c (main): Only use ffi_closures if those are
5172 supported.
5173
51742003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
5175
5176 * libffi/src/ffitest.c
5177 add closure testcases
5178
51792003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
5180
5181 * libffi/src/powerpc/ffi.c
5182 fix alignment bug for float (4 byte aligned iso 8 byte)
5183
51842003-01-09 Geoffrey Keating <geoffk@apple.com>
5185
5186 * src/powerpc/ffi_darwin.c: Remove RCS version string.
5187 * src/powerpc/darwin.S: Remove RCS version string.
5188
51892003-01-03 Jeff Sturm <jsturm@one-point.com>
5190
5191 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
5192 * src/ffitest.c (main): Use static storage for closure.
5193 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
5194 * src/sparc/v8.S (ffi_closure_v8): New.
5195 * src/sparc/v9.S (ffi_closure_v9): New.
5196
51972002-11-10 Ranjit Mathew <rmathew@hotmail.com>
5198
5199 * include/ffi.h.in: Added FFI_STDCALL ffi_type
5200 enumeration for X86_WIN32.
5201 * src/x86/win32.S: Added ffi_call_STDCALL function
5202 definition.
5203 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
5204 switch cases for recognising FFI_STDCALL and
5205 calling ffi_call_STDCALL if target is X86_WIN32.
5206 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
5207 stdcall versions of the "my_strlen" and "many"
5208 test functions (for X86_WIN32).
5209 Added test cases to test stdcall invocation using
5210 these functions.
5211
52122002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
5213
5214 * src/sh/sysv.S: Add DWARF2 unwind info.
5215
52162002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
5217
5218 * src/s390/sysv.S (.eh_frame section): Make section read-only.
5219
52202002-11-26 Jim Wilson <wilson@redhat.com>
5221
5222 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
5223
52242002-11-23 H.J. Lu <hjl@gnu.org>
5225
5226 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
5227 Include ../config/accross.m4.
5228 * aclocal.m4; Rebuild.
5229 * configure: Likewise.
5230
52312002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
5232
5233 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
5234
52352002-11-11 DJ Delorie <dj@redhat.com>
5236
5237 * configure.in: Look for common files in the right place.
5238
52392002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
5240
5241 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
5242 raw data as _Jv_word values, not ffi_raw.
5243 (ffi_java_ptrarray_to_raw): Likewise.
5244 (ffi_java_rvalue_to_raw): New function.
5245 (ffi_java_raw_call): Call it.
5246 (ffi_java_raw_to_rvalue): New function.
5247 (ffi_java_translate_args): Call it.
5248 * src/ffitest.c (closure_test_fn): Interpret return value
5249 as ffi_arg, not int.
5250 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
5251 FFI_TYPE_POINTER case.
5252 (ffi_closure_helper_SYSV): Likewise. Also, assume return
5253 values extended to word size.
5254
52552002-10-02 Andreas Jaeger <aj@suse.de>
5256
5257 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
5258
52592002-10-01 Bo Thorsen <bo@smetana.suse.de>
5260
5261 * include/ffi.h.in: Fix i386 win32 compilation.
5262
52632002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
5264
5265 * configure.in: Add s390x-*-linux-* target.
5266 * configure: Regenerate.
5267 * include/ffi.h.in: Define S390X for s390x targets.
5268 (FFI_CLOSURES): Define for s390/s390x.
5269 (FFI_TRAMPOLINE_SIZE): Likewise.
5270 (FFI_NATIVE_RAW_API): Likewise.
5271 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5272 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5273 * src/s390/ffi.c: Major rework of existing code. Add support for
5274 s390x targets. Add closure support.
5275 * src/s390/sysv.S: Likewise.
5276
52772002-09-29 Richard Earnshaw <rearnsha@arm.com>
5278
5279 * src/arm/sysv.S: Fix typo.
5280
52812002-09-28 Richard Earnshaw <rearnsha@arm.com>
5282
5283 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5284 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5285 (ffi_call_SYSV): Handle soft-float.
5286
52872002-09-27 Bo Thorsen <bo@suse.de>
5288
5289 * include/ffi.h.in: Fix multilib x86-64 support.
5290
52912002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5292
5293 * Makefile.am (all-multi): Fix multilib parallel build.
5294
52952002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5296
5297 * configure.in (sh[34]*-*-linux*): Add brackets.
5298 * configure: Regenerate.
5299
53002002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5301
5302 * Makefile.am: Add SH support.
5303 * Makefile.in: Regenerate.
5304 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5305 * configure: Regenerate.
5306 * include/ffi.h.in: Add SH support.
5307 * src/sh/ffi.c: New file.
5308 * src/sh/sysv.S: New file.
5309 * src/types.c: Add SH support.
5310
53112002-07-16 Bo Thorsen <bo@suse.de>
5312
5313 * src/x86/ffi64.c: New file that adds x86-64 support.
5314 * src/x86/unix64.S: New file that handles argument setup for
5315 x86-64.
5316 * src/x86/sysv.S: Don't use this on x86-64.
5317 * src/x86/ffi.c: Don't use this on x86-64.
5318 Remove unused vars.
5319 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5320 for x86-64.
5321 * src/ffitest.c (struct6): New test that tests a special case in
5322 the x86-64 ABI.
5323 (struct7): Likewise.
5324 (struct8): Likewise.
5325 (struct9): Likewise.
5326 (closure_test_fn): Silence warning about this when it's not used.
5327 (main): Add the new tests.
5328 (main): Fix a couple of wrong casts and silence some compiler warnings.
5329 * include/ffi.h.in: Add x86-64 ABI definition.
5330 * fficonfig.h.in: Regenerate.
5331 * Makefile.am: Add x86-64 support.
5332 * configure.in: Likewise.
5333 * Makefile.in: Regenerate.
5334 * configure: Likewise.
5335
53362002-06-24 Bo Thorsen <bo@suse.de>
5337
5338 * src/types.c: Merge settings for similar architectures.
5339 Add x86-64 sizes and alignments.
5340
53412002-06-23 Bo Thorsen <bo@suse.de>
5342
5343 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5344 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5345 * src/mips/ffi.c (ffi_prep_args): Likewise.
5346 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5347
53482002-07-18 H.J. Lu (hjl@gnu.org)
5349
5350 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5351 (libffi_la_SOURCES): Support MIPS_LINUX.
5352 (libffi_convenience_la_SOURCES): Likewise.
5353 * Makefile.in: Regenerated.
5354
5355 * configure.in (mips64*-*): Skip.
5356 (mips*-*-linux*): New.
5357 * configure: Regenerated.
5358
5359 * src/mips/ffi.c: Include <sgidefs.h>.
5360
53612002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5362
5363 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5364
53652002-05-27 Roger Sayle <roger@eyesopen.com>
5366
5367 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5368
53692002-05-27 Bo Thorsen <bo@suse.de>
5370
5371 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5372 fix formatting.
5373
53742002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5375
5376 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5377 beginning of function (for older apple cc).
5378
53792002-05-08 Alexandre Oliva <aoliva@redhat.com>
5380
5381 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5382 script entry, and set LD to it when configuring multilibs.
5383 * configure: Rebuilt.
5384
53852002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5386
5387 * configure.in (sparc64-*-netbsd*): Add target.
5388 (sparc-*-netbsdelf*): Likewise.
5389 * configure: Regenerate.
5390
53912002-04-28 David S. Miller <davem@redhat.com>
5392
5393 * configure.in, configure: Fix SPARC test in previous change.
5394
53952002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5396
5397 * Makefile.am: Add Linux for S/390 support.
5398 * Makefile.in: Regenerate.
5399 * configure.in: Add Linux for S/390 support.
5400 * configure: Regenerate.
5401 * include/ffi.h.in: Add Linux for S/390 support.
5402 * src/s390/ffi.c: New file from libffi CVS tree.
5403 * src/s390/sysv.S: New file from libffi CVS tree.
5404
54052002-04-28 Jakub Jelinek <jakub@redhat.com>
5406
5407 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5408 %r_disp32().
5409 * src/sparc/v8.S: Use it.
5410 * src/sparc/v9.S: Likewise.
5411 * fficonfig.h.in: Rebuilt.
5412 * configure: Rebuilt.
5413
54142002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5415
5416 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5417 correctly.
5418 * src/ia64/unix.S: Add unwind information. Fix comments.
5419 Save sp in a way that's compatible with unwind info.
5420 (ffi_call_unix): Correctly restore sp in all cases.
5421 * src/ia64/ffi.c: Add, fix comments.
5422
54232002-04-08 Jakub Jelinek <jakub@redhat.com>
5424
5425 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5426
54272002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5428
5429 * configure.in (alpha*-*-netbsd*): Add target.
5430 * configure: Regenerate.
5431
54322002-04-04 Jeff Sturm <jsturm@one-point.com>
5433
5434 * src/sparc/v8.S: Add unwind info.
5435 * src/sparc/v9.S: Likewise.
5436
54372002-03-30 Krister Walfridsson <cato@df.lth.se>
5438
5439 * configure.in: Enable i*86-*-netbsdelf*.
5440 * configure: Rebuilt.
5441
54422002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5443
5444 PR other/2620
5445 * src/mips/n32.s: Delete
5446 * src/mips/o32.s: Delete
5447
54482002-03-21 Loren J. Rittle <ljrittle@acm.org>
5449
5450 * configure.in: Enable alpha*-*-freebsd*.
5451 * configure: Rebuilt.
5452
54532002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5454
5455 * Makefile.am: libfficonvenience -> libffi_convenience.
5456 * Makefile.in: Rebuilt.
5457
5458 * Makefile.am: Define ffitest_OBJECTS.
5459 * Makefile.in: Rebuilt.
5460
54612002-03-07 Andreas Tobler <toa@pop.agri.ch>
5462 David Edelsohn <edelsohn@gnu.org>
5463
5464 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5465 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5466 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5467 * Makefile.in: Regenerate.
5468 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5469 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5470 (flush_icache, flush_range): New functions.
5471 (ffi_closure_helper_DARWIN): New function.
5472 * src/powerpc/aix_closure.S: New file.
5473 * src/powerpc/darwin_closure.S: New file.
5474
54752002-02-24 Jeff Sturm <jsturm@one-point.com>
5476
5477 * include/ffi.h.in: Add typedef for ffi_arg.
5478 * src/ffitest.c (main): Declare rint with ffi_arg.
5479
54802002-02-21 Andreas Tobler <toa@pop.agri.ch>
5481
5482 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5483 number of GPRs for floating-point arguments.
5484
54852002-01-31 Anthony Green <green@redhat.com>
5486
5487 * configure: Rebuilt.
5488 * configure.in: Replace CHECK_SIZEOF and endian tests with
5489 cross-compiler friendly macros.
5490 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5491 macros.
5492
54932002-01-18 David Edelsohn <edelsohn@gnu.org>
5494
5495 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5496 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5497
54982002-01-17 David Edelsohn <edelsohn@gnu.org>
5499
5500 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5501 (TARGET_SRC_POWERPC_AIX): New.
5502 (POWERPC_AIX): New stanza.
5503 * Makefile.in: Regenerate.
5504 * configure.in: Add AIX case.
5505 * configure: Regenerate.
5506 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5507 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5508 size. Fix "long double" support.
5509 (ffi_call): Add FFI_AIX case.
5510 * src/powerpc/aix.S: New.
5511
55122001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5513
5514 Implement Darwin PowerPC ABI.
5515 * configure.in: Handle powerpc-*-darwin*.
5516 * Makefile.am: Set source files for POWERPC_DARWIN.
5517 * configure: Rebuilt.
5518 * Makefile.in: Rebuilt.
5519 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5520 POWERPC_DARWIN.
5521 * src/powerpc/darwin.S: New file.
5522 * src/powerpc/ffi_darwin.c: New file.
5523
55242001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5525
5526 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5527
55282001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5529
5530 * src/x86/sysv.S: Avoid gas-only .balign directive.
5531 Use C style comments.
5532
55332001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5534
5535 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5536 Fixes PR bootstrap/3563.
5537
55382001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5539
5540 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5541
55422001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5543
5544 * configure.in: Recognize sparc*-sun-* host.
5545 * configure: Regenerate.
5546
55472001-06-06 Andrew Haley <aph@redhat.com>
5548
5549 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5550
55512001-06-03 Andrew Haley <aph@redhat.com>
5552
5553 * src/alpha/osf.S: Add unwind info.
5554 * src/powerpc/sysv.S: Add unwind info.
5555 * src/powerpc/ppc_closure.S: Likewise.
5556
55572000-05-31 Jeff Sturm <jsturm@one-point.com>
5558
5559 * configure.in: Fix AC_ARG_ENABLE usage.
5560 * configure: Rebuilt.
5561
55622001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5563
5564 * configure.in: Remove warning about beta code.
5565 * configure: Rebuilt.
5566
55672001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5568
5569 * src/ia64/unix.S: Restore stack pointer when returning from
5570 ffi_closure_UNIX.
5571 * src/ia64/ffi.c: Fix typo in comment.
5572
55732001-04-18 Jim Wilson <wilson@redhat.com>
5574
5575 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5576 to eliminate RAW DV.
5577
55782001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5579
5580 * Makefile.am: Make a libtool convenience library.
5581 * Makefile.in: Rebuilt.
5582
55832001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5584
5585 * configure.in: Use different syntax for subdirectory creation.
5586 * configure: Rebuilt.
5587
55882001-03-27 Jon Beniston <jon@beniston.com>
5589
5590 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5591 * configure: Rebuilt.
5592 * Makefile.am: Added X86_WIN32 target support.
5593 * Makefile.in: Rebuilt.
5594
5595 * include/ffi.h.in: Added X86_WIN32 target support.
5596
5597 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5598 * src/types.c: Added X86_WIN32 target support.
5599
5600 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5601 stuff removed and made to work with CygWin's gas.
5602
56032001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5604
5605 * configure.in: Make target subdirectory in build dir.
5606 * Makefile.am: Override suffix based rules to specify correct output
5607 subdirectory.
5608 * Makefile.in: Rebuilt.
5609 * configure: Rebuilt.
5610
56112001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5612
5613 * src/powerpc/ppc_closure.S: New file.
5614 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5615 involving long long and register pairs.
5616 (ffi_prep_closure): New function.
5617 (flush_icache): Likewise.
5618 (ffi_closure_helper_SYSV): Likewise.
5619 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5620 (FFI_TRAMPOLINE_SIZE): Likewise.
5621 (FFI_NATIVE_RAW_API): Likewise.
5622 * Makefile.in: Rebuilt.
5623 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5624 (TARGET_SRC_POWERPC): Likewise.
5625
56262001-03-19 Tom Tromey <tromey@redhat.com>
5627
5628 * Makefile.in: Rebuilt.
5629 * Makefile.am (ffitest_LDFLAGS): New macro.
5630
56312001-03-02 Nick Clifton <nickc@redhat.com>
5632
5633 * include/ffi.h.in: Remove RCS ident string.
5634 * include/ffi_mips.h: Remove RCS ident string.
5635 * src/debug.c: Remove RCS ident string.
5636 * src/ffitest.c: Remove RCS ident string.
5637 * src/prep_cif.c: Remove RCS ident string.
5638 * src/types.c: Remove RCS ident string.
5639 * src/alpha/ffi.c: Remove RCS ident string.
5640 * src/alpha/osf.S: Remove RCS ident string.
5641 * src/arm/ffi.c: Remove RCS ident string.
5642 * src/arm/sysv.S: Remove RCS ident string.
5643 * src/mips/ffi.c: Remove RCS ident string.
5644 * src/mips/n32.S: Remove RCS ident string.
5645 * src/mips/o32.S: Remove RCS ident string.
5646 * src/sparc/ffi.c: Remove RCS ident string.
5647 * src/sparc/v8.S: Remove RCS ident string.
5648 * src/sparc/v9.S: Remove RCS ident string.
5649 * src/x86/ffi.c: Remove RCS ident string.
5650 * src/x86/sysv.S: Remove RCS ident string.
5651
56522001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5653
5654 * include/ffi.h.in: Change sourceware.cygnus.com references to
5655 gcc.gnu.org.
5656
56572000-12-09 Richard Henderson <rth@redhat.com>
5658
5659 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5660 (ffi_closure_osf_inner): Index rather than increment avalue
5661 and arg_types. Give ffi_closure_osf the raw return value type.
5662 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5663 promotion.
5664
56652000-12-07 Richard Henderson <rth@redhat.com>
5666
5667 * src/raw_api.c (ffi_translate_args): Fix typo.
5668 (ffi_prep_closure): Likewise.
5669
5670 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5671 FFI_TRAMPOLINE_SIZE.
5672 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5673 cif->bytes for new ffi_call_osf implementation.
5674 (ffi_prep_args): Absorb into ...
5675 (ffi_call): ... here. Do all stack allocation here and
5676 avoid a callback function.
5677 (ffi_prep_closure, ffi_closure_osf_inner): New.
5678 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5679 (ffi_closure_osf): New.
5680
56812000-09-10 Alexandre Oliva <aoliva@redhat.com>
5682
5683 * config.guess, config.sub, install-sh: Removed.
5684 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5685 * Makefile.in: Rebuilt.
5686
5687 * acinclude.m4: Include libtool macros from the top level.
5688 * aclocal.m4, configure: Rebuilt.
5689
56902000-08-22 Alexandre Oliva <aoliva@redhat.com>
5691
5692 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5693 * configure: Rebuilt.
5694
56952000-05-11 Scott Bambrough <scottb@netwinder.org>
5696
5697 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5698 memory correctly. Use conditional instructions, not branches where
5699 possible.
5700
57012000-05-04 Tom Tromey <tromey@cygnus.com>
5702
5703 * configure: Rebuilt.
5704 * configure.in: Match `arm*-*-linux-*'.
5705 From Chris Dornan <cdornan@arm.com>.
5706
57072000-04-28 Jakub Jelinek <jakub@redhat.com>
5708
5709 * Makefile.am (SUBDIRS): Define.
5710 (AM_MAKEFLAGS): Likewise.
5711 (Multilib support.): Add section.
5712 * Makefile.in: Rebuilt.
5713 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5714 New variables. Set for gcc using -print-multi-lib. Export them
5715 to libtool.
5716 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5717 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5718 for -shared links.
5719 (extra_compiler_flags_value, extra_compiler_flags): Check these
5720 for extra compiler options which need to be passed down in
5721 compiler_flags.
5722
57232000-04-16 Anthony Green <green@redhat.com>
5724
5725 * configure: Rebuilt.
5726 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5727
57282000-04-14 Jakub Jelinek <jakub@redhat.com>
5729
5730 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5731 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5732 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5733 Replace all void * sizeofs with sizeof(int).
5734 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5735 different than DOUBLE.
5736 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5737 (ffi_prep_args_v9): New function.
5738 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5739 (ffi_V9_return_struct): New function.
5740 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5741 32bit code (not yet cross-arch calls).
5742 * src/sparc/v8.S: Add struct return delay nop.
5743 Handle long long.
5744 * src/sparc/v9.S: New file.
5745 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5746 is used on sparc64 only for structures larger than 32 bytes.
5747 Pass by reference for structures is done for structure arguments
5748 larger than 16 bytes.
5749 * src/ffitest.c (main): Use 64bit rint on sparc64.
5750 Run long long tests on sparc.
5751 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5752 sparc64.
5753 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5754 on sparc64.
5755 * configure.in (sparc-*-linux*): New supported target.
5756 (sparc64-*-linux*): Likewise.
5757 * configure: Rebuilt.
5758 * Makefile.am: Add v9.S to SPARC files.
5759 * Makefile.in: Likewise.
5760 (LINK): Surround $(CCLD) into double quotes, so that multilib
5761 compiles work correctly.
5762
57632000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5764
5765 * configure: Rebuilt.
5766 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5767 proposed by Bryce McKinlay.
5768
57692000-03-20 Tom Tromey <tromey@cygnus.com>
5770
5771 * Makefile.in: Hand edit for java_raw_api.lo.
5772
57732000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5774
5775 * config.guess, config.sub: Update from the gcc tree.
5776 Fix for PR libgcj/168.
5777
57782000-03-03 Tom Tromey <tromey@cygnus.com>
5779
5780 * Makefile.in: Fixed ia64 by hand.
5781
5782 * configure: Rebuilt.
5783 * configure.in (--enable-multilib): New option.
5784 (libffi_basedir): New subst.
5785 (AC_OUTPUT): Added multilib code.
5786
57872000-03-02 Tom Tromey <tromey@cygnus.com>
5788
5789 * Makefile.in: Rebuilt.
5790 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5791 directory name.
5792
57932000-02-25 Hans Boehm <boehm@acm.org>
5794
5795 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5796 files.
5797 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5798 list.
5799 (ffi_prep_raw_closure): Use ffi_translate_args, not
5800 ffi_closure_translate.
5801 * src/java_raw_api.c: New file.
5802 * src/ffitest.c (closure_test_fn): New function.
5803 (main): Define `rint' as long long on IA64. Added new test when
5804 FFI_CLOSURES is defined.
5805 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5806 (ffi_abi): Recognize IA64.
5807 (ffi_raw): Added `flt' field.
5808 Added "Java raw API" code.
5809 * configure.in: Recognize ia64.
5810 * Makefile.am (TARGET_SRC_IA64): New macro.
5811 (libffi_la_common_SOURCES): Added java_raw_api.c.
5812 (libffi_la_SOURCES): Define in IA64 case.
5813
58142000-01-04 Tom Tromey <tromey@cygnus.com>
5815
5816 * Makefile.in: Rebuilt with newer automake.
5817
58181999-12-31 Tom Tromey <tromey@cygnus.com>
5819
5820 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5821
58221999-09-01 Tom Tromey <tromey@cygnus.com>
5823
5824 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5825 undefs.
5826 * fficonfig.h.in: Rebuilt.
5827 * configure: Rebuilt.
5828 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5829 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5830 * acconfig.h: Don't #undef PACKAGE or VERSION.
5831
58321999-08-09 Anthony Green <green@cygnus.com>
5833
5834 * include/ffi.h.in: Try to work around messy header problem
5835 with PACKAGE and VERSION.
5836
5837 * configure: Rebuilt.
5838 * configure.in: Change version to 2.00-beta.
5839
5840 * fficonfig.h.in: Rebuilt.
5841 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5842
5843 * src/x86/ffi.c (ffi_raw_call): Rename.
5844
58451999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5846
5847 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5848 (ffi_prep_incoming_args_SYSV): Ditto.
5849 (ffi_prep_closure): Ditto.
5850 (ffi_closure_raw_SYSV): Ditto.
5851 (ffi_prep_raw_closure): More ditto.
5852 (ffi_call_raw): Final ditto.
5853
5854 * include/ffi.h.in: Add definitions for closure and raw API.
5855
5856 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5857 FFI_TYPE_UINT64.
5858
5859 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5860
5861 * src/raw_api.c: New file.
5862
5863 * include/ffi.h.in (ffi_raw): New type.
5864 (UINT_ARG, SINT_ARG): New defines.
5865 (ffi_closure, ffi_raw_closure): New types.
5866 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5867
5868 * configure.in: Add check for endianness and sizeof void*.
5869
5870 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5871 instead of directly.
5872
5873 * configure: Rebuilt.
5874
5875Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5876
5877 * configure.in: Add x86 and powerpc BeOS configurations.
5878 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5879
58801999-05-09 Anthony Green <green@cygnus.com>
5881
5882 * configure.in: Add warning about this being beta code.
5883 Remove src/Makefile.am from the picture.
5884 * configure: Rebuilt.
5885
5886 * Makefile.am: Move logic from src/Makefile.am. Add changes
5887 to support libffi as a target library.
5888 * Makefile.in: Rebuilt.
5889
5890 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5891 Upgraded to new autoconf, automake, libtool.
5892
5893 * README: Tweaks.
5894
5895 * LICENSE: Update copyright date.
5896
5897 * src/Makefile.am, src/Makefile.in: Removed.
5898
58991998-11-29 Anthony Green <green@cygnus.com>
5900
5901 * include/ChangeLog: Removed.
5902 * src/ChangeLog: Removed.
5903 * src/mips/ChangeLog: Removed.
5904 * src/sparc/ChangeLog: Remboved.
5905 * src/x86/ChangeLog: Removed.
5906
5907 * ChangeLog.v1: Created.