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