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