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