]> git.ipfire.org Git - thirdparty/gcc.git/blob - libffi/ChangeLog
[ARM,testsuite] Fix typo in arm_arch_v8a_ok effective target.
[thirdparty/gcc.git] / libffi / ChangeLog
1 2019-09-27 Maciej W. Rozycki <macro@wdc.com>
2
3 * configure: Regenerate.
4
5 2019-09-03 Chung-Lin Tang <cltang@codesourcery.com>
6
7 PR other/79543
8 * acinclude.m4 (LIBAT_CHECK_LINKER_FEATURES): Fix GNU ld --version
9 scanning to conform to the GNU Coding Standards.
10 * configure: Regenerate.
11
12 2018-10-31 Joseph Myers <joseph@codesourcery.com>
13
14 PR bootstrap/82856
15 * Makefile.am: Include multilib.am.
16 (AUTOMAKE_OPTIONS): Add info-in-builddir.
17 (CLEANFILES): Remove doc/libffi.info.
18 * configure.ac: Remove AC_PREREQ.
19 * Makefile.in, aclocal.m4, configure, fficonfig.h.in,
20 include/Makefile.in, man/Makefile.in, testsuite/Makefile.in:
21 Regenerate.
22
23 2018-08-15 Andreas Schwab <schwab@suse.de>
24
25 Backport of RISC-V support for libffi go closures
26 * src/riscv/ffi.c (ffi_call_go, ffi_prep_go_closure): New
27 functions.
28 (ffi_call_int): Renamed from ffi_call.
29 (ffi_call_asm, ffi_closure_inner): Adjust interface.
30 * src/riscv/ffitarget.h (FFI_GO_CLOSURES): Define.
31 * src/riscv/sysv.S (ffi_go_closure_asm): New function.
32 (ffi_closure_asm, ffi_call_asm): Update for adjusted interfaces.
33
34 2018-05-08 Andreas Schwab <schwab@suse.de>
35
36 Backport of RISC-V support for libffi
37 * configure.host: Add RISC-V support.
38 * Makefile.am: Likewise.
39 * Makefile.in: Regenerate.
40 * src/riscv/ffi.c, src/riscv/ffitarget.h, src/riscv/sysv.S: New
41 files.
42
43 2018-05-04 Alan Modra <amodra@gmail.com>
44
45 Import from upstream
46 * src/powerpc/ffi_linux64.c (discover_homogeneous_aggregate):
47 Compile for ELFv1 too, handling single element aggregates.
48 (ffi_prep_cif_linux64_core): Call discover_homogeneous_aggregate
49 for ELFv1. Set FLAG_RETURNS_64BITS for FFI_TYPE_POINTER return.
50 (ffi_prep_args64): Call discover_homogeneous_aggregate for ELFv1,
51 and handle single element structs containing float or double
52 as if the element wasn't wrapped in a struct. Store floats in
53 second word of doubleword slot when big-endian.
54 (ffi_closure_helper_LINUX64): Similarly.
55
56 2018-04-18 David Malcolm <dmalcolm@redhat.com>
57
58 PR jit/85384
59 * configure: Regenerate.
60
61 2017-08-31 Tony Reix <tony.reix@atos.net>
62
63 * src/powerpc/aix.S (ffi_call_AIX): Add debugging pseudo-op and
64 labels for EH.
65 (ffi_call_go_AIX): New function.
66 (_GLOBAL__F_libffi_src_powerpc_aix): New EH frame.
67 * src/powerpc/aix_closure.S (ffi_closure_ASM): Add debugging
68 pseudo-op and labels for EH.
69 (ffi_go_closure_ASM): New function.
70 (_GLOBAL__F_libffi_src_powerpc_aix_closure): New EH frame.
71 * src/powrpc/ffi_darwin.c (ffi_call_go): New function.
72 (ffi_prep_go_closure): New function.
73 (ffi_closure_helper_common): Rename from ffi_closure_helper_DARWIN.
74 (ffi_closure_helper_DARWIN): Call ffi_closure_helper_common.
75 (ffi_go_closure_helper_DARWIN): Call ffi_closure_helper_common.
76 * src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define.
77
78 2017-01-21 Jakub Jelinek <jakub@redhat.com>
79
80 PR other/79046
81 * configure.ac: Add GCC_BASE_VER.
82 * include/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
83 of cat to get version from BASE-VER file.
84 * configure: Regenerated.
85 * testsuite/Makefile.in: Regenerated.
86 * include/Makefile.in: Regenerated.
87 * Makefile.in: Regenerated.
88 * man/Makefile.in: Regenerated.
89
90 2016-11-15 Matthias Klose <doko@ubuntu.com>
91
92 * configure: Regenerate.
93
94 2016-09-04 John David Anglin <danglin@gcc.gnu.org>
95
96 * src/pa/ffi.c (ffi_struct_type): Put type declaration on separate line.
97 (ffi_prep_args_pa32): Likewise.
98 (ffi_size_stack_pa32): Likewise.
99 (ffi_prep_cif_machdep): Likewise.
100 (ffi_call): Likewise. Rename to ffi_call_int. Add closure argument
101 and update call to ffi_call_pa32.
102 (ffi_call, ffi_call_go, ffi_prep_go_closure): New.
103 (ffi_closure_inner_pa32): Update to handle go closures.
104 * src/pa/ffitarget.h (FFI_GO_CLOSURES): Define.
105 * src/pa/hpux32.S (ffi_call_pa32): Pass go closure argument in static
106 chain register (%ret1).
107 (ffi_closure_pa32): Set closure type argument to zero.
108 (ffi_go_closure_pa32): New function. Add unwind data for it.
109 * src/pa/linux.S: Likewise. Use cfi directives for unwind data.
110 * testsuite/libffi.go/static-chain.h (STATIC_CHAIN_REG): Define for
111 hppa.
112
113 2016-05-23 Thomas Schwinge <thomas@codesourcery.com>
114
115 PR libffi/65567
116 * testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
117
118 2016-03-17 Andreas Schwab <schwab@suse.de>
119
120 * src/aarch64/ffitarget.h (FFI_SIZEOF_JAVA_RAW) [__ILP32__]:
121 Define.
122
123 2016-03-02 Richard Henderson <rth@redhat.com>
124
125 * libtool-version: Increase to 7:0:0.
126 * libffi.map.in: Increase version numbers to 7.0.
127
128 2016-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
129
130 * Makefile.am (libffi.map-sun): Properly convert
131 $(libffi_la_OBJECTS) to object names.
132 * Makefile.in: Regenerate.
133
134 2016-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
135
136 * Makefile.am (libffi.map-sun): Tabify:
137 * Makefile.in: Regenerate.
138
139 2016-03-02 Richard Henderson <rth@redhat.com>
140
141 PR libffi/70024
142 * Makefile.am (libffi_version_script): New.
143 (libffi_version_dep): New.
144 (libffi_version_info): New.
145 (libffi_la_LDFLAGS): Include libffi_version_info, libffi_version_script.
146 (libffi_la_DEPENDENCIES): Include libffi_version_dep.
147 * acinclude.m4 (LIBAT_ENABLE, LIBAT_CHECK_LINKER_FEATURES): New.
148 (LIBAT_ENABLE_SYMVERS, LIBAT_BUILD_VERSIONED_SHLIB): New.
149 (LIBAT_BUILD_VERSIONED_SHLIB_GNU): New.
150 (LIBAT_BUILD_VERSIONED_SHLIB_SUN): New.
151 * configure.ac: Invoke LIBAT_ENABLE_SYMVERS.
152 * libffi.map: New file.
153 * libtool-version: Increase to 5.0.0.
154 * Makefile.in, configure: Rebuild.
155 * man/Makefile.in, testsuite/Makefile.in: Rebuild.
156
157 * Makefile.am (libffi_version_script): Look in cwd for libffi.map.
158 (libffi_version_dep, libffi.map-sun): Likewise.
159 (libffi.map): New target.
160 * libffi.map.in: Rename from libffi.map. Add required defines,
161 includes, and conditionals.
162
163 2015-10-26 John David Anglin <danglin@gcc.gnu.org>
164
165 PR libffi/65441
166 * testsuite/lib/libffi.exp: Load target-supports-dg.exp.
167 * testsuite/libffi.call/float2.c: Don't run on hppa*-*-hpux*.
168
169 2015-10-01 Alan Modra <amodra@gmail.com>
170
171 * src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
172 gprs, and stack words separately.
173 (ffi_prep_args_SYSV): Similarly.
174
175 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
176
177 * Makefile.in: Regenerated with automake-1.11.6.
178 * aclocal.m4: Likewise.
179 * configure: Likewise.
180 * fficonfig.h.in: Likewise.
181 * include/Makefile.in: Likewise.
182 * man/Makefile.in: Likewise.
183 * testsuite/Makefile.in: Likewise.
184
185 2015-03-29 John David Anglin <danglin@gcc.gnu.org>
186
187 PR libffi/65567
188 * testsuite/lib/libffi.exp (libffi_feature_test): Use split to ensure
189 lindex is applied to a list.
190
191 2015-02-10 Andrew Pinski <apinski@cavium.com>
192
193 * src/aarch64/ffitarget.h (ffi_arg): Use unsigned long long for ILP32.
194 (FFI_SIZEOF_ARG): Define to 64 for ILP32.
195 (ffi_sarg): Use signed long long for ILP32.
196
197 * src/aarch64/sysv.S (PTR_REG): New macro.
198 (PTR_SIZE): New macro.
199 (ffi_closure_SYSV): Load cif, fn and user_data using PTR_REG.
200 (ffi_go_closure_SYSV): Load cif and fn using PTR_REG.
201
202 2015-01-29 Jack Howarth <howarth.at.gcc@gmail.com>
203
204 PR libffi/64855
205 * testsuite/lib/libffi.exp: Don't set targetabis on darwin.
206
207 2015-01-28 Richard Henderson <rth@redhat.com>
208
209 PR libffi/64779
210 PR libffi/64799
211 * Merge to upstream commit db1b34b7e1f5e473d17557e454a29933dfecd1af.
212
213 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
214
215 * testsuite/lib/libffi.exp: Load target-supports.exp.
216 (run-many-tests): Only set targetabis for ia32.
217
218 2015-01-19 Richard Henderson <rth@redhat.com>
219
220 PR libffi/64581
221 * testsuite/lib/libffi.exp (libffi_target_compile): Don't switch
222 to C++ mode when compiling C++ source code.
223
224 2015-01-19 Richard Henderson <rth@redhat.com>
225
226 * Merge to upstream commit 3ac1610aa33c887ea9b14935208943925714a33e.
227
228 2015-01-19 Richard Henderson <rth@redhat.com>
229
230 PR libffi/64607
231 * testsuite/lib/libffi.exp (libffi-init): Append -L for the
232 just built libstdc++.
233
234 2015-01-15 Dominique d'Humieres <dominiq@lps.ens.fr>
235 Richard Henderson <rth@redhat.com>
236
237 PR libffi/64607
238 * Makefile.am (AM_MAKEFLAGS): Use double quotes on subvariables.
239 * Makefile.in: Rebuilt.
240
241 2015-01-15 Richard Henderson <rth@redhat.com>
242
243 PR libffi/64572
244 * include/ffi.h.in (FFI_TYPE_LAST): Set to COMPLEX only if complex
245 numbers are supported by the backend.
246
247 2015-01-13 Kaz Kojima <kkojima@gcc.gnu.org>
248
249 * configure.host: Remove extra brackets for sh.
250
251 2015-01-13 H.J. Lu <hongjiu.lu@intel.com>
252
253 PR bootstrap/64575
254 * configure.host (TARGET): Set to X86_64 if __x86_64__ is defined.
255
256 2015-01-12 Richard Henderson <rth@redhat.com>
257
258 PR libffi/64572
259 * src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
260 (FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
261
262 2015-01-12 Richard Henderson <rth@redhat.com>
263
264 * src/x86/ffi.c (ffi_raw_call): Fill in frame.
265
266 2015-01-12 Richard Henderson <rth@redhat.com>
267
268 Merge to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16.
269
270 2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
271
272 PR bootstrap/63784
273 * configure: Regenerated.
274
275 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
276
277 PR target/63610
278 * configure: Regenerate.
279
280 2014-10-15 Ian Lance Taylor <iant@google.com>
281
282 * configure.ac: If the compiler supports -Qunused-arguments, use
283 it when running the compiler on .s files.
284 * configure: Regenerated.
285
286 2014-09-11 Jakub Jelinek <jakub@redhat.com>
287
288 * src/powerpc/linux64.S: Emit .note.GNU-stack even when
289 POWERPC64 is not defined.
290 * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2.
291
292 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
293
294 * src/alpha/ffi.c: Do not include stdlib.h.
295 (ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort.
296
297 2014-07-04 Thomas Schwinge <thomas@codesourcery.com>
298
299 * testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
300 match to dg-runtest's.
301
302 2014-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
303
304 * testsuite/lib/libffi.exp (load_gcc_lib): Register loaded libs.
305
306 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
307
308 Fix current cygwin-64 build problems.
309 * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
310 * src/x86/ffi.c: Add if defined(__CYGWIN__).
311 * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
312 handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
313 Added SEH information. Fixed formatting.
314
315 2014-04-22 Jakub Jelinek <jakub@redhat.com>
316
317 PR other/43620
318 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
319 * Makefile.in: Regenerated.
320 * include/Makefile.in: Regenerated.
321 * man/Makefile.in: Regenerated.
322 * testsuite/Makefile.in: Regenerated.
323
324 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
325
326 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
327 main CFA reg; update cfi_rel_offset.
328
329 2014-02-17 Eric Botcazou <ebotcazou@adacore.com>
330
331 PR libffi/60073
332 * src/sparc/v8.S: Assemble only if !SPARC64.
333 * src/sparc/v9.S: Remove obsolete comment.
334 * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
335 (V8_ABI_P): New macro.
336 (V9_ABI_P): Likewise.
337 (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
338 * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
339 (ffi_prep_args_v9): Compile only if SPARC64.
340 (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
341 (ffi_prep_cif_machdep): Guard access to nfixedargs field.
342 (ffi_prep_cif_machdep_var): Likewise.
343 (ffi_v9_layout_struct): Compile only if SPARC64.
344 (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
345 (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
346 (ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
347 (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
348 to nfixedargs field.
349
350 2014-02-13 Eric Botcazou <ebotcazou@adacore.com>
351
352 PR libffi/60073
353 * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
354 (FFI_EXTRA_CIF_FIELDS): Likewise.
355 (FFI_NATIVE_RAW_API): Move around.
356 * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from...
357 (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core.
358 (ffi_prep_cif_machdep_var): New function.
359 (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in
360 FP registers.
361 * doc/libffi.texi (Introduction): Fix inaccuracy.
362
363 2013-12-10 Alan Modra <amodra@gmail.com>
364
365 * src/powerpc/ffitarget.h: Import from upstream.
366 * src/powerpc/ffi_powerpc.h: Likewise.
367 * src/powerpc/ffi.c: Likewise.
368 * src/powerpc/ffi_sysv.c: Likewise.
369 * src/powerpc/ffi_linux64.c: Likewise.
370 * src/powerpc/sysv.S: Likewise.
371 * src/powerpc/ppc_closure.S: Likewise.
372 * src/powerpc/linux64.S: Likewise.
373 * src/powerpc/linux64_closure.S: Likewise.
374 * src/types.c: Likewise.
375 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
376 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
377 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
378 * include/ffi.h.in (ffi_prep_types): Declare.
379 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
380 * configure: Regenerate.
381 * fficonfig.h.in: Regenerate.
382 * Makefile.in: Regenerate.
383 * man/Makefile.in: Regenerate.
384 * include/Makefile.in: Regenerate.
385 * testsuite/Makefile.in: Regenerate.
386
387 2013-11-18 Alan Modra <amodra@gmail.com>
388
389 * src/powerpc/ppc_closure.S: Don't bl .Luint128.
390
391 * src/powerpc/ffitarget.h: Import from upstream.
392 * src/powerpc/ffi.c: Likewise.
393 * src/powerpc/linux64.S: Likewise.
394 * src/powerpc/linux64_closure.S: Likewise.
395 * doc/libffi.texi: Likewise.
396 * testsuite/libffi.call/cls_double_va.c: Likewise.
397 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
398
399 2013-09-20 Alan Modra <amodra@gmail.com>
400
401 * configure: Regenerate.
402
403 2013-06-25 Alan Modra <amodra@gmail.com>
404
405 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
406 before statements.
407 (ffi_prep_args64): Support little-endian.
408 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
409 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
410 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
411
412 2013-05-22 Dominique d'Humieres <dominiq@lps.ens.fr>
413 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
414
415 PR libffi/56033
416 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
417 ffi_arg *.
418 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
419 * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
420 * testsuite/libffi.call/va_struct1.c (main): Likewise.
421
422 2013-03-22 Kai Tietz <ktietz@redhat.com>
423
424 * src/x86/win64.S: Make use of ffi_closure_win64_inner
425 symbol pc-relative.
426
427 2013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
428
429 * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
430 Move default definition outside enclosing #if scope.
431
432 2013-02-06 Andreas Tobler <andreast@fgznet.ch>
433
434 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
435 DOUBLE equal LONGDOUBLE.
436
437 2013-01-07 Thorsten Glaser <tg@mirbsd.org>
438
439 * testsuite/libffi.call/cls_uchar_va.c,
440 testsuite/libffi.call/cls_ushort_va.c,
441 testsuite/libffi.call/va_1.c: Testsuite fixes.
442
443 2012-12-29 Andreas Schwab <schwab@linux-m68k.org>
444
445 * Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
446 (STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES)
447 (MAINTAINERCLEANFILES): Define.
448 (all-local, stamp-geninsrc, stamp-build-info): New targets.
449 (doc/libffi.info): Depend on $(STAMP_BUILD_INFO)
450 * configure.ac: Check for modern makeinfo. Add support for
451 --enable-generated-files-in-srcdir.
452 * libffi/mdate-sh: New file.
453 * testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite
454 lib dir.
455 (libffi-init): Properly set library paths for multilibs and add
456 path to libstdc++.
457 * configure: Regenerate.
458 * aclocal.m4: Regenerate.
459 * Makefile.in: Regenerate.
460 * doc/stamp-vti: Regenerate.
461 * doc/version.texi: Regenerate.
462 * fficonfig.h.in: Regenerate.
463 * include/Makefile.in: Regenerate.
464 * man/Makefile.in: Regenerate.
465 * testsuite/Makefile.in: Regenerate.
466
467 2012-10-31 Alan Modra <amodra@gmail.com>
468
469 * src/powerpc/linux64_closure.S: Add new ABI support.
470 * src/powerpc/linux64.S: Likewise.
471
472 2012-10-30 Magnus Granberg <zorry@gentoo.org>
473 Pavel Labushev <pavel.labushev@runbox.ru>
474
475 * configure.ac: New options pax_emutramp
476 * configure, fficonfig.h.in: Regenerated
477 * src/closures.c: New function emutramp_enabled_check() and
478 checks.
479
480 2012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
481
482 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
483 lion) and future version.
484 * configure: Rebuild.
485
486 2012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
487 Marcus Shawcroft <marcus.shawcroft at arm.com>
488
489 * README: Add details of aarch64 port.
490 * src/aarch64/ffi.c: New.
491 * src/aarch64/ffitarget.h: Likewise.
492 * src/aarch64/sysv.S: Likewise.
493 * Makefile.am: Support aarch64.
494 * configure.ac: Support aarch64.
495 * Makefile.in, configure: Rebuilt.
496
497 2012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
498 Marcus Shawcroft <marcus.shawcroft at arm.com>
499
500 * testsuite/lib/libffi.exp: Add support for aarch64.
501 * testsuite/libffi.call/cls_struct_va1.c: New.
502 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
503 * testsuite/libffi.call/cls_uint_va.c: Likewise.
504 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
505 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
506 * testsuite/libffi.call/nested_struct11.c: Likewise.
507 * testsuite/libffi.call/uninitialized.c: Likewise.
508 * testsuite/libffi.call/va_1.c: Likewise.
509 * testsuite/libffi.call/va_struct1.c: Likewise.
510 * testsuite/libffi.call/va_struct2.c: Likewise.
511 * testsuite/libffi.call/va_struct3.c: Likewise.
512
513 2012-10-12 Walter Lee <walt@tilera.com>
514
515 * Makefile.am: Add TILE-Gx/TILEPro support.
516 * configure.ac: Likewise.
517 * Makefile.in: Regenerate.
518 * configure: Likewise.
519 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
520 * src/tile: New directory.
521 * src/tile/ffi.c: New file.
522 * src/tile/ffitarget.h: Ditto.
523 * src/tile/tile.S: Ditto.
524
525 2012-10-12 Matthias Klose <doko@ubuntu.com>
526
527 * generate-osx-source-and-headers.py: Normalize whitespace.
528
529 2012-09-14 David Edelsohn <dje.gcc@gmail.com>
530
531 * configure: Regenerated.
532
533 2012-08-26 Andrew Pinski <apinski@cavium.com>
534
535 PR libffi/53014
536 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
537 soft-float.
538
539 2012-08-08 Uros Bizjak <ubizjak@gmail.com>
540
541 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
542 just return FFI_BAD_ABI when things are wrong.
543
544 2012-07-18 H.J. Lu <hongjiu.lu@intel.com>
545
546 PR libffi/53982
547 PR libffi/53973
548 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
549 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
550
551 2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
552
553 * configure: Regenerated.
554
555 2012-05-05 Nicolas Lelong
556
557 * libffi.xcodeproj/project.pbxproj: Fixes.
558 * README: Update for iOS builds.
559
560 2012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
561
562 * configure.ac: Add Blackfin/sysv support
563 * Makefile.am: Add Blackfin/sysv support
564 * src/bfin/ffi.c: Add Blackfin/sysv support
565 * src/bfin/ffitarget.h: Add Blackfin/sysv support
566
567 2012-04-11 Anthony Green <green@moxielogic.com>
568
569 * Makefile.am (EXTRA_DIST): Add new script.
570 * Makefile.in: Rebuilt.
571
572 2012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
573
574 * generate-ios-source-and-headers.py,
575 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
576 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
577 generation into an Xcode "run script" phase. Include both as
578 Xcode build scripts. Don't always regenerate config files.
579
580 2012-04-10 Anthony Green <green@moxielogic.com>
581
582 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
583
584 2012-04-06 Anthony Green <green@moxielogic.com>
585
586 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
587 * Makefile.in: Rebuilt.
588
589 2012-04-06 Mike Lewis <mikelikespie@gmail.com>
590
591 * generate-ios-source-and-headers.py: New file.
592 * libffi.xcodeproj/project.pbxproj: New file.
593 * README: Update instructions on building iOS binary.
594 * build-ios.sh: Delete.
595
596 2012-04-06 Anthony Green <green@moxielogic.com>
597
598 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
599 compilers, then use it.
600
601 2012-04-06 H.J. Lu <hongjiu.lu@intel.com>
602
603 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
604
605 2012-04-06 Anthony Green <green@moxielogic.com>
606
607 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
608 * testsuite/Makefile.in: Rebuilt.
609
610 2012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
611
612 * include/ffi.h.in: Add missing trampoline table fields.
613 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
614 in CNAME.
615 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
616
617 2012-03-29 Peter Rosin <peda@lysator.liu.se>
618
619 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
620 generation, fix the ENDP label and remove the surplus third arg
621 from the 'lea' insn.
622
623 2012-03-29 Peter Rosin <peda@lysator.liu.se>
624
625 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
626 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
627 it. Also instruct the assembler to add a frame to the function.
628
629 2012-03-23 Peter Rosin <peda@lysator.liu.se>
630
631 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
632 * Makefile.in: Rebuilt.
633 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
634 to all data exports, when compiling libffi clients using MSVC.
635
636 2012-03-29 Peter Rosin <peda@lysator.liu.se>
637
638 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
639 make it the default for MSVC.
640 (FFI_TYPE_MS_STRUCT): New structure return convention.
641 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
642 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
643 instead of an ordinary FFI_TYPE_STRUCT.
644 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
645 (ffi_call): Likewise.
646 (ffi_prep_incoming_args_SYSV): Likewise.
647 (ffi_raw_call): Likewise.
648 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
649 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
650 return a pointer to the result structure in eax and don't pop
651 that pointer from the stack, the caller takes care of it.
652 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
653 (ffi_closure_raw_SYSV): Likewise.
654
655 2012-03-22 Peter Rosin <peda@lysator.liu.se>
656
657 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
658 assembly version with Intel syntax.
659 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
660
661 2012-03-23 Peter Rosin <peda@lysator.liu.se>
662
663 * testsuite/libffi.call/ffitest.h: Provide abstration of
664 __attribute__((fastcall)) in the form of a __FASTCALL__
665 define. Define it to __fastcall for MSVC.
666 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
667 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
668 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
669 * testsuite/libffi.call/strlen2_win32.c: Likewise.
670 * testsuite/libffi.call/struct1_win32.c: Likewise.
671 * testsuite/libffi.call/struct2_win32.c: Likewise.
672
673 2012-03-22 Peter Rosin <peda@lysator.liu.se>
674
675 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
676 frame on function entry, MASM adds one automatically.
677
678 2012-03-22 Peter Rosin <peda@lysator.liu.se>
679
680 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
681 bits in the MSVC headers.
682
683 2012-03-22 Peter Rosin <peda@lysator.liu.se>
684
685 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
686 with no declarations after statements.
687 * testsuite/libffi.call/cls_16byte.c: Likewise.
688 * testsuite/libffi.call/cls_18byte.c: Likewise.
689 * testsuite/libffi.call/cls_19byte.c: Likewise.
690 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
691 * testsuite/libffi.call/cls_20byte.c: Likewise.
692 * testsuite/libffi.call/cls_20byte1.c: Likewise.
693 * testsuite/libffi.call/cls_24byte.c: Likewise.
694 * testsuite/libffi.call/cls_2byte.c: Likewise.
695 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
696 * testsuite/libffi.call/cls_3byte1.c: Likewise.
697 * testsuite/libffi.call/cls_3byte2.c: Likewise.
698 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
699 * testsuite/libffi.call/cls_4byte.c: Likewise.
700 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
701 * testsuite/libffi.call/cls_5byte.c: Likewise.
702 * testsuite/libffi.call/cls_64byte.c: Likewise.
703 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
704 * testsuite/libffi.call/cls_6byte.c: Likewise.
705 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
706 * testsuite/libffi.call/cls_7byte.c: Likewise.
707 * testsuite/libffi.call/cls_8byte.c: Likewise.
708 * testsuite/libffi.call/cls_9byte1.c: Likewise.
709 * testsuite/libffi.call/cls_9byte2.c: Likewise.
710 * testsuite/libffi.call/cls_align_double.c: Likewise.
711 * testsuite/libffi.call/cls_align_float.c: Likewise.
712 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
713 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
714 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
715 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
716 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
717 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
718 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
719 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
720 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
721 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
722 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
723 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
724 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
725 * testsuite/libffi.call/huge_struct.c: Likewise.
726 * testsuite/libffi.call/nested_struct.c: Likewise.
727 * testsuite/libffi.call/nested_struct1.c: Likewise.
728 * testsuite/libffi.call/nested_struct10.c: Likewise.
729 * testsuite/libffi.call/nested_struct2.c: Likewise.
730 * testsuite/libffi.call/nested_struct3.c: Likewise.
731 * testsuite/libffi.call/nested_struct4.c: Likewise.
732 * testsuite/libffi.call/nested_struct5.c: Likewise.
733 * testsuite/libffi.call/nested_struct6.c: Likewise.
734 * testsuite/libffi.call/nested_struct7.c: Likewise.
735 * testsuite/libffi.call/nested_struct8.c: Likewise.
736 * testsuite/libffi.call/nested_struct9.c: Likewise.
737 * testsuite/libffi.call/stret_large.c: Likewise.
738 * testsuite/libffi.call/stret_large2.c: Likewise.
739 * testsuite/libffi.call/stret_medium.c: Likewise.
740 * testsuite/libffi.call/stret_medium2.c: Likewise.
741 * testsuite/libffi.call/struct1.c: Likewise.
742 * testsuite/libffi.call/struct1_win32.c: Likewise.
743 * testsuite/libffi.call/struct2.c: Likewise.
744 * testsuite/libffi.call/struct2_win32.c: Likewise.
745 * testsuite/libffi.call/struct3.c: Likewise.
746 * testsuite/libffi.call/struct4.c: Likewise.
747 * testsuite/libffi.call/struct5.c: Likewise.
748 * testsuite/libffi.call/struct6.c: Likewise.
749 * testsuite/libffi.call/struct7.c: Likewise.
750 * testsuite/libffi.call/struct8.c: Likewise.
751 * testsuite/libffi.call/struct9.c: Likewise.
752 * testsuite/libffi.call/testclosure.c: Likewise.
753
754 2012-03-21 Peter Rosin <peda@lysator.liu.se>
755
756 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
757 printing doubles (%lf is for long doubles).
758 (main): Likewise.
759
760 2012-03-21 Peter Rosin <peda@lysator.liu.se>
761
762 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
763 (set_ld_library_path_env_vars): Add the library search dir to PATH
764 (and save PATH for later).
765 (restore_ld_library_path_env_vars): Restore PATH.
766
767 2012-03-20 Peter Rosin <peda@lysator.liu.se>
768
769 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
770 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
771 visible outside the PROC, so that ffi_closure_THISCALL can see it.
772
773 2012-03-20 Peter Rosin <peda@lysator.liu.se>
774
775 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
776 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
777 visible outside the PROC, so that ffi_closure_THISCALL can see it.
778
779 2012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
780
781 * src/m68k/ffi.c: Add MINT support.
782 * src/m68k/sysv.S: Ditto.
783
784 2012-03-19 chennam <csit@axway.com>
785
786 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
787 support.
788
789 2012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
790
791 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
792 ffi_call_VFP().
793 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
794 ffi_closure_VFP.
795 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
796
797 2012-04-02 Peter Bergner <bergner@vnet.ibm.com>
798
799 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
800 Silence casting pointer to integer of different size warning.
801 Delete goto to previously deleted label.
802 (ffi_call): Silence possibly undefined warning.
803 (ffi_closure_helper_SYSV): Declare variable type.
804
805 2012-04-02 Peter Rosin <peda@lysator.liu.se>
806
807 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
808 value in the Intel version as is already done for the AT&T version.
809 (ffi_closure_SYSV): Likewise.
810 (ffi_closure_raw_SYSV): Likewise.
811 (ffi_closure_STDCALL): Likewise.
812
813 2012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
814
815 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
816 just return FFI_BAD_ABI when things are wrong.
817 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
818
819 2012-03-09 David Edelsohn <dje.gcc@gmail.com>
820
821 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
822 change to return value of ffi_closure_helper_DARWIN and load type
823 from return type.
824
825 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
826
827 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
828 long.
829 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
830 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
831 first.
832
833 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
834 (ffi_arg): Set to unsigned long long for x32.
835 (ffi_sarg): Set to long long for x32.
836
837 2012-03-03 H.J. Lu <hongjiu.lu@intel.com>
838
839 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
840
841 2012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
842
843 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
844 windows-like hosts.
845 * configure: Rebuilt.
846
847 2012-02-27 Mikael Pettersson <mikpe@it.uu.se>
848
849 PR libffi/52223
850 * Makefile.am (FLAGS_TO_PASS): Define.
851 * Makefile.in: Regenerate.
852
853 2012-02-23 Anthony Green <green@moxielogic.com>
854
855 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
856 directly.
857
858 2012-02-23 Kai Tietz <ktietz@redhat.com>
859
860 PR libffi/52221
861 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
862 prototype.
863 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
864 thiscall-convention.
865 (ffi_raw_call): Use ffi_prep_args_raw.
866 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
867 implementation for stub.
868
869 2012-02-10 Kai Tietz <ktietz@redhat.com>
870
871 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
872 windows target.
873 * configure: Regenerated.
874
875 2012-02-08 Kai Tietz <ktietz@redhat.com>
876
877 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
878 also FFI_THISCALL.
879 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
880 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
881 (ffi_prep_closure_loc): Add FFI_THISCALL support.
882 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
883 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
884 for thiscall-calling convention.
885 * testsuite/libffi.call/closure_thiscall.c: New test.
886
887 2012-01-28 Kai Tietz <ktietz@redhat.com>
888
889 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
890 argument to prototype for specify calling-convention.
891 (ffi_call): Add support for stdcall/thiscall convention.
892 (ffi_prep_args): Likewise.
893 (ffi_raw_call): Likewise.
894 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
895 FFI_FASTCALL.
896 * src/x86/win32.S (_ffi_call_win32): Add support for
897 fastcall/thiscall calling-convention calls.
898 * testsuite/libffi.call/fastthis1_win32.c: New test.
899 * testsuite/libffi.call/fastthis2_win32.c: New test.
900 * testsuite/libffi.call/fastthis3_win32.c: New test.
901 * testsuite/libffi.call/strlen2_win32.c: New test.
902 * testsuite/libffi.call/many2_win32.c: New test.
903 * testsuite/libffi.call/struct1_win32.c: New test.
904 * testsuite/libffi.call/struct2_win32.c: New test.
905
906 2012-01-23 Uros Bizjak <ubizjak@gmail.com>
907
908 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
909
910 2012-01-23 Anthony Green <green@moxielogic.com>
911 Chris Young <cdyoung@ntlworld.com>
912
913 * configure.ac: Add Amiga support.
914 * configure: Rebuilt.
915
916 2012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
917
918 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
919
920 2012-01-23 Andreas Schwab <schwab@linux-m68k.org>
921
922 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
923 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
924
925 2012-01-19 Jakub Jelinek <jakub@redhat.com>
926
927 PR rtl-optimization/48496
928 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
929
930 2012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
931
932 * configure.ac (i?86-*-*): Set TARGET to X86_64.
933 * configure: Regenerate.
934
935 2011-12-07 Andrew Pinski <apinski@cavium.com>
936
937 PR libffi/50051
938 * src/mips/n32.S: Add ".set mips4".
939
940 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
941
942 * configure: Regenerate.
943
944 2011-11-12 David Gilbert <david.gilbert@linaro.org>
945
946 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
947 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
948 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
949 src/cris/ffi.c, src/prep_cif.c,
950 testsuite/libffi.call/cls_double_va.c,
951 testsuite/libffi.call/cls_longdouble_va.c,
952 testsuite/libffi.call/float_va.c: Many changes to support variadic
953 function calls.
954
955 2011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
956
957 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
958 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
959 softfloat powerpc variants.
960
961 2011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
962
963 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
964 * configure: Rebuilt.
965
966 2011-11-12 Timothy Wall <twall@users.sf.net>
967
968 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
969 alignment of 4 for wince on ARM.
970
971 2011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
972 Anthony Green <green@moxielogic.com>
973
974 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
975 instructions (not available on some cores, like the PPC440).
976
977 2011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
978
979 * m4/ax_enable_builddir: Change from string comparison to numeric
980 comparison for wc output.
981 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
982 X 10.7.
983 * configure: Rebuilt.
984
985 2011-11-12 Anthony Green <green@moxielogic.com>
986
987 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
988 files with debug info.
989 * Makefile.in: Rebuilt.
990
991 2011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
992
993 * README: Update list of supported OpenBSD systems.
994
995 2011-11-12 Anthony Green <green@moxielogic.com>
996
997 * libtool-version: Update.
998 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
999 FFI_DEBUG.
1000 (libffi_la_SOURCES): Remove src/debug.c
1001 (EXTRA_DIST): Add src/debug.c
1002 * Makefile.in: Rebuilt.
1003 * README: Update for 3.0.11.
1004
1005 2011-11-10 Richard Henderson <rth@redhat.com>
1006
1007 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1008 * configure, aclocal.m4: Rebuild.
1009
1010 2011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1011
1012 PR libffi/49594
1013 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
1014 helper reference track the architecture pointer size.
1015
1016 2011-08-25 Andrew Haley <aph@redhat.com>
1017
1018 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1019 instructions.
1020 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
1021
1022 2011-07-11 Andrew Haley <aph@redhat.com>
1023
1024 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1025
1026 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1027
1028 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1029 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1030
1031 2011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1032
1033 PR libffi/46660
1034 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1035 mips-sgi-irix6*.
1036 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1037
1038 2011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1039
1040 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1041 PRId8 instead of %hhu, %hhd.
1042 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1043 PRIu8): Define.
1044 [__sgi__] (PRId8, PRIu8): Define.
1045
1046 2011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1047
1048 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1049 Define.
1050 Use them to handle ELF vs. ECOFF differences.
1051 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1052
1053 2011-03-30 Timothy Wall <twall@users.sf.net>
1054
1055 * src/powerpc/darwin.S: Fix unknown FDE encoding.
1056 * src/powerpc/darwin_closure.S: ditto.
1057
1058 2011-02-25 Anthony Green <green@moxielogic.com>
1059
1060 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1061 32-bit ABIs.
1062
1063 2011-02-15 Anthony Green <green@moxielogic.com>
1064
1065 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1066 * configure: Rebuilt.
1067
1068 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1069
1070 * configure: Regenerate.
1071
1072 2011-02-13 Anthony Green <green@moxielogic.com>
1073
1074 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
1075 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1076 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1077
1078 * src/prep_cif.c (initialize_aggregate): Convert assertion into
1079 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
1080
1081 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1082 just return FFI_BAD_ABI when things are wrong.
1083 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1084 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1085 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1086 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1087 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1088
1089 2011-02-11 Anthony Green <green@moxielogic.com>
1090
1091 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1092 just return FFI_BAD_ABI when things are wrong.
1093
1094 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
1095
1096 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1097
1098 2011-02-09 Stuart Shelton <srcshelton@gmail.com>
1099
1100 http://bugs.gentoo.org/show_bug.cgi?id=286911
1101 * src/mips/ffitarget.h: Clean up error messages.
1102 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1103 ffi_raw*.
1104 * include/ffi.h.in: Add pragma for SGI compiler.
1105
1106 2011-02-09 Anthony Green <green@moxielogic.com>
1107
1108 * configure.ac: Add powerpc64-*-darwin* support.
1109
1110 2011-02-09 Anthony Green <green@moxielogic.com>
1111
1112 * README: Mention Interix.
1113
1114 2011-02-09 Jonathan Callen <abcd@gentoo.org>
1115
1116 * configure.ac: Add Interix to win32/cygwin/mingw case.
1117 * configure: Ditto.
1118 * src/closures.c: Treat Interix like Cygwin, instead of as a
1119 generic win32.
1120
1121 2011-02-09 Anthony Green <green@moxielogic.com>
1122
1123 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1124 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1125 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1126 (ffi_prep_closure_loc): Check for bad ABI.
1127 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1128 (initialize_aggregate): Check for bad types.
1129
1130 2011-02-09 Landon Fuller <landonf@plausible.coop>
1131
1132 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1133 src/arm/trampoline.S.
1134 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1135 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1136 * src/arm/ffi.c (ffi_trampoline_table)
1137 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1138 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1139 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1140 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1141 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1142 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1143 separately.
1144 * src/arm/sysv.S: Handle Apple iOS host.
1145 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
1146 * build-ios.sh: New file.
1147 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
1148 * README: Mention ARM iOS.
1149
1150 2011-02-08 Oren Held <orenhe@il.ibm.com>
1151
1152 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1153 redefinition of mallinfo on HP-UX.
1154
1155 2011-02-08 Ginn Chen <ginn.chen@oracle.com>
1156
1157 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
1158 aggregate return ABI. Flush cache.
1159 (ffi_prep_closure_loc): Flush cache.
1160
1161 2011-02-11 Anthony Green <green@moxielogic.com>
1162
1163 From Tom Honermann <tom.honermann@oracle.com>:
1164 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1165 AIX. Declare .ffi_prep_args. Insert nops after branch
1166 instructions so that the AIX linker can insert TOC reload
1167 instructions.
1168 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1169
1170 2011-02-08 Ed <ed@kdtc.net>
1171
1172 * src/powerpc/asm.h: Fix grammar nit in comment.
1173
1174 2011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1175
1176 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1177
1178 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1179
1180 PR libffi/46661
1181 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1182 uintptr_t first.
1183 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1184
1185 2011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1186
1187 * configure.ac: Fix x86 test for pc related relocs.
1188 * configure: Rebuilt.
1189
1190 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1191
1192 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1193 Handle case when CPU variant does not have long double support.
1194 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1195 and cores with soft floating point.
1196
1197 2011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1198
1199 * configure.ac: Add mips*-*-rtems* support.
1200 * configure: Regenerate.
1201 * src/mips/ffitarget.h: Ensure needed constants are available
1202 for targets which do not have sgidefs.h.
1203
1204 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1205
1206 PR target/40125
1207 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1208 * configure: Regenerate.
1209
1210 2010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1211
1212 PR libffi/29152
1213 PR libffi/42378
1214 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1215 update comments.
1216 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1217 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1218 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1219 update comments.
1220 * src/powerpc/ffi_darwin.c: Likewise.
1221
1222 2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1223
1224 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1225 backslashes.
1226 (libffi_cv_as_string_pseudo_op): Likewise.
1227 * configure: Regenerate.
1228
1229 2010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1230
1231 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1232 (ffi_closure_VFP): Same.
1233 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1234 directive.
1235
1236 2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1237
1238 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1239 (PRIuPTR): Define.
1240
1241 2010-11-29 Richard Henderson <rth@redhat.com>
1242 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1243
1244 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1245 (.eh_frame): Use FDE_ENCODING.
1246 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1247
1248 2010-11-22 Jacek Caban <jacek@codeweavers.com>
1249
1250 * configure.ac: Check for symbol underscores on mingw-w64.
1251 * configure: Rebuilt.
1252 * src/x86/win64.S: Correctly access extern symbols in respect to
1253 underscores.
1254
1255 2010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1256
1257 * testsuite/lib/libffi-dg.exp: Rename ...
1258 * testsuite/lib/libffi.exp: ... to this.
1259 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1260 * libffi/testsuite/libffi.special/special.exp: Likewise.
1261
1262 2010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1263
1264 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1265 code, new parameter, and return value. Update comments.
1266 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1267 call to layout_vfp_args().
1268 (ffi_call_SYSV): Update declaration.
1269 (ffi_call_VFP): New declaration.
1270 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1271 when ABI is FFI_VFP.
1272 (ffi_closure_VFP): New declaration.
1273 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1274 ffi_prep_incoming_args_SYSV().
1275 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1276 case handling.
1277 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1278 construction under VFP hard-float.
1279 (rec_vfp_type_p): New function.
1280 (vfp_type_p): Same.
1281 (place_vfp_arg): Same.
1282 (layout_vfp_args): Same.
1283 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1284 based on __ARM_PCS_VFP.
1285 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1286 fields.
1287 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1288 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1289 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1290 direct call. Move function pointer load upwards.
1291 (ffi_call_VFP): New function.
1292 (ffi_closure_VFP): Same.
1293
1294 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1295 (dg-skip-if): New function.
1296 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1297 and compiler options include -mfloat-abi=hard.
1298 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1299
1300 2010-10-01 Jakub Jelinek <jakub@redhat.com>
1301
1302 PR libffi/45677
1303 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1304 a multiple of 8.
1305 * testsuite/libffi.call/many2.c: New test.
1306
1307 2010-08-20 Mark Wielaard <mjw@redhat.com>
1308
1309 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1310 returns NULL.
1311
1312 2010-08-09 Andreas Tobler <andreast@fgznet.ch>
1313
1314 * configure.ac: Add target powerpc64-*-freebsd*.
1315 * configure: Regenerate.
1316 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1317 -mlong-double-128 only to linux targets.
1318 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1319 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1320 * testsuite/libffi.call/huge_struct.c: Likewise.
1321
1322 2010-08-05 Dan Witte <dwitte@mozilla.com>
1323
1324 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1325 debug CRT when --enable-debug is given.
1326 * configure.ac: Define it.
1327 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1328
1329 2010-08-04 Dan Witte <dwitte@mozilla.com>
1330
1331 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1332 platforms.
1333 * src/x86/ffi.c: Remove redundant ifdef checks.
1334 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1335 for X86_ANY so return value space doesn't get added twice.
1336
1337 2010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1338
1339 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1340
1341 2010-07-22 Dan Witte <dwitte@mozilla.com>
1342
1343 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1344 * src/prep_cif.c: Fix ABI assertion.
1345 * src/cris/ffi.c: Ditto.
1346
1347 2010-07-10 Evan Phoenix <evan@fallingsnow.net>
1348
1349 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1350
1351 2010-07-07 Dan Horák <dan@danny.cz>
1352
1353 * include/ffi.h.in: Protect #define with #ifndef.
1354 * src/powerpc/ffitarget.h: Ditto.
1355 * src/s390/ffitarget.h: Ditto.
1356 * src/sparc/ffitarget.h: Ditto.
1357
1358 2010-07-07 Neil Roberts <neil@linux.intel.com>
1359
1360 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1361 16-bytes.
1362
1363 2010-07-02 Jakub Jelinek <jakub@redhat.com>
1364
1365 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1366 * Makefile.in: Regenerated.
1367
1368 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1369
1370 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1371 output, too.
1372 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1373 (libffi_cv_as_string_pseudo_op): Check for .string.
1374 * configure: Regenerate.
1375 * fficonfig.h.in: Regenerate.
1376 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1377
1378 2010-05-11 Dan Witte <dwitte@mozilla.com>
1379
1380 * doc/libffi.tex: Document previous change.
1381
1382 2010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1383
1384 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1385
1386 2010-05-05 Michael Kohler <michaelkohler@live.com>
1387
1388 * src/dlmalloc.c (dlfree): Fix spelling.
1389 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1390 * configure.ac: Ditto.
1391 * configure: Rebuilt.
1392
1393 2010-04-13 Dan Witte <dwitte@mozilla.com>
1394
1395 * msvcc.sh: Build with -W3 instead of -Wall.
1396 * src/powerpc/ffi_darwin.c: Remove build warnings.
1397 * src/x86/ffi.c: Ditto.
1398 * src/x86/ffitarget.h: Ditto.
1399
1400 2010-04-12 Dan Witte <dwitte@mozilla.com>
1401 Walter Meinl <wuno@lsvw.de>
1402
1403 * configure.ac: Add OS/2 support.
1404 * configure: Rebuilt.
1405 * src/closures.c: Ditto.
1406 * src/dlmalloc.c: Ditto.
1407 * src/x86/win32.S: Ditto.
1408
1409 2010-04-07 Jakub Jelinek <jakub@redhat.com>
1410
1411 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
1412
1413 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1414
1415 * Makefile.in: Regenerate.
1416 * aclocal.m4: Regenerate.
1417 * include/Makefile.in: Regenerate.
1418 * man/Makefile.in: Regenerate.
1419 * testsuite/Makefile.in: Regenerate.
1420
1421 2010-03-30 Dan Witte <dwitte@mozilla.com>
1422
1423 * msvcc.sh: Disable build warnings.
1424 * README (tested): Clarify windows build procedure.
1425
1426 2010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1427
1428 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1429 * configure: Regenerate.
1430 * fficonfig.h.in: Regenerate.
1431 * libffi/src/x86/unix64.S (.eh_frame)
1432 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1433
1434 2010-03-14 Matthias Klose <doko@ubuntu.com>
1435
1436 * src/x86/ffi64.c: Fix typo in comment.
1437 * src/x86/ffi.c: Use /* ... */ comment style.
1438
1439 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1440
1441 * doc/libffi.texi (The Closure API): Fix typo.
1442 * doc/libffi.info: Remove.
1443
1444 2010-02-15 Matthias Klose <doko@ubuntu.com>
1445
1446 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1447 __ARM_ARCH_7EM__.
1448
1449 2010-01-15 Anthony Green <green@redhat.com>
1450
1451 * README: Add notes on building with Microsoft Visual C++.
1452
1453 2010-01-15 Daniel Witte <dwitte@mozilla.com>
1454
1455 * msvcc.sh: New file.
1456
1457 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1458 * src/x86/ffi.c: Tweak function declaration and remove excess
1459 parens.
1460 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1461 ffi_closure.
1462
1463 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1464 function ffi_call_win32 on X86_WIN32.
1465 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1466 (ffi_call_STDCALL): Remove.
1467
1468 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1469 to ffi_prep_cif_machdep for x86.
1470 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1471
1472 2010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1473
1474 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
1475 Sun Studio compiler compatibility.
1476
1477 2010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1478
1479 * doc/libffi.texi: Add closure example.
1480
1481 2010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1482
1483 PR libffi/40701
1484 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1485 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1486 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1487 alpha*-dec-osf*.
1488 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1489 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1490 * testsuite/libffi.call/return_ll1.c: Likewise.
1491 * testsuite/libffi.call/stret_medium2.c: Likewise.
1492 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1493 MAP_FAILED to char *.
1494
1495 2010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1496
1497 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1498
1499 2009-12-31 Anthony Green <green@redhat.com>
1500
1501 * README: Update for libffi 3.0.9.
1502
1503 2009-12-27 Matthias Klose <doko@ubuntu.com>
1504
1505 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1506 appropriate.
1507 * configure: Rebuilt.
1508
1509 2009-12-26 Anthony Green <green@redhat.com>
1510
1511 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1512 avr32*-*-*.
1513 * testsuite/libffi.call/cls_double_va.c: Ditto.
1514
1515 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1516
1517 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1518 and inttypes.h.
1519 * testsuite/libffi.special/unwindtest.cc: Ditto.
1520
1521 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1522
1523 * configure.ac: Add amd64-*-openbsd*.
1524 * configure: Rebuilt.
1525 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1526 openbsd programs with -lpthread.
1527
1528 2009-12-26 Anthony Green <green@redhat.com>
1529
1530 * testsuite/libffi.call/cls_double_va.c,
1531 testsuite/libffi.call/cls_longdouble.c,
1532 testsuite/libffi.call/cls_longdouble_va.c,
1533 testsuite/libffi.call/cls_pointer.c,
1534 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1535 mips*-*-* and arm*-*-*.
1536 * testsuite/libffi.call/cls_align_longdouble_split.c,
1537 testsuite/libffi.call/cls_align_longdouble_split2.c,
1538 testsuite/libffi.call/stret_medium2.c,
1539 testsuite/libffi.call/stret_medium.c,
1540 testsuite/libffi.call/stret_large.c,
1541 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1542
1543 2009-12-31 Kay Tietz <ktietz70@googlemail.com>
1544
1545 * testsuite/libffi.call/ffitest.h,
1546 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1547 definitions.
1548
1549 2009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1550
1551 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1552 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1553 * configure: Rebuilt.
1554 * Makefile.in: Rebuilt.
1555
1556 2009-12-31 Anthony Green <green@redhat.com>
1557 Blake Chaffin.
1558
1559 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1560 Chaffin @ Apple.
1561
1562 2009-12-28 David Edelsohn <edelsohn@gnu.org>
1563
1564 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1565 local variables.
1566 (aix_adjust_aggregate_sizes): New function.
1567 (ffi_prep_cif_machdep): Call it.
1568
1569 2009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1570
1571 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1572 * configure: Regenerate.
1573 * fficonfig.h.in: Likewise.
1574 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1575 Solaris/x86.
1576
1577 2009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1578
1579 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1580 when a float arguments is passed in memory.
1581 (ffi_closure_helper_SYSV): Mark general registers as used up when
1582 a 64bit or soft-float long double argument is passed in memory.
1583
1584 2009-12-25 Matthias Klose <doko@ubuntu.com>
1585
1586 * man/ffi_call.3: Fix #include in examples.
1587 * doc/libffi.texi: Add dircategory.
1588
1589 2009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1590
1591 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1592 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1593 IRIX MIPSPro c99.
1594 * include/ffi_common.h: Added '__sgi' define to non
1595 '__attribute__((__mode__()))' integer typedefs.
1596 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
1597 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1598 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1599 FFI_LONGDOUBLE support and alignment(N32 only).
1600 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1601 fixed non '__attribute__((__mode__()))' integer typedefs.
1602 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1603 since they are Linux/GNU Assembler specific.
1604
1605 2009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1606
1607 * configure.ac, Makefile.am, src/avr32/ffi.c,
1608 src/avr32/ffitarget.h,
1609 src/avr32/sysv.S: Add AVR32 port.
1610 * configure, Makefile.in: Rebuilt.
1611
1612 2009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1613
1614 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1615 * configure: Regenerate.
1616
1617 2009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1618
1619 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1620
1621 2009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1622
1623 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1624 type on HP-UX.
1625
1626 2012-02-13 Kai Tietz <ktietz@redhat.com>
1627
1628 PR libffi/52221
1629 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1630 support for X86_WIN32.
1631 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1632
1633 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1634
1635 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1636 double' arguments.
1637
1638 2009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1639
1640 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1641
1642 2009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1643
1644 PR libffi/40700
1645 * src/closures.c [X86_64 && __sun__ && __svr4__]
1646 (FFI_MMAP_EXEC_WRIT): Define.
1647
1648 2009-12-08 David Daney <ddaney@caviumnetworks.com>
1649
1650 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1651 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1652 * testsuite/libffi.call/stret_large.c: Same.
1653 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1654 * testsuite/libffi.call/stret_large2.c: Same.
1655 * testsuite/libffi.call/stret_medium2.c: Same.
1656
1657 2009-12-07 David Edelsohn <edelsohn@gnu.org>
1658
1659 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1660 typo.
1661
1662 2009-12-05 David Edelsohn <edelsohn@gnu.org>
1663
1664 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1665 code.
1666 * src/powerpc/aix_closure.S: Same.
1667
1668 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1669
1670 * Makefile.in: Regenerate.
1671 * configure: Regenerate.
1672 * include/Makefile.in: Regenerate.
1673 * man/Makefile.in: Regenerate.
1674 * testsuite/Makefile.in: Regenerate.
1675
1676 2009-12-04 David Edelsohn <edelsohn@gnu.org>
1677
1678 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
1679 linux64_closure.S.
1680
1681 2009-12-04 Uros Bizjak <ubizjak@gmail.com>
1682
1683 PR libffi/41908
1684 * src/x86/ffi64.c (classify_argument): Update from
1685 gcc/config/i386/i386.c.
1686 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1687 SSE registers directly.
1688 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1689 for x86_64 linux targets.
1690
1691 2009-12-04 David Edelsohn <edelsohn@gnu.org>
1692
1693 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1694 pfr for long double split between fpr13 and stack.
1695
1696 2009-12-03 David Edelsohn <edelsohn@gnu.org>
1697
1698 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1699 fparg_count twice for long double.
1700
1701 2009-12-03 David Edelsohn <edelsohn@gnu.org>
1702
1703 PR libffi/42243
1704 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1705
1706 2009-12-03 Uros Bizjak <ubizjak@gmail.com>
1707
1708 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1709 Remove xfails for x86 linux targets.
1710
1711 2009-12-02 David Edelsohn <edelsohn@gnu.org>
1712
1713 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1714 case.
1715
1716 2009-12-01 David Edelsohn <edelsohn@gnu.org>
1717
1718 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1719 register usage. Call ffi_prep_args directly. Add long double
1720 return value support.
1721 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1722 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1723 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1724 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1725 mode.
1726 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1727 into case.
1728 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1729 Allocate result area between params and FPRs.
1730
1731 2009-11-30 David Edelsohn <edelsohn@gnu.org>
1732
1733 PR target/35484
1734 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1735 AIX64.
1736 * src/powerpc/aix.S: Implement AIX64 version.
1737 * src/powerpc/aix_closure.S: Implement AIX64 version.
1738 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1739 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1740 support.
1741 (ffi_prep_cif_machdep): Same.
1742 (ffi_call): Same.
1743 (ffi_closure_helper_DARWIN): Same.
1744
1745 2009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1746
1747 PR libffi/41908
1748 * testsuite/libffi.call/testclosure.c: New test.
1749
1750 2009-09-28 Kai Tietz <kai.tietz@onevision.com>
1751
1752 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1753 assembly version use of ___chkstk.
1754
1755 2009-09-23 Matthias Klose <doko@ubuntu.com>
1756
1757 PR libffi/40242, PR libffi/41443
1758 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1759 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1760 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1761 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1762 for -mfloat-abi=softfp to work.
1763
1764 2009-09-17 Loren J. Rittle <ljrittle@acm.org>
1765
1766 PR testsuite/32843 (strikes again)
1767 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1768 enable proper extension on char and short.
1769
1770 2009-09-15 David Daney <ddaney@caviumnetworks.com>
1771
1772 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1773 handling for FFI_TYPE_POINTER.
1774 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1775 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1776 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1777 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1778 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1779 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1780 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1781 structure and pointer returns.
1782 (ffi_closure_N32): Add handling for pointer returns.
1783 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1784 calc_n32_return_struct_flags): Handle soft-float.
1785 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1786 (ffi_call_N32): Declare proper argument types.
1787 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1788 soft-float.
1789
1790 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1791
1792 * configure.ac (AC_PREREQ): Bump to 2.64.
1793
1794 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1795
1796 * Makefile.am (install-html, install-pdf): Remove.
1797 * Makefile.in: Regenerate.
1798
1799 * Makefile.in: Regenerate.
1800 * aclocal.m4: Regenerate.
1801 * configure: Regenerate.
1802 * fficonfig.h.in: Regenerate.
1803 * include/Makefile.in: Regenerate.
1804 * man/Makefile.in: Regenerate.
1805 * testsuite/Makefile.in: Regenerate.
1806
1807 2011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1808
1809 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1810 * configure: Rebuilt.
1811
1812 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1813
1814 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1815
1816 2009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1817
1818 PR libffi/40807
1819 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1820 return types for X86_WIN32.
1821 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1822 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1823 _ffi_closure_STDCALL): Likewise.
1824
1825 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1826 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1827
1828 2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1829
1830 PR testsuite/40699
1831 PR testsuite/40707
1832 PR testsuite/40709
1833 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1834 2009-06-30 commits.
1835
1836 2009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1837
1838 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1839 to "" before adding paths. (This reinstates an assignment that
1840 was removed by my 2009-06-30 commit, but changes the initial
1841 value from "." to "".)
1842
1843 2009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1844
1845 PR testsuite/40601
1846 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1847 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1848 empty.
1849
1850 2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1851
1852 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1853 to ld_library_path. Use add_path. Add just find_libgcc_s
1854 to ld_library_path, not every libgcc multilib directory.
1855
1856 2009-06-16 Wim Lewis <wiml@hhhh.org>
1857
1858 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1859 supposed to be callee-saved.
1860 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1861 return buffer for odd-size structs.
1862
1863 2009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1864
1865 PR libffi/40444
1866 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1867 allow_stack_execute for Darwin.
1868
1869 2009-06-16 Andrew Haley <aph@redhat.com>
1870
1871 * configure.ac (TARGETDIR): Add missing blank lines.
1872 * configure: Regenerate.
1873
1874 2009-06-16 Andrew Haley <aph@redhat.com>
1875
1876 * testsuite/libffi.call/cls_align_sint64.c,
1877 testsuite/libffi.call/cls_align_uint64.c,
1878 testsuite/libffi.call/cls_longdouble_va.c,
1879 testsuite/libffi.call/cls_ulonglong.c,
1880 testsuite/libffi.call/return_ll1.c,
1881 testsuite/libffi.call/stret_medium2.c: Fix printf format
1882 specifiers.
1883 * testsuite/libffi.call/ffitest.h,
1884 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1885
1886 2009-06-15 Andrew Haley <aph@redhat.com>
1887
1888 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1889 * testsuite/libffi.call/err_bad_abi.c: Likewise.
1890
1891 2009-06-12 Andrew Haley <aph@redhat.com>
1892
1893 * Makefile.am: Remove info_TEXINFOS.
1894
1895 2009-06-12 Andrew Haley <aph@redhat.com>
1896
1897 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1898 testsuite/libffi.call/cls_align_uint64.c,
1899 testsuite/libffi.call/cls_ulonglong.c,
1900 testsuite/libffi.call/return_ll1.c,
1901 testsuite/libffi.call/stret_medium2.c: Fix printf format
1902 specifiers.
1903 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1904
1905 2009-06-11 Timothy Wall <twall@users.sf.net>
1906
1907 * Makefile.am,
1908 configure.ac,
1909 include/ffi.h.in,
1910 include/ffi_common.h,
1911 src/closures.c,
1912 src/dlmalloc.c,
1913 src/x86/ffi.c,
1914 src/x86/ffitarget.h,
1915 src/x86/win64.S (new),
1916 README: Added win64 support (mingw or MSVC)
1917 * Makefile.in,
1918 include/Makefile.in,
1919 man/Makefile.in,
1920 testsuite/Makefile.in,
1921 configure,
1922 aclocal.m4: Regenerated
1923 * ltcf-c.sh: properly escape cygwin/w32 path
1924 * man/ffi_call.3: Clarify size requirements for return value.
1925 * src/x86/ffi64.c: Fix filename in comment.
1926 * src/x86/win32.S: Remove unused extern.
1927
1928 * testsuite/libffi.call/closure_fn0.c,
1929 testsuite/libffi.call/closure_fn1.c,
1930 testsuite/libffi.call/closure_fn2.c,
1931 testsuite/libffi.call/closure_fn3.c,
1932 testsuite/libffi.call/closure_fn4.c,
1933 testsuite/libffi.call/closure_fn5.c,
1934 testsuite/libffi.call/closure_fn6.c,
1935 testsuite/libffi.call/closure_stdcall.c,
1936 testsuite/libffi.call/cls_12byte.c,
1937 testsuite/libffi.call/cls_16byte.c,
1938 testsuite/libffi.call/cls_18byte.c,
1939 testsuite/libffi.call/cls_19byte.c,
1940 testsuite/libffi.call/cls_1_1byte.c,
1941 testsuite/libffi.call/cls_20byte.c,
1942 testsuite/libffi.call/cls_20byte1.c,
1943 testsuite/libffi.call/cls_24byte.c,
1944 testsuite/libffi.call/cls_2byte.c,
1945 testsuite/libffi.call/cls_3_1byte.c,
1946 testsuite/libffi.call/cls_3byte1.c,
1947 testsuite/libffi.call/cls_3byte2.c,
1948 testsuite/libffi.call/cls_4_1byte.c,
1949 testsuite/libffi.call/cls_4byte.c,
1950 testsuite/libffi.call/cls_5_1_byte.c,
1951 testsuite/libffi.call/cls_5byte.c,
1952 testsuite/libffi.call/cls_64byte.c,
1953 testsuite/libffi.call/cls_6_1_byte.c,
1954 testsuite/libffi.call/cls_6byte.c,
1955 testsuite/libffi.call/cls_7_1_byte.c,
1956 testsuite/libffi.call/cls_7byte.c,
1957 testsuite/libffi.call/cls_8byte.c,
1958 testsuite/libffi.call/cls_9byte1.c,
1959 testsuite/libffi.call/cls_9byte2.c,
1960 testsuite/libffi.call/cls_align_double.c,
1961 testsuite/libffi.call/cls_align_float.c,
1962 testsuite/libffi.call/cls_align_longdouble.c,
1963 testsuite/libffi.call/cls_align_longdouble_split.c,
1964 testsuite/libffi.call/cls_align_longdouble_split2.c,
1965 testsuite/libffi.call/cls_align_pointer.c,
1966 testsuite/libffi.call/cls_align_sint16.c,
1967 testsuite/libffi.call/cls_align_sint32.c,
1968 testsuite/libffi.call/cls_align_sint64.c,
1969 testsuite/libffi.call/cls_align_uint16.c,
1970 testsuite/libffi.call/cls_align_uint32.c,
1971 testsuite/libffi.call/cls_align_uint64.c,
1972 testsuite/libffi.call/cls_dbls_struct.c,
1973 testsuite/libffi.call/cls_double.c,
1974 testsuite/libffi.call/cls_double_va.c,
1975 testsuite/libffi.call/cls_float.c,
1976 testsuite/libffi.call/cls_longdouble.c,
1977 testsuite/libffi.call/cls_longdouble_va.c,
1978 testsuite/libffi.call/cls_multi_schar.c,
1979 testsuite/libffi.call/cls_multi_sshort.c,
1980 testsuite/libffi.call/cls_multi_sshortchar.c,
1981 testsuite/libffi.call/cls_multi_uchar.c,
1982 testsuite/libffi.call/cls_multi_ushort.c,
1983 testsuite/libffi.call/cls_multi_ushortchar.c,
1984 testsuite/libffi.call/cls_pointer.c,
1985 testsuite/libffi.call/cls_pointer_stack.c,
1986 testsuite/libffi.call/cls_schar.c,
1987 testsuite/libffi.call/cls_sint.c,
1988 testsuite/libffi.call/cls_sshort.c,
1989 testsuite/libffi.call/cls_uchar.c,
1990 testsuite/libffi.call/cls_uint.c,
1991 testsuite/libffi.call/cls_ulonglong.c,
1992 testsuite/libffi.call/cls_ushort.c,
1993 testsuite/libffi.call/err_bad_abi.c,
1994 testsuite/libffi.call/err_bad_typedef.c,
1995 testsuite/libffi.call/float2.c,
1996 testsuite/libffi.call/huge_struct.c,
1997 testsuite/libffi.call/nested_struct.c,
1998 testsuite/libffi.call/nested_struct1.c,
1999 testsuite/libffi.call/nested_struct10.c,
2000 testsuite/libffi.call/nested_struct2.c,
2001 testsuite/libffi.call/nested_struct3.c,
2002 testsuite/libffi.call/nested_struct4.c,
2003 testsuite/libffi.call/nested_struct5.c,
2004 testsuite/libffi.call/nested_struct6.c,
2005 testsuite/libffi.call/nested_struct7.c,
2006 testsuite/libffi.call/nested_struct8.c,
2007 testsuite/libffi.call/nested_struct9.c,
2008 testsuite/libffi.call/problem1.c,
2009 testsuite/libffi.call/return_ldl.c,
2010 testsuite/libffi.call/return_ll1.c,
2011 testsuite/libffi.call/stret_large.c,
2012 testsuite/libffi.call/stret_large2.c,
2013 testsuite/libffi.call/stret_medium.c,
2014 testsuite/libffi.call/stret_medium2.c,
2015 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2016 of checking for MMAP. Use intptr_t instead of long casts.
2017
2018 2009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
2019
2020 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2021 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2022 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
2023
2024 2009-06-09 Andrew Haley <aph@redhat.com>
2025
2026 * src/x86/freebsd.S: Add missing file.
2027
2028 2009-06-08 Andrew Haley <aph@redhat.com>
2029
2030 Import from libffi 3.0.8:
2031
2032 * doc/libffi.texi: New file.
2033 * doc/libffi.info: Likewise.
2034 * doc/stamp-vti: Likewise.
2035 * man/Makefile.am: New file.
2036 * man/ffi_call.3: New file.
2037
2038 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2039 src/dlmalloc.c.
2040 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2041
2042 * configure.ac: Bump version to 3.0.8.
2043 parisc*-*-linux*: Add.
2044 i386-*-freebsd* | i386-*-openbsd*: Add.
2045 powerpc-*-beos*: Add.
2046 AM_CONDITIONAL X86_FREEBSD: Add.
2047 AC_CONFIG_FILES: Add man/Makefile.
2048
2049 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2050
2051 2009-06-08 Andrew Haley <aph@redhat.com>
2052
2053 * README: Import from libffi 3.0.8.
2054
2055 2009-06-08 Andrew Haley <aph@redhat.com>
2056
2057 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
2058 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2059 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2060 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2061
2062 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2063 * testsuite/libffi.call/stret_medium.c: Likewise.
2064 * testsuite/libffi.call/stret_large2.c: Likewise.
2065 * testsuite/libffi.call/stret_large.c: Likewise.
2066
2067 2008-12-26 Timothy Wall <twall@users.sf.net>
2068
2069 * testsuite/libffi.call/cls_longdouble.c,
2070 testsuite/libffi.call/cls_longdouble_va.c,
2071 testsuite/libffi.call/cls_align_longdouble.c,
2072 testsuite/libffi.call/cls_align_longdouble_split.c,
2073 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2074 failures on x86_64 cygwin/mingw.
2075
2076 2008-12-22 Timothy Wall <twall@users.sf.net>
2077
2078 * testsuite/libffi.call/closure_fn0.c,
2079 testsuite/libffi.call/closure_fn1.c,
2080 testsuite/libffi.call/closure_fn2.c,
2081 testsuite/libffi.call/closure_fn3.c,
2082 testsuite/libffi.call/closure_fn4.c,
2083 testsuite/libffi.call/closure_fn5.c,
2084 testsuite/libffi.call/closure_fn6.c,
2085 testsuite/libffi.call/closure_loc_fn0.c,
2086 testsuite/libffi.call/closure_stdcall.c,
2087 testsuite/libffi.call/cls_align_pointer.c,
2088 testsuite/libffi.call/cls_pointer.c,
2089 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2090 pointer to integer (intptr_t).
2091 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
2092
2093 2008-07-24 Anthony Green <green@redhat.com>
2094
2095 * testsuite/libffi.call/cls_dbls_struct.c,
2096 testsuite/libffi.call/cls_double_va.c,
2097 testsuite/libffi.call/cls_longdouble.c,
2098 testsuite/libffi.call/cls_longdouble_va.c,
2099 testsuite/libffi.call/cls_pointer.c,
2100 testsuite/libffi.call/cls_pointer_stack.c,
2101 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2102 compiler warnings.
2103
2104 2008-03-04 Anthony Green <green@redhat.com>
2105 Blake Chaffin
2106 hos@tamanegi.org
2107
2108 * testsuite/libffi.call/cls_align_longdouble_split2.c
2109 testsuite/libffi.call/cls_align_longdouble_split.c
2110 testsuite/libffi.call/cls_dbls_struct.c
2111 testsuite/libffi.call/cls_double_va.c
2112 testsuite/libffi.call/cls_longdouble.c
2113 testsuite/libffi.call/cls_longdouble_va.c
2114 testsuite/libffi.call/cls_pointer.c
2115 testsuite/libffi.call/cls_pointer_stack.c
2116 testsuite/libffi.call/err_bad_abi.c
2117 testsuite/libffi.call/err_bad_typedef.c
2118 testsuite/libffi.call/stret_large2.c
2119 testsuite/libffi.call/stret_large.c
2120 testsuite/libffi.call/stret_medium2.c
2121 testsuite/libffi.call/stret_medium.c: New tests from Apple.
2122
2123 2009-06-05 Andrew Haley <aph@redhat.com>
2124
2125 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2126 libffi.
2127
2128 2009-06-04 Andrew Haley <aph@redhat.com>
2129
2130 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2131 stdcall changes.
2132
2133 2008-02-26 Anthony Green <green@redhat.com>
2134 Thomas Heller <theller@ctypes.org>
2135
2136 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2137 comment.
2138
2139 2008-02-03 Timothy Wall <twall@users.sf.net>
2140
2141 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2142 offset based on code pointer, not data pointer.
2143
2144 2008-01-31 Timothy Wall <twall@users.sf.net>
2145
2146 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2147 closures.
2148 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2149 closures.
2150 * src/x86/win32.S: Add assembly for stdcall closure.
2151 * src/x86/ffi.c: Initialize stdcall closure trampoline.
2152
2153 2009-06-04 Andrew Haley <aph@redhat.com>
2154
2155 * include/ffi.h.in: Change void (*)() to void (*)(void).
2156 * src/x86/ffi.c: Likewise.
2157
2158 2009-06-04 Andrew Haley <aph@redhat.com>
2159
2160 * src/powerpc/ppc_closure.S: Insert licence header.
2161 * src/powerpc/linux64_closure.S: Likewise.
2162 * src/m68k/sysv.S: Likewise.
2163
2164 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2165 * src/powerpc/ffi.c: Likewise.
2166 * src/powerpc/ffi_darwin.c: Likewise.
2167 * src/m32r/ffi.c: Likewise.
2168 * src/sh64/ffi.c: Likewise.
2169 * src/x86/ffi64.c: Likewise.
2170 * src/alpha/ffi.c: Likewise.
2171 * src/alpha/osf.S: Likewise.
2172 * src/frv/ffi.c: Likewise.
2173 * src/s390/ffi.c: Likewise.
2174 * src/pa/ffi.c: Likewise.
2175 * src/pa/hpux32.S: Likewise.
2176 * src/ia64/unix.S: Likewise.
2177 * src/ia64/ffi.c: Likewise.
2178 * src/sparc/ffi.c: Likewise.
2179 * src/mips/ffi.c: Likewise.
2180 * src/sh/ffi.c: Likewise.
2181
2182 2008-02-15 David Daney <ddaney@avtrex.com>
2183
2184 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2185 Define (conditionally), and use it to include cachectl.h.
2186 (ffi_prep_closure_loc): Fix cache flushing.
2187 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
2188
2189 2009-06-04 Andrew Haley <aph@redhat.com>
2190
2191 include/ffi.h.in,
2192 src/arm/ffitarget.h,
2193 src/arm/ffi.c,
2194 src/arm/sysv.S,
2195 src/powerpc/ffitarget.h,
2196 src/closures.c,
2197 src/sh64/ffitarget.h,
2198 src/sh64/ffi.c,
2199 src/sh64/sysv.S,
2200 src/types.c,
2201 src/x86/ffi64.c,
2202 src/x86/ffitarget.h,
2203 src/x86/win32.S,
2204 src/x86/darwin.S,
2205 src/x86/ffi.c,
2206 src/x86/sysv.S,
2207 src/x86/unix64.S,
2208 src/alpha/ffitarget.h,
2209 src/alpha/ffi.c,
2210 src/alpha/osf.S,
2211 src/m68k/ffitarget.h,
2212 src/frv/ffitarget.h,
2213 src/frv/ffi.c,
2214 src/s390/ffitarget.h,
2215 src/s390/sysv.S,
2216 src/cris/ffitarget.h,
2217 src/pa/linux.S,
2218 src/pa/ffitarget.h,
2219 src/pa/ffi.c,
2220 src/raw_api.c,
2221 src/ia64/ffitarget.h,
2222 src/ia64/unix.S,
2223 src/ia64/ffi.c,
2224 src/ia64/ia64_flags.h,
2225 src/java_raw_api.c,
2226 src/debug.c,
2227 src/sparc/v9.S,
2228 src/sparc/ffitarget.h,
2229 src/sparc/ffi.c,
2230 src/sparc/v8.S,
2231 src/mips/ffitarget.h,
2232 src/mips/n32.S,
2233 src/mips/o32.S,
2234 src/mips/ffi.c,
2235 src/prep_cif.c,
2236 src/sh/ffitarget.h,
2237 src/sh/ffi.c,
2238 src/sh/sysv.S: Update license text.
2239
2240 2009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2241
2242 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2243 (.eh_frame): Add FDE for it.
2244
2245 2009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2246
2247 * configure.ac: Also check if assembler supports pc-relative
2248 relocs on X86_WIN32 targets.
2249 * configure: Regenerate.
2250 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2251 (_ffi_call_SYSV): Add missing function type symbol .def and
2252 add EH markup labels.
2253 (_ffi_call_STDCALL): Likewise.
2254 (_ffi_closure_SYSV): Likewise.
2255 (_ffi_closure_raw_SYSV): Likewise.
2256 (.eh_frame): Add hand-crafted EH data.
2257
2258 2009-04-09 Jakub Jelinek <jakub@redhat.com>
2259
2260 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2261 version 3 of the GNU General Public License and to point readers
2262 at the COPYING3 file and the FSF's license web page.
2263 * testsuite/libffi.call/call.exp: Likewise.
2264 * testsuite/libffi.special/special.exp: Likewise.
2265
2266 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2267
2268 * configure: Regenerate.
2269
2270 2008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2271
2272 PR libffi/26048
2273 * configure.ac (HAVE_AS_X86_PCREL): New test.
2274 * configure: Regenerate.
2275 * fficonfig.h.in: Regenerate.
2276 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2277 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2278 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2279 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2280 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2281 (.Lload_table): Likewise.
2282 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2283
2284 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2285
2286 * configure: Regenerate.
2287
2288 2008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2289
2290 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2291 signed/unsigned int8/16 return values.
2292 * src/sparc/v8.S (ffi_call_v8): Likewise.
2293 (ffi_closure_v8): Likewise.
2294
2295 2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
2296 Steve Ellcey <sje@cup.hp.com>
2297
2298 * configure: Regenerate for new libtool.
2299 * Makefile.in: Ditto.
2300 * include/Makefile.in: Ditto.
2301 * aclocal.m4: Ditto.
2302
2303 2008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2304
2305 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2306 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2307 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2308 Adjust copyright notice.
2309 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2310 register or two register to use for FFI_SYSV structs.
2311 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2312 (ffi_closure_helper_SYSV): Fix the return type for
2313 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2314 Adjust copyright notice.
2315
2316 2008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2317
2318 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2319 int.
2320
2321 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2322
2323 * configure: Regenerate.
2324 * include/Makefile.in: Regenerate.
2325 * testsuite/Makefile.in: Regenerate.
2326
2327 2008-06-07 Joseph Myers <joseph@codesourcery.com>
2328
2329 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2330 powerpc-*-beos*): Remove.
2331 * configure: Regenerate.
2332
2333 2008-05-09 Julian Brown <julian@codesourcery.com>
2334
2335 * Makefile.am (LTLDFLAGS): New.
2336 (libffi_la_LDFLAGS): Use above.
2337 * Makefile.in: Regenerate.
2338
2339 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
2340
2341 PR bootstrap/35457
2342 * aclocal.m4: Regenerate.
2343 * configure: Regenerate.
2344
2345 2008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2346
2347 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2348 * src/sh64/sysv.S: Likewise.
2349
2350 2008-03-26 Daniel Jacobowitz <dan@debian.org>
2351
2352 * src/arm/sysv.S: Fix ARM comment marker.
2353
2354 2008-03-26 Jakub Jelinek <jakub@redhat.com>
2355
2356 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2357 * src/s390/sysv.S: Likewise.
2358 * src/powerpc/ppc_closure.S: Likewise.
2359 * src/powerpc/sysv.S: Likewise.
2360 * src/x86/unix64.S: Likewise.
2361 * src/x86/sysv.S: Likewise.
2362 * src/sparc/v8.S: Likewise.
2363 * src/sparc/v9.S: Likewise.
2364 * src/m68k/sysv.S: Likewise.
2365 * src/arm/sysv.S: Likewise.
2366
2367 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2368
2369 * aclocal.m4: Regenerate.
2370 * configure: Likewise.
2371 * Makefile.in: Likewise.
2372 * include/Makefile.in: Likewise.
2373 * testsuite/Makefile.in: Likewise.
2374
2375 2008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2376 Andreas Tobler <a.tobler@schweiz.org>
2377
2378 * configure.ac: Add amd64-*-freebsd* target.
2379 * configure: Regenerate.
2380
2381 2008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2382
2383 PR libffi/34612
2384 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2385 returning struct.
2386
2387 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2388 tests.
2389
2390 2008-01-24 David Edelsohn <edelsohn@gnu.org>
2391
2392 * configure: Regenerate.
2393
2394 2008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2395
2396 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2397
2398 2008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2399
2400 PR testsuite/32843
2401 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2402 signed/unsigned int8/16 for X86_DARWIN.
2403 Updated copyright info.
2404 Handle one and two byte structs with special cif->flags.
2405 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2406 Updated copyright info.
2407 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2408 sysv.S
2409 Remove code to pop args from the stack after call.
2410 Special-case signed/unsigned for int8/16, one and two byte structs.
2411 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2412 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2413 FFI_TYPE_SINT32.
2414 Updated copyright info.
2415
2416 2007-12-08 David Daney <ddaney@avtrex.com>
2417
2418 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
2419 SUBU, add with ADDU and use smaller code sequences.
2420
2421 2007-12-07 David Daney <ddaney@avtrex.com>
2422
2423 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2424 type.
2425
2426 2007-12-06 David Daney <ddaney@avtrex.com>
2427
2428 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2429 defined.
2430 (ffi_java_raw): New typedef.
2431 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2432 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2433 ffi_java_raw.
2434 (ffi_java_raw_closure) : Same.
2435 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2436 parameter types.
2437 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2438 FFI_SIZEOF_JAVA_RAW.
2439 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2440 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2441 sizeof(ffi_java_raw) for alignment calculations.
2442 (ffi_java_ptrarray_to_raw): Same.
2443 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
2444 if FFI_SIZEOF_JAVA_RAW == 4.
2445 (ffi_java_raw_to_rvalue): Same.
2446 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2447 (ffi_java_translate_args): Same.
2448 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2449 parameter types.
2450 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2451
2452 2007-12-06 David Daney <ddaney@avtrex.com>
2453
2454 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
2455 pointer values.
2456
2457 2007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2458
2459 PR libffi/31937
2460 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2461 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2462 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2463 set the NUM_FPR_ARG_REGISTERS according to.
2464 Add support for potential soft-float support under hard-float
2465 architecture.
2466 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2467 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2468 to the FFI_LINUX_SOFT_FLOAT ABI.
2469 (ffi_prep_cif_machdep): Likewise.
2470 (ffi_closure_helper_SYSV): Likewise.
2471 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2472 on archs where __NO_FPRS__ is true.
2473 Add FFI_TYPE_UINT128 support.
2474 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2475 Adjust copyright notice.
2476
2477 2007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2478
2479 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2480 * include/ffi_common.h: ... here.
2481 Update copyright.
2482
2483 2007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2484
2485 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2486 * src/powerpc/linux64.S: Likewise.
2487 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2488 * testsuite/libffi.call/return_ldl.c: New test.
2489
2490 2007-09-04 <aph@redhat.com>
2491
2492 * src/arm/sysv.S (UNWIND): New.
2493 (Whole file): Conditionally compile unwinder directives.
2494 * src/arm/sysv.S: Add unwinder directives.
2495
2496 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2497 Only treat r0 as a struct address if we're actually returning a
2498 struct by address.
2499 Only copy the bytes that are actually within a struct.
2500 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2501 is returned in r0, not passed by address.
2502 (ffi_call): Allocate a word-sized temporary for the case where
2503 a composite is returned in r0.
2504 (ffi_prep_incoming_args_SYSV): Align as necessary.
2505
2506 2007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2507
2508 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
2509 directly using the sys_cacheflush syscall.
2510
2511 2007-07-27 Andrew Haley <aph@redhat.com>
2512
2513 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2514
2515 2007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2516
2517 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2518 * configure.ac: Likewise.
2519 * Makefile.in: Regenerate.
2520 * include/Makefile.in: Likewise.
2521 * testsuite/Makefile.in: Likewise.
2522 * configure: Likewise.
2523
2524 2007-08-24 David Daney <ddaney@avtrex.com>
2525
2526 * testsuite/libffi.call/return_sl.c: New test.
2527
2528 2007-08-10 David Daney <ddaney@avtrex.com>
2529
2530 * testsuite/libffi.call/cls_multi_ushort.c,
2531 testsuite/libffi.call/cls_align_uint16.c,
2532 testsuite/libffi.call/nested_struct1.c,
2533 testsuite/libffi.call/nested_struct3.c,
2534 testsuite/libffi.call/cls_7_1_byte.c,
2535 testsuite/libffi.call/nested_struct5.c,
2536 testsuite/libffi.call/cls_double.c,
2537 testsuite/libffi.call/nested_struct7.c,
2538 testsuite/libffi.call/cls_sint.c,
2539 testsuite/libffi.call/nested_struct9.c,
2540 testsuite/libffi.call/cls_20byte1.c,
2541 testsuite/libffi.call/cls_multi_sshortchar.c,
2542 testsuite/libffi.call/cls_align_sint64.c,
2543 testsuite/libffi.call/cls_3byte2.c,
2544 testsuite/libffi.call/cls_multi_schar.c,
2545 testsuite/libffi.call/cls_multi_uchar.c,
2546 testsuite/libffi.call/cls_19byte.c,
2547 testsuite/libffi.call/cls_9byte1.c,
2548 testsuite/libffi.call/cls_align_float.c,
2549 testsuite/libffi.call/closure_fn1.c,
2550 testsuite/libffi.call/problem1.c,
2551 testsuite/libffi.call/closure_fn3.c,
2552 testsuite/libffi.call/cls_sshort.c,
2553 testsuite/libffi.call/closure_fn5.c,
2554 testsuite/libffi.call/cls_align_double.c,
2555 testsuite/libffi.call/nested_struct.c,
2556 testsuite/libffi.call/cls_2byte.c,
2557 testsuite/libffi.call/nested_struct10.c,
2558 testsuite/libffi.call/cls_4byte.c,
2559 testsuite/libffi.call/cls_6byte.c,
2560 testsuite/libffi.call/cls_8byte.c,
2561 testsuite/libffi.call/cls_multi_sshort.c,
2562 testsuite/libffi.call/cls_align_sint16.c,
2563 testsuite/libffi.call/cls_align_uint32.c,
2564 testsuite/libffi.call/cls_20byte.c,
2565 testsuite/libffi.call/cls_float.c,
2566 testsuite/libffi.call/nested_struct2.c,
2567 testsuite/libffi.call/cls_5_1_byte.c,
2568 testsuite/libffi.call/nested_struct4.c,
2569 testsuite/libffi.call/cls_24byte.c,
2570 testsuite/libffi.call/nested_struct6.c,
2571 testsuite/libffi.call/cls_64byte.c,
2572 testsuite/libffi.call/nested_struct8.c,
2573 testsuite/libffi.call/cls_uint.c,
2574 testsuite/libffi.call/cls_multi_ushortchar.c,
2575 testsuite/libffi.call/cls_schar.c,
2576 testsuite/libffi.call/cls_uchar.c,
2577 testsuite/libffi.call/cls_align_uint64.c,
2578 testsuite/libffi.call/cls_ulonglong.c,
2579 testsuite/libffi.call/cls_align_longdouble.c,
2580 testsuite/libffi.call/cls_1_1byte.c,
2581 testsuite/libffi.call/cls_12byte.c,
2582 testsuite/libffi.call/cls_3_1byte.c,
2583 testsuite/libffi.call/cls_3byte1.c,
2584 testsuite/libffi.call/cls_4_1byte.c,
2585 testsuite/libffi.call/cls_6_1_byte.c,
2586 testsuite/libffi.call/cls_16byte.c,
2587 testsuite/libffi.call/cls_18byte.c,
2588 testsuite/libffi.call/closure_fn0.c,
2589 testsuite/libffi.call/cls_9byte2.c,
2590 testsuite/libffi.call/closure_fn2.c,
2591 testsuite/libffi.call/closure_fn4.c,
2592 testsuite/libffi.call/cls_ushort.c,
2593 testsuite/libffi.call/closure_fn6.c,
2594 testsuite/libffi.call/cls_5byte.c,
2595 testsuite/libffi.call/cls_align_pointer.c,
2596 testsuite/libffi.call/cls_7byte.c,
2597 testsuite/libffi.call/cls_align_sint32.c,
2598 testsuite/libffi.special/unwindtest_ffi_call.cc,
2599 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2600
2601 2007-08-10 David Daney <ddaney@avtrex.com>
2602
2603 PR libffi/28313
2604 * configure.ac: Don't treat mips64 as a special case.
2605 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2606 * configure: Regenerate
2607 * Makefile.in: Ditto.
2608 * fficonfig.h.in: Ditto.
2609 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2610 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2611 (FFI_DEFAULT_ABI): Set for n64 case.
2612 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2613 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2614 (ffi_closure_N32): New function.
2615 (.eh_frame): New section
2616 * src/mips/o32.S: Clean up comments.
2617 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2618 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2619 _MIPS_SIM == _ABIN32 throughout.
2620 (FFI_MIPS_STOP_HERE): New, use in place of
2621 ffi_stop_here.
2622 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2623 to support n32/n64 ABIs.
2624 (calc_n32_struct_flags): Rewrite.
2625 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2626 position of flag bits.
2627 (ffi_prep_cif_machdep): Rewrite n32 portion.
2628 (ffi_call): Enable for n64. Add special handling for small structure
2629 return values.
2630 (ffi_prep_closure_loc): Add n32 and n64 support.
2631 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2632 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2633
2634 2007-08-08 David Daney <ddaney@avtrex.com>
2635
2636 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2637 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2638 specifiers.
2639 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2640 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2641 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2642 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2643 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2644 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2645 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2646 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2647 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2648 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2649 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2650 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2651 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2652 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2653 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2654 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2655 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2656 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2657 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2658 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2659 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2660 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2661 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2662 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2663 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2664 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2665 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2666 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2667 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2668 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2669 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2670
2671 2007-08-07 Andrew Haley <aph@redhat.com>
2672
2673 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2674 checkin.
2675
2676 2007-08-06 Andrew Haley <aph@redhat.com>
2677
2678 PR testsuite/32843
2679 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2680 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2681 FFI_TYPE_SINT32.
2682
2683 2007-08-02 David Daney <ddaney@avtrex.com>
2684
2685 * testsuite/libffi.call/return_ul.c (main): Define return type as
2686 ffi_arg. Use proper printf conversion specifier.
2687
2688 2007-07-30 Andrew Haley <aph@redhat.com>
2689
2690 PR testsuite/32843
2691 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2692 signed/unsigned int8/16.
2693 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2694 Use a jump table.
2695 Remove code to pop args from the stack after call.
2696 Special-case signed/unsigned int8/16.
2697 * testsuite/libffi.call/return_sc.c (main): Revert.
2698
2699 2007-07-26 Richard Guenther <rguenther@suse.de>
2700
2701 PR testsuite/32843
2702 * testsuite/libffi.call/return_sc.c (main): Verify call
2703 result as signed char, not ffi_arg.
2704
2705 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2706
2707 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2708 * configure: Regenerate.
2709
2710 2007-07-11 David Daney <ddaney@avtrex.com>
2711
2712 * src/mips/ffi.c: Don't include sys/cachectl.h.
2713 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2714 cacheflush().
2715
2716 2007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2717
2718 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2719 from (ffi_prep_closure): ... this.
2720 (FFI_INIT_TRAMPOLINE): Adjust.
2721
2722 2005-12-31 Phil Blundell <pb@reciva.com>
2723
2724 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2725 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
2726 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2727 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2728 (FFI_CLOSURES): Enable closure support.
2729
2730 2007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2731
2732 * testsuite/libffi.call/cls_multi_ushort.c,
2733 testsuite/libffi.call/cls_align_uint16.c,
2734 testsuite/libffi.call/nested_struct1.c,
2735 testsuite/libffi.call/nested_struct3.c,
2736 testsuite/libffi.call/cls_7_1_byte.c,
2737 testsuite/libffi.call/cls_double.c,
2738 testsuite/libffi.call/nested_struct5.c,
2739 testsuite/libffi.call/nested_struct7.c,
2740 testsuite/libffi.call/cls_sint.c,
2741 testsuite/libffi.call/nested_struct9.c,
2742 testsuite/libffi.call/cls_20byte1.c,
2743 testsuite/libffi.call/cls_multi_sshortchar.c,
2744 testsuite/libffi.call/cls_align_sint64.c,
2745 testsuite/libffi.call/cls_3byte2.c,
2746 testsuite/libffi.call/cls_multi_schar.c,
2747 testsuite/libffi.call/cls_multi_uchar.c,
2748 testsuite/libffi.call/cls_19byte.c,
2749 testsuite/libffi.call/cls_9byte1.c,
2750 testsuite/libffi.call/cls_align_float.c,
2751 testsuite/libffi.call/closure_fn1.c,
2752 testsuite/libffi.call/problem1.c,
2753 testsuite/libffi.call/closure_fn3.c,
2754 testsuite/libffi.call/cls_sshort.c,
2755 testsuite/libffi.call/closure_fn5.c,
2756 testsuite/libffi.call/cls_align_double.c,
2757 testsuite/libffi.call/cls_2byte.c,
2758 testsuite/libffi.call/nested_struct.c,
2759 testsuite/libffi.call/nested_struct10.c,
2760 testsuite/libffi.call/cls_4byte.c,
2761 testsuite/libffi.call/cls_6byte.c,
2762 testsuite/libffi.call/cls_8byte.c,
2763 testsuite/libffi.call/cls_multi_sshort.c,
2764 testsuite/libffi.call/cls_align_uint32.c,
2765 testsuite/libffi.call/cls_align_sint16.c,
2766 testsuite/libffi.call/cls_float.c,
2767 testsuite/libffi.call/cls_20byte.c,
2768 testsuite/libffi.call/cls_5_1_byte.c,
2769 testsuite/libffi.call/nested_struct2.c,
2770 testsuite/libffi.call/cls_24byte.c,
2771 testsuite/libffi.call/nested_struct4.c,
2772 testsuite/libffi.call/nested_struct6.c,
2773 testsuite/libffi.call/cls_64byte.c,
2774 testsuite/libffi.call/nested_struct8.c,
2775 testsuite/libffi.call/cls_uint.c,
2776 testsuite/libffi.call/cls_multi_ushortchar.c,
2777 testsuite/libffi.call/cls_schar.c,
2778 testsuite/libffi.call/cls_uchar.c,
2779 testsuite/libffi.call/cls_align_uint64.c,
2780 testsuite/libffi.call/cls_ulonglong.c,
2781 testsuite/libffi.call/cls_align_longdouble.c,
2782 testsuite/libffi.call/cls_1_1byte.c,
2783 testsuite/libffi.call/cls_12byte.c,
2784 testsuite/libffi.call/cls_3_1byte.c,
2785 testsuite/libffi.call/cls_3byte1.c,
2786 testsuite/libffi.call/cls_4_1byte.c,
2787 testsuite/libffi.call/cls_6_1_byte.c,
2788 testsuite/libffi.call/cls_16byte.c,
2789 testsuite/libffi.call/cls_18byte.c,
2790 testsuite/libffi.call/closure_fn0.c,
2791 testsuite/libffi.call/cls_9byte2.c,
2792 testsuite/libffi.call/closure_fn2.c,
2793 testsuite/libffi.call/closure_fn4.c,
2794 testsuite/libffi.call/cls_ushort.c,
2795 testsuite/libffi.call/closure_fn6.c,
2796 testsuite/libffi.call/cls_5byte.c,
2797 testsuite/libffi.call/cls_align_pointer.c,
2798 testsuite/libffi.call/cls_7byte.c,
2799 testsuite/libffi.call/cls_align_sint32.c,
2800 testsuite/libffi.special/unwindtest_ffi_call.cc,
2801 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
2802
2803 2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2804
2805 * aclocal.m4: Regenerated.
2806
2807 2007-06-02 Paolo Bonzini <bonzini@gnu.org>
2808
2809 * configure: Regenerate.
2810
2811 2007-05-23 Steve Ellcey <sje@cup.hp.com>
2812
2813 * Makefile.in: Regenerate.
2814 * configure: Regenerate.
2815 * aclocal.m4: Regenerate.
2816 * include/Makefile.in: Regenerate.
2817 * testsuite/Makefile.in: Regenerate.
2818
2819 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
2820
2821 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2822 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2823 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2824 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2825 (FFI_CLOSURES): Enable closure support.
2826
2827 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
2828
2829 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2830 * configure: Regenerate.
2831 * fficonfig.h.in: Regenerate.
2832 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2833 CFI_OFFSET,CFI_DEF_CFA): New macros.
2834 (ffi_call_SYSV): Add callframe annotation.
2835
2836 2007-05-10 Roman Zippel <zippel@linux-m68k.org>
2837
2838 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2839 numerous test suite failures.
2840 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2841
2842 2007-04-11 Paolo Bonzini <bonzini@gnu.org>
2843
2844 * Makefile.am (EXTRA_DIST): Bring up to date.
2845 * Makefile.in: Regenerate.
2846 * src/frv/eabi.S: Remove RCS keyword.
2847
2848 2007-04-06 Richard Henderson <rth@redhat.com>
2849
2850 * configure.ac: Tidy target case.
2851 (HAVE_LONG_DOUBLE): Allow the target to override.
2852 * configure: Regenerate.
2853 * include/ffi.h.in: Don't define ffi_type_foo if
2854 LIBFFI_HIDE_BASIC_TYPES is defined.
2855 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2856 to ffi_type_double.
2857 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2858 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2859 (ffi_type_longdouble): Special case for Alpha. Don't define
2860 if long double == double.
2861
2862 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2863 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2864 (ffi_call, ffi_closure_osf_inner): Likewise.
2865 (ffi_closure_osf_inner): Likewise. Mark hidden.
2866 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2867 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2868 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2869 (load_table): Handle 128-bit long double.
2870
2871 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2872
2873 2007-04-06 Tom Tromey <tromey@redhat.com>
2874
2875 PR libffi/31491:
2876 * README: Fixed bug in example.
2877
2878 2007-04-03 Jakub Jelinek <jakub@redhat.com>
2879
2880 * src/closures.c: Include sys/statfs.h.
2881 (_GNU_SOURCE): Define on Linux.
2882 (FFI_MMAP_EXEC_SELINUX): Define.
2883 (selinux_enabled): New variable.
2884 (selinux_enabled_check): New function.
2885 (is_selinux_enabled): Define.
2886 (dlmmap): Use it.
2887
2888 2007-03-24 Uros Bizjak <ubizjak@gmail.com>
2889
2890 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2891 Use 'volatile float sum' to create sum of floats to avoid false
2892 negative due to excess precision on ix86 targets.
2893 (main): Ditto.
2894
2895 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
2896
2897 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2898 patch.
2899 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2900
2901 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
2902
2903 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2904 (ffi_prep_closure_loc): New.
2905 (ffi_prep_raw_closure_loc): New.
2906 (ffi_prep_java_raw_closure_loc): New.
2907 * src/closures.c: New file.
2908 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2909 Replace sflags with exec_offset.
2910 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2911 sub_segment_exec_offset): New macros.
2912 (get_segment_flags, set_segment_flags, check_segment_merge): New
2913 macros.
2914 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2915 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2916 destroy_mspace): Use new macros.
2917 (sys_alloc): Silence warning.
2918 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2919 * Makefile.in: Rebuilt.
2920 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2921 terms of ffi_prep_closure_loc.
2922 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2923 from...
2924 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2925 renamed version.
2926 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2927 adjusted from...
2928 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2929 the renamed version.
2930 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2931 (ffi_prep_closure): ... this.
2932 * src/pa/ffi.c: Likewise.
2933 * src/cris/ffi.c: Likewise. Adjust.
2934 * src/frv/ffi.c: Likewise.
2935 * src/ia64/ffi.c: Likewise.
2936 * src/mips/ffi.c: Likewise.
2937 * src/powerpc/ffi_darwin.c: Likewise.
2938 * src/s390/ffi.c: Likewise.
2939 * src/sh/ffi.c: Likewise.
2940 * src/sh64/ffi.c: Likewise.
2941 * src/sparc/ffi.c: Likewise.
2942 * src/x86/ffi64.c: Likewise.
2943 * src/x86/ffi.c: Likewise.
2944 (FFI_INIT_TRAMPOLINE): Adjust.
2945 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2946 (ffi_prep_raw_closure): ... this.
2947 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2948 (ffi_prep_closure): ... this.
2949 (flush_icache): Adjust.
2950
2951 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
2952
2953 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2954 Lea's malloc.
2955
2956 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2957
2958 * Makefile.am: Add dummy install-pdf target.
2959 * Makefile.in: Regenerate
2960
2961 2007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2962
2963 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2964 ffi_closure_helper_SYSV): Add long double handling.
2965
2966 2007-02-02 Jakub Jelinek <jakub@redhat.com>
2967
2968 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2969 immediately after bctrl instruction.
2970
2971 2007-01-18 Alexandre Oliva <aoliva@redhat.com>
2972
2973 * Makefile.am (all-recursive, install-recursive,
2974 mostlyclean-recursive, clean-recursive, distclean-recursive,
2975 maintainer-clean-recursive): Add missing targets.
2976 * Makefile.in: Rebuilt.
2977
2978 2006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2979
2980 * configure.ac: Add TARGET for x86_64-*-darwin*.
2981 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2982 for X86_DARWIN.
2983 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2984 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2985 * configure: Regenerate.
2986 * Makefile.in: Regenerate.
2987 * include/Makefile.in: Regenerate.
2988 * testsuite/Makefile.in: Regenerate.
2989 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2990 ffi_call only.
2991
2992 2006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2993
2994 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2995 Makefile.am.
2996
2997 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2998
2999 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3000 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3001 Darwin.
3002 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3003 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3004
3005 2006-10-10 Paolo Bonzini <bonzini@gnu.org>
3006 Sandro Tolaini <tolaini@libero.it>
3007
3008 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
3009 conditional.
3010 * configure: Regenerated.
3011 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3012 (EXTRA_DIST): Add src/x86/darwin.S.
3013 * Makefile.in: Regenerated.
3014 * include/Makefile.in: Regenerated.
3015 * testsuite/Makefile.in: Regenerated.
3016
3017 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3018 X86_WIN32, and additionally align stack to 16 bytes.
3019 * src/x86/darwin.S: New, based on sysv.S.
3020 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3021
3022 2006-09-12 David Daney <ddaney@avtrex.com>
3023
3024 PR libffi/23935
3025 * include/Makefile.am: Install both ffi.h and ffitarget.h in
3026 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3027 * aclocal.m4: Regenerated for automake 1.9.6.
3028 * Makefile.in: Regenerated.
3029 * include/Makefile.in: Regenerated.
3030 * testsuite/Makefile.in: Regenerated.
3031
3032 2006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
3033
3034 * include/ffi_common.h (struct): Revert accidental commit.
3035
3036 2006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
3037
3038 * include/ffi_common.h: Remove lint directives.
3039 * include/ffi.h.in: Likewise.
3040
3041 2006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
3042
3043 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3044 for 32-bit architectures.
3045 * testsuite/libffi.call/return_ul.c: New test case.
3046
3047 2006-07-19 David Daney <ddaney@avtrex.com>
3048
3049 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3050 xfail remains for mips64.
3051
3052 2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
3053
3054 * Makefile.am: Add install-html target. Add install-html to .PHONY
3055 * Makefile.in: Regenerate.
3056 * aclocal.m4: Regenerate.
3057 * include/Makefile.in: Regenerate.
3058 * testsuite/Makefile.in: Regenerate.
3059
3060 2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3061
3062 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3063 stack slot.
3064
3065 2006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
3066
3067 * README: Remove notice about 'Crazy Comments'.
3068 * src/debug.c: Remove lint directives. Cleanup white spaces.
3069 * src/java_raw_api.c: Likewise.
3070 * src/prep_cif.c: Likewise.
3071 * src/raw_api.c: Likewise.
3072 * src/ffitest.c: Delete. No longer needed, all test cases migrated
3073 to the testsuite.
3074 * src/arm/ffi.c: Remove lint directives.
3075 * src/m32r/ffi.c: Likewise.
3076 * src/pa/ffi.c: Likewise.
3077 * src/powerpc/ffi.c: Likewise.
3078 * src/powerpc/ffi_darwin.c: Likewise.
3079 * src/sh/ffi.c: Likewise.
3080 * src/sh64/ffi.c: Likewise.
3081 * src/x86/ffi.c: Likewise.
3082 * testsuite/libffi.call/float2.c: Likewise.
3083 * testsuite/libffi.call/promotion.c: Likewise.
3084 * testsuite/libffi.call/struct1.c: Likewise.
3085
3086 2006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
3087
3088 * src/pa/hpux32.S: Correct unwind offset calculation for
3089 ffi_closure_pa32.
3090 * src/pa/linux.S: Likewise.
3091
3092 2006-04-12 James E Wilson <wilson@specifix.com>
3093
3094 PR libgcj/26483
3095 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3096 (hfa_type_load): Call stf_spill.
3097 (hfa_type_store): Call ldf_fill.
3098 (ffi_call): Adjust calls to above routines. Add local temps for
3099 macro result.
3100
3101 2006-04-10 Matthias Klose <doko@debian.org>
3102
3103 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3104 directory names containing underscores.
3105
3106 2006-04-07 James E Wilson <wilson@specifix.com>
3107
3108 * testsuite/libffi.call/float4.c: New testcase.
3109
3110 2006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3111 Andreas Tobler <a.tobler@schweiz.ch>
3112
3113 * Makefile.am: Add PA_HPUX port.
3114 * Makefile.in: Regenerate.
3115 * include/Makefile.in: Likewise.
3116 * testsuite/Makefile.in: Likewise.
3117 * configure.ac: Add PA_HPUX rules.
3118 * configure: Regenerate.
3119 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3120 Add PA_HPUX and PA64_HPUX.
3121 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3122 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3123 (FFI_TYPE_SMALL_STRUCT2): Define.
3124 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3125 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3126 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3127 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3128 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3129 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3130 * src/pa/ffi.c (ROUND_DOWN): Delete.
3131 (fldw, fstw, fldd, fstd): Use '__asm__'.
3132 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3133 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3134 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3135 Simplify incrementing of stack slot variable. Change type of local
3136 'n' to unsigned int.
3137 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3138 double on PA_HPUX.
3139 (ffi_prep_cif_machdep): Likewise.
3140 (ffi_call): Likewise.
3141 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3142 return type to ffi_status. Simplify incrementing of stack slot
3143 variable. Only copy floating point argument registers when PA_LINUX
3144 is true. Reformat debug statement.
3145 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3146 FFI_TYPE_SMALL_STRUCT8.
3147 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3148 declaration.
3149 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3150 Add nops to cache flush. Add trampoline for PA_HPUX.
3151 * src/pa/hpux32.S: New file.
3152 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3153 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3154 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3155 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3156 argument type checks so that common argument types appear first.
3157 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3158 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3159
3160 2006-03-24 Alan Modra <amodra@bigpond.net.au>
3161
3162 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3163 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3164 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3165 FFI_TYPE_LONGDOUBLE.
3166 (ffi_prep_args64): Assert using IBM extended double.
3167 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3168 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3169 (ffi_call): Handle FFI_LINUX.
3170 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3171 gpr3 return pointer as for struct return. Handle FFI_LINUX
3172 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3173 unnecessarily.
3174 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3175 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3176 Don't use r6 as pointer to results, instead use sp offset. Don't
3177 make a special call to load lr with case table address, instead
3178 use offset from previous call.
3179 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3180 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3181 return.
3182
3183 2006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3184
3185 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3186 passed with FP registers correctly.
3187 (ffi_closure_helper_SYSV): Likewise.
3188 * src/sh64/sysv.S: Likewise.
3189
3190 2006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3191
3192 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3193 args and userdata unused.
3194 (closure_test_fn1): Mark cif and userdata unused.
3195 (main): Remove unused res.
3196
3197 2006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3198
3199 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3200 -O2, -O3, -Os and the warning flags -W -Wall.
3201 * testsuite/libffi.special/special.exp: Likewise.
3202 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3203 unused parameter unused for gcc or else do nothing.
3204 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3205 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3206 and userdata unused.
3207 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3208 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3209 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3210 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3211 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3212 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3213 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3214 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3215 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3216 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3217 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3218 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3219 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3220 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3221 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3222 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3223 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3224 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3225 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3226 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3227 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3228 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3229 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3230 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3231 Likewise.
3232 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3233 Likewise.
3234 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3235 Likewise.
3236 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3237 void* to avoid compiler warning.
3238 (main): Likewise.
3239 (cls_struct_align_gn): Mark cif and userdata unused.
3240 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3241 Likewise.
3242 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3243 Likewise.
3244 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3245 Likewise.
3246 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3247 Likewise.
3248 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3249 Likewise.
3250 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3251 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3252 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3253 data unused.
3254 (main): Cast res_call to silence gcc.
3255 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3256 data unused.
3257 (main): Cast res_call to silence gcc.
3258 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3259 and data unused.
3260 (main): Cast res_call to silence gcc.
3261 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3262 data unused.
3263 (main): Cast res_call to silence gcc.
3264 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3265 data unused.
3266 (main): Cast res_call to silence gcc.
3267 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3268 and data unused.
3269 (main): Cast res_call to silence gcc.
3270 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3271 userdata unused.
3272 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3273 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3274 userdata unused.
3275 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3276 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3277 userdata unused.
3278 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3279 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3280 userdata unused.
3281 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3282 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3283 userdata unused.
3284 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3285 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3286 and userdata unused.
3287 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3288 userdata unused.
3289 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3290 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3291 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3292 Cleanup white spaces.
3293 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3294 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3295 cif and userdata unused.
3296 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3297 Likewise.
3298 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3299 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3300 formatters to silence gcc.
3301 (B_gn): Mark cif and userdata unused.
3302 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3303 unused.
3304 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3305 (B_gn): Mark cif and userdata unused.
3306 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3307 unused.
3308 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3309 (B_gn): Mark cif and userdata unused.
3310 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3311 unused.
3312 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3313 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3314 * testsuite/libffi.call/problem1.c (stub): Likewise.
3315 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3316 gcc.
3317 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3318 in the last commit for this test case in the test case itself.
3319 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3320 unused.
3321 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3322 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3323 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3324 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3325 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3326 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3327
3328 2006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3329
3330 * src/sh/sysv.S: Fix register numbers in the FDE for
3331 ffi_closure_SYSV.
3332
3333 2006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3334
3335 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3336 declaration to avoid a false negative on ix86. See PR323.
3337
3338 2006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3339
3340 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3341 and cast integer to void * if needed. Update the pointer to
3342 the FP register saved area correctly.
3343
3344 2006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3345
3346 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3347 is fixed.
3348 * testsuite/libffi.call/nested_struct4.c: Likewise.
3349
3350 2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3351
3352 * testsuite/libffi.call/return_dbl.c: New test case.
3353 * testsuite/libffi.call/return_dbl1.c: Likewise.
3354 * testsuite/libffi.call/return_dbl2.c: Likewise.
3355 * testsuite/libffi.call/return_fl.c: Likewise.
3356 * testsuite/libffi.call/return_fl1.c: Likewise.
3357 * testsuite/libffi.call/return_fl2.c: Likewise.
3358 * testsuite/libffi.call/return_fl3.c: Likewise.
3359 * testsuite/libffi.call/closure_fn6.c: Likewise.
3360
3361 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3362 definition.
3363 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3364 here to be used by other test cases too.
3365
3366 * testsuite/libffi.call/nested_struct10.c: New test case.
3367 * testsuite/libffi.call/nested_struct9.c: Likewise.
3368 * testsuite/libffi.call/nested_struct8.c: Likewise.
3369 * testsuite/libffi.call/nested_struct7.c: Likewise.
3370 * testsuite/libffi.call/nested_struct6.c: Likewise.
3371 * testsuite/libffi.call/nested_struct5.c: Likewise.
3372 * testsuite/libffi.call/nested_struct4.c: Likewise.
3373
3374 2006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3375
3376 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3377 * configure: Rebuilt.
3378
3379 2006-01-18 Jakub Jelinek <jakub@redhat.com>
3380
3381 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3382 instead do the shifting inline.
3383 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3384 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3385 and 8 byte structs, for the remaining struct sizes don't call
3386 __lshrdi3, instead do the shifting inline.
3387
3388 2005-12-07 Thiemo Seufer <ths@networkno.de>
3389
3390 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3391 missing parentheses.
3392 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3393 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3394 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3395 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3396 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3397 FA_0_0_OFF2.
3398 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3399 endianness bugs.
3400 (ffi_prep_closure): Improve trampoline instruction scheduling.
3401 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3402
3403 2005-12-03 Alan Modra <amodra@bigpond.net.au>
3404
3405 * src/powerpc/ffi.c: Formatting.
3406 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3407 (ffi_prep_args64): Likewise.
3408
3409 2005-09-30 Geoffrey Keating <geoffk@apple.com>
3410
3411 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3412 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3413
3414 2005-09-26 Tom Tromey <tromey@redhat.com>
3415
3416 * testsuite/libffi.call/float1.c (value_type): New typedef.
3417 (CANARY): New define.
3418 (main): Check for result buffer overflow.
3419 * src/powerpc/linux64.S: Handle linux64 long double returns.
3420 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3421 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3422
3423 2005-08-25 Alan Modra <amodra@bigpond.net.au>
3424
3425 PR target/23404
3426 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3427 homed fp args.
3428 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3429
3430 2005-08-11 Jakub Jelinek <jakub@redhat.com>
3431
3432 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3433 (AH_BOTTOM): Add FFI_HIDDEN definition.
3434 * configure: Rebuilt.
3435 * fficonfig.h.in: Rebuilt.
3436 * src/powerpc/ffi.c (hidden): Remove.
3437 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3438 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3439 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3440 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3441 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3442 add FFI_HIDDEN to its prototype.
3443 (ffi_closure_SYSV_inner): New.
3444 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3445 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3446
3447 2005-08-10 Alfred M. Szmidt <ams@gnu.org>
3448
3449 PR libffi/21819:
3450 * configure: Rebuilt.
3451 * configure.ac: Handle i*86-*-gnu*.
3452
3453 2005-08-09 Jakub Jelinek <jakub@redhat.com>
3454
3455 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3456 DW_CFA_offset_extended_sf rather than
3457 DW_CFA_GNU_negative_offset_extended.
3458 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3459
3460 2005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3461
3462 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3463 on sh3.
3464 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3465 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3466 partially on register.
3467 (ffi_closure_helper_SYSV): Likewise.
3468 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3469
3470 2005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3471
3472 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3473 Remove empty line.
3474 * src/sh64/ffi.c (simple_type): Remove.
3475 (return_type): Handle small structures correctly.
3476 (ffi_prep_args): Likewise.
3477 (ffi_call): Likewise.
3478 (ffi_closure_helper_SYSV): Likewise.
3479 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3480 Emit position independent code if PIC and remove wrong datalabel
3481 prefixes from EH data.
3482
3483 2005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3484
3485 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3486 * Makefile.in: Regenerate.
3487 * include/Makefile.in: Likewise.
3488 * testsuite/Makefile.in: Likewise.
3489 * configure.ac: Add POWERPC_FREEBSD rules.
3490 * configure: Regenerate.
3491 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3492 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3493 * src/powerpc/ffi.c: Add flags to handle small structure returns
3494 in ffi_call_SYSV.
3495 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3496 Aka FFI_SYSV.
3497 (ffi_closure_helper_SYSV): Likewise.
3498 * src/powerpc/ppc_closure.S: Add return types for small structures.
3499 * src/powerpc/sysv.S: Add bits to handle small structures for
3500 final SYSV 4 ABI.
3501
3502 2005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3503
3504 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3505 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3506 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3507
3508 2005-07-05 Randolph Chung <tausq@debian.org>
3509
3510 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3511 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3512 structures. Kill compilation warnings.
3513 (ffi_closure_inner_LINUX): Print return values as hex in debug
3514 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3515 Properly handle 5-7 byte structure returns.
3516 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3517 (FFI_TYPE_SMALL_STRUCT2): Remove.
3518 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3519 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3520 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3521 (checksmst1, checksmst2): Remove.
3522 (checksmst3): Optimize handling of 3-byte struct returns.
3523 (checksmst567): Properly handle 5-7 byte struct returns.
3524
3525 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3526
3527 PR libgcj/21943
3528 * src/mips/n32.S: Enforce PIC code.
3529 * src/mips/o32.S: Likewise.
3530
3531 2005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3532
3533 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3534 * configure: Regenerate.
3535
3536 2005-06-01 Alan Modra <amodra@bigpond.net.au>
3537
3538 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3539 to call ffi_closure_helper_SYSV. Append @local instead.
3540 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3541
3542 2005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3543
3544 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3545 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3546 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3547 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3548 include/Makefile.in, testsuite/Makefile.in: Regenerate.
3549
3550 2005-05-09 Mike Stump <mrs@apple.com>
3551
3552 * configure: Regenerate.
3553
3554 2005-05-08 Richard Henderson <rth@redhat.com>
3555
3556 PR libffi/21285
3557 * src/alpha/osf.S: Update unwind into to match code.
3558
3559 2005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3560 Richard Henderson <rth@redhat.com>
3561
3562 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3563 bit 11 of flags.
3564 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3565 (ffi_prep_closure): Set carry bit if sse-used flag set.
3566 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3567 Only load sse registers if ssecount non-zero.
3568 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3569
3570 2005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3571
3572 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3573 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3574 * configure: Regenerate.
3575
3576 2005-04-20 Hans-Peter Nilsson <hp@axis.com>
3577
3578 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3579 have Tcl8.3-compatible intermediate variable.
3580
3581 2005-04-18 Simon Posnjak <simon.posnjak@siol.net>
3582 Hans-Peter Nilsson <hp@axis.com>
3583
3584 * Makefile.am: Add CRIS support.
3585 * configure.ac: Likewise.
3586 * Makefile.in, configure, testsuite/Makefile.in,
3587 include/Makefile.in: Regenerate.
3588 * src/cris: New directory.
3589 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3590 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3591
3592 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3593 \r?\n in output tests.
3594
3595 2005-04-12 Mike Stump <mrs@apple.com>
3596
3597 * configure: Regenerate.
3598
3599 2005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3600
3601 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
3602
3603 2005-03-30 Steve Ellcey <sje@cup.hp.com>
3604
3605 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3606 (ffi_sarg) Ditto.
3607 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3608 to 64 bits in ILP32 mode.
3609 Load 64 bits even for short data.
3610
3611 2005-03-23 Mike Stump <mrs@apple.com>
3612
3613 * src/powerpc/darwin.S: Update for -m64 multilib.
3614 * src/powerpc/darwin_closure.S: Likewise.
3615
3616 2005-03-21 Zack Weinberg <zack@codesourcery.com>
3617
3618 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3619 Do not set tool_include_dir.
3620 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3621 Regenerate.
3622 * include/Makefile.am: Set gcc_version and toollibffidir.
3623 * include/Makefile.in: Regenerate.
3624
3625 2005-02-22 Andrew Haley <aph@redhat.com>
3626
3627 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3628 odd-numbered register pairs for 64-bit integer types.
3629
3630 2005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3631
3632 PR libffi/20104
3633 * testsuite/libffi.call/return_ll1.c: New test case.
3634
3635 2005-02-11 Janis Johnson <janis187@us.ibm.com>
3636
3637 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3638 * testsuite/libffi.call/float.c: Ditto.
3639 * testsuite/libffi.call/float2.c: Ditto.
3640 * testsuite/libffi.call/float3.c: Ditto.
3641
3642 2005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3643
3644 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3645
3646 2005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3647
3648 * testsuite/libffi.special/special.exp (cxx_options): Add
3649 -shared-libgcc.
3650
3651 2004-12-31 Richard Henderson <rth@redhat.com>
3652
3653 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3654 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3655 offset parameters with a type parameter; deduce size and structure
3656 alignment. Update all users.
3657
3658 2004-12-31 Richard Henderson <rth@redhat.com>
3659
3660 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3661 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3662 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3663 into ffi_prep_closure.
3664 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3665 from scratch.
3666
3667 2004-12-27 Richard Henderson <rth@redhat.com>
3668
3669 * src/x86/unix64.S: Fix typo in unwind info.
3670
3671 2004-12-25 Richard Henderson <rth@redhat.com>
3672
3673 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3674 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3675 (merge_classes): Check for it.
3676 (SSE_CLASS_P): New.
3677 (classify_argument): Pass byte_offset by value; perform all updates
3678 inside struct case.
3679 (examine_argument): Add classes argument; handle
3680 X86_64_COMPLEX_X87_CLASS.
3681 (ffi_prep_args): Merge into ...
3682 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3683 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3684 (ffi_fill_return_value): Remove.
3685 (ffi_prep_closure): Remove dead assert.
3686 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3687 Rewrite to use struct register_args instead of va_list. Create
3688 flags for handling structure returns.
3689 * src/x86/unix64.S: Remove dead strings.
3690 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3691 stack frame with ffi_call. Handle structure returns properly.
3692 (float2sse, floatfloat2sse, double2sse): Remove.
3693 (sse2float, sse2double, sse2floatfloat): Remove.
3694 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3695 to handle structure returns properly.
3696
3697 2004-12-08 David Edelsohn <edelsohn@gnu.org>
3698
3699 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3700 PICFLAG.
3701 * Makefile.in: Regenerated.
3702
3703 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
3704
3705 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3706 * configure, aclocal.m4, Makefile.in: Regenerate.
3707 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3708
3709 2004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3710
3711 * configure: Regenerate for libtool change.
3712
3713 2004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3714
3715 * configure: Regenerate for libtool reversion.
3716
3717 2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3718
3719 * configure: Regenerate for libtool change.
3720
3721 2004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3722
3723 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3724
3725 2004-11-23 Richard Sandiford <rsandifo@redhat.com>
3726
3727 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3728 of jal. Use an absolute encoding for the frame information.
3729
3730 2004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3731
3732 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3733 * acinclude.m4: Delete logic for sincludes.
3734 * aclocal.m4, Makefile.in, configure: Regenerate.
3735 * include/Makefile: Likewise.
3736 * testsuite/Makefile: Likewise.
3737
3738 2004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3739
3740 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3741 on a 8-byte boundary.
3742 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3743
3744 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
3745
3746 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3747 long long values. Round stack allocation to a multiple of 8 bytes
3748 for ATPCS compatibility.
3749 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3750 names. Handle returning long long types. Add Thumb and interworking
3751 support. Improve soft-float code.
3752
3753 2004-10-27 Richard Earnshaw <rearnsha@arm.com>
3754
3755 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3756 (libffi_exit): New function.
3757 (libffi_init): Build the testglue wrapper if needed.
3758
3759 2004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3760
3761 PR other/18138
3762 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3763
3764 2004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3765
3766 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3767
3768 2004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3769
3770 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3771 * testsuite/libffi.call/float3.c: New test case.
3772
3773 2004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3774
3775 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3776 the function returning a structure pointed with R2.
3777 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3778 the structure return value if T bit set. Emit position
3779 independent code and EH data if PIC.
3780
3781 2004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3782
3783 * Makefile.am: Add m32r support.
3784 * configure.ac: Likewise.
3785 * Makefile.in: Regenerate.
3786 * confiugre: Regenerate.
3787 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3788 (uint64, sint64, double, longdouble)
3789 * src/m32r: New directory.
3790 * src/m32r/ffi.c: New file.
3791 * src/m32r/sysv.S: Likewise.
3792 * src/m32r/ffitarget.h: Likewise.
3793
3794 2004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3795
3796 * testsuite/libffi.call/negint.c: New test case.
3797
3798 2004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3799
3800 PR libgcj/17465
3801 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3802 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3803 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3804 DYLD_LIBRARY_PATH.
3805
3806 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3807
3808 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3809 * testsuite/libffi.call/promotion.c: Likewise.
3810 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3811 whitespaces.
3812 * testsuite/libffi.call/return_sc.c: Likewise.
3813 * testsuite/libffi.call/return_uc.c: Likewise.
3814
3815 2004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3816
3817 * src/powerpc/darwin.S: Fix comments and identation.
3818 * src/powerpc/darwin_closure.S: Likewise.
3819
3820 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3821
3822 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3823 (ffi_prep_args): Handle longdouble arguments.
3824 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3825 longdouble.
3826 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3827 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3828 values.
3829 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3830 * src/types.c: Defined longdouble size and alignment for darwin.
3831
3832 2004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3833
3834 * src/powerpc/aix.S: Remove whitespaces.
3835 * src/powerpc/aix_closure.S: Likewise.
3836 * src/powerpc/asm.h: Likewise.
3837 * src/powerpc/ffi.c: Likewise.
3838 * src/powerpc/ffitarget.h: Likewise.
3839 * src/powerpc/linux64.S: Likewise.
3840 * src/powerpc/linux64_closure.S: Likewise.
3841 * src/powerpc/ppc_closure.S: Likewise.
3842 * src/powerpc/sysv.S: Likewise.
3843
3844 2004-08-30 Anthony Green <green@redhat.com>
3845
3846 * Makefile.am: Add frv support.
3847 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3848 * configure.ac: Read configure.host.
3849 * configure.in: Read configure.host.
3850 * configure.host: New file. frv-elf needs libgloss.
3851 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3852 alignment. This is needed to frv and shouldn't harm the others.
3853 * include/ffi_common.h (ALIGN_DOWN): New macro.
3854 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3855
3856 2004-08-24 David Daney <daney@avtrex.com>
3857
3858 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3859 * testsuite/libffi.call/closure_fn1.c: Likewise.
3860 * testsuite/libffi.call/closure_fn2.c Likewise.
3861 * testsuite/libffi.call/closure_fn3.c: Likewise.
3862 * testsuite/libffi.call/closure_fn4.c: Likewise.
3863 * testsuite/libffi.call/closure_fn5.c: Likewise.
3864 * testsuite/libffi.call/cls_18byte.c: Likewise.
3865 * testsuite/libffi.call/cls_19byte.c: Likewise.
3866 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3867 * testsuite/libffi.call/cls_20byte.c: Likewise.
3868 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3869 * testsuite/libffi.call/cls_24byte.c: Likewise.
3870 * testsuite/libffi.call/cls_2byte.c: Likewise.
3871 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3872 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3873 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3874 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3875 * testsuite/libffi.call/cls_4byte.c: Likewise.
3876 * testsuite/libffi.call/cls_64byte.c: Likewise.
3877 * testsuite/libffi.call/cls_6byte.c: Likewise.
3878 * testsuite/libffi.call/cls_7byte.c: Likewise.
3879 * testsuite/libffi.call/cls_8byte.c: Likewise.
3880 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3881 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3882 * testsuite/libffi.call/cls_align_double.c: Likewise.
3883 * testsuite/libffi.call/cls_align_float.c: Likewise.
3884 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3885 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3886 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3887 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3888 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3889 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3890 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3891 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3892 * testsuite/libffi.call/cls_double.c: Likewise.
3893 * testsuite/libffi.call/cls_float.c: Likewise.
3894 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3895 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3896 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3897 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3898 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3899 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3900 * testsuite/libffi.call/cls_schar.c: Likewise.
3901 * testsuite/libffi.call/cls_sint.c: Likewise.
3902 * testsuite/libffi.call/cls_sshort.c: Likewise.
3903 * testsuite/libffi.call/cls_uchar.c: Likewise.
3904 * testsuite/libffi.call/cls_uint.c: Likewise.
3905 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3906 * testsuite/libffi.call/cls_ushort.c: Likewise.
3907 * testsuite/libffi.call/nested_struct.c: Likewise.
3908 * testsuite/libffi.call/nested_struct1.c: Likewise.
3909 * testsuite/libffi.call/nested_struct2.c: Likewise.
3910 * testsuite/libffi.call/nested_struct3.c: Likewise.
3911 * testsuite/libffi.call/problem1.c: Likewise.
3912 * testsuite/libffi.special/unwindtest.cc: Likewise.
3913 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3914 to zero.
3915 * testsuite/libffi.call/cls_16byte.c: Likewise.
3916 * testsuite/libffi.call/cls_5byte.c: Likewise.
3917
3918 2004-08-23 David Daney <daney@avtrex.com>
3919
3920 PR libgcj/13141
3921 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3922 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3923 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3924 parameters and return types.
3925 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3926 (ffi_prep_closure): Ditto.
3927 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3928 alignment calculations.
3929 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3930 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3931
3932 2004-08-14 Casey Marshall <csm@gnu.org>
3933
3934 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3935 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3936 integer (O32 ABI only).
3937 (ffi_prep_closure): new function.
3938 (ffi_closure_mips_inner_O32): new function.
3939 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3940 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3941 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3942 64 bit integers correctly.
3943 (ffi_closure_O32): new function.
3944 Added DWARF-2 unwind info for both functions.
3945
3946 2004-08-10 Andrew Haley <aph@redhat.com>
3947
3948 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3949
3950 2004-08-01 Robert Millan <robertmh@gnu.org>
3951
3952 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3953 * configure: Regenerate.
3954
3955 2004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3956
3957 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3958 and mmap() explicitly instead of relying on preset autoconf cache
3959 variables.
3960 * aclocal.m4: Regenerate.
3961 * configure: Regenerate.
3962
3963 2004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3964
3965 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3966 (ffi_check_float_struct): Remove unused prototype.
3967
3968 2004-06-30 Geoffrey Keating <geoffk@apple.com>
3969
3970 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3971 character on Darwin, use '\n\t' instead.
3972
3973 2004-06-26 Matthias Klose <doko@debian.org>
3974
3975 * libtool-version: Fix typo in revision/age.
3976
3977 2004-06-17 Matthias Klose <doko@debian.org>
3978
3979 * libtool-version: New.
3980 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3981 * Makefile.in: Regenerate.
3982
3983 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
3984
3985 * Makefile.am: Remove useless multilib rules.
3986 * Makefile.in: Regenerate.
3987 * aclocal.m4: Regenerate with automake 1.8.5.
3988 * configure.ac: Remove useless multilib configury.
3989 * configure: Regenerate.
3990
3991 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
3992
3993 * .cvsignore: New file.
3994
3995 2004-06-10 Jakub Jelinek <jakub@redhat.com>
3996
3997 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3998 fp_done.
3999 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4000 changed from 8.
4001
4002 2004-06-06 Sean McNeil <sean@mcneil.com>
4003
4004 * configure.ac: Add x86_64-*-freebsd* support.
4005 * configure: Regenerate.
4006
4007 2004-04-26 Joe Buck <jbuck@welsh-buck.org>
4008
4009 Bug 15093
4010 * configure.ac: Test for existence of mmap and sys/mman.h before
4011 checking blacklist. Fix suggested by Jim Wilson.
4012 * configure: Regenerate.
4013
4014 2004-04-26 Matt Austern <austern@apple.com>
4015
4016 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4017 FDE location.
4018 * src/powerpc/darwin_closure.S: Likewise.
4019
4020 2004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
4021
4022 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4023 error. Reported by Thomas Heller <theller@python.net>.
4024 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4025 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4026
4027 2004-03-20 Matthias Klose <doko@debian.org>
4028
4029 * src/pa/linux.S: Fix typo.
4030
4031 2004-03-19 Matthias Klose <doko@debian.org>
4032
4033 * Makefile.am: Update.
4034 * Makefile.in: Regenerate.
4035 * src/pa/ffi.h.in: Remove.
4036 * src/pa/ffitarget.h: New file.
4037
4038 2004-02-10 Randolph Chung <tausq@debian.org>
4039
4040 * Makefile.am: Add PA support.
4041 * Makefile.in: Regenerate.
4042 * include/Makefile.in: Regenerate.
4043 * configure.ac: Add PA target.
4044 * configure: Regenerate.
4045 * src/pa/ffi.c: New file.
4046 * src/pa/ffi.h.in: Add PA support.
4047 * src/pa/linux.S: New file.
4048 * prep_cif.c: Add PA support.
4049
4050 2004-03-16 Hosaka Yuji <hos@tamanegi.org>
4051
4052 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
4053 double.
4054 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4055 with ecif->cif->flags.
4056 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4057 with cif->flags.
4058 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4059 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4060 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4061 sc_retstruct2b): Add for 1 or 2-bytes struct case.
4062
4063 2004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4064
4065 * configure.in: Rename file to ...
4066 * configure.ac: ... this.
4067 * fficonfig.h.in: Regenerate.
4068 * Makefile.in: Regenerate.
4069 * include/Makefile.in: Regenerate.
4070 * testsuite/Makefile.in: Regenerate.
4071
4072 2004-03-12 Matt Austern <austern@apple.com>
4073
4074 * src/powerpc/darwin.S: Fix EH information so it corresponds to
4075 changes in EH format resulting from addition of linkonce support.
4076 * src/powerpc/darwin_closure.S: Likewise.
4077
4078 2004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
4079 Paolo Bonzini <bonzini@gnu.org>
4080
4081 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
4082 Remove VPATH. Remove rules for object files. Remove multilib support.
4083 (AM_CCASFLAGS): Add.
4084 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4085 (AC_PREREQ): Bump version to 2.59.
4086 (AC_INIT): Fill with version info and bug address.
4087 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
4088 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4089 De-precious CC so that the right flags are passed down to multilibs.
4090 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4091 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4092 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4093 * configure: Rebuilt.
4094 * aclocal.m4: Likewise.
4095 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4096 * fficonfig.h.in: Likewise.
4097
4098 2004-03-11 Andreas Schwab <schwab@suse.de>
4099
4100 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4101 arguments from fp registers only for the first 8 parameter slots.
4102 Don't convert a float parameter when passed in memory.
4103
4104 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
4105
4106 * configure: Regenerate for config/accross.m4 correction.
4107
4108 2004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4109
4110 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4111 ecif->cif->bytes to bytes.
4112 (ffi_prep_cif_machdep): Add braces around nested if statement.
4113
4114 2004-02-09 Alan Modra <amodra@bigpond.net.au>
4115
4116 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4117
4118 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4119 (ffi_closure_helper_LINUX64): Fix typo.
4120 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4121 for powerpc64-*-*.
4122 * testsuite/libffi.call/float.c: Likewise.
4123 * testsuite/libffi.call/float2.c: Likewise.
4124
4125 2004-02-08 Alan Modra <amodra@bigpond.net.au>
4126
4127 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4128 long double function return and long double arg handling.
4129 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4130 Use "end_pfr" instead of "nf". Correct long double handling.
4131 Localise "temp".
4132 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4133 return value.
4134 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4135 space for long double return value. Adjust stack frame and offsets.
4136 Load f2 long double return.
4137
4138 2004-02-07 Alan Modra <amodra@bigpond.net.au>
4139
4140 * src/types.c: Use 16 byte long double for POWERPC64.
4141
4142 2004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4143
4144 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4145 when the structure return address is passed in %o0.
4146 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4147 (ffi_v9_layout_struct): Align the field following a nested structure
4148 on a word boundary. Use memmove instead of memcpy.
4149 (ffi_call): Update call to ffi_V9_return_struct.
4150 (ffi_prep_closure): Define 'ctx' only for V8.
4151 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4152 and ffi_closure_sparc_inner_v9.
4153 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4154 Always skip the structure return address. For structures and long
4155 doubles, copy the argument directly.
4156 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4157 if required. Shift the maximum floating-point slot accordingly. For
4158 big structures, copy the argument directly; otherwise, left-justify the
4159 argument and call ffi_v9_layout_struct to lay out the structure on
4160 the stack.
4161 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4162 (ffi_closure_v8): Pass the structure return address. Update call to
4163 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4164 Skip the 'unimp' insn when returning long doubles and structures.
4165 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4166 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4167 FFI_TYPE_INT handling. Load structures both in integers and
4168 floating-point registers on return.
4169 * README: Update status of the SPARC port.
4170
4171 2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4172
4173 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4174 as of type ffi_arg.
4175 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4176
4177 2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4178
4179 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4180 value as of type ffi_arg, not unsigned int.
4181
4182 2004-01-21 Michael Ritzert <ritzert@t-online.de>
4183
4184 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4185 of the LHS.
4186
4187 2004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4188
4189 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4190 Solaris.
4191
4192 2004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4193
4194 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4195 to void *.
4196
4197 2003-12-10 Richard Henderson <rth@redhat.com>
4198
4199 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4200 size_t instead of int.
4201
4202 2003-12-04 Hosaka Yuji <hos@tamanegi.org>
4203
4204 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4205 * testsuite/libffi.call/many_win32.c (main): Replace variable
4206 int i with unsigned long ul.
4207
4208 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4209 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4210 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4211 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4212 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4213 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4214 * testsuite/libffi.call/cls_align_float.c: Likewise.
4215 * testsuite/libffi.call/cls_align_double.c: Likewise.
4216 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4217 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4218
4219 2003-12-02 Hosaka Yuji <hos@tamanegi.org>
4220
4221 PR other/13221
4222 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4223 Align arguments to 32 bits.
4224
4225 2003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4226
4227 PR other/13221
4228 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4229 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4230 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4231 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4232 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4233 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4234
4235 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4236
4237 2003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4238
4239 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4240 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4241
4242 2003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4243
4244 * Makefile.in: Rebuilt.
4245 * configure: Likewise.
4246 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4247 the right type.
4248
4249 2003-11-21 Andreas Jaeger <aj@suse.de>
4250 Andreas Tobler <a.tobler@schweiz.ch>
4251
4252 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4253 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4254 * Makefile.in: Rebuilt.
4255 * aclocal.m4: Likewise.
4256 * configure: Likewise.
4257 * fficonfig.h.in: Likewise.
4258 * testsuite/lib/libffi-dg.exp: Add include dir.
4259 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4260 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4261 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4262 for ffi_closure if available.
4263 * testsuite/libffi.call/closure_fn1.c: Likewise.
4264 * testsuite/libffi.call/closure_fn2.c: Likewise.
4265 * testsuite/libffi.call/closure_fn3.c: Likewise.
4266 * testsuite/libffi.call/closure_fn4.c: Likewise.
4267 * testsuite/libffi.call/closure_fn5.c: Likewise.
4268 * testsuite/libffi.call/cls_12byte.c: Likewise.
4269 * testsuite/libffi.call/cls_16byte.c: Likewise.
4270 * testsuite/libffi.call/cls_18byte.c: Likewise.
4271 * testsuite/libffi.call/cls_19byte.c: Likewise.
4272 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4273 * testsuite/libffi.call/cls_20byte.c: Likewise.
4274 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4275 * testsuite/libffi.call/cls_24byte.c: Likewise.
4276 * testsuite/libffi.call/cls_2byte.c: Likewise.
4277 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4278 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4279 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4280 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4281 * testsuite/libffi.call/cls_4byte.c: Likewise.
4282 * testsuite/libffi.call/cls_5byte.c: Likewise.
4283 * testsuite/libffi.call/cls_64byte.c: Likewise.
4284 * testsuite/libffi.call/cls_6byte.c: Likewise.
4285 * testsuite/libffi.call/cls_7byte.c: Likewise.
4286 * testsuite/libffi.call/cls_8byte.c: Likewise.
4287 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4288 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4289 * testsuite/libffi.call/cls_double.c: Likewise.
4290 * testsuite/libffi.call/cls_float.c: Likewise.
4291 * testsuite/libffi.call/cls_schar.c: Likewise.
4292 * testsuite/libffi.call/cls_sint.c: Likewise.
4293 * testsuite/libffi.call/cls_sshort.c: Likewise.
4294 * testsuite/libffi.call/cls_uchar.c: Likewise.
4295 * testsuite/libffi.call/cls_uint.c: Likewise.
4296 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4297 * testsuite/libffi.call/cls_ushort.c: Likewise.
4298 * testsuite/libffi.call/nested_struct.c: Likewise.
4299 * testsuite/libffi.call/nested_struct1.c: Likewise.
4300 * testsuite/libffi.call/nested_struct2.c: Likewise.
4301 * testsuite/libffi.call/nested_struct3.c: Likewise.
4302 * testsuite/libffi.call/problem1.c: Likewise.
4303 * testsuite/libffi.special/unwindtest.cc: Likewise.
4304
4305 2003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4306
4307 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4308
4309 2003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4310
4311 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4312 Add -lgcc_s to additional flags.
4313
4314 2003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4315
4316 * configure.in, include/Makefile.am: PR libgcj/11147, install
4317 the ffitarget.h header file in a gcc versioned and target
4318 dependent place.
4319 * configure: Regenerated.
4320 * Makefile.in, include/Makefile.in: Likewise.
4321 * testsuite/Makefile.in: Likewise.
4322
4323 2003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4324
4325 * testsuite/libffi.call/closure_fn0.c: Print result and check
4326 with dg-output to make debugging easier.
4327 * testsuite/libffi.call/closure_fn1.c: Likewise.
4328 * testsuite/libffi.call/closure_fn2.c: Likewise.
4329 * testsuite/libffi.call/closure_fn3.c: Likewise.
4330 * testsuite/libffi.call/closure_fn4.c: Likewise.
4331 * testsuite/libffi.call/closure_fn5.c: Likewise.
4332 * testsuite/libffi.call/cls_12byte.c: Likewise.
4333 * testsuite/libffi.call/cls_16byte.c: Likewise.
4334 * testsuite/libffi.call/cls_18byte.c: Likewise.
4335 * testsuite/libffi.call/cls_19byte.c: Likewise.
4336 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4337 * testsuite/libffi.call/cls_20byte.c: Likewise.
4338 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4339 * testsuite/libffi.call/cls_24byte.c: Likewise.
4340 * testsuite/libffi.call/cls_2byte.c: Likewise.
4341 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4342 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4343 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4344 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4345 * testsuite/libffi.call/cls_4byte.c: Likewise.
4346 * testsuite/libffi.call/cls_5byte.c: Likewise.
4347 * testsuite/libffi.call/cls_64byte.c: Likewise.
4348 * testsuite/libffi.call/cls_6byte.c: Likewise.
4349 * testsuite/libffi.call/cls_7byte.c: Likewise.
4350 * testsuite/libffi.call/cls_8byte.c: Likewise.
4351 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4352 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4353 * testsuite/libffi.call/cls_double.c: Likewise.
4354 * testsuite/libffi.call/cls_float.c: Likewise.
4355 * testsuite/libffi.call/cls_schar.c: Likewise.
4356 * testsuite/libffi.call/cls_sint.c: Likewise.
4357 * testsuite/libffi.call/cls_sshort.c: Likewise.
4358 * testsuite/libffi.call/cls_uchar.c: Likewise.
4359 * testsuite/libffi.call/cls_uint.c: Likewise.
4360 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4361 * testsuite/libffi.call/cls_ushort.c: Likewise.
4362 * testsuite/libffi.call/problem1.c: Likewise.
4363
4364 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4365 static.
4366
4367 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4368
4369 * testsuite/libffi.call/cls_9byte2.c: New test case.
4370 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4371 * testsuite/libffi.call/cls_64byte.c: Likewise.
4372 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4373 * testsuite/libffi.call/cls_19byte.c: Likewise.
4374 * testsuite/libffi.call/cls_18byte.c: Likewise.
4375 * testsuite/libffi.call/closure_fn4.c: Likewise.
4376 * testsuite/libffi.call/closure_fn5.c: Likewise.
4377 * testsuite/libffi.call/cls_schar.c: Likewise.
4378 * testsuite/libffi.call/cls_sint.c: Likewise.
4379 * testsuite/libffi.call/cls_sshort.c: Likewise.
4380 * testsuite/libffi.call/nested_struct2.c: Likewise.
4381 * testsuite/libffi.call/nested_struct3.c: Likewise.
4382
4383 2003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4384
4385 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4386 * testsuite/libffi.call/cls_uchar.c: Likewise.
4387 * testsuite/libffi.call/cls_uint.c: Likewise.
4388 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4389 * testsuite/libffi.call/cls_ushort.c: Likewise.
4390 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4391
4392 2003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4393
4394 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4395 the initialization.
4396
4397 2003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4398
4399 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4400 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4401
4402 2003-10-22 David Daney <ddaney@avtrex.com>
4403
4404 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4405 __attribute__((__mode__(__SI__))) and friends.
4406
4407 2003-10-22 Andreas Schwab <schwab@suse.de>
4408
4409 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4410
4411 2003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4412
4413 * configure.in: AC_LINK_FILES(ffitarget.h).
4414 * configure: Regenerate.
4415 * Makefile.in: Likewise.
4416 * include/Makefile.in: Likewise.
4417 * testsuite/Makefile.in: Likewise.
4418 * fficonfig.h.in: Likewise.
4419
4420 2003-10-21 Paolo Bonzini <bonzini@gnu.org>
4421 Richard Henderson <rth@redhat.com>
4422
4423 Avoid that ffi.h includes fficonfig.h.
4424
4425 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4426 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4427 (TARGET_SRC_MIPS_SGI): Removed.
4428 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4429 (MIPS_SGI): Removed.
4430 (CLEANFILES): Removed.
4431 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4432 targets.
4433 * acconfig.h: Removed.
4434 * configure.in: Compute sizeofs only for double and long double.
4435 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4436 into AC_DEFINE instead of using acconfig.h. Create
4437 include/ffitarget.h instead of include/fficonfig.h. Rename
4438 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4439 AC_DEFINE EH_FRAME_FLAGS.
4440 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4441 (hack_DATA): Add ffitarget.h.
4442 * include/ffi.h.in: Remove all system specific definitions.
4443 Declare raw API even if it is not installed, why bother?
4444 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4445 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4446 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4447 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4448 * include/ffi_common.h (bool): Do not define.
4449 (ffi_assert): Accept failed assertion.
4450 (ffi_type_test): Return void and accept file/line.
4451 (FFI_ASSERT): Pass stringized failed assertion.
4452 (FFI_ASSERT_AT): New macro.
4453 (FFI_ASSERT_VALID_TYPE): New macro.
4454 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4455 UINT64, SINT64): Define here with gcc's __attribute__ macro
4456 instead of in ffi.h
4457 (FLOAT32, ALIGN): Define here instead of in ffi.h
4458 * include/ffi-mips.h: Removed. Its content moved to
4459 src/mips/ffitarget.h after separating assembly and C sections.
4460 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4461 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4462 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4463 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4464 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4465 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4466 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4467 (ffi_type_test): Rewritten.
4468 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4469 FFI_ASSERT_VALID_TYPE.
4470 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4471 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4472 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4473 src/s390/ffitarget.h, src/sh/ffitarget.h,
4474 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4475 src/x86/ffitarget.h: New files.
4476 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4477 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4478 src/powerpc/aix.S, src/powerpc/darwin.S,
4479 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4480 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4481 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4482 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4483 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4484 include fficonfig.h
4485
4486 2003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4487
4488 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4489 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4490
4491 2003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4492
4493 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4494 Used when FFI_DEBUG = 1.
4495
4496 2003-10-14 Alan Modra <amodra@bigpond.net.au>
4497
4498 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4499 and align.
4500
4501 2003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4502
4503 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4504 FFI_MIPS_O32 for O32 ABI.
4505
4506 2003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4507
4508 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4509 SPARC64. Cleanup whitespaces.
4510
4511 2003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4512
4513 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4514 strongarm, xscale. Cleanup whitespaces.
4515 * testsuite/libffi.call/closure_fn1.c: Likewise.
4516 * testsuite/libffi.call/closure_fn2.c: Likewise.
4517 * testsuite/libffi.call/closure_fn3.c: Likewise.
4518 * testsuite/libffi.call/cls_12byte.c: Likewise.
4519 * testsuite/libffi.call/cls_16byte.c: Likewise.
4520 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4521 * testsuite/libffi.call/cls_20byte.c: Likewise.
4522 * testsuite/libffi.call/cls_24byte.c: Likewise.
4523 * testsuite/libffi.call/cls_2byte.c: Likewise.
4524 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4525 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4526 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4527 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4528 * testsuite/libffi.call/cls_4byte.c: Likewise.
4529 * testsuite/libffi.call/cls_5byte.c: Likewise.
4530 * testsuite/libffi.call/cls_6byte.c: Likewise.
4531 * testsuite/libffi.call/cls_7byte.c: Likewise.
4532 * testsuite/libffi.call/cls_8byte.c: Likewise.
4533 * testsuite/libffi.call/cls_double.c: Likewise.
4534 * testsuite/libffi.call/cls_float.c: Likewise.
4535 * testsuite/libffi.call/cls_uchar.c: Likewise.
4536 * testsuite/libffi.call/cls_uint.c: Likewise.
4537 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4538 * testsuite/libffi.call/cls_ushort.c: Likewise.
4539 * testsuite/libffi.call/nested_struct.c: Likewise.
4540 * testsuite/libffi.call/nested_struct1.c: Likewise.
4541 * testsuite/libffi.call/problem1.c: Likewise.
4542 * testsuite/libffi.special/unwindtest.cc: Likewise.
4543 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4544
4545 2003-09-18 David Edelsohn <edelsohn@gnu.org>
4546
4547 * src/powerpc/aix.S: Cleanup whitespaces.
4548 * src/powerpc/aix_closure.S: Likewise.
4549
4550 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4551
4552 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4553 * src/powerpc/darwin_closure.S: Likewise.
4554 * src/powerpc/ffi_darwin.c: Likewise.
4555
4556 2003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4557 David Edelsohn <edelsohn@gnu.org>
4558
4559 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4560 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4561 parameter stack.
4562 * src/powerpc/darwin_closure.S: Likewise.
4563 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4564 according to the Darwin/AIX ABI.
4565 (ffi_prep_cif_machdep): Likewise.
4566 (ffi_closure_helper_DARWIN): Likewise.
4567 Remove the outgoing parameter stack logic. Simplify the evaluation
4568 of the different CASE types.
4569 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4570 statement in the trampoline code.
4571
4572 2003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4573
4574 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4575 for the register size.
4576 (ffi_closure_helper_SYSV): Handle the structure return value
4577 address correctly.
4578 (ffi_closure_helper_SYSV): Return the appropriate type when
4579 the registers are used for the structure return value.
4580 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4581 the 64-bit return value. Update copyright years.
4582
4583 2003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4584
4585 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4586 srcdir for ffi_mips.h.
4587
4588 2003-09-12 Alan Modra <amodra@bigpond.net.au>
4589
4590 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4591 structure size.
4592 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4593 placement of float result.
4594 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4595 cast of "resp" for big-endian 64 bit machines.
4596
4597 2003-09-11 Alan Modra <amodra@bigpond.net.au>
4598
4599 * src/types.c (double, longdouble): Merge identical SH and ARM
4600 typedefs, and add POWERPC64.
4601 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4602 struct split over gpr and rest.
4603 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4604 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4605
4606 2003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4607
4608 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4609 passing correctly.
4610
4611 2003-09-09 Alan Modra <amodra@bigpond.net.au>
4612
4613 * configure: Regenerate.
4614
4615 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4616
4617 * Makefile.am: Remove build rules for ffitest.
4618 * Makefile.in: Rebuilt.
4619
4620 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4621
4622 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4623 about implicit declaration of abort().
4624
4625 2003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4626
4627 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4628 * Makefile.in: Rebuilt.
4629 * configure.in: Add dejagnu test framework.
4630 * configure: Rebuilt.
4631
4632 * testsuite/Makefile.am: New file.
4633 * testsuite/Makefile.in: Built
4634 * testsuite/lib/libffi-dg.exp: New file.
4635 * testsuite/config/default.exp: Likewise.
4636 * testsuite/libffi.call/call.exp: Likewise.
4637 * testsuite/libffi.call/ffitest.h: Likewise.
4638 * testsuite/libffi.call/closure_fn0.c: Likewise.
4639 * testsuite/libffi.call/closure_fn1.c: Likewise.
4640 * testsuite/libffi.call/closure_fn2.c: Likewise.
4641 * testsuite/libffi.call/closure_fn3.c: Likewise.
4642 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4643 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4644 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4645 * testsuite/libffi.call/cls_2byte.c: Likewise.
4646 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4647 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4648 * testsuite/libffi.call/cls_4byte.c: Likewise.
4649 * testsuite/libffi.call/cls_5byte.c: Likewise.
4650 * testsuite/libffi.call/cls_6byte.c: Likewise.
4651 * testsuite/libffi.call/cls_7byte.c: Likewise.
4652 * testsuite/libffi.call/cls_8byte.c: Likewise.
4653 * testsuite/libffi.call/cls_12byte.c: Likewise.
4654 * testsuite/libffi.call/cls_16byte.c: Likewise.
4655 * testsuite/libffi.call/cls_20byte.c: Likewise.
4656 * testsuite/libffi.call/cls_24byte.c: Likewise.
4657 * testsuite/libffi.call/cls_double.c: Likewise.
4658 * testsuite/libffi.call/cls_float.c: Likewise.
4659 * testsuite/libffi.call/cls_uchar.c: Likewise.
4660 * testsuite/libffi.call/cls_uint.c: Likewise.
4661 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4662 * testsuite/libffi.call/cls_ushort.c: Likewise.
4663 * testsuite/libffi.call/float.c: Likewise.
4664 * testsuite/libffi.call/float1.c: Likewise.
4665 * testsuite/libffi.call/float2.c: Likewise.
4666 * testsuite/libffi.call/many.c: Likewise.
4667 * testsuite/libffi.call/many_win32.c: Likewise.
4668 * testsuite/libffi.call/nested_struct.c: Likewise.
4669 * testsuite/libffi.call/nested_struct1.c: Likewise.
4670 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4671 * testsuite/libffi.call/problem1.c: Likewise.
4672 * testsuite/libffi.call/promotion.c: Likewise.
4673 * testsuite/libffi.call/return_ll.c: Likewise.
4674 * testsuite/libffi.call/return_sc.c: Likewise.
4675 * testsuite/libffi.call/return_uc.c: Likewise.
4676 * testsuite/libffi.call/strlen.c: Likewise.
4677 * testsuite/libffi.call/strlen_win32.c: Likewise.
4678 * testsuite/libffi.call/struct1.c: Likewise.
4679 * testsuite/libffi.call/struct2.c: Likewise.
4680 * testsuite/libffi.call/struct3.c: Likewise.
4681 * testsuite/libffi.call/struct4.c: Likewise.
4682 * testsuite/libffi.call/struct5.c: Likewise.
4683 * testsuite/libffi.call/struct6.c: Likewise.
4684 * testsuite/libffi.call/struct7.c: Likewise.
4685 * testsuite/libffi.call/struct8.c: Likewise.
4686 * testsuite/libffi.call/struct9.c: Likewise.
4687 * testsuite/libffi.special/special.exp: New file.
4688 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4689 * testsuite/libffi.special/unwindtest.cc: Likewise.
4690
4691
4692 2003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4693
4694 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4695 copyright years.
4696
4697 2003-08-02 Alan Modra <amodra@bigpond.net.au>
4698
4699 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4700 structure passing.
4701 (ffi_closure_helper_LINUX64): Likewise.
4702 * src/powerpc/linux64.S: Remove code writing to parm save area.
4703 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4704 address in lr from ffi_closure_helper_LINUX64 call to calculate
4705 table address. Optimize function tail.
4706
4707 2003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4708
4709 * src/sparc/ffi.c: Handle all floating point registers.
4710 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4711
4712 2003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4713
4714 * README: Note that libffi is not part of GCC. Update the project
4715 URL and status.
4716
4717 2003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4718
4719 * src/powerpc/ppc_closure.S: Include ffi.h.
4720
4721 2003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4722
4723 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4724 Use C style comments.
4725
4726 2003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4727
4728 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4729 * Makefile.in: Regenerate.
4730 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4731 * configure: Regenerate.
4732 * include/ffi.h.in: Add SHmedia support.
4733 * src/sh64/ffi.c: New file.
4734 * src/sh64/sysv.S: New file.
4735
4736 2003-05-16 Jakub Jelinek <jakub@redhat.com>
4737
4738 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4739 should be read-only.
4740 * configure: Rebuilt.
4741 * fficonfig.h.in: Rebuilt.
4742 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4743 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4744 * src/powerpc/linux64.S: Likewise.
4745 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4746 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4747 if -fpic/-fPIC/-mrelocatable.
4748 * src/powerpc/powerpc_closure.S: Likewise.
4749 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4750 #write in .eh_frame flags.
4751 * src/sparc/v9.S: Likewise.
4752 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4753 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4754 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4755
4756 2003-05-07 Jeff Sturm <jsturm@one-point.com>
4757
4758 Fixes PR bootstrap/10656
4759 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4760 support for .register pseudo-op.
4761 * src/sparc/v8.S: Use it.
4762 * fficonfig.h.in: Rebuilt.
4763 * configure: Rebuilt.
4764
4765 2003-04-18 Jakub Jelinek <jakub@redhat.com>
4766
4767 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4768 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4769 Make it the default on POWERPC64.
4770 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4771 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4772 * configure: Rebuilt.
4773 * src/powerpc/ffi.c (hidden): Define.
4774 (ffi_prep_args_SYSV): Renamed from
4775 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4776 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4777 ASM_NEEDS_REGISTERS64): New.
4778 (ffi_prep_args64): New function.
4779 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4780 (ffi_call): Likewise.
4781 (ffi_prep_closure): Likewise.
4782 (flush_icache): Surround by #ifndef POWERPC64.
4783 (ffi_dblfl): New union type.
4784 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4785 (ffi_closure_helper_LINUX64): New function.
4786 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4787 __powerpc64__.
4788 * src/powerpc/sysv.S: Likewise.
4789 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4790 * src/powerpc/linux64.S: New file.
4791 * src/powerpc/linux64_closure.S: New file.
4792 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4793 src/powerpc/linux64_closure.S.
4794 (TARGET_SRC_POWERPC): Likewise.
4795
4796 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4797 closure_test_fn3): Fix result printing on big-endian 64-bit
4798 machines.
4799 (main): Print tst2_arg instead of uninitialized tst2_result.
4800
4801 * src/ffitest.c (main): Hide what closure pointer really points to
4802 from the compiler.
4803
4804 2003-04-16 Richard Earnshaw <rearnsha@arm.com>
4805
4806 * configure.in (arm-*-netbsdelf*): Add configuration.
4807 (configure): Regenerated.
4808
4809 2003-04-04 Loren J. Rittle <ljrittle@acm.org>
4810
4811 * include/Makefile.in: Regenerate.
4812
4813 2003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4814
4815 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4816 bit mode.
4817 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4818 Receive closure pointer through parameter, read args using
4819 __builtin_dwarf_cfa.
4820 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4821
4822 2003-03-12 Andreas Schwab <schwab@suse.de>
4823
4824 * configure.in: Avoid trailing /. in toolexeclibdir.
4825 * configure: Rebuilt.
4826
4827 2003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4828
4829 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4830
4831 2003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4832
4833 * libffi/src/powerpc/darwin_closure.S:
4834 Fix alignement bug, allocate 8 bytes for the result.
4835 * libffi/src/powerpc/aix_closure.S:
4836 Likewise.
4837 * libffi/src/powerpc/ffi_darwin.c:
4838 Update stackframe description for aix/darwin_closure.S.
4839
4840 2003-02-06 Jakub Jelinek <jakub@redhat.com>
4841
4842 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4843 attribute.
4844
4845 2003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4846 Andreas Schwab <schwab@suse.de>
4847
4848 * configure.in: Adjust command to source config-ml.in to account
4849 for changes to the libffi_basedir definition.
4850 (libffi_basedir): Remove ${srcdir} from value and include trailing
4851 slash if nonempty.
4852
4853 * configure: Regenerate.
4854
4855 2003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4856
4857 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4858
4859 2003-01-28 Andrew Haley <aph@redhat.com>
4860
4861 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4862 * src/x86/ffi64.c (ffi_prep_closure): New.
4863 (ffi_closure_UNIX64_inner): New.
4864 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4865
4866 2003-01-27 Alexandre Oliva <aoliva@redhat.com>
4867
4868 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4869 Remove USE_LIBDIR conditional.
4870 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4871 * Makefile.in, configure: Rebuilt.
4872
4873 2003-01027 David Edelsohn <edelsohn@gnu.org>
4874
4875 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4876 * Makefile.in: Regenerate.
4877
4878 2003-01-22 Andrew Haley <aph@redhat.com>
4879
4880 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4881 unwind info.
4882
4883 2003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4884
4885 * src/powerpc/darwin.S: Add unwind info.
4886 * src/powerpc/darwin_closure.S: Likewise.
4887
4888 2003-01-14 Andrew Haley <aph@redhat.com>
4889
4890 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4891 (ffi_prep_cif_machdep): Likewise.
4892 * src/x86/unix64.S: Add unwind info.
4893
4894 2003-01-14 Andreas Jaeger <aj@suse.de>
4895
4896 * src/ffitest.c (main): Only use ffi_closures if those are
4897 supported.
4898
4899 2003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4900
4901 * libffi/src/ffitest.c
4902 add closure testcases
4903
4904 2003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4905
4906 * libffi/src/powerpc/ffi.c
4907 fix alignment bug for float (4 byte aligned iso 8 byte)
4908
4909 2003-01-09 Geoffrey Keating <geoffk@apple.com>
4910
4911 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4912 * src/powerpc/darwin.S: Remove RCS version string.
4913
4914 2003-01-03 Jeff Sturm <jsturm@one-point.com>
4915
4916 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4917 * src/ffitest.c (main): Use static storage for closure.
4918 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4919 * src/sparc/v8.S (ffi_closure_v8): New.
4920 * src/sparc/v9.S (ffi_closure_v9): New.
4921
4922 2002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4923
4924 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4925 enumeration for X86_WIN32.
4926 * src/x86/win32.S: Added ffi_call_STDCALL function
4927 definition.
4928 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4929 switch cases for recognising FFI_STDCALL and
4930 calling ffi_call_STDCALL if target is X86_WIN32.
4931 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4932 stdcall versions of the "my_strlen" and "many"
4933 test functions (for X86_WIN32).
4934 Added test cases to test stdcall invocation using
4935 these functions.
4936
4937 2002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4938
4939 * src/sh/sysv.S: Add DWARF2 unwind info.
4940
4941 2002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4942
4943 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4944
4945 2002-11-26 Jim Wilson <wilson@redhat.com>
4946
4947 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4948
4949 2002-11-23 H.J. Lu <hjl@gnu.org>
4950
4951 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4952 Include ../config/accross.m4.
4953 * aclocal.m4; Rebuild.
4954 * configure: Likewise.
4955
4956 2002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4957
4958 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4959
4960 2002-11-11 DJ Delorie <dj@redhat.com>
4961
4962 * configure.in: Look for common files in the right place.
4963
4964 2002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4965
4966 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4967 raw data as _Jv_word values, not ffi_raw.
4968 (ffi_java_ptrarray_to_raw): Likewise.
4969 (ffi_java_rvalue_to_raw): New function.
4970 (ffi_java_raw_call): Call it.
4971 (ffi_java_raw_to_rvalue): New function.
4972 (ffi_java_translate_args): Call it.
4973 * src/ffitest.c (closure_test_fn): Interpret return value
4974 as ffi_arg, not int.
4975 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4976 FFI_TYPE_POINTER case.
4977 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4978 values extended to word size.
4979
4980 2002-10-02 Andreas Jaeger <aj@suse.de>
4981
4982 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4983
4984 2002-10-01 Bo Thorsen <bo@smetana.suse.de>
4985
4986 * include/ffi.h.in: Fix i386 win32 compilation.
4987
4988 2002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4989
4990 * configure.in: Add s390x-*-linux-* target.
4991 * configure: Regenerate.
4992 * include/ffi.h.in: Define S390X for s390x targets.
4993 (FFI_CLOSURES): Define for s390/s390x.
4994 (FFI_TRAMPOLINE_SIZE): Likewise.
4995 (FFI_NATIVE_RAW_API): Likewise.
4996 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4997 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4998 * src/s390/ffi.c: Major rework of existing code. Add support for
4999 s390x targets. Add closure support.
5000 * src/s390/sysv.S: Likewise.
5001
5002 2002-09-29 Richard Earnshaw <rearnsha@arm.com>
5003
5004 * src/arm/sysv.S: Fix typo.
5005
5006 2002-09-28 Richard Earnshaw <rearnsha@arm.com>
5007
5008 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5009 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5010 (ffi_call_SYSV): Handle soft-float.
5011
5012 2002-09-27 Bo Thorsen <bo@suse.de>
5013
5014 * include/ffi.h.in: Fix multilib x86-64 support.
5015
5016 2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5017
5018 * Makefile.am (all-multi): Fix multilib parallel build.
5019
5020 2002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
5021
5022 * configure.in (sh[34]*-*-linux*): Add brackets.
5023 * configure: Regenerate.
5024
5025 2002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
5026
5027 * Makefile.am: Add SH support.
5028 * Makefile.in: Regenerate.
5029 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5030 * configure: Regenerate.
5031 * include/ffi.h.in: Add SH support.
5032 * src/sh/ffi.c: New file.
5033 * src/sh/sysv.S: New file.
5034 * src/types.c: Add SH support.
5035
5036 2002-07-16 Bo Thorsen <bo@suse.de>
5037
5038 * src/x86/ffi64.c: New file that adds x86-64 support.
5039 * src/x86/unix64.S: New file that handles argument setup for
5040 x86-64.
5041 * src/x86/sysv.S: Don't use this on x86-64.
5042 * src/x86/ffi.c: Don't use this on x86-64.
5043 Remove unused vars.
5044 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5045 for x86-64.
5046 * src/ffitest.c (struct6): New test that tests a special case in
5047 the x86-64 ABI.
5048 (struct7): Likewise.
5049 (struct8): Likewise.
5050 (struct9): Likewise.
5051 (closure_test_fn): Silence warning about this when it's not used.
5052 (main): Add the new tests.
5053 (main): Fix a couple of wrong casts and silence some compiler warnings.
5054 * include/ffi.h.in: Add x86-64 ABI definition.
5055 * fficonfig.h.in: Regenerate.
5056 * Makefile.am: Add x86-64 support.
5057 * configure.in: Likewise.
5058 * Makefile.in: Regenerate.
5059 * configure: Likewise.
5060
5061 2002-06-24 Bo Thorsen <bo@suse.de>
5062
5063 * src/types.c: Merge settings for similar architectures.
5064 Add x86-64 sizes and alignments.
5065
5066 2002-06-23 Bo Thorsen <bo@suse.de>
5067
5068 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5069 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5070 * src/mips/ffi.c (ffi_prep_args): Likewise.
5071 * src/m68k/ffi.c (ffi_prep_args): Likewise.
5072
5073 2002-07-18 H.J. Lu (hjl@gnu.org)
5074
5075 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5076 (libffi_la_SOURCES): Support MIPS_LINUX.
5077 (libffi_convenience_la_SOURCES): Likewise.
5078 * Makefile.in: Regenerated.
5079
5080 * configure.in (mips64*-*): Skip.
5081 (mips*-*-linux*): New.
5082 * configure: Regenerated.
5083
5084 * src/mips/ffi.c: Include <sgidefs.h>.
5085
5086 2002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
5087
5088 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5089
5090 2002-05-27 Roger Sayle <roger@eyesopen.com>
5091
5092 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5093
5094 2002-05-27 Bo Thorsen <bo@suse.de>
5095
5096 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5097 fix formatting.
5098
5099 2002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5100
5101 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5102 beginning of function (for older apple cc).
5103
5104 2002-05-08 Alexandre Oliva <aoliva@redhat.com>
5105
5106 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5107 script entry, and set LD to it when configuring multilibs.
5108 * configure: Rebuilt.
5109
5110 2002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5111
5112 * configure.in (sparc64-*-netbsd*): Add target.
5113 (sparc-*-netbsdelf*): Likewise.
5114 * configure: Regenerate.
5115
5116 2002-04-28 David S. Miller <davem@redhat.com>
5117
5118 * configure.in, configure: Fix SPARC test in previous change.
5119
5120 2002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5121
5122 * Makefile.am: Add Linux for S/390 support.
5123 * Makefile.in: Regenerate.
5124 * configure.in: Add Linux for S/390 support.
5125 * configure: Regenerate.
5126 * include/ffi.h.in: Add Linux for S/390 support.
5127 * src/s390/ffi.c: New file from libffi CVS tree.
5128 * src/s390/sysv.S: New file from libffi CVS tree.
5129
5130 2002-04-28 Jakub Jelinek <jakub@redhat.com>
5131
5132 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5133 %r_disp32().
5134 * src/sparc/v8.S: Use it.
5135 * src/sparc/v9.S: Likewise.
5136 * fficonfig.h.in: Rebuilt.
5137 * configure: Rebuilt.
5138
5139 2002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5140
5141 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5142 correctly.
5143 * src/ia64/unix.S: Add unwind information. Fix comments.
5144 Save sp in a way that's compatible with unwind info.
5145 (ffi_call_unix): Correctly restore sp in all cases.
5146 * src/ia64/ffi.c: Add, fix comments.
5147
5148 2002-04-08 Jakub Jelinek <jakub@redhat.com>
5149
5150 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5151
5152 2002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5153
5154 * configure.in (alpha*-*-netbsd*): Add target.
5155 * configure: Regenerate.
5156
5157 2002-04-04 Jeff Sturm <jsturm@one-point.com>
5158
5159 * src/sparc/v8.S: Add unwind info.
5160 * src/sparc/v9.S: Likewise.
5161
5162 2002-03-30 Krister Walfridsson <cato@df.lth.se>
5163
5164 * configure.in: Enable i*86-*-netbsdelf*.
5165 * configure: Rebuilt.
5166
5167 2002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5168
5169 PR other/2620
5170 * src/mips/n32.s: Delete
5171 * src/mips/o32.s: Delete
5172
5173 2002-03-21 Loren J. Rittle <ljrittle@acm.org>
5174
5175 * configure.in: Enable alpha*-*-freebsd*.
5176 * configure: Rebuilt.
5177
5178 2002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5179
5180 * Makefile.am: libfficonvenience -> libffi_convenience.
5181 * Makefile.in: Rebuilt.
5182
5183 * Makefile.am: Define ffitest_OBJECTS.
5184 * Makefile.in: Rebuilt.
5185
5186 2002-03-07 Andreas Tobler <toa@pop.agri.ch>
5187 David Edelsohn <edelsohn@gnu.org>
5188
5189 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5190 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5191 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5192 * Makefile.in: Regenerate.
5193 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5194 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5195 (flush_icache, flush_range): New functions.
5196 (ffi_closure_helper_DARWIN): New function.
5197 * src/powerpc/aix_closure.S: New file.
5198 * src/powerpc/darwin_closure.S: New file.
5199
5200 2002-02-24 Jeff Sturm <jsturm@one-point.com>
5201
5202 * include/ffi.h.in: Add typedef for ffi_arg.
5203 * src/ffitest.c (main): Declare rint with ffi_arg.
5204
5205 2002-02-21 Andreas Tobler <toa@pop.agri.ch>
5206
5207 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5208 number of GPRs for floating-point arguments.
5209
5210 2002-01-31 Anthony Green <green@redhat.com>
5211
5212 * configure: Rebuilt.
5213 * configure.in: Replace CHECK_SIZEOF and endian tests with
5214 cross-compiler friendly macros.
5215 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5216 macros.
5217
5218 2002-01-18 David Edelsohn <edelsohn@gnu.org>
5219
5220 * src/powerpc/darwin.S (_ffi_call_AIX): New.
5221 * src/powerpc/aix.S (ffi_call_DARWIN): New.
5222
5223 2002-01-17 David Edelsohn <edelsohn@gnu.org>
5224
5225 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5226 (TARGET_SRC_POWERPC_AIX): New.
5227 (POWERPC_AIX): New stanza.
5228 * Makefile.in: Regenerate.
5229 * configure.in: Add AIX case.
5230 * configure: Regenerate.
5231 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5232 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5233 size. Fix "long double" support.
5234 (ffi_call): Add FFI_AIX case.
5235 * src/powerpc/aix.S: New.
5236
5237 2001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5238
5239 Implement Darwin PowerPC ABI.
5240 * configure.in: Handle powerpc-*-darwin*.
5241 * Makefile.am: Set source files for POWERPC_DARWIN.
5242 * configure: Rebuilt.
5243 * Makefile.in: Rebuilt.
5244 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5245 POWERPC_DARWIN.
5246 * src/powerpc/darwin.S: New file.
5247 * src/powerpc/ffi_darwin.c: New file.
5248
5249 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5250
5251 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5252
5253 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5254
5255 * src/x86/sysv.S: Avoid gas-only .balign directive.
5256 Use C style comments.
5257
5258 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5259
5260 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5261 Fixes PR bootstrap/3563.
5262
5263 2001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5264
5265 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5266
5267 2001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5268
5269 * configure.in: Recognize sparc*-sun-* host.
5270 * configure: Regenerate.
5271
5272 2001-06-06 Andrew Haley <aph@redhat.com>
5273
5274 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5275
5276 2001-06-03 Andrew Haley <aph@redhat.com>
5277
5278 * src/alpha/osf.S: Add unwind info.
5279 * src/powerpc/sysv.S: Add unwind info.
5280 * src/powerpc/ppc_closure.S: Likewise.
5281
5282 2000-05-31 Jeff Sturm <jsturm@one-point.com>
5283
5284 * configure.in: Fix AC_ARG_ENABLE usage.
5285 * configure: Rebuilt.
5286
5287 2001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5288
5289 * configure.in: Remove warning about beta code.
5290 * configure: Rebuilt.
5291
5292 2001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5293
5294 * src/ia64/unix.S: Restore stack pointer when returning from
5295 ffi_closure_UNIX.
5296 * src/ia64/ffi.c: Fix typo in comment.
5297
5298 2001-04-18 Jim Wilson <wilson@redhat.com>
5299
5300 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5301 to eliminate RAW DV.
5302
5303 2001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5304
5305 * Makefile.am: Make a libtool convenience library.
5306 * Makefile.in: Rebuilt.
5307
5308 2001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5309
5310 * configure.in: Use different syntax for subdirectory creation.
5311 * configure: Rebuilt.
5312
5313 2001-03-27 Jon Beniston <jon@beniston.com>
5314
5315 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5316 * configure: Rebuilt.
5317 * Makefile.am: Added X86_WIN32 target support.
5318 * Makefile.in: Rebuilt.
5319
5320 * include/ffi.h.in: Added X86_WIN32 target support.
5321
5322 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5323 * src/types.c: Added X86_WIN32 target support.
5324
5325 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5326 stuff removed and made to work with CygWin's gas.
5327
5328 2001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5329
5330 * configure.in: Make target subdirectory in build dir.
5331 * Makefile.am: Override suffix based rules to specify correct output
5332 subdirectory.
5333 * Makefile.in: Rebuilt.
5334 * configure: Rebuilt.
5335
5336 2001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5337
5338 * src/powerpc/ppc_closure.S: New file.
5339 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5340 involving long long and register pairs.
5341 (ffi_prep_closure): New function.
5342 (flush_icache): Likewise.
5343 (ffi_closure_helper_SYSV): Likewise.
5344 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5345 (FFI_TRAMPOLINE_SIZE): Likewise.
5346 (FFI_NATIVE_RAW_API): Likewise.
5347 * Makefile.in: Rebuilt.
5348 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5349 (TARGET_SRC_POWERPC): Likewise.
5350
5351 2001-03-19 Tom Tromey <tromey@redhat.com>
5352
5353 * Makefile.in: Rebuilt.
5354 * Makefile.am (ffitest_LDFLAGS): New macro.
5355
5356 2001-03-02 Nick Clifton <nickc@redhat.com>
5357
5358 * include/ffi.h.in: Remove RCS ident string.
5359 * include/ffi_mips.h: Remove RCS ident string.
5360 * src/debug.c: Remove RCS ident string.
5361 * src/ffitest.c: Remove RCS ident string.
5362 * src/prep_cif.c: Remove RCS ident string.
5363 * src/types.c: Remove RCS ident string.
5364 * src/alpha/ffi.c: Remove RCS ident string.
5365 * src/alpha/osf.S: Remove RCS ident string.
5366 * src/arm/ffi.c: Remove RCS ident string.
5367 * src/arm/sysv.S: Remove RCS ident string.
5368 * src/mips/ffi.c: Remove RCS ident string.
5369 * src/mips/n32.S: Remove RCS ident string.
5370 * src/mips/o32.S: Remove RCS ident string.
5371 * src/sparc/ffi.c: Remove RCS ident string.
5372 * src/sparc/v8.S: Remove RCS ident string.
5373 * src/sparc/v9.S: Remove RCS ident string.
5374 * src/x86/ffi.c: Remove RCS ident string.
5375 * src/x86/sysv.S: Remove RCS ident string.
5376
5377 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5378
5379 * include/ffi.h.in: Change sourceware.cygnus.com references to
5380 gcc.gnu.org.
5381
5382 2000-12-09 Richard Henderson <rth@redhat.com>
5383
5384 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5385 (ffi_closure_osf_inner): Index rather than increment avalue
5386 and arg_types. Give ffi_closure_osf the raw return value type.
5387 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5388 promotion.
5389
5390 2000-12-07 Richard Henderson <rth@redhat.com>
5391
5392 * src/raw_api.c (ffi_translate_args): Fix typo.
5393 (ffi_prep_closure): Likewise.
5394
5395 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5396 FFI_TRAMPOLINE_SIZE.
5397 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5398 cif->bytes for new ffi_call_osf implementation.
5399 (ffi_prep_args): Absorb into ...
5400 (ffi_call): ... here. Do all stack allocation here and
5401 avoid a callback function.
5402 (ffi_prep_closure, ffi_closure_osf_inner): New.
5403 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5404 (ffi_closure_osf): New.
5405
5406 2000-09-10 Alexandre Oliva <aoliva@redhat.com>
5407
5408 * config.guess, config.sub, install-sh: Removed.
5409 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5410 * Makefile.in: Rebuilt.
5411
5412 * acinclude.m4: Include libtool macros from the top level.
5413 * aclocal.m4, configure: Rebuilt.
5414
5415 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
5416
5417 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5418 * configure: Rebuilt.
5419
5420 2000-05-11 Scott Bambrough <scottb@netwinder.org>
5421
5422 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5423 memory correctly. Use conditional instructions, not branches where
5424 possible.
5425
5426 2000-05-04 Tom Tromey <tromey@cygnus.com>
5427
5428 * configure: Rebuilt.
5429 * configure.in: Match `arm*-*-linux-*'.
5430 From Chris Dornan <cdornan@arm.com>.
5431
5432 2000-04-28 Jakub Jelinek <jakub@redhat.com>
5433
5434 * Makefile.am (SUBDIRS): Define.
5435 (AM_MAKEFLAGS): Likewise.
5436 (Multilib support.): Add section.
5437 * Makefile.in: Rebuilt.
5438 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5439 New variables. Set for gcc using -print-multi-lib. Export them
5440 to libtool.
5441 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5442 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5443 for -shared links.
5444 (extra_compiler_flags_value, extra_compiler_flags): Check these
5445 for extra compiler options which need to be passed down in
5446 compiler_flags.
5447
5448 2000-04-16 Anthony Green <green@redhat.com>
5449
5450 * configure: Rebuilt.
5451 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5452
5453 2000-04-14 Jakub Jelinek <jakub@redhat.com>
5454
5455 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5456 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5457 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5458 Replace all void * sizeofs with sizeof(int).
5459 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5460 different than DOUBLE.
5461 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5462 (ffi_prep_args_v9): New function.
5463 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5464 (ffi_V9_return_struct): New function.
5465 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5466 32bit code (not yet cross-arch calls).
5467 * src/sparc/v8.S: Add struct return delay nop.
5468 Handle long long.
5469 * src/sparc/v9.S: New file.
5470 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5471 is used on sparc64 only for structures larger than 32 bytes.
5472 Pass by reference for structures is done for structure arguments
5473 larger than 16 bytes.
5474 * src/ffitest.c (main): Use 64bit rint on sparc64.
5475 Run long long tests on sparc.
5476 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5477 sparc64.
5478 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5479 on sparc64.
5480 * configure.in (sparc-*-linux*): New supported target.
5481 (sparc64-*-linux*): Likewise.
5482 * configure: Rebuilt.
5483 * Makefile.am: Add v9.S to SPARC files.
5484 * Makefile.in: Likewise.
5485 (LINK): Surround $(CCLD) into double quotes, so that multilib
5486 compiles work correctly.
5487
5488 2000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5489
5490 * configure: Rebuilt.
5491 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5492 proposed by Bryce McKinlay.
5493
5494 2000-03-20 Tom Tromey <tromey@cygnus.com>
5495
5496 * Makefile.in: Hand edit for java_raw_api.lo.
5497
5498 2000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5499
5500 * config.guess, config.sub: Update from the gcc tree.
5501 Fix for PR libgcj/168.
5502
5503 2000-03-03 Tom Tromey <tromey@cygnus.com>
5504
5505 * Makefile.in: Fixed ia64 by hand.
5506
5507 * configure: Rebuilt.
5508 * configure.in (--enable-multilib): New option.
5509 (libffi_basedir): New subst.
5510 (AC_OUTPUT): Added multilib code.
5511
5512 2000-03-02 Tom Tromey <tromey@cygnus.com>
5513
5514 * Makefile.in: Rebuilt.
5515 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5516 directory name.
5517
5518 2000-02-25 Hans Boehm <boehm@acm.org>
5519
5520 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5521 files.
5522 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5523 list.
5524 (ffi_prep_raw_closure): Use ffi_translate_args, not
5525 ffi_closure_translate.
5526 * src/java_raw_api.c: New file.
5527 * src/ffitest.c (closure_test_fn): New function.
5528 (main): Define `rint' as long long on IA64. Added new test when
5529 FFI_CLOSURES is defined.
5530 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5531 (ffi_abi): Recognize IA64.
5532 (ffi_raw): Added `flt' field.
5533 Added "Java raw API" code.
5534 * configure.in: Recognize ia64.
5535 * Makefile.am (TARGET_SRC_IA64): New macro.
5536 (libffi_la_common_SOURCES): Added java_raw_api.c.
5537 (libffi_la_SOURCES): Define in IA64 case.
5538
5539 2000-01-04 Tom Tromey <tromey@cygnus.com>
5540
5541 * Makefile.in: Rebuilt with newer automake.
5542
5543 1999-12-31 Tom Tromey <tromey@cygnus.com>
5544
5545 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5546
5547 1999-09-01 Tom Tromey <tromey@cygnus.com>
5548
5549 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5550 undefs.
5551 * fficonfig.h.in: Rebuilt.
5552 * configure: Rebuilt.
5553 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5554 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5555 * acconfig.h: Don't #undef PACKAGE or VERSION.
5556
5557 1999-08-09 Anthony Green <green@cygnus.com>
5558
5559 * include/ffi.h.in: Try to work around messy header problem
5560 with PACKAGE and VERSION.
5561
5562 * configure: Rebuilt.
5563 * configure.in: Change version to 2.00-beta.
5564
5565 * fficonfig.h.in: Rebuilt.
5566 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5567
5568 * src/x86/ffi.c (ffi_raw_call): Rename.
5569
5570 1999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5571
5572 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5573 (ffi_prep_incoming_args_SYSV): Ditto.
5574 (ffi_prep_closure): Ditto.
5575 (ffi_closure_raw_SYSV): Ditto.
5576 (ffi_prep_raw_closure): More ditto.
5577 (ffi_call_raw): Final ditto.
5578
5579 * include/ffi.h.in: Add definitions for closure and raw API.
5580
5581 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5582 FFI_TYPE_UINT64.
5583
5584 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5585
5586 * src/raw_api.c: New file.
5587
5588 * include/ffi.h.in (ffi_raw): New type.
5589 (UINT_ARG, SINT_ARG): New defines.
5590 (ffi_closure, ffi_raw_closure): New types.
5591 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5592
5593 * configure.in: Add check for endianness and sizeof void*.
5594
5595 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5596 instead of directly.
5597
5598 * configure: Rebuilt.
5599
5600 Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5601
5602 * configure.in: Add x86 and powerpc BeOS configurations.
5603 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5604
5605 1999-05-09 Anthony Green <green@cygnus.com>
5606
5607 * configure.in: Add warning about this being beta code.
5608 Remove src/Makefile.am from the picture.
5609 * configure: Rebuilt.
5610
5611 * Makefile.am: Move logic from src/Makefile.am. Add changes
5612 to support libffi as a target library.
5613 * Makefile.in: Rebuilt.
5614
5615 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5616 Upgraded to new autoconf, automake, libtool.
5617
5618 * README: Tweaks.
5619
5620 * LICENSE: Update copyright date.
5621
5622 * src/Makefile.am, src/Makefile.in: Removed.
5623
5624 1998-11-29 Anthony Green <green@cygnus.com>
5625
5626 * include/ChangeLog: Removed.
5627 * src/ChangeLog: Removed.
5628 * src/mips/ChangeLog: Removed.
5629 * src/sparc/ChangeLog: Remboved.
5630 * src/x86/ChangeLog: Removed.
5631
5632 * ChangeLog.v1: Created.