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