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