]> git.ipfire.org Git - thirdparty/gcc.git/blame - libffi/ChangeLog
<toplevel>
[thirdparty/gcc.git] / libffi / ChangeLog
CommitLineData
29a8a56b 12016-11-15 Matthias Klose <doko@ubuntu.com>
2
3 * configure: Regenerate.
4
b30bf455 52016-09-04 John David Anglin <danglin@gcc.gnu.org>
6
7 * src/pa/ffi.c (ffi_struct_type): Put type declaration on separate line.
8 (ffi_prep_args_pa32): Likewise.
9 (ffi_size_stack_pa32): Likewise.
10 (ffi_prep_cif_machdep): Likewise.
11 (ffi_call): Likewise. Rename to ffi_call_int. Add closure argument
12 and update call to ffi_call_pa32.
13 (ffi_call, ffi_call_go, ffi_prep_go_closure): New.
14 (ffi_closure_inner_pa32): Update to handle go closures.
15 * src/pa/ffitarget.h (FFI_GO_CLOSURES): Define.
16 * src/pa/hpux32.S (ffi_call_pa32): Pass go closure argument in static
17 chain register (%ret1).
18 (ffi_closure_pa32): Set closure type argument to zero.
19 (ffi_go_closure_pa32): New function. Add unwind data for it.
20 * src/pa/linux.S: Likewise. Use cfi directives for unwind data.
21 * testsuite/libffi.go/static-chain.h (STATIC_CHAIN_REG): Define for
22 hppa.
23
84c1a54d 242016-05-23 Thomas Schwinge <thomas@codesourcery.com>
25
26 PR libffi/65567
27 * testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
28
919b4b4f 292016-03-17 Andreas Schwab <schwab@suse.de>
30
31 * src/aarch64/ffitarget.h (FFI_SIZEOF_JAVA_RAW) [__ILP32__]:
32 Define.
33
fa2a9868 342016-03-02 Richard Henderson <rth@redhat.com>
35
36 * libtool-version: Increase to 7:0:0.
37 * libffi.map.in: Increase version numbers to 7.0.
38
8f57374b 392016-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
40
41 * Makefile.am (libffi.map-sun): Properly convert
42 $(libffi_la_OBJECTS) to object names.
43 * Makefile.in: Regenerate.
44
c111787b 452016-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
46
47 * Makefile.am (libffi.map-sun): Tabify:
48 * Makefile.in: Regenerate.
49
86d5c70d 502016-03-02 Richard Henderson <rth@redhat.com>
51
52 PR libffi/70024
53 * Makefile.am (libffi_version_script): New.
54 (libffi_version_dep): New.
55 (libffi_version_info): New.
56 (libffi_la_LDFLAGS): Include libffi_version_info, libffi_version_script.
57 (libffi_la_DEPENDENCIES): Include libffi_version_dep.
58 * acinclude.m4 (LIBAT_ENABLE, LIBAT_CHECK_LINKER_FEATURES): New.
59 (LIBAT_ENABLE_SYMVERS, LIBAT_BUILD_VERSIONED_SHLIB): New.
60 (LIBAT_BUILD_VERSIONED_SHLIB_GNU): New.
61 (LIBAT_BUILD_VERSIONED_SHLIB_SUN): New.
62 * configure.ac: Invoke LIBAT_ENABLE_SYMVERS.
63 * libffi.map: New file.
64 * libtool-version: Increase to 5.0.0.
65 * Makefile.in, configure: Rebuild.
66 * man/Makefile.in, testsuite/Makefile.in: Rebuild.
67
e9d8006c 68 * Makefile.am (libffi_version_script): Look in cwd for libffi.map.
69 (libffi_version_dep, libffi.map-sun): Likewise.
70 (libffi.map): New target.
71 * libffi.map.in: Rename from libffi.map. Add required defines,
72 includes, and conditionals.
73
befbe5dc 742015-10-26 John David Anglin <danglin@gcc.gnu.org>
75
76 PR libffi/65441
77 * testsuite/lib/libffi.exp: Load target-supports-dg.exp.
78 * testsuite/libffi.call/float2.c: Don't run on hppa*-*-hpux*.
79
94d5c889 802015-10-01 Alan Modra <amodra@gmail.com>
81
82 * src/powerpc/ffi_sysv.c (ffi_prep_cif_sysv_core): Count fprs,
83 gprs, and stack words separately.
84 (ffi_prep_args_SYSV): Similarly.
85
eca2514d 862015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
87
88 * Makefile.in: Regenerated with automake-1.11.6.
89 * aclocal.m4: Likewise.
90 * configure: Likewise.
91 * fficonfig.h.in: Likewise.
92 * include/Makefile.in: Likewise.
93 * man/Makefile.in: Likewise.
94 * testsuite/Makefile.in: Likewise.
95
7dda24be 962015-03-29 John David Anglin <danglin@gcc.gnu.org>
97
98 PR libffi/65567
99 * testsuite/lib/libffi.exp (libffi_feature_test): Use split to ensure
100 lindex is applied to a list.
101
5e712cf2 1022015-02-10 Andrew Pinski <apinski@cavium.com>
103
104 * src/aarch64/ffitarget.h (ffi_arg): Use unsigned long long for ILP32.
105 (FFI_SIZEOF_ARG): Define to 64 for ILP32.
106 (ffi_sarg): Use signed long long for ILP32.
107
108 * src/aarch64/sysv.S (PTR_REG): New macro.
109 (PTR_SIZE): New macro.
110 (ffi_closure_SYSV): Load cif, fn and user_data using PTR_REG.
111 (ffi_go_closure_SYSV): Load cif and fn using PTR_REG.
112
58103f12 1132015-01-29 Jack Howarth <howarth.at.gcc@gmail.com>
114
115 PR libffi/64855
116 * testsuite/lib/libffi.exp: Don't set targetabis on darwin.
117
14c010b9 1182015-01-28 Richard Henderson <rth@redhat.com>
119
fd166f67 120 PR libffi/64779
121 PR libffi/64799
14c010b9 122 * Merge to upstream commit db1b34b7e1f5e473d17557e454a29933dfecd1af.
123
124b61cd 1242015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
125
126 * testsuite/lib/libffi.exp: Load target-supports.exp.
127 (run-many-tests): Only set targetabis for ia32.
128
50321e16 1292015-01-19 Richard Henderson <rth@redhat.com>
130
131 PR libffi/64581
132 * testsuite/lib/libffi.exp (libffi_target_compile): Don't switch
133 to C++ mode when compiling C++ source code.
134
5966e424 1352015-01-19 Richard Henderson <rth@redhat.com>
136
137 * Merge to upstream commit 3ac1610aa33c887ea9b14935208943925714a33e.
138
e9c3d2a2 1392015-01-19 Richard Henderson <rth@redhat.com>
140
141 PR libffi/64607
142 * testsuite/lib/libffi.exp (libffi-init): Append -L for the
143 just built libstdc++.
144
886084bd 1452015-01-15 Dominique d'Humieres <dominiq@lps.ens.fr>
146 Richard Henderson <rth@redhat.com>
147
148 PR libffi/64607
149 * Makefile.am (AM_MAKEFLAGS): Use double quotes on subvariables.
150 * Makefile.in: Rebuilt.
151
56568d50 1522015-01-15 Richard Henderson <rth@redhat.com>
153
154 PR libffi/64572
155 * include/ffi.h.in (FFI_TYPE_LAST): Set to COMPLEX only if complex
156 numbers are supported by the backend.
157
9334fce4 1582015-01-13 Kaz Kojima <kkojima@gcc.gnu.org>
159
160 * configure.host: Remove extra brackets for sh.
161
1446e301 1622015-01-13 H.J. Lu <hongjiu.lu@intel.com>
163
164 PR bootstrap/64575
165 * configure.host (TARGET): Set to X86_64 if __x86_64__ is defined.
166
a95c552a 1672015-01-12 Richard Henderson <rth@redhat.com>
168
169 PR libffi/64572
170 * src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
171 (FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
172
3daca00b 1732015-01-12 Richard Henderson <rth@redhat.com>
174
175 * src/x86/ffi.c (ffi_raw_call): Fill in frame.
176
89d8a412 1772015-01-12 Richard Henderson <rth@redhat.com>
178
179 Merge to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16.
180
4e8a08d4 1812014-11-21 H.J. Lu <hongjiu.lu@intel.com>
182
183 PR bootstrap/63784
184 * configure: Regenerated.
185
7c407808 1862014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
187
188 PR target/63610
189 * configure: Regenerate.
190
3a4c5379 1912014-10-15 Ian Lance Taylor <iant@google.com>
192
193 * configure.ac: If the compiler supports -Qunused-arguments, use
194 it when running the compiler on .s files.
195 * configure: Regenerated.
196
9a11bbe0 1972014-09-11 Jakub Jelinek <jakub@redhat.com>
198
199 * src/powerpc/linux64.S: Emit .note.GNU-stack even when
200 POWERPC64 is not defined.
201 * src/powerpc/linux64_closure.S: Likewise. Also test _CALL_ELF == 2.
202
ab6e5665 2032014-07-21 Uros Bizjak <ubizjak@gmail.com>
204
205 * src/alpha/ffi.c: Do not include stdlib.h.
206 (ffi_closure_osf_inner) <default>: Use FFI_ASSERT instead of abort.
207
faff04c3 2082014-07-04 Thomas Schwinge <thomas@codesourcery.com>
209
210 * testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
211 match to dg-runtest's.
212
af902e2b 2132014-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de>
214
215 * testsuite/lib/libffi.exp (load_gcc_lib): Register loaded libs.
216
b061dab2 2172014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
218
219 Fix current cygwin-64 build problems.
220 * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API).
221 * src/x86/ffi.c: Add if defined(__CYGWIN__).
222 * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added
223 handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT.
224 Added SEH information. Fixed formatting.
225
2b536a17 2262014-04-22 Jakub Jelinek <jakub@redhat.com>
227
228 PR other/43620
229 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
230 * Makefile.in: Regenerated.
231 * include/Makefile.in: Regenerated.
232 * man/Makefile.in: Regenerated.
233 * testsuite/Makefile.in: Regenerated.
234
42aa8521 2352014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
236
237 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
238 main CFA reg; update cfi_rel_offset.
239
6b5229ed 2402014-02-17 Eric Botcazou <ebotcazou@adacore.com>
241
242 PR libffi/60073
243 * src/sparc/v8.S: Assemble only if !SPARC64.
244 * src/sparc/v9.S: Remove obsolete comment.
245 * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9.
246 (V8_ABI_P): New macro.
247 (V9_ABI_P): Likewise.
248 (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64.
249 * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64.
250 (ffi_prep_args_v9): Compile only if SPARC64.
251 (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate.
252 (ffi_prep_cif_machdep): Guard access to nfixedargs field.
253 (ffi_prep_cif_machdep_var): Likewise.
254 (ffi_v9_layout_struct): Compile only if SPARC64.
255 (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings.
256 (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates.
257 (ffi_closure_sparc_inner_v8): Compile only if !SPARC64.
258 (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access
259 to nfixedargs field.
260
be24203d 2612014-02-13 Eric Botcazou <ebotcazou@adacore.com>
262
263 PR libffi/60073
264 * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
265 (FFI_EXTRA_CIF_FIELDS): Likewise.
266 (FFI_NATIVE_RAW_API): Move around.
267 * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from...
268 (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core.
269 (ffi_prep_cif_machdep_var): New function.
270 (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in
271 FP registers.
272 * doc/libffi.texi (Introduction): Fix inaccuracy.
273
f7d6f268 2742013-12-10 Alan Modra <amodra@gmail.com>
275
276 * src/powerpc/ffitarget.h: Import from upstream.
277 * src/powerpc/ffi_powerpc.h: Likewise.
278 * src/powerpc/ffi.c: Likewise.
279 * src/powerpc/ffi_sysv.c: Likewise.
280 * src/powerpc/ffi_linux64.c: Likewise.
281 * src/powerpc/sysv.S: Likewise.
282 * src/powerpc/ppc_closure.S: Likewise.
283 * src/powerpc/linux64.S: Likewise.
284 * src/powerpc/linux64_closure.S: Likewise.
285 * src/types.c: Likewise.
286 * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
287 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
288 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
289 * include/ffi.h.in (ffi_prep_types): Declare.
290 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
291 * configure: Regenerate.
292 * fficonfig.h.in: Regenerate.
293 * Makefile.in: Regenerate.
294 * man/Makefile.in: Regenerate.
295 * include/Makefile.in: Regenerate.
296 * testsuite/Makefile.in: Regenerate.
297
5e248b87 2982013-11-18 Alan Modra <amodra@gmail.com>
299
55c25002 300 * src/powerpc/ppc_closure.S: Don't bl .Luint128.
301
5e248b87 302 * src/powerpc/ffitarget.h: Import from upstream.
303 * src/powerpc/ffi.c: Likewise.
304 * src/powerpc/linux64.S: Likewise.
305 * src/powerpc/linux64_closure.S: Likewise.
306 * doc/libffi.texi: Likewise.
307 * testsuite/libffi.call/cls_double_va.c: Likewise.
308 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
309
9613c003 3102013-09-20 Alan Modra <amodra@gmail.com>
311
312 * configure: Regenerate.
313
4b39381b 3142013-06-25 Alan Modra <amodra@gmail.com>
315
316 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
317 before statements.
318 (ffi_prep_args64): Support little-endian.
319 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
320 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
321 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
322
7e778de8 3232013-05-22 Dominique d'Humieres <dominiq@lps.ens.fr>
324 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
325
326 PR libffi/56033
327 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
328 ffi_arg *.
329 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
330 * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
331 * testsuite/libffi.call/va_struct1.c (main): Likewise.
332
817902a3 3332013-03-22 Kai Tietz <ktietz@redhat.com>
334
335 * src/x86/win64.S: Make use of ffi_closure_win64_inner
336 symbol pc-relative.
337
db9978f5 3382013-03-07 Dave Korn <dave.korn.cygwin@gmail.com>
339
340 * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]):
341 Move default definition outside enclosing #if scope.
342
a027f9e1 3432013-02-06 Andreas Tobler <andreast@fgznet.ch>
344
345 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where
346 DOUBLE equal LONGDOUBLE.
347
bda7c755 3482013-01-07 Thorsten Glaser <tg@mirbsd.org>
349
350 * testsuite/libffi.call/cls_uchar_va.c,
351 testsuite/libffi.call/cls_ushort_va.c,
352 testsuite/libffi.call/va_1.c: Testsuite fixes.
353
8cd092c9 3542012-12-29 Andreas Schwab <schwab@linux-m68k.org>
355
356 * Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
357 (STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES)
358 (MAINTAINERCLEANFILES): Define.
359 (all-local, stamp-geninsrc, stamp-build-info): New targets.
360 (doc/libffi.info): Depend on $(STAMP_BUILD_INFO)
361 * configure.ac: Check for modern makeinfo. Add support for
362 --enable-generated-files-in-srcdir.
363 * libffi/mdate-sh: New file.
364 * testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite
365 lib dir.
366 (libffi-init): Properly set library paths for multilibs and add
367 path to libstdc++.
368 * configure: Regenerate.
369 * aclocal.m4: Regenerate.
370 * Makefile.in: Regenerate.
371 * doc/stamp-vti: Regenerate.
372 * doc/version.texi: Regenerate.
373 * fficonfig.h.in: Regenerate.
374 * include/Makefile.in: Regenerate.
375 * man/Makefile.in: Regenerate.
376 * testsuite/Makefile.in: Regenerate.
377
1ef600dd 3782012-10-31 Alan Modra <amodra@gmail.com>
379
380 * src/powerpc/linux64_closure.S: Add new ABI support.
381 * src/powerpc/linux64.S: Likewise.
382
a65f362a 3832012-10-30 Magnus Granberg <zorry@gentoo.org>
384 Pavel Labushev <pavel.labushev@runbox.ru>
385
386 * configure.ac: New options pax_emutramp
387 * configure, fficonfig.h.in: Regenerated
388 * src/closures.c: New function emutramp_enabled_check() and
389 checks.
390
3912012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
392
393 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
394 lion) and future version.
395 * configure: Rebuild.
396
3972012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
398 Marcus Shawcroft <marcus.shawcroft at arm.com>
399
5e248b87 400 * README: Add details of aarch64 port.
401 * src/aarch64/ffi.c: New.
402 * src/aarch64/ffitarget.h: Likewise.
403 * src/aarch64/sysv.S: Likewise.
a65f362a 404 * Makefile.am: Support aarch64.
405 * configure.ac: Support aarch64.
406 * Makefile.in, configure: Rebuilt.
407
4082012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
409 Marcus Shawcroft <marcus.shawcroft at arm.com>
410
5e248b87 411 * testsuite/lib/libffi.exp: Add support for aarch64.
412 * testsuite/libffi.call/cls_struct_va1.c: New.
413 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
414 * testsuite/libffi.call/cls_uint_va.c: Likewise.
415 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
416 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
417 * testsuite/libffi.call/nested_struct11.c: Likewise.
418 * testsuite/libffi.call/uninitialized.c: Likewise.
419 * testsuite/libffi.call/va_1.c: Likewise.
420 * testsuite/libffi.call/va_struct1.c: Likewise.
421 * testsuite/libffi.call/va_struct2.c: Likewise.
422 * testsuite/libffi.call/va_struct3.c: Likewise.
a65f362a 423
4242012-10-12 Walter Lee <walt@tilera.com>
425
5e248b87 426 * Makefile.am: Add TILE-Gx/TILEPro support.
427 * configure.ac: Likewise.
428 * Makefile.in: Regenerate.
429 * configure: Likewise.
430 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
431 * src/tile: New directory.
432 * src/tile/ffi.c: New file.
433 * src/tile/ffitarget.h: Ditto.
434 * src/tile/tile.S: Ditto.
a65f362a 435
4362012-10-12 Matthias Klose <doko@ubuntu.com>
437
438 * generate-osx-source-and-headers.py: Normalize whitespace.
439
03b37ae7 4402012-09-14 David Edelsohn <dje.gcc@gmail.com>
441
442 * configure: Regenerated.
443
41ae7437 4442012-08-26 Andrew Pinski <apinski@cavium.com>
445
446 PR libffi/53014
447 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
448 soft-float.
449
eb3357e4 4502012-08-08 Uros Bizjak <ubizjak@gmail.com>
451
452 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
453 just return FFI_BAD_ABI when things are wrong.
454
8146f8e5 4552012-07-18 H.J. Lu <hongjiu.lu@intel.com>
456
457 PR libffi/53982
458 PR libffi/53973
459 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
460 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
461
4622012-05-16 H.J. Lu <hongjiu.lu@intel.com>
463
464 * configure: Regenerated.
465
a65f362a 4662012-05-05 Nicolas Lelong
467
468 * libffi.xcodeproj/project.pbxproj: Fixes.
469 * README: Update for iOS builds.
470
4712012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
472
473 * configure.ac: Add Blackfin/sysv support
474 * Makefile.am: Add Blackfin/sysv support
475 * src/bfin/ffi.c: Add Blackfin/sysv support
476 * src/bfin/ffitarget.h: Add Blackfin/sysv support
477
4782012-04-11 Anthony Green <green@moxielogic.com>
479
480 * Makefile.am (EXTRA_DIST): Add new script.
481 * Makefile.in: Rebuilt.
482
4832012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
484
485 * generate-ios-source-and-headers.py,
486 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
487 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
488 generation into an Xcode "run script" phase. Include both as
489 Xcode build scripts. Don't always regenerate config files.
490
4912012-04-10 Anthony Green <green@moxielogic.com>
492
493 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
494
4952012-04-06 Anthony Green <green@moxielogic.com>
496
497 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
498 * Makefile.in: Rebuilt.
499
5002012-04-06 Mike Lewis <mikelikespie@gmail.com>
501
502 * generate-ios-source-and-headers.py: New file.
503 * libffi.xcodeproj/project.pbxproj: New file.
504 * README: Update instructions on building iOS binary.
505 * build-ios.sh: Delete.
506
5072012-04-06 Anthony Green <green@moxielogic.com>
508
509 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
510 compilers, then use it.
511
5122012-04-06 H.J. Lu <hongjiu.lu@intel.com>
513
514 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
515
5162012-04-06 Anthony Green <green@moxielogic.com>
517
518 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
519 * testsuite/Makefile.in: Rebuilt.
520
5212012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
522
523 * include/ffi.h.in: Add missing trampoline table fields.
524 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
525 in CNAME.
526 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
527
5282012-03-29 Peter Rosin <peda@lysator.liu.se>
529
530 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
531 generation, fix the ENDP label and remove the surplus third arg
532 from the 'lea' insn.
533
5342012-03-29 Peter Rosin <peda@lysator.liu.se>
535
536 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
537 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
538 it. Also instruct the assembler to add a frame to the function.
539
5402012-03-23 Peter Rosin <peda@lysator.liu.se>
541
542 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
543 * Makefile.in: Rebuilt.
544 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
545 to all data exports, when compiling libffi clients using MSVC.
546
5472012-03-29 Peter Rosin <peda@lysator.liu.se>
548
549 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
550 make it the default for MSVC.
551 (FFI_TYPE_MS_STRUCT): New structure return convention.
552 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
553 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
554 instead of an ordinary FFI_TYPE_STRUCT.
555 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
556 (ffi_call): Likewise.
557 (ffi_prep_incoming_args_SYSV): Likewise.
558 (ffi_raw_call): Likewise.
559 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
560 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
561 return a pointer to the result structure in eax and don't pop
562 that pointer from the stack, the caller takes care of it.
563 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
564 (ffi_closure_raw_SYSV): Likewise.
565
5662012-03-22 Peter Rosin <peda@lysator.liu.se>
567
568 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
569 assembly version with Intel syntax.
570 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
571
5722012-03-23 Peter Rosin <peda@lysator.liu.se>
573
574 * testsuite/libffi.call/ffitest.h: Provide abstration of
575 __attribute__((fastcall)) in the form of a __FASTCALL__
576 define. Define it to __fastcall for MSVC.
577 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
578 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
579 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
580 * testsuite/libffi.call/strlen2_win32.c: Likewise.
581 * testsuite/libffi.call/struct1_win32.c: Likewise.
582 * testsuite/libffi.call/struct2_win32.c: Likewise.
583
5842012-03-22 Peter Rosin <peda@lysator.liu.se>
585
586 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
587 frame on function entry, MASM adds one automatically.
588
5892012-03-22 Peter Rosin <peda@lysator.liu.se>
590
591 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
592 bits in the MSVC headers.
593
5942012-03-22 Peter Rosin <peda@lysator.liu.se>
595
596 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
597 with no declarations after statements.
598 * testsuite/libffi.call/cls_16byte.c: Likewise.
599 * testsuite/libffi.call/cls_18byte.c: Likewise.
600 * testsuite/libffi.call/cls_19byte.c: Likewise.
601 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
602 * testsuite/libffi.call/cls_20byte.c: Likewise.
603 * testsuite/libffi.call/cls_20byte1.c: Likewise.
604 * testsuite/libffi.call/cls_24byte.c: Likewise.
605 * testsuite/libffi.call/cls_2byte.c: Likewise.
606 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
607 * testsuite/libffi.call/cls_3byte1.c: Likewise.
608 * testsuite/libffi.call/cls_3byte2.c: Likewise.
609 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
610 * testsuite/libffi.call/cls_4byte.c: Likewise.
611 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
612 * testsuite/libffi.call/cls_5byte.c: Likewise.
613 * testsuite/libffi.call/cls_64byte.c: Likewise.
614 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
615 * testsuite/libffi.call/cls_6byte.c: Likewise.
616 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
617 * testsuite/libffi.call/cls_7byte.c: Likewise.
618 * testsuite/libffi.call/cls_8byte.c: Likewise.
619 * testsuite/libffi.call/cls_9byte1.c: Likewise.
620 * testsuite/libffi.call/cls_9byte2.c: Likewise.
621 * testsuite/libffi.call/cls_align_double.c: Likewise.
622 * testsuite/libffi.call/cls_align_float.c: Likewise.
623 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
624 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
625 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
626 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
627 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
628 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
629 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
630 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
631 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
632 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
633 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
634 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
635 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
636 * testsuite/libffi.call/huge_struct.c: Likewise.
637 * testsuite/libffi.call/nested_struct.c: Likewise.
638 * testsuite/libffi.call/nested_struct1.c: Likewise.
639 * testsuite/libffi.call/nested_struct10.c: Likewise.
640 * testsuite/libffi.call/nested_struct2.c: Likewise.
641 * testsuite/libffi.call/nested_struct3.c: Likewise.
642 * testsuite/libffi.call/nested_struct4.c: Likewise.
643 * testsuite/libffi.call/nested_struct5.c: Likewise.
644 * testsuite/libffi.call/nested_struct6.c: Likewise.
645 * testsuite/libffi.call/nested_struct7.c: Likewise.
646 * testsuite/libffi.call/nested_struct8.c: Likewise.
647 * testsuite/libffi.call/nested_struct9.c: Likewise.
648 * testsuite/libffi.call/stret_large.c: Likewise.
649 * testsuite/libffi.call/stret_large2.c: Likewise.
650 * testsuite/libffi.call/stret_medium.c: Likewise.
651 * testsuite/libffi.call/stret_medium2.c: Likewise.
652 * testsuite/libffi.call/struct1.c: Likewise.
653 * testsuite/libffi.call/struct1_win32.c: Likewise.
654 * testsuite/libffi.call/struct2.c: Likewise.
655 * testsuite/libffi.call/struct2_win32.c: Likewise.
656 * testsuite/libffi.call/struct3.c: Likewise.
657 * testsuite/libffi.call/struct4.c: Likewise.
658 * testsuite/libffi.call/struct5.c: Likewise.
659 * testsuite/libffi.call/struct6.c: Likewise.
660 * testsuite/libffi.call/struct7.c: Likewise.
661 * testsuite/libffi.call/struct8.c: Likewise.
662 * testsuite/libffi.call/struct9.c: Likewise.
663 * testsuite/libffi.call/testclosure.c: Likewise.
664
6652012-03-21 Peter Rosin <peda@lysator.liu.se>
666
667 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
668 printing doubles (%lf is for long doubles).
669 (main): Likewise.
670
6712012-03-21 Peter Rosin <peda@lysator.liu.se>
672
673 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
674 (set_ld_library_path_env_vars): Add the library search dir to PATH
675 (and save PATH for later).
676 (restore_ld_library_path_env_vars): Restore PATH.
677
6782012-03-20 Peter Rosin <peda@lysator.liu.se>
679
680 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
681 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
682 visible outside the PROC, so that ffi_closure_THISCALL can see it.
683
6842012-03-20 Peter Rosin <peda@lysator.liu.se>
685
686 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
687 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
688 visible outside the PROC, so that ffi_closure_THISCALL can see it.
689
6902012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
691
692 * src/m68k/ffi.c: Add MINT support.
693 * src/m68k/sysv.S: Ditto.
694
6952012-03-19 chennam <csit@axway.com>
696
697 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
698 support.
699
7002012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
701
702 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
703 ffi_call_VFP().
704 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
705 ffi_closure_VFP.
706 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
707
9f0a1bd5 7082012-04-02 Peter Bergner <bergner@vnet.ibm.com>
709
710 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
711 Silence casting pointer to integer of different size warning.
712 Delete goto to previously deleted label.
713 (ffi_call): Silence possibly undefined warning.
714 (ffi_closure_helper_SYSV): Declare variable type.
715
a65f362a 7162012-04-02 Peter Rosin <peda@lysator.liu.se>
717
718 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
719 value in the Intel version as is already done for the AT&T version.
720 (ffi_closure_SYSV): Likewise.
721 (ffi_closure_raw_SYSV): Likewise.
722 (ffi_closure_STDCALL): Likewise.
723
6f343508 7242012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
725
726 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
727 just return FFI_BAD_ABI when things are wrong.
728 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
729
721f9ccc 7302012-03-09 David Edelsohn <dje.gcc@gmail.com>
731
732 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
733 change to return value of ffi_closure_helper_DARWIN and load type
734 from return type.
735
f51aab02 7362012-03-03 H.J. Lu <hongjiu.lu@intel.com>
25bd48de 737
f51aab02 738 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
739 long.
740 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
741 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
742 first.
743
744 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
745 (ffi_arg): Set to unsigned long long for x32.
746 (ffi_sarg): Set to long long for x32.
25bd48de 747
f51aab02 7482012-03-03 H.J. Lu <hongjiu.lu@intel.com>
a5de0b3b 749
f51aab02 750 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
a5de0b3b 751
f51aab02 7522012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
5f78be1e 753
f51aab02 754 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
755 windows-like hosts.
756 * configure: Rebuilt.
5f78be1e 757
3d79413d 7582012-02-27 Mikael Pettersson <mikpe@it.uu.se>
759
760 PR libffi/52223
761 * Makefile.am (FLAGS_TO_PASS): Define.
762 * Makefile.in: Regenerate.
763
f51aab02 7642012-02-23 Anthony Green <green@moxielogic.com>
337c4119 765
f51aab02 766 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
767 directly.
337c4119 768
3d79413d 7692012-02-23 Kai Tietz <ktietz@redhat.com>
770
771 PR libffi/52221
772 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
773 prototype.
774 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
775 thiscall-convention.
776 (ffi_raw_call): Use ffi_prep_args_raw.
777 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
778 implementation for stub.
779
bb52d0cb 7802012-02-10 Kai Tietz <ktietz@redhat.com>
781
782 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
783 windows target.
784 * configure: Regenerated.
f51aab02 785
e5fbea40 7862012-02-08 Kai Tietz <ktietz@redhat.com>
787
788 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
789 also FFI_THISCALL.
790 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
791 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
792 (ffi_prep_closure_loc): Add FFI_THISCALL support.
793 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
794 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
795 for thiscall-calling convention.
796 * testsuite/libffi.call/closure_thiscall.c: New test.
797
3e6bf5fe 7982012-01-28 Kai Tietz <ktietz@redhat.com>
799
800 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
801 argument to prototype for specify calling-convention.
802 (ffi_call): Add support for stdcall/thiscall convention.
803 (ffi_prep_args): Likewise.
804 (ffi_raw_call): Likewise.
805 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
806 FFI_FASTCALL.
807 * src/x86/win32.S (_ffi_call_win32): Add support for
808 fastcall/thiscall calling-convention calls.
809 * testsuite/libffi.call/fastthis1_win32.c: New test.
810 * testsuite/libffi.call/fastthis2_win32.c: New test.
811 * testsuite/libffi.call/fastthis3_win32.c: New test.
812 * testsuite/libffi.call/strlen2_win32.c: New test.
813 * testsuite/libffi.call/many2_win32.c: New test.
814 * testsuite/libffi.call/struct1_win32.c: New test.
815 * testsuite/libffi.call/struct2_win32.c: New test.
816
f51aab02 8172012-01-23 Uros Bizjak <ubizjak@gmail.com>
818
819 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
820
8212012-01-23 Anthony Green <green@moxielogic.com>
822 Chris Young <cdyoung@ntlworld.com>
823
824 * configure.ac: Add Amiga support.
825 * configure: Rebuilt.
826
8272012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
828
829 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
830
401c35eb 8312012-01-23 Andreas Schwab <schwab@linux-m68k.org>
832
833 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
834 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
835
74055335 8362012-01-19 Jakub Jelinek <jakub@redhat.com>
837
838 PR rtl-optimization/48496
839 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
840
15ac1e63 8412012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
842
843 * configure.ac (i?86-*-*): Set TARGET to X86_64.
844 * configure: Regenerate.
845
d28d55a2 8462011-12-07 Andrew Pinski <apinski@cavium.com>
847
df33ff24 848 PR libffi/50051
d28d55a2 849 * src/mips/n32.S: Add ".set mips4".
850
30369aff 8512011-11-21 Andreas Tobler <andreast@fgznet.ch>
852
853 * configure: Regenerate.
854
f51aab02 8552011-11-12 David Gilbert <david.gilbert@linaro.org>
856
857 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
858 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
859 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
860 src/cris/ffi.c, src/prep_cif.c,
861 testsuite/libffi.call/cls_double_va.c,
862 testsuite/libffi.call/cls_longdouble_va.c,
863 testsuite/libffi.call/float_va.c: Many changes to support variadic
864 function calls.
865
8662011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
867
868 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
869 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
870 softfloat powerpc variants.
871
8722011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
873
874 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
875 * configure: Rebuilt.
876
8772011-11-12 Timothy Wall <twall@users.sf.net>
878
879 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
880 alignment of 4 for wince on ARM.
881
8822011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
883 Anthony Green <green@moxielogic.com>
884
885 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
886 instructions (not available on some cores, like the PPC440).
887
8882011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
889
890 * m4/ax_enable_builddir: Change from string comparison to numeric
891 comparison for wc output.
892 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
893 X 10.7.
894 * configure: Rebuilt.
895
8962011-11-12 Anthony Green <green@moxielogic.com>
897
898 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
899 files with debug info.
900 * Makefile.in: Rebuilt.
901
9022011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
903
904 * README: Update list of supported OpenBSD systems.
905
9062011-11-12 Anthony Green <green@moxielogic.com>
907
908 * libtool-version: Update.
909 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
910 FFI_DEBUG.
911 (libffi_la_SOURCES): Remove src/debug.c
912 (EXTRA_DIST): Add src/debug.c
913 * Makefile.in: Rebuilt.
914 * README: Update for 3.0.11.
915
022a1701 9162011-11-10 Richard Henderson <rth@redhat.com>
917
918 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
919 * configure, aclocal.m4: Rebuild.
920
74f080a2 9212011-09-04 Iain Sandoe <iains@gcc.gnu.org>
922
923 PR libffi/49594
924 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
925 helper reference track the architecture pointer size.
926
d278060f 9272011-08-25 Andrew Haley <aph@redhat.com>
928
929 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
930 instructions.
931 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
932
a30be784 9332011-07-11 Andrew Haley <aph@redhat.com>
934
5e248b87 935 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
a30be784 936
001e16f3 9372011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
938
939 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
940 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
941
442e9f34 9422011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
943
944 PR libffi/46660
945 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
946 mips-sgi-irix6*.
947 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
948
53f0d830 9492011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
950
951 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
952 PRId8 instead of %hhu, %hhd.
953 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
954 PRIu8): Define.
955 [__sgi__] (PRId8, PRIu8): Define.
956
526ee8cf 9572011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
958
959 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
960 Define.
961 Use them to handle ELF vs. ECOFF differences.
962 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
963
f51aab02 9642011-03-30 Timothy Wall <twall@users.sf.net>
965
966 * src/powerpc/darwin.S: Fix unknown FDE encoding.
967 * src/powerpc/darwin_closure.S: ditto.
968
9692011-02-25 Anthony Green <green@moxielogic.com>
970
971 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
972 32-bit ABIs.
973
9742011-02-15 Anthony Green <green@moxielogic.com>
975
976 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
977 * configure: Rebuilt.
978
4b20b68c 9792011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
980
981 * configure: Regenerate.
982
f51aab02 9832011-02-13 Anthony Green <green@moxielogic.com>
984
985 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
986 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
987 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
988
989 * src/prep_cif.c (initialize_aggregate): Convert assertion into
990 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
991
992 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
993 just return FFI_BAD_ABI when things are wrong.
994 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
995 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
996 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
997 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
998 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
999
10002011-02-11 Anthony Green <green@moxielogic.com>
1001
1002 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1003 just return FFI_BAD_ABI when things are wrong.
1004
be24203d 10052011-02-11 Eric Botcazou <ebotcazou@adacore.com>
3d79413d 1006
1007 * src/sparc/v9.S (STACKFRAME): Bump to 176.
1008
f51aab02 10092011-02-09 Stuart Shelton <srcshelton@gmail.com>
1010
1011 http://bugs.gentoo.org/show_bug.cgi?id=286911
1012 * src/mips/ffitarget.h: Clean up error messages.
1013 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1014 ffi_raw*.
1015 * include/ffi.h.in: Add pragma for SGI compiler.
1016
10172011-02-09 Anthony Green <green@moxielogic.com>
1018
1019 * configure.ac: Add powerpc64-*-darwin* support.
1020
10212011-02-09 Anthony Green <green@moxielogic.com>
1022
1023 * README: Mention Interix.
1024
10252011-02-09 Jonathan Callen <abcd@gentoo.org>
1026
1027 * configure.ac: Add Interix to win32/cygwin/mingw case.
1028 * configure: Ditto.
1029 * src/closures.c: Treat Interix like Cygwin, instead of as a
1030 generic win32.
1031
10322011-02-09 Anthony Green <green@moxielogic.com>
1033
1034 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1035 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1036 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1037 (ffi_prep_closure_loc): Check for bad ABI.
1038 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
1039 (initialize_aggregate): Check for bad types.
1040
10412011-02-09 Landon Fuller <landonf@plausible.coop>
1042
1043 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1044 src/arm/trampoline.S.
1045 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1046 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1047 * src/arm/ffi.c (ffi_trampoline_table)
1048 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1049 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1050 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1051 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1052 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1053 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1054 separately.
1055 * src/arm/sysv.S: Handle Apple iOS host.
1056 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
1057 * build-ios.sh: New file.
1058 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
1059 * README: Mention ARM iOS.
1060
10612011-02-08 Oren Held <orenhe@il.ibm.com>
1062
1063 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1064 redefinition of mallinfo on HP-UX.
1065
10662011-02-08 Ginn Chen <ginn.chen@oracle.com>
1067
1068 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
1069 aggregate return ABI. Flush cache.
1070 (ffi_prep_closure_loc): Flush cache.
1071
10722011-02-11 Anthony Green <green@moxielogic.com>
1073
1074 From Tom Honermann <tom.honermann@oracle.com>:
1075 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1076 AIX. Declare .ffi_prep_args. Insert nops after branch
1077 instructions so that the AIX linker can insert TOC reload
1078 instructions.
1079 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1080
10812011-02-08 Ed <ed@kdtc.net>
1082
1083 * src/powerpc/asm.h: Fix grammar nit in comment.
1084
10852011-02-08 Uli Link <ul.mcamafia@linkitup.de>
1086
1087 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1088
c540fb7e 10892011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1090
1091 PR libffi/46661
1092 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1093 uintptr_t first.
1094 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1095
f51aab02 10962011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
1097
1098 * configure.ac: Fix x86 test for pc related relocs.
1099 * configure: Rebuilt.
1100
f82bef7d 11012011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1102
1103 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1104 Handle case when CPU variant does not have long double support.
1105 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1106 and cores with soft floating point.
1107
126de59d 11082011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
1109
1110 * configure.ac: Add mips*-*-rtems* support.
1111 * configure: Regenerate.
1112 * src/mips/ffitarget.h: Ensure needed constants are available
1113 for targets which do not have sgidefs.h.
1114
9dfad575 11152011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1116
1117 PR target/40125
1118 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1119 * configure: Regenerate.
1120
ef12d968 11212010-12-18 Iain Sandoe <iains@gcc.gnu.org>
1122
1123 PR libffi/29152
1124 PR libffi/42378
1125 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1126 update comments.
1127 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1128 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1129 * src/powerpc/darwin.S: Provide Darwin64 implementation,
1130 update comments.
1131 * src/powerpc/ffi_darwin.c: Likewise.
2e8ba7b3 1132
c29b28e7 11332010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1134
1135 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1136 backslashes.
1137 (libffi_cv_as_string_pseudo_op): Likewise.
1138 * configure: Regenerate.
1139
30015fe9 11402010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1141
1142 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1143 (ffi_closure_VFP): Same.
1144 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1145 directive.
1146
1dd5a3ac 11472010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1148
1149 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1150 (PRIuPTR): Define.
1151
1aceba0b 11522010-11-29 Richard Henderson <rth@redhat.com>
1153 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1154
1155 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1156 (.eh_frame): Use FDE_ENCODING.
1157 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1158
f51aab02 11592010-11-22 Jacek Caban <jacek@codeweavers.com>
1160
1161 * configure.ac: Check for symbol underscores on mingw-w64.
1162 * configure: Rebuilt.
1163 * src/x86/win64.S: Correctly access extern symbols in respect to
1164 underscores.
1165
8d09e50b 11662010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1167
1168 * testsuite/lib/libffi-dg.exp: Rename ...
1169 * testsuite/lib/libffi.exp: ... to this.
1170 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1171 * libffi/testsuite/libffi.special/special.exp: Likewise.
1172
415ca0cb 11732010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1174
1175 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1176 code, new parameter, and return value. Update comments.
1177 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1178 call to layout_vfp_args().
1179 (ffi_call_SYSV): Update declaration.
1180 (ffi_call_VFP): New declaration.
1181 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1182 when ABI is FFI_VFP.
1183 (ffi_closure_VFP): New declaration.
1184 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1185 ffi_prep_incoming_args_SYSV().
1186 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1187 case handling.
1188 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1189 construction under VFP hard-float.
1190 (rec_vfp_type_p): New function.
1191 (vfp_type_p): Same.
1192 (place_vfp_arg): Same.
1193 (layout_vfp_args): Same.
1194 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1195 based on __ARM_PCS_VFP.
1196 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1197 fields.
1198 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1199 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1200 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1201 direct call. Move function pointer load upwards.
1202 (ffi_call_VFP): New function.
1203 (ffi_closure_VFP): Same.
1204
1205 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1206 (dg-skip-if): New function.
1207 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1208 and compiler options include -mfloat-abi=hard.
1209 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1210
2c79b197 12112010-10-01 Jakub Jelinek <jakub@redhat.com>
1212
1213 PR libffi/45677
1214 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1215 a multiple of 8.
1216 * testsuite/libffi.call/many2.c: New test.
1217
526d6770 12182010-08-20 Mark Wielaard <mjw@redhat.com>
1219
1220 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1221 returns NULL.
1222
5280001e 12232010-08-09 Andreas Tobler <andreast@fgznet.ch>
1224
1225 * configure.ac: Add target powerpc64-*-freebsd*.
1226 * configure: Regenerate.
1227 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1228 -mlong-double-128 only to linux targets.
1229 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1230 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1231 * testsuite/libffi.call/huge_struct.c: Likewise.
1232
f51aab02 12332010-08-05 Dan Witte <dwitte@mozilla.com>
1234
5e248b87 1235 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1236 debug CRT when --enable-debug is given.
1237 * configure.ac: Define it.
1238 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
f51aab02 1239
12402010-08-04 Dan Witte <dwitte@mozilla.com>
1241
1242 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1243 platforms.
1244 * src/x86/ffi.c: Remove redundant ifdef checks.
1245 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1246 for X86_ANY so return value space doesn't get added twice.
1247
12482010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1249
1250 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1251
12522010-07-22 Dan Witte <dwitte@mozilla.com>
1253
1254 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1255 * src/prep_cif.c: Fix ABI assertion.
5e248b87 1256 * src/cris/ffi.c: Ditto.
f51aab02 1257
b4521bf1 12582010-07-10 Evan Phoenix <evan@fallingsnow.net>
1259
1260 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1261
9e338d61 12622010-07-07 Dan Horák <dan@danny.cz>
1263
1264 * include/ffi.h.in: Protect #define with #ifndef.
1265 * src/powerpc/ffitarget.h: Ditto.
1266 * src/s390/ffitarget.h: Ditto.
1267 * src/sparc/ffitarget.h: Ditto.
1268
297dcba1 12692010-07-07 Neil Roberts <neil@linux.intel.com>
1270
1271 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1272 16-bytes.
1273
9f582dca 12742010-07-02 Jakub Jelinek <jakub@redhat.com>
1275
1276 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1277 * Makefile.in: Regenerated.
1278
40ae1f19 12792010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1280
1281 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1282 output, too.
1283 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1284 (libffi_cv_as_string_pseudo_op): Check for .string.
1285 * configure: Regenerate.
1286 * fficonfig.h.in: Regenerate.
1287 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1288
f51aab02 12892010-05-11 Dan Witte <dwitte@mozilla.com>
1290
1291 * doc/libffi.tex: Document previous change.
1292
12932010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1294
1295 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1296
3220fb87 12972010-05-05 Michael Kohler <michaelkohler@live.com>
1298
1299 * src/dlmalloc.c (dlfree): Fix spelling.
1300 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1301 * configure.ac: Ditto.
1302 * configure: Rebuilt.
1303
18854ff6 13042010-04-13 Dan Witte <dwitte@mozilla.com>
1305
1306 * msvcc.sh: Build with -W3 instead of -Wall.
1307 * src/powerpc/ffi_darwin.c: Remove build warnings.
1308 * src/x86/ffi.c: Ditto.
1309 * src/x86/ffitarget.h: Ditto.
1310
eb37efb3 13112010-04-12 Dan Witte <dwitte@mozilla.com>
1312 Walter Meinl <wuno@lsvw.de>
1313
1314 * configure.ac: Add OS/2 support.
1315 * configure: Rebuilt.
1316 * src/closures.c: Ditto.
1317 * src/dlmalloc.c: Ditto.
1318 * src/x86/win32.S: Ditto.
1319
4081d362 13202010-04-07 Jakub Jelinek <jakub@redhat.com>
1321
ae783fc8 1322 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
4081d362 1323
e0934084 13242010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1325
1326 * Makefile.in: Regenerate.
1327 * aclocal.m4: Regenerate.
1328 * include/Makefile.in: Regenerate.
1329 * man/Makefile.in: Regenerate.
1330 * testsuite/Makefile.in: Regenerate.
1331
f51aab02 13322010-03-30 Dan Witte <dwitte@mozilla.com>
1333
1334 * msvcc.sh: Disable build warnings.
1335 * README (tested): Clarify windows build procedure.
1336
5ed988d2 13372010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1338
1339 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1340 * configure: Regenerate.
1341 * fficonfig.h.in: Regenerate.
1342 * libffi/src/x86/unix64.S (.eh_frame)
1343 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1344
e243b8a7 13452010-03-14 Matthias Klose <doko@ubuntu.com>
1346
1347 * src/x86/ffi64.c: Fix typo in comment.
1348 * src/x86/ffi.c: Use /* ... */ comment style.
1349
67b970a8 13502010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1351
1352 * doc/libffi.texi (The Closure API): Fix typo.
1353 * doc/libffi.info: Remove.
1354
82fb949e 13552010-02-15 Matthias Klose <doko@ubuntu.com>
1356
1357 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1358 __ARM_ARCH_7EM__.
1359
142f9026 13602010-01-15 Anthony Green <green@redhat.com>
1361
1362 * README: Add notes on building with Microsoft Visual C++.
1363
13642010-01-15 Daniel Witte <dwitte@mozilla.com>
1365
1366 * msvcc.sh: New file.
1367
1368 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1369 * src/x86/ffi.c: Tweak function declaration and remove excess
1370 parens.
1371 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1372 ffi_closure.
1373
1374 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1375 function ffi_call_win32 on X86_WIN32.
1376 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1377 (ffi_call_STDCALL): Remove.
1378
1379 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1380 to ffi_prep_cif_machdep for x86.
1381 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1382
28055868 13832010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1384
1385 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
2e8ba7b3 1386 Sun Studio compiler compatibility.
28055868 1387
be20c585 13882010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1389
1390 * doc/libffi.texi: Add closure example.
1391
9699f499 13922010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1393
1394 PR libffi/40701
1395 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1396 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1397 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1398 alpha*-dec-osf*.
1399 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1400 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1401 * testsuite/libffi.call/return_ll1.c: Likewise.
1402 * testsuite/libffi.call/stret_medium2.c: Likewise.
1403 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1404 MAP_FAILED to char *.
1405
b06c85e0 14062010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1407
1408 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1409
b107942a 14102009-12-31 Anthony Green <green@redhat.com>
1411
1412 * README: Update for libffi 3.0.9.
1413
08fbebd8 14142009-12-27 Matthias Klose <doko@ubuntu.com>
1415
1416 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1417 appropriate.
1418 * configure: Rebuilt.
1419
cc9d0711 14202009-12-26 Anthony Green <green@redhat.com>
1421
1422 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1423 avr32*-*-*.
1424 * testsuite/libffi.call/cls_double_va.c: Ditto.
1425
78d986dd 14262009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1427
1428 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1429 and inttypes.h.
1430 * testsuite/libffi.special/unwindtest.cc: Ditto.
1431
f2ed5930 14322009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1433
1434 * configure.ac: Add amd64-*-openbsd*.
1435 * configure: Rebuilt.
1436 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1437 openbsd programs with -lpthread.
1438
e1d6e63c 14392009-12-26 Anthony Green <green@redhat.com>
1440
1441 * testsuite/libffi.call/cls_double_va.c,
1442 testsuite/libffi.call/cls_longdouble.c,
1443 testsuite/libffi.call/cls_longdouble_va.c,
1444 testsuite/libffi.call/cls_pointer.c,
1445 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1446 mips*-*-* and arm*-*-*.
1447 * testsuite/libffi.call/cls_align_longdouble_split.c,
1448 testsuite/libffi.call/cls_align_longdouble_split2.c,
1449 testsuite/libffi.call/stret_medium2.c,
1450 testsuite/libffi.call/stret_medium.c,
1451 testsuite/libffi.call/stret_large.c,
1452 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1453
1a42df5d 14542009-12-31 Kay Tietz <ktietz70@googlemail.com>
1455
1456 * testsuite/libffi.call/ffitest.h,
1457 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1458 definitions.
1459
14602009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1461
1462 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1463 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1464 * configure: Rebuilt.
1465 * Makefile.in: Rebuilt.
1466
7d374786 14672009-12-31 Anthony Green <green@redhat.com>
1468 Blake Chaffin.
1469
1470 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1471 Chaffin @ Apple.
1472
0d0fdfce 14732009-12-28 David Edelsohn <edelsohn@gnu.org>
1474
1475 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1476 local variables.
1477 (aix_adjust_aggregate_sizes): New function.
1478 (ffi_prep_cif_machdep): Call it.
1479
3531d81f 14802009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1481
1482 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1483 * configure: Regenerate.
1484 * fficonfig.h.in: Likewise.
1485 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1486 Solaris/x86.
1487
81b376ae 14882009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1489
1490 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1491 when a float arguments is passed in memory.
1492 (ffi_closure_helper_SYSV): Mark general registers as used up when
1493 a 64bit or soft-float long double argument is passed in memory.
1494
cac80d00 14952009-12-25 Matthias Klose <doko@ubuntu.com>
657f62fe 1496
1497 * man/ffi_call.3: Fix #include in examples.
1498 * doc/libffi.texi: Add dircategory.
1499
da4f8cce 15002009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1501
1502 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1503 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1504 IRIX MIPSPro c99.
1505 * include/ffi_common.h: Added '__sgi' define to non
1506 '__attribute__((__mode__()))' integer typedefs.
81b376ae 1507 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
da4f8cce 1508 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1509 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1510 FFI_LONGDOUBLE support and alignment(N32 only).
1511 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1512 fixed non '__attribute__((__mode__()))' integer typedefs.
1513 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1514 since they are Linux/GNU Assembler specific.
1515
2a06dfe6 15162009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1517
1518 * configure.ac, Makefile.am, src/avr32/ffi.c,
1519 src/avr32/ffitarget.h,
1520 src/avr32/sysv.S: Add AVR32 port.
1521 * configure, Makefile.in: Rebuilt.
1522
cc6aa710 15232009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1524
1525 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1526 * configure: Regenerate.
1527
2fb9cd2f 15282009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1529
1530 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1531
c64cba58 15322009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1533
1534 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1535 type on HP-UX.
1536
3d79413d 15372012-02-13 Kai Tietz <ktietz@redhat.com>
1538
1539 PR libffi/52221
1540 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1541 support for X86_WIN32.
1542 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1543
c221d0e8 15442009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1545
1546 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1547 double' arguments.
1548
db0ed941 15492009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1550
1551 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1552
4f2e543b 15532009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1554
1555 PR libffi/40700
1556 * src/closures.c [X86_64 && __sun__ && __svr4__]
1557 (FFI_MMAP_EXEC_WRIT): Define.
1558
2e5e20e1 15592009-12-08 David Daney <ddaney@caviumnetworks.com>
1560
1561 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1562 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1563 * testsuite/libffi.call/stret_large.c: Same.
1564 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1565 * testsuite/libffi.call/stret_large2.c: Same.
1566 * testsuite/libffi.call/stret_medium2.c: Same.
1567
514d705d 15682009-12-07 David Edelsohn <edelsohn@gnu.org>
1569
1570 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1571 typo.
1572
82d1d66a 15732009-12-05 David Edelsohn <edelsohn@gnu.org>
1574
1575 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1576 code.
514d705d 1577 * src/powerpc/aix_closure.S: Same.
2e5e20e1 1578
e6408286 15792009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1580
1581 * Makefile.in: Regenerate.
1582 * configure: Regenerate.
1583 * include/Makefile.in: Regenerate.
1584 * man/Makefile.in: Regenerate.
1585 * testsuite/Makefile.in: Regenerate.
1586
029645af 15872009-12-04 David Edelsohn <edelsohn@gnu.org>
1588
1589 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
81b376ae 1590 linux64_closure.S.
2e5e20e1 1591
f89c6c9d 15922009-12-04 Uros Bizjak <ubizjak@gmail.com>
1593
1594 PR libffi/41908
1595 * src/x86/ffi64.c (classify_argument): Update from
1596 gcc/config/i386/i386.c.
1597 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1598 SSE registers directly.
1599 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1600 for x86_64 linux targets.
1601
d66a47ee 16022009-12-04 David Edelsohn <edelsohn@gnu.org>
1603
1604 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1605 pfr for long double split between fpr13 and stack.
1606
3a95c696 16072009-12-03 David Edelsohn <edelsohn@gnu.org>
1608
1609 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1610 fparg_count twice for long double.
1611
e3791522 16122009-12-03 David Edelsohn <edelsohn@gnu.org>
1613
1614 PR libffi/42243
1615 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1616
0481262e 16172009-12-03 Uros Bizjak <ubizjak@gmail.com>
1618
1619 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
c485f998 1620 Remove xfails for x86 linux targets.
0481262e 1621
e5fdfcfa 16222009-12-02 David Edelsohn <edelsohn@gnu.org>
1623
1624 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1625 case.
1626
16272009-12-01 David Edelsohn <edelsohn@gnu.org>
40e397ce 1628
1629 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1630 register usage. Call ffi_prep_args directly. Add long double
1631 return value support.
1632 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1633 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1634 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1635 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1636 mode.
1637 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1638 into case.
1639 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1640 Allocate result area between params and FPRs.
1641
6e94d4ca 16422009-11-30 David Edelsohn <edelsohn@gnu.org>
1643
1644 PR target/35484
1645 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1646 AIX64.
1647 * src/powerpc/aix.S: Implement AIX64 version.
1648 * src/powerpc/aix_closure.S: Implement AIX64 version.
1649 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1650 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1651 support.
1652 (ffi_prep_cif_machdep): Same.
1653 (ffi_call): Same.
1654 (ffi_closure_helper_DARWIN): Same.
1655
2f9618b6 16562009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1657
1658 PR libffi/41908
1659 * testsuite/libffi.call/testclosure.c: New test.
1660
80b483b5 16612009-09-28 Kai Tietz <kai.tietz@onevision.com>
1662
1663 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1664 assembly version use of ___chkstk.
1665
520462c5 16662009-09-23 Matthias Klose <doko@ubuntu.com>
1667
1668 PR libffi/40242, PR libffi/41443
1669 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1670 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1671 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1672 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1673 for -mfloat-abi=softfp to work.
1674
513e3043 16752009-09-17 Loren J. Rittle <ljrittle@acm.org>
1676
1677 PR testsuite/32843 (strikes again)
1678 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1679 enable proper extension on char and short.
1680
841f7ca5 16812009-09-15 David Daney <ddaney@caviumnetworks.com>
1682
1683 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1684 handling for FFI_TYPE_POINTER.
1685 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1686 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1687 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1688 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1689 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1690 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1691 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1692 structure and pointer returns.
1693 (ffi_closure_N32): Add handling for pointer returns.
1694 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1695 calc_n32_return_struct_flags): Handle soft-float.
1696 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1697 (ffi_call_N32): Declare proper argument types.
1698 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1699 soft-float.
1700
81a71e2b 17012009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1702
1703 * configure.ac (AC_PREREQ): Bump to 2.64.
1704
cd9a469c 17052009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1706
115d57c5 1707 * Makefile.am (install-html, install-pdf): Remove.
1708 * Makefile.in: Regenerate.
1709
cd9a469c 1710 * Makefile.in: Regenerate.
1711 * aclocal.m4: Regenerate.
1712 * configure: Regenerate.
1713 * fficonfig.h.in: Regenerate.
1714 * include/Makefile.in: Regenerate.
1715 * man/Makefile.in: Regenerate.
1716 * testsuite/Makefile.in: Regenerate.
1717
f51aab02 17182011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1719
1720 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1721 * configure: Rebuilt.
1722
9abe4a66 17232009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1724
1725 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1726
339e4d43 17272009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1728
1729 PR libffi/40807
1730 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1731 return types for X86_WIN32.
1732 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1733 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1734 _ffi_closure_STDCALL): Likewise.
1735
1736 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1737 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1738
f09e0522 17392009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1740
1741 PR testsuite/40699
1742 PR testsuite/40707
1743 PR testsuite/40709
1744 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1745 2009-06-30 commits.
1746
aa588440 17472009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1748
1749 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1750 to "" before adding paths. (This reinstates an assignment that
1751 was removed by my 2009-06-30 commit, but changes the initial
1752 value from "." to "".)
1753
0378a83e 17542009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1755
1756 PR testsuite/40601
1757 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1758 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1759 empty.
1760
2f0e2680 17612009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1762
1763 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1764 to ld_library_path. Use add_path. Add just find_libgcc_s
1765 to ld_library_path, not every libgcc multilib directory.
1766
a05d695d 17672009-06-16 Wim Lewis <wiml@hhhh.org>
1768
1769 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1770 supposed to be callee-saved.
1771 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1772 return buffer for odd-size structs.
1773
87f6899d 17742009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1775
1776 PR libffi/40444
1777 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1778 allow_stack_execute for Darwin.
1779
fffc53bb 17802009-06-16 Andrew Haley <aph@redhat.com>
1781
1782 * configure.ac (TARGETDIR): Add missing blank lines.
1783 * configure: Regenerate.
1784
75c53eb0 17852009-06-16 Andrew Haley <aph@redhat.com>
1786
1787 * testsuite/libffi.call/cls_align_sint64.c,
1788 testsuite/libffi.call/cls_align_uint64.c,
1789 testsuite/libffi.call/cls_longdouble_va.c,
1790 testsuite/libffi.call/cls_ulonglong.c,
1791 testsuite/libffi.call/return_ll1.c,
1792 testsuite/libffi.call/stret_medium2.c: Fix printf format
1793 specifiers.
1794 * testsuite/libffi.call/ffitest.h,
1795 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1796
bb07cfdf 17972009-06-15 Andrew Haley <aph@redhat.com>
1798
1799 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1800 * testsuite/libffi.call/err_bad_abi.c: Likewise.
81b376ae 1801
00581c89 18022009-06-12 Andrew Haley <aph@redhat.com>
1803
1804 * Makefile.am: Remove info_TEXINFOS.
1805
18062009-06-12 Andrew Haley <aph@redhat.com>
1807
1808 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1809 testsuite/libffi.call/cls_align_uint64.c,
1810 testsuite/libffi.call/cls_ulonglong.c,
1811 testsuite/libffi.call/return_ll1.c,
1812 testsuite/libffi.call/stret_medium2.c: Fix printf format
1813 specifiers.
1814 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1815
18162009-06-11 Timothy Wall <twall@users.sf.net>
1817
1818 * Makefile.am,
81b376ae 1819 configure.ac,
1820 include/ffi.h.in,
1821 include/ffi_common.h,
1822 src/closures.c,
1823 src/dlmalloc.c,
1824 src/x86/ffi.c,
1825 src/x86/ffitarget.h,
1826 src/x86/win64.S (new),
00581c89 1827 README: Added win64 support (mingw or MSVC)
81b376ae 1828 * Makefile.in,
1829 include/Makefile.in,
1830 man/Makefile.in,
1831 testsuite/Makefile.in,
1832 configure,
1833 aclocal.m4: Regenerated
1834 * ltcf-c.sh: properly escape cygwin/w32 path
1835 * man/ffi_call.3: Clarify size requirements for return value.
1836 * src/x86/ffi64.c: Fix filename in comment.
1837 * src/x86/win32.S: Remove unused extern.
1838
1839 * testsuite/libffi.call/closure_fn0.c,
1840 testsuite/libffi.call/closure_fn1.c,
1841 testsuite/libffi.call/closure_fn2.c,
1842 testsuite/libffi.call/closure_fn3.c,
1843 testsuite/libffi.call/closure_fn4.c,
1844 testsuite/libffi.call/closure_fn5.c,
1845 testsuite/libffi.call/closure_fn6.c,
00581c89 1846 testsuite/libffi.call/closure_stdcall.c,
1847 testsuite/libffi.call/cls_12byte.c,
1848 testsuite/libffi.call/cls_16byte.c,
1849 testsuite/libffi.call/cls_18byte.c,
1850 testsuite/libffi.call/cls_19byte.c,
1851 testsuite/libffi.call/cls_1_1byte.c,
1852 testsuite/libffi.call/cls_20byte.c,
1853 testsuite/libffi.call/cls_20byte1.c,
1854 testsuite/libffi.call/cls_24byte.c,
1855 testsuite/libffi.call/cls_2byte.c,
1856 testsuite/libffi.call/cls_3_1byte.c,
1857 testsuite/libffi.call/cls_3byte1.c,
5e248b87 1858 testsuite/libffi.call/cls_3byte2.c,
1859 testsuite/libffi.call/cls_4_1byte.c,
1860 testsuite/libffi.call/cls_4byte.c,
1861 testsuite/libffi.call/cls_5_1_byte.c,
1862 testsuite/libffi.call/cls_5byte.c,
1863 testsuite/libffi.call/cls_64byte.c,
1864 testsuite/libffi.call/cls_6_1_byte.c,
1865 testsuite/libffi.call/cls_6byte.c,
1866 testsuite/libffi.call/cls_7_1_byte.c,
1867 testsuite/libffi.call/cls_7byte.c,
1868 testsuite/libffi.call/cls_8byte.c,
1869 testsuite/libffi.call/cls_9byte1.c,
1870 testsuite/libffi.call/cls_9byte2.c,
1871 testsuite/libffi.call/cls_align_double.c,
1872 testsuite/libffi.call/cls_align_float.c,
1873 testsuite/libffi.call/cls_align_longdouble.c,
1874 testsuite/libffi.call/cls_align_longdouble_split.c,
1875 testsuite/libffi.call/cls_align_longdouble_split2.c,
1876 testsuite/libffi.call/cls_align_pointer.c,
1877 testsuite/libffi.call/cls_align_sint16.c,
1878 testsuite/libffi.call/cls_align_sint32.c,
1879 testsuite/libffi.call/cls_align_sint64.c,
1880 testsuite/libffi.call/cls_align_uint16.c,
1881 testsuite/libffi.call/cls_align_uint32.c,
1882 testsuite/libffi.call/cls_align_uint64.c,
1883 testsuite/libffi.call/cls_dbls_struct.c,
1884 testsuite/libffi.call/cls_double.c,
1885 testsuite/libffi.call/cls_double_va.c,
1886 testsuite/libffi.call/cls_float.c,
1887 testsuite/libffi.call/cls_longdouble.c,
1888 testsuite/libffi.call/cls_longdouble_va.c,
1889 testsuite/libffi.call/cls_multi_schar.c,
1890 testsuite/libffi.call/cls_multi_sshort.c,
1891 testsuite/libffi.call/cls_multi_sshortchar.c,
1892 testsuite/libffi.call/cls_multi_uchar.c,
1893 testsuite/libffi.call/cls_multi_ushort.c,
1894 testsuite/libffi.call/cls_multi_ushortchar.c,
1895 testsuite/libffi.call/cls_pointer.c,
1896 testsuite/libffi.call/cls_pointer_stack.c,
1897 testsuite/libffi.call/cls_schar.c,
1898 testsuite/libffi.call/cls_sint.c,
1899 testsuite/libffi.call/cls_sshort.c,
1900 testsuite/libffi.call/cls_uchar.c,
1901 testsuite/libffi.call/cls_uint.c,
1902 testsuite/libffi.call/cls_ulonglong.c,
1903 testsuite/libffi.call/cls_ushort.c,
1904 testsuite/libffi.call/err_bad_abi.c,
1905 testsuite/libffi.call/err_bad_typedef.c,
1906 testsuite/libffi.call/float2.c,
1907 testsuite/libffi.call/huge_struct.c,
1908 testsuite/libffi.call/nested_struct.c,
1909 testsuite/libffi.call/nested_struct1.c,
1910 testsuite/libffi.call/nested_struct10.c,
1911 testsuite/libffi.call/nested_struct2.c,
1912 testsuite/libffi.call/nested_struct3.c,
1913 testsuite/libffi.call/nested_struct4.c,
1914 testsuite/libffi.call/nested_struct5.c,
1915 testsuite/libffi.call/nested_struct6.c,
1916 testsuite/libffi.call/nested_struct7.c,
1917 testsuite/libffi.call/nested_struct8.c,
1918 testsuite/libffi.call/nested_struct9.c,
1919 testsuite/libffi.call/problem1.c,
1920 testsuite/libffi.call/return_ldl.c,
1921 testsuite/libffi.call/return_ll1.c,
1922 testsuite/libffi.call/stret_large.c,
1923 testsuite/libffi.call/stret_large2.c,
1924 testsuite/libffi.call/stret_medium.c,
1925 testsuite/libffi.call/stret_medium2.c,
81b376ae 1926 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1927 of checking for MMAP. Use intptr_t instead of long casts.
00581c89 1928
f6e79f69 19292009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1930
1931 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1932 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1933 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1934
e5ad3c0e 19352009-06-09 Andrew Haley <aph@redhat.com>
1936
1937 * src/x86/freebsd.S: Add missing file.
1938
1f429ea0 19392009-06-08 Andrew Haley <aph@redhat.com>
1940
1941 Import from libffi 3.0.8:
1942
1943 * doc/libffi.texi: New file.
1944 * doc/libffi.info: Likewise.
1945 * doc/stamp-vti: Likewise.
1946 * man/Makefile.am: New file.
1947 * man/ffi_call.3: New file.
1948
1949 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1950 src/dlmalloc.c.
1951 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1952
1953 * configure.ac: Bump version to 3.0.8.
1954 parisc*-*-linux*: Add.
1955 i386-*-freebsd* | i386-*-openbsd*: Add.
1956 powerpc-*-beos*: Add.
1957 AM_CONDITIONAL X86_FREEBSD: Add.
1958 AC_CONFIG_FILES: Add man/Makefile.
1959
1960 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1961
7302546d 19622009-06-08 Andrew Haley <aph@redhat.com>
1963
1964 * README: Import from libffi 3.0.8.
1965
07d9c635 19662009-06-08 Andrew Haley <aph@redhat.com>
1967
1968 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1969 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1970 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1971 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1972
1973 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1974 * testsuite/libffi.call/stret_medium.c: Likewise.
1975 * testsuite/libffi.call/stret_large2.c: Likewise.
1976 * testsuite/libffi.call/stret_large.c: Likewise.
1977
19782008-12-26 Timothy Wall <twall@users.sf.net>
1979
81b376ae 1980 * testsuite/libffi.call/cls_longdouble.c,
1981 testsuite/libffi.call/cls_longdouble_va.c,
1982 testsuite/libffi.call/cls_align_longdouble.c,
1983 testsuite/libffi.call/cls_align_longdouble_split.c,
1984 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1985 failures on x86_64 cygwin/mingw.
07d9c635 1986
19872008-12-22 Timothy Wall <twall@users.sf.net>
1988
81b376ae 1989 * testsuite/libffi.call/closure_fn0.c,
1990 testsuite/libffi.call/closure_fn1.c,
1991 testsuite/libffi.call/closure_fn2.c,
1992 testsuite/libffi.call/closure_fn3.c,
1993 testsuite/libffi.call/closure_fn4.c,
1994 testsuite/libffi.call/closure_fn5.c,
1995 testsuite/libffi.call/closure_fn6.c,
1996 testsuite/libffi.call/closure_loc_fn0.c,
1997 testsuite/libffi.call/closure_stdcall.c,
1998 testsuite/libffi.call/cls_align_pointer.c,
1999 testsuite/libffi.call/cls_pointer.c,
2000 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2001 pointer to integer (intptr_t).
2002 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
07d9c635 2003
20042008-07-24 Anthony Green <green@redhat.com>
2005
81b376ae 2006 * testsuite/libffi.call/cls_dbls_struct.c,
2007 testsuite/libffi.call/cls_double_va.c,
2008 testsuite/libffi.call/cls_longdouble.c,
2009 testsuite/libffi.call/cls_longdouble_va.c,
2010 testsuite/libffi.call/cls_pointer.c,
2011 testsuite/libffi.call/cls_pointer_stack.c,
2012 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2013 compiler warnings.
07d9c635 2014
20152008-03-04 Anthony Green <green@redhat.com>
81b376ae 2016 Blake Chaffin
2017 hos@tamanegi.org
2018
2019 * testsuite/libffi.call/cls_align_longdouble_split2.c
2020 testsuite/libffi.call/cls_align_longdouble_split.c
2021 testsuite/libffi.call/cls_dbls_struct.c
2022 testsuite/libffi.call/cls_double_va.c
2023 testsuite/libffi.call/cls_longdouble.c
2024 testsuite/libffi.call/cls_longdouble_va.c
2025 testsuite/libffi.call/cls_pointer.c
2026 testsuite/libffi.call/cls_pointer_stack.c
2027 testsuite/libffi.call/err_bad_abi.c
2028 testsuite/libffi.call/err_bad_typedef.c
2029 testsuite/libffi.call/stret_large2.c
2030 testsuite/libffi.call/stret_large.c
2031 testsuite/libffi.call/stret_medium2.c
2032 testsuite/libffi.call/stret_medium.c: New tests from Apple.
07d9c635 2033
c720ee9b 20342009-06-05 Andrew Haley <aph@redhat.com>
2035
2036 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2037 libffi.
2038
91e95000 20392009-06-04 Andrew Haley <aph@redhat.com>
2040
2041 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2042 stdcall changes.
2043
1f9ea1fc 20442008-02-26 Anthony Green <green@redhat.com>
81b376ae 2045 Thomas Heller <theller@ctypes.org>
1f9ea1fc 2046
81b376ae 2047 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2048 comment.
1f9ea1fc 2049
20502008-02-03 Timothy Wall <twall@users.sf.net>
2051
81b376ae 2052 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2053 offset based on code pointer, not data pointer.
1f9ea1fc 2054
20552008-01-31 Timothy Wall <twall@users.sf.net>
2056
81b376ae 2057 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2058 closures.
2059 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
2060 closures.
2061 * src/x86/win32.S: Add assembly for stdcall closure.
2062 * src/x86/ffi.c: Initialize stdcall closure trampoline.
1f9ea1fc 2063
e01722f1 20642009-06-04 Andrew Haley <aph@redhat.com>
2065
2066 * include/ffi.h.in: Change void (*)() to void (*)(void).
2067 * src/x86/ffi.c: Likewise.
2068
6e59f66f 20692009-06-04 Andrew Haley <aph@redhat.com>
2070
2071 * src/powerpc/ppc_closure.S: Insert licence header.
2072 * src/powerpc/linux64_closure.S: Likewise.
2073 * src/m68k/sysv.S: Likewise.
2074
2075 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
2076 * src/powerpc/ffi.c: Likewise.
2077 * src/powerpc/ffi_darwin.c: Likewise.
2078 * src/m32r/ffi.c: Likewise.
2079 * src/sh64/ffi.c: Likewise.
2080 * src/x86/ffi64.c: Likewise.
2081 * src/alpha/ffi.c: Likewise.
2082 * src/alpha/osf.S: Likewise.
2083 * src/frv/ffi.c: Likewise.
2084 * src/s390/ffi.c: Likewise.
2085 * src/pa/ffi.c: Likewise.
2086 * src/pa/hpux32.S: Likewise.
2087 * src/ia64/unix.S: Likewise.
2088 * src/ia64/ffi.c: Likewise.
2089 * src/sparc/ffi.c: Likewise.
2090 * src/mips/ffi.c: Likewise.
2091 * src/sh/ffi.c: Likewise.
2092
20932008-02-15 David Daney <ddaney@avtrex.com>
2094
81b376ae 2095 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2096 Define (conditionally), and use it to include cachectl.h.
2097 (ffi_prep_closure_loc): Fix cache flushing.
2098 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
6e59f66f 2099
9d98ec1b 21002009-06-04 Andrew Haley <aph@redhat.com>
2101
2102 include/ffi.h.in,
2103 src/arm/ffitarget.h,
2104 src/arm/ffi.c,
2105 src/arm/sysv.S,
2106 src/powerpc/ffitarget.h,
2107 src/closures.c,
2108 src/sh64/ffitarget.h,
2109 src/sh64/ffi.c,
2110 src/sh64/sysv.S,
2111 src/types.c,
2112 src/x86/ffi64.c,
2113 src/x86/ffitarget.h,
2114 src/x86/win32.S,
2115 src/x86/darwin.S,
2116 src/x86/ffi.c,
2117 src/x86/sysv.S,
2118 src/x86/unix64.S,
2119 src/alpha/ffitarget.h,
2120 src/alpha/ffi.c,
2121 src/alpha/osf.S,
2122 src/m68k/ffitarget.h,
2123 src/frv/ffitarget.h,
2124 src/frv/ffi.c,
2125 src/s390/ffitarget.h,
2126 src/s390/sysv.S,
2127 src/cris/ffitarget.h,
2128 src/pa/linux.S,
2129 src/pa/ffitarget.h,
2130 src/pa/ffi.c,
2131 src/raw_api.c,
2132 src/ia64/ffitarget.h,
2133 src/ia64/unix.S,
2134 src/ia64/ffi.c,
2135 src/ia64/ia64_flags.h,
2136 src/java_raw_api.c,
2137 src/debug.c,
2138 src/sparc/v9.S,
2139 src/sparc/ffitarget.h,
2140 src/sparc/ffi.c,
2141 src/sparc/v8.S,
2142 src/mips/ffitarget.h,
2143 src/mips/n32.S,
2144 src/mips/o32.S,
2145 src/mips/ffi.c,
2146 src/prep_cif.c,
2147 src/sh/ffitarget.h,
2148 src/sh/ffi.c,
2149 src/sh/sysv.S: Update license text.
2150
ad81e87b 21512009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2152
2153 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2154 (.eh_frame): Add FDE for it.
2155
1cde303d 21562009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2157
2158 * configure.ac: Also check if assembler supports pc-relative
2159 relocs on X86_WIN32 targets.
2160 * configure: Regenerate.
2161 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2162 (_ffi_call_SYSV): Add missing function type symbol .def and
2163 add EH markup labels.
2164 (_ffi_call_STDCALL): Likewise.
2165 (_ffi_closure_SYSV): Likewise.
2166 (_ffi_closure_raw_SYSV): Likewise.
2167 (.eh_frame): Add hand-crafted EH data.
2168
6bc9506f 21692009-04-09 Jakub Jelinek <jakub@redhat.com>
2170
2171 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2172 version 3 of the GNU General Public License and to point readers
2173 at the COPYING3 file and the FSF's license web page.
2174 * testsuite/libffi.call/call.exp: Likewise.
2175 * testsuite/libffi.special/special.exp: Likewise.
2176
9af964d4 21772009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2178
2179 * configure: Regenerate.
2180
95ff4d7d 21812008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2182
2183 PR libffi/26048
2184 * configure.ac (HAVE_AS_X86_PCREL): New test.
2185 * configure: Regenerate.
2186 * fficonfig.h.in: Regenerate.
2187 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2188 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2189 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2190 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2191 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2192 (.Lload_table): Likewise.
2193 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2194
9e6fd619 21952008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2196
2197 * configure: Regenerate.
2198
95c3349b 21992008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2200
2201 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2202 signed/unsigned int8/16 return values.
2203 * src/sparc/v8.S (ffi_call_v8): Likewise.
2204 (ffi_closure_v8): Likewise.
2205
4bc2b84f 22062008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
81b376ae 2207 Steve Ellcey <sje@cup.hp.com>
4bc2b84f 2208
2209 * configure: Regenerate for new libtool.
2210 * Makefile.in: Ditto.
2211 * include/Makefile.in: Ditto.
2212 * aclocal.m4: Ditto.
2213
a2c1e278 22142008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2215
2216 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2217 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2218 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2219 Adjust copyright notice.
2220 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2221 register or two register to use for FFI_SYSV structs.
2222 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2223 (ffi_closure_helper_SYSV): Fix the return type for
2224 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2225 Adjust copyright notice.
2226
0733c867 22272008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2228
2229 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2230 int.
2231
5b2c7553 22322008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2233
2234 * configure: Regenerate.
2235 * include/Makefile.in: Regenerate.
2236 * testsuite/Makefile.in: Regenerate.
2237
6af9f7ea 22382008-06-07 Joseph Myers <joseph@codesourcery.com>
2239
2240 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2241 powerpc-*-beos*): Remove.
2242 * configure: Regenerate.
2243
ac051731 22442008-05-09 Julian Brown <julian@codesourcery.com>
2245
2246 * Makefile.am (LTLDFLAGS): New.
2247 (libffi_la_LDFLAGS): Use above.
2248 * Makefile.in: Regenerate.
2249
6a88da51 22502008-04-18 Paolo Bonzini <bonzini@gnu.org>
2251
2252 PR bootstrap/35457
2253 * aclocal.m4: Regenerate.
2254 * configure: Regenerate.
2255
644af649 22562008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2257
2258 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2259 * src/sh64/sysv.S: Likewise.
2260
595c2b68 22612008-03-26 Daniel Jacobowitz <dan@debian.org>
2262
2263 * src/arm/sysv.S: Fix ARM comment marker.
2264
22652008-03-26 Jakub Jelinek <jakub@redhat.com>
2266
2267 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2268 * src/s390/sysv.S: Likewise.
2269 * src/powerpc/ppc_closure.S: Likewise.
2270 * src/powerpc/sysv.S: Likewise.
2271 * src/x86/unix64.S: Likewise.
2272 * src/x86/sysv.S: Likewise.
2273 * src/sparc/v8.S: Likewise.
2274 * src/sparc/v9.S: Likewise.
2275 * src/m68k/sysv.S: Likewise.
2276 * src/arm/sysv.S: Likewise.
2277
82eaf560 22782008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2279
2280 * aclocal.m4: Regenerate.
2281 * configure: Likewise.
2282 * Makefile.in: Likewise.
2283 * include/Makefile.in: Likewise.
2284 * testsuite/Makefile.in: Likewise.
2285
55e813ce 22862008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2287 Andreas Tobler <a.tobler@schweiz.org>
2288
2289 * configure.ac: Add amd64-*-freebsd* target.
2290 * configure: Regenerate.
2291
00eae123 22922008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2293
2294 PR libffi/34612
2295 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2296 returning struct.
2297
2298 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2299 tests.
2300
ff3fb914 23012008-01-24 David Edelsohn <edelsohn@gnu.org>
2302
2303 * configure: Regenerate.
2304
8f1f10d3 23052008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2306
2307 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2308
ad73551f 23092008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2310
2311 PR testsuite/32843
2312 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2313 signed/unsigned int8/16 for X86_DARWIN.
2314 Updated copyright info.
2315 Handle one and two byte structs with special cif->flags.
2316 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2317 Updated copyright info.
2318 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2319 sysv.S
2320 Remove code to pop args from the stack after call.
2321 Special-case signed/unsigned for int8/16, one and two byte structs.
2322 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2323 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2324 FFI_TYPE_SINT32.
2325 Updated copyright info.
2326
aaf16623 23272007-12-08 David Daney <ddaney@avtrex.com>
2328
81b376ae 2329 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
aaf16623 2330 SUBU, add with ADDU and use smaller code sequences.
2331
2c3f7870 23322007-12-07 David Daney <ddaney@avtrex.com>
2af77f57 2333
2c3f7870 2334 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2335 type.
2336
5be4032c 23372007-12-06 David Daney <ddaney@avtrex.com>
2338
2339 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2340 defined.
2341 (ffi_java_raw): New typedef.
2342 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2343 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2344 ffi_java_raw.
2345 (ffi_java_raw_closure) : Same.
2346 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2347 parameter types.
2348 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2349 FFI_SIZEOF_JAVA_RAW.
2350 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2351 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2352 sizeof(ffi_java_raw) for alignment calculations.
2353 (ffi_java_ptrarray_to_raw): Same.
2354 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
81b376ae 2355 if FFI_SIZEOF_JAVA_RAW == 4.
5be4032c 2356 (ffi_java_raw_to_rvalue): Same.
2357 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2358 (ffi_java_translate_args): Same.
2359 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2360 parameter types.
2361 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2362
79369c38 23632007-12-06 David Daney <ddaney@avtrex.com>
2364
81b376ae 2365 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
79369c38 2366 pointer values.
2367
7cf0754c 23682007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2369
2370 PR libffi/31937
2371 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2372 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2373 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2374 set the NUM_FPR_ARG_REGISTERS according to.
2375 Add support for potential soft-float support under hard-float
2376 architecture.
2377 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2378 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2379 to the FFI_LINUX_SOFT_FLOAT ABI.
2380 (ffi_prep_cif_machdep): Likewise.
2381 (ffi_closure_helper_SYSV): Likewise.
2382 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2383 on archs where __NO_FPRS__ is true.
2384 Add FFI_TYPE_UINT128 support.
2385 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2386 Adjust copyright notice.
2387
5036bf25 23882007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2389
2390 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2391 * include/ffi_common.h: ... here.
2392 Update copyright.
2393
c3f75f11 23942007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2395
2396 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2397 * src/powerpc/linux64.S: Likewise.
2398 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2399 * testsuite/libffi.call/return_ldl.c: New test.
2400
244c3f18 24012007-09-04 <aph@redhat.com>
2402
2403 * src/arm/sysv.S (UNWIND): New.
2404 (Whole file): Conditionally compile unwinder directives.
2405 * src/arm/sysv.S: Add unwinder directives.
2406
2407 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2408 Only treat r0 as a struct address if we're actually returning a
2409 struct by address.
2410 Only copy the bytes that are actually within a struct.
2411 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2412 is returned in r0, not passed by address.
2413 (ffi_call): Allocate a word-sized temporary for the case where
2414 a composite is returned in r0.
2415 (ffi_prep_incoming_args_SYSV): Align as necessary.
2416
24172007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2418
81b376ae 2419 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
244c3f18 2420 directly using the sys_cacheflush syscall.
2421
24222007-07-27 Andrew Haley <aph@redhat.com>
2423
2424 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2425
7a659e46 24262007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2427
2428 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2429 * configure.ac: Likewise.
2430 * Makefile.in: Regenerate.
2431 * include/Makefile.in: Likewise.
2432 * testsuite/Makefile.in: Likewise.
2433 * configure: Likewise.
2434
99b65499 24352007-08-24 David Daney <ddaney@avtrex.com>
2436
2437 * testsuite/libffi.call/return_sl.c: New test.
2438
b5c438f4 24392007-08-10 David Daney <ddaney@avtrex.com>
2440
2441 * testsuite/libffi.call/cls_multi_ushort.c,
2442 testsuite/libffi.call/cls_align_uint16.c,
2443 testsuite/libffi.call/nested_struct1.c,
2444 testsuite/libffi.call/nested_struct3.c,
2445 testsuite/libffi.call/cls_7_1_byte.c,
2446 testsuite/libffi.call/nested_struct5.c,
2447 testsuite/libffi.call/cls_double.c,
2448 testsuite/libffi.call/nested_struct7.c,
2449 testsuite/libffi.call/cls_sint.c,
2450 testsuite/libffi.call/nested_struct9.c,
2451 testsuite/libffi.call/cls_20byte1.c,
2452 testsuite/libffi.call/cls_multi_sshortchar.c,
2453 testsuite/libffi.call/cls_align_sint64.c,
2454 testsuite/libffi.call/cls_3byte2.c,
2455 testsuite/libffi.call/cls_multi_schar.c,
2456 testsuite/libffi.call/cls_multi_uchar.c,
2457 testsuite/libffi.call/cls_19byte.c,
2458 testsuite/libffi.call/cls_9byte1.c,
2459 testsuite/libffi.call/cls_align_float.c,
2460 testsuite/libffi.call/closure_fn1.c,
2461 testsuite/libffi.call/problem1.c,
2462 testsuite/libffi.call/closure_fn3.c,
2463 testsuite/libffi.call/cls_sshort.c,
2464 testsuite/libffi.call/closure_fn5.c,
2465 testsuite/libffi.call/cls_align_double.c,
2466 testsuite/libffi.call/nested_struct.c,
2467 testsuite/libffi.call/cls_2byte.c,
2468 testsuite/libffi.call/nested_struct10.c,
2469 testsuite/libffi.call/cls_4byte.c,
2470 testsuite/libffi.call/cls_6byte.c,
2471 testsuite/libffi.call/cls_8byte.c,
2472 testsuite/libffi.call/cls_multi_sshort.c,
2473 testsuite/libffi.call/cls_align_sint16.c,
2474 testsuite/libffi.call/cls_align_uint32.c,
2475 testsuite/libffi.call/cls_20byte.c,
2476 testsuite/libffi.call/cls_float.c,
2477 testsuite/libffi.call/nested_struct2.c,
2478 testsuite/libffi.call/cls_5_1_byte.c,
2479 testsuite/libffi.call/nested_struct4.c,
2480 testsuite/libffi.call/cls_24byte.c,
2481 testsuite/libffi.call/nested_struct6.c,
2482 testsuite/libffi.call/cls_64byte.c,
2483 testsuite/libffi.call/nested_struct8.c,
2484 testsuite/libffi.call/cls_uint.c,
2485 testsuite/libffi.call/cls_multi_ushortchar.c,
2486 testsuite/libffi.call/cls_schar.c,
2487 testsuite/libffi.call/cls_uchar.c,
2488 testsuite/libffi.call/cls_align_uint64.c,
2489 testsuite/libffi.call/cls_ulonglong.c,
2490 testsuite/libffi.call/cls_align_longdouble.c,
2491 testsuite/libffi.call/cls_1_1byte.c,
2492 testsuite/libffi.call/cls_12byte.c,
2493 testsuite/libffi.call/cls_3_1byte.c,
2494 testsuite/libffi.call/cls_3byte1.c,
2495 testsuite/libffi.call/cls_4_1byte.c,
2496 testsuite/libffi.call/cls_6_1_byte.c,
2497 testsuite/libffi.call/cls_16byte.c,
2498 testsuite/libffi.call/cls_18byte.c,
2499 testsuite/libffi.call/closure_fn0.c,
2500 testsuite/libffi.call/cls_9byte2.c,
2501 testsuite/libffi.call/closure_fn2.c,
2502 testsuite/libffi.call/closure_fn4.c,
2503 testsuite/libffi.call/cls_ushort.c,
2504 testsuite/libffi.call/closure_fn6.c,
2505 testsuite/libffi.call/cls_5byte.c,
2506 testsuite/libffi.call/cls_align_pointer.c,
2507 testsuite/libffi.call/cls_7byte.c,
2508 testsuite/libffi.call/cls_align_sint32.c,
2509 testsuite/libffi.special/unwindtest_ffi_call.cc,
2510 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2511
edd57a0a 25122007-08-10 David Daney <ddaney@avtrex.com>
2513
2514 PR libffi/28313
2515 * configure.ac: Don't treat mips64 as a special case.
2516 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2517 * configure: Regenerate
2518 * Makefile.in: Ditto.
2519 * fficonfig.h.in: Ditto.
2520 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2521 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2522 (FFI_DEFAULT_ABI): Set for n64 case.
2523 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2524 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2525 (ffi_closure_N32): New function.
2526 (.eh_frame): New section
2527 * src/mips/o32.S: Clean up comments.
2528 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2529 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2530 _MIPS_SIM == _ABIN32 throughout.
2531 (FFI_MIPS_STOP_HERE): New, use in place of
2532 ffi_stop_here.
2533 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2534 to support n32/n64 ABIs.
2535 (calc_n32_struct_flags): Rewrite.
2536 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2537 position of flag bits.
2538 (ffi_prep_cif_machdep): Rewrite n32 portion.
2539 (ffi_call): Enable for n64. Add special handling for small structure
2540 return values.
2541 (ffi_prep_closure_loc): Add n32 and n64 support.
2542 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2543 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2544
3471c5eb 25452007-08-08 David Daney <ddaney@avtrex.com>
2546
2547 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2548 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2549 specifiers.
2550 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2551 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2552 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2553 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2554 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2555 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2556 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2557 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2558 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2559 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2560 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2561 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2562 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2563 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2564 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2565 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2566 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2567 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2568 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2569 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2570 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2571 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2572 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2573 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2574 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2575 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2576 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2577 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2578 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2579 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2580 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2581
ad7bf8e7 25822007-08-07 Andrew Haley <aph@redhat.com>
2583
2584 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2585 checkin.
2586
6cc1286e 25872007-08-06 Andrew Haley <aph@redhat.com>
2588
2589 PR testsuite/32843
2590 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2591 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2592 FFI_TYPE_SINT32.
2593
c6f5483d 25942007-08-02 David Daney <ddaney@avtrex.com>
2595
2596 * testsuite/libffi.call/return_ul.c (main): Define return type as
2597 ffi_arg. Use proper printf conversion specifier.
81b376ae 2598
f6179f0e 25992007-07-30 Andrew Haley <aph@redhat.com>
2600
2601 PR testsuite/32843
2602 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2603 signed/unsigned int8/16.
2604 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2605 Use a jump table.
2606 Remove code to pop args from the stack after call.
2607 Special-case signed/unsigned int8/16.
2608 * testsuite/libffi.call/return_sc.c (main): Revert.
2609
7babed79 26102007-07-26 Richard Guenther <rguenther@suse.de>
2611
2612 PR testsuite/32843
2613 * testsuite/libffi.call/return_sc.c (main): Verify call
2614 result as signed char, not ffi_arg.
2615
f54a4242 26162007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2617
2618 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2619 * configure: Regenerate.
2620
e96a69da 26212007-07-11 David Daney <ddaney@avtrex.com>
2622
2623 * src/mips/ffi.c: Don't include sys/cachectl.h.
2624 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2625 cacheflush().
2626
187f6543 26272007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2628
2629 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2630 from (ffi_prep_closure): ... this.
2631 (FFI_INIT_TRAMPOLINE): Adjust.
2632
26332005-12-31 Phil Blundell <pb@reciva.com>
2634
81b376ae 2635 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2636 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
187f6543 2637 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2638 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2639 (FFI_CLOSURES): Enable closure support.
2640
26412007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2642
81b376ae 2643 * testsuite/libffi.call/cls_multi_ushort.c,
2644 testsuite/libffi.call/cls_align_uint16.c,
2645 testsuite/libffi.call/nested_struct1.c,
2646 testsuite/libffi.call/nested_struct3.c,
2647 testsuite/libffi.call/cls_7_1_byte.c,
2648 testsuite/libffi.call/cls_double.c,
2649 testsuite/libffi.call/nested_struct5.c,
2650 testsuite/libffi.call/nested_struct7.c,
2651 testsuite/libffi.call/cls_sint.c,
2652 testsuite/libffi.call/nested_struct9.c,
2653 testsuite/libffi.call/cls_20byte1.c,
2654 testsuite/libffi.call/cls_multi_sshortchar.c,
2655 testsuite/libffi.call/cls_align_sint64.c,
2656 testsuite/libffi.call/cls_3byte2.c,
2657 testsuite/libffi.call/cls_multi_schar.c,
2658 testsuite/libffi.call/cls_multi_uchar.c,
2659 testsuite/libffi.call/cls_19byte.c,
2660 testsuite/libffi.call/cls_9byte1.c,
2661 testsuite/libffi.call/cls_align_float.c,
2662 testsuite/libffi.call/closure_fn1.c,
2663 testsuite/libffi.call/problem1.c,
2664 testsuite/libffi.call/closure_fn3.c,
2665 testsuite/libffi.call/cls_sshort.c,
2666 testsuite/libffi.call/closure_fn5.c,
2667 testsuite/libffi.call/cls_align_double.c,
2668 testsuite/libffi.call/cls_2byte.c,
2669 testsuite/libffi.call/nested_struct.c,
2670 testsuite/libffi.call/nested_struct10.c,
2671 testsuite/libffi.call/cls_4byte.c,
2672 testsuite/libffi.call/cls_6byte.c,
2673 testsuite/libffi.call/cls_8byte.c,
2674 testsuite/libffi.call/cls_multi_sshort.c,
2675 testsuite/libffi.call/cls_align_uint32.c,
2676 testsuite/libffi.call/cls_align_sint16.c,
2677 testsuite/libffi.call/cls_float.c,
2678 testsuite/libffi.call/cls_20byte.c,
2679 testsuite/libffi.call/cls_5_1_byte.c,
2680 testsuite/libffi.call/nested_struct2.c,
2681 testsuite/libffi.call/cls_24byte.c,
2682 testsuite/libffi.call/nested_struct4.c,
2683 testsuite/libffi.call/nested_struct6.c,
2684 testsuite/libffi.call/cls_64byte.c,
2685 testsuite/libffi.call/nested_struct8.c,
2686 testsuite/libffi.call/cls_uint.c,
2687 testsuite/libffi.call/cls_multi_ushortchar.c,
2688 testsuite/libffi.call/cls_schar.c,
2689 testsuite/libffi.call/cls_uchar.c,
2690 testsuite/libffi.call/cls_align_uint64.c,
2691 testsuite/libffi.call/cls_ulonglong.c,
2692 testsuite/libffi.call/cls_align_longdouble.c,
2693 testsuite/libffi.call/cls_1_1byte.c,
2694 testsuite/libffi.call/cls_12byte.c,
2695 testsuite/libffi.call/cls_3_1byte.c,
2696 testsuite/libffi.call/cls_3byte1.c,
2697 testsuite/libffi.call/cls_4_1byte.c,
2698 testsuite/libffi.call/cls_6_1_byte.c,
2699 testsuite/libffi.call/cls_16byte.c,
2700 testsuite/libffi.call/cls_18byte.c,
2701 testsuite/libffi.call/closure_fn0.c,
2702 testsuite/libffi.call/cls_9byte2.c,
2703 testsuite/libffi.call/closure_fn2.c,
2704 testsuite/libffi.call/closure_fn4.c,
2705 testsuite/libffi.call/cls_ushort.c,
2706 testsuite/libffi.call/closure_fn6.c,
2707 testsuite/libffi.call/cls_5byte.c,
2708 testsuite/libffi.call/cls_align_pointer.c,
2709 testsuite/libffi.call/cls_7byte.c,
2710 testsuite/libffi.call/cls_align_sint32.c,
2711 testsuite/libffi.special/unwindtest_ffi_call.cc,
2712 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
187f6543 2713
cecc75a9 27142007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2715
2716 * aclocal.m4: Regenerated.
2717
07c46636 27182007-06-02 Paolo Bonzini <bonzini@gnu.org>
2719
2720 * configure: Regenerate.
2721
542f9784 27222007-05-23 Steve Ellcey <sje@cup.hp.com>
2723
2724 * Makefile.in: Regenerate.
2725 * configure: Regenerate.
2726 * aclocal.m4: Regenerate.
2727 * include/Makefile.in: Regenerate.
2728 * testsuite/Makefile.in: Regenerate.
2729
0e3a3bdb 27302007-05-10 Roman Zippel <zippel@linux-m68k.org>
2731
2732 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2733 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2734 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2735 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2736 (FFI_CLOSURES): Enable closure support.
2737
a53add80 27382007-05-10 Roman Zippel <zippel@linux-m68k.org>
2739
2740 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2741 * configure: Regenerate.
2742 * fficonfig.h.in: Regenerate.
2743 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2744 CFI_OFFSET,CFI_DEF_CFA): New macros.
2745 (ffi_call_SYSV): Add callframe annotation.
2746
bb3218e9 27472007-05-10 Roman Zippel <zippel@linux-m68k.org>
2748
2749 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2750 numerous test suite failures.
2751 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2752
5d0df87f 27532007-04-11 Paolo Bonzini <bonzini@gnu.org>
2754
2755 * Makefile.am (EXTRA_DIST): Bring up to date.
2756 * Makefile.in: Regenerate.
2757 * src/frv/eabi.S: Remove RCS keyword.
2758
ea4d299a 27592007-04-06 Richard Henderson <rth@redhat.com>
2760
2761 * configure.ac: Tidy target case.
2762 (HAVE_LONG_DOUBLE): Allow the target to override.
2763 * configure: Regenerate.
2764 * include/ffi.h.in: Don't define ffi_type_foo if
2765 LIBFFI_HIDE_BASIC_TYPES is defined.
2766 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2767 to ffi_type_double.
2768 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2769 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2770 (ffi_type_longdouble): Special case for Alpha. Don't define
2771 if long double == double.
2772
2773 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2774 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2775 (ffi_call, ffi_closure_osf_inner): Likewise.
2776 (ffi_closure_osf_inner): Likewise. Mark hidden.
2777 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2778 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2779 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2780 (load_table): Handle 128-bit long double.
2781
2782 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2783
770e494d 27842007-04-06 Tom Tromey <tromey@redhat.com>
2785
2786 PR libffi/31491:
2787 * README: Fixed bug in example.
2788
58606959 27892007-04-03 Jakub Jelinek <jakub@redhat.com>
2790
2791 * src/closures.c: Include sys/statfs.h.
2792 (_GNU_SOURCE): Define on Linux.
2793 (FFI_MMAP_EXEC_SELINUX): Define.
2794 (selinux_enabled): New variable.
2795 (selinux_enabled_check): New function.
2796 (is_selinux_enabled): Define.
2797 (dlmmap): Use it.
2798
7fed151e 27992007-03-24 Uros Bizjak <ubizjak@gmail.com>
2800
2801 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2802 Use 'volatile float sum' to create sum of floats to avoid false
2803 negative due to excess precision on ix86 targets.
81b376ae 2804 (main): Ditto.
7fed151e 2805
8fb4628d 28062007-03-08 Alexandre Oliva <aoliva@redhat.com>
2807
2808 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2809 patch.
2810 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2811
f20fe604 28122007-03-07 Alexandre Oliva <aoliva@redhat.com>
2813
2814 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2815 (ffi_prep_closure_loc): New.
2816 (ffi_prep_raw_closure_loc): New.
2817 (ffi_prep_java_raw_closure_loc): New.
2818 * src/closures.c: New file.
2819 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2820 Replace sflags with exec_offset.
2821 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2822 sub_segment_exec_offset): New macros.
2823 (get_segment_flags, set_segment_flags, check_segment_merge): New
2824 macros.
2825 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2826 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2827 destroy_mspace): Use new macros.
2828 (sys_alloc): Silence warning.
2829 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2830 * Makefile.in: Rebuilt.
2831 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2832 terms of ffi_prep_closure_loc.
2833 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2834 from...
2835 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2836 renamed version.
2837 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2838 adjusted from...
2839 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2840 the renamed version.
2841 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2842 (ffi_prep_closure): ... this.
2843 * src/pa/ffi.c: Likewise.
2844 * src/cris/ffi.c: Likewise. Adjust.
2845 * src/frv/ffi.c: Likewise.
2846 * src/ia64/ffi.c: Likewise.
2847 * src/mips/ffi.c: Likewise.
2848 * src/powerpc/ffi_darwin.c: Likewise.
2849 * src/s390/ffi.c: Likewise.
2850 * src/sh/ffi.c: Likewise.
2851 * src/sh64/ffi.c: Likewise.
2852 * src/sparc/ffi.c: Likewise.
2853 * src/x86/ffi64.c: Likewise.
2854 * src/x86/ffi.c: Likewise.
2855 (FFI_INIT_TRAMPOLINE): Adjust.
2856 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2857 (ffi_prep_raw_closure): ... this.
2858 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2859 (ffi_prep_closure): ... this.
2860 (flush_icache): Adjust.
2861
c3265eac 28622007-03-07 Alexandre Oliva <aoliva@redhat.com>
2863
2864 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2865 Lea's malloc.
2866
0ce4a5ce 28672007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2868
2869 * Makefile.am: Add dummy install-pdf target.
2870 * Makefile.in: Regenerate
2871
45444175 28722007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2873
2874 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2875 ffi_closure_helper_SYSV): Add long double handling.
2876
1df875cc 28772007-02-02 Jakub Jelinek <jakub@redhat.com>
2878
2879 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2880 immediately after bctrl instruction.
2881
27c4194f 28822007-01-18 Alexandre Oliva <aoliva@redhat.com>
2883
2884 * Makefile.am (all-recursive, install-recursive,
2885 mostlyclean-recursive, clean-recursive, distclean-recursive,
2886 maintainer-clean-recursive): Add missing targets.
2887 * Makefile.in: Rebuilt.
2888
eb6316a2 28892006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2890
2891 * configure.ac: Add TARGET for x86_64-*-darwin*.
2892 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2893 for X86_DARWIN.
2894 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2895 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2896 * configure: Regenerate.
2897 * Makefile.in: Regenerate.
2898 * include/Makefile.in: Regenerate.
2899 * testsuite/Makefile.in: Regenerate.
2900 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2901 ffi_call only.
2902
75a99c5e 29032006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2904
2905 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2906 Makefile.am.
2907
a39e926c 29082006-10-31 Geoffrey Keating <geoffk@apple.com>
c8dfb8ef 2909
2910 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2911 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2912 Darwin.
2913 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2914 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2915
eb819ecd 29162006-10-10 Paolo Bonzini <bonzini@gnu.org>
2917 Sandro Tolaini <tolaini@libero.it>
2918
81b376ae 2919 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
eb819ecd 2920 conditional.
2921 * configure: Regenerated.
2922 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2923 (EXTRA_DIST): Add src/x86/darwin.S.
2924 * Makefile.in: Regenerated.
2925 * include/Makefile.in: Regenerated.
2926 * testsuite/Makefile.in: Regenerated.
2927
2928 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2929 X86_WIN32, and additionally align stack to 16 bytes.
2930 * src/x86/darwin.S: New, based on sysv.S.
2931 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2932
23d9d417 29332006-09-12 David Daney <ddaney@avtrex.com>
2934
2935 PR libffi/23935
2936 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2937 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2938 * aclocal.m4: Regenerated for automake 1.9.6.
2939 * Makefile.in: Regenerated.
2940 * include/Makefile.in: Regenerated.
2941 * testsuite/Makefile.in: Regenerated.
2942
ec045626 29432006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2944
2945 * include/ffi_common.h (struct): Revert accidental commit.
2946
b9463909 29472006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2948
2949 * include/ffi_common.h: Remove lint directives.
2950 * include/ffi.h.in: Likewise.
2951
c695c024 29522006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2953
2954 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2955 for 32-bit architectures.
2956 * testsuite/libffi.call/return_ul.c: New test case.
2957
3a9d2a82 29582006-07-19 David Daney <ddaney@avtrex.com>
2959
2960 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2961 xfail remains for mips64.
2962
8f16e3ad 29632006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2964
2965 * Makefile.am: Add install-html target. Add install-html to .PHONY
2966 * Makefile.in: Regenerate.
2967 * aclocal.m4: Regenerate.
2968 * include/Makefile.in: Regenerate.
2969 * testsuite/Makefile.in: Regenerate.
2970
db951627 29712006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2972
2973 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2974 stack slot.
2975
9a333c86 29762006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2977
2978 * README: Remove notice about 'Crazy Comments'.
2979 * src/debug.c: Remove lint directives. Cleanup white spaces.
2980 * src/java_raw_api.c: Likewise.
2981 * src/prep_cif.c: Likewise.
2982 * src/raw_api.c: Likewise.
2983 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2984 to the testsuite.
2985 * src/arm/ffi.c: Remove lint directives.
2986 * src/m32r/ffi.c: Likewise.
2987 * src/pa/ffi.c: Likewise.
2988 * src/powerpc/ffi.c: Likewise.
2989 * src/powerpc/ffi_darwin.c: Likewise.
2990 * src/sh/ffi.c: Likewise.
2991 * src/sh64/ffi.c: Likewise.
2992 * src/x86/ffi.c: Likewise.
2993 * testsuite/libffi.call/float2.c: Likewise.
2994 * testsuite/libffi.call/promotion.c: Likewise.
2995 * testsuite/libffi.call/struct1.c: Likewise.
2996
7610fe2b 29972006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2998
2999 * src/pa/hpux32.S: Correct unwind offset calculation for
3000 ffi_closure_pa32.
3001 * src/pa/linux.S: Likewise.
3002
5adc6320 30032006-04-12 James E Wilson <wilson@specifix.com>
3004
3005 PR libgcj/26483
3006 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3007 (hfa_type_load): Call stf_spill.
3008 (hfa_type_store): Call ldf_fill.
3009 (ffi_call): Adjust calls to above routines. Add local temps for
3010 macro result.
7610fe2b 3011
d35f63a9 30122006-04-10 Matthias Klose <doko@debian.org>
3013
3014 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3015 directory names containing underscores.
3016
2d3dcfaa 30172006-04-07 James E Wilson <wilson@specifix.com>
3018
3019 * testsuite/libffi.call/float4.c: New testcase.
3020
1a82d6f6 30212006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3022 Andreas Tobler <a.tobler@schweiz.ch>
3023
3024 * Makefile.am: Add PA_HPUX port.
3025 * Makefile.in: Regenerate.
3026 * include/Makefile.in: Likewise.
3027 * testsuite/Makefile.in: Likewise.
3028 * configure.ac: Add PA_HPUX rules.
3029 * configure: Regenerate.
3030 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3031 Add PA_HPUX and PA64_HPUX.
3032 Rename FFI_LINUX ABI to FFI_PA32 ABI.
3033 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3034 (FFI_TYPE_SMALL_STRUCT2): Define.
3035 (FFI_TYPE_SMALL_STRUCT4): Likewise.
3036 (FFI_TYPE_SMALL_STRUCT8): Likewise.
3037 (FFI_TYPE_SMALL_STRUCT3): Redefine.
3038 (FFI_TYPE_SMALL_STRUCT5): Likewise.
3039 (FFI_TYPE_SMALL_STRUCT6): Likewise.
3040 (FFI_TYPE_SMALL_STRUCT7): Likewise.
3041 * src/pa/ffi.c (ROUND_DOWN): Delete.
3042 (fldw, fstw, fldd, fstd): Use '__asm__'.
3043 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3044 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3045 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3046 Simplify incrementing of stack slot variable. Change type of local
3047 'n' to unsigned int.
3048 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3049 double on PA_HPUX.
3050 (ffi_prep_cif_machdep): Likewise.
3051 (ffi_call): Likewise.
3052 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3053 return type to ffi_status. Simplify incrementing of stack slot
3054 variable. Only copy floating point argument registers when PA_LINUX
3055 is true. Reformat debug statement.
3056 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3057 FFI_TYPE_SMALL_STRUCT8.
3058 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3059 declaration.
3060 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3061 Add nops to cache flush. Add trampoline for PA_HPUX.
3062 * src/pa/hpux32.S: New file.
3063 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3064 ffi_prep_args_LINUX to ffi_prep_args_pa32.
3065 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3066 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3067 argument type checks so that common argument types appear first.
3068 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3069 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3070
7f5ddc97 30712006-03-24 Alan Modra <amodra@bigpond.net.au>
3072
3073 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
3074 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
3075 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3076 FFI_TYPE_LONGDOUBLE.
3077 (ffi_prep_args64): Assert using IBM extended double.
3078 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3079 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3080 (ffi_call): Handle FFI_LINUX.
3081 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3082 gpr3 return pointer as for struct return. Handle FFI_LINUX
3083 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
3084 unnecessarily.
3085 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3086 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
3087 Don't use r6 as pointer to results, instead use sp offset. Don't
3088 make a special call to load lr with case table address, instead
3089 use offset from previous call.
3090 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3091 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3092 return.
3093
cd10a5a7 30942006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
3095
3096 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3097 passed with FP registers correctly.
3098 (ffi_closure_helper_SYSV): Likewise.
3099 * src/sh64/sysv.S: Likewise.
3100
a07533b6 31012006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
3102
3103 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3104 args and userdata unused.
3105 (closure_test_fn1): Mark cif and userdata unused.
3106 (main): Remove unused res.
3107
bdc6f488 31082006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
3109
3110 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3111 -O2, -O3, -Os and the warning flags -W -Wall.
3112 * testsuite/libffi.special/special.exp: Likewise.
3113 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3114 unused parameter unused for gcc or else do nothing.
3115 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3116 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3117 and userdata unused.
3118 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3119 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3120 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3121 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3122 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3123 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3124 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3125 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3126 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3127 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3128 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3129 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3130 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3131 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3132 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3133 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3134 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3135 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3136 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3137 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3138 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3139 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3140 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3141 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3142 Likewise.
3143 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3144 Likewise.
3145 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3146 Likewise.
3147 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3148 void* to avoid compiler warning.
3149 (main): Likewise.
3150 (cls_struct_align_gn): Mark cif and userdata unused.
3151 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3152 Likewise.
3153 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3154 Likewise.
3155 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3156 Likewise.
3157 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3158 Likewise.
3159 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3160 Likewise.
3161 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3162 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3163 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3164 data unused.
3165 (main): Cast res_call to silence gcc.
3166 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3167 data unused.
3168 (main): Cast res_call to silence gcc.
3169 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3170 and data unused.
3171 (main): Cast res_call to silence gcc.
3172 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3173 data unused.
3174 (main): Cast res_call to silence gcc.
3175 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3176 data unused.
3177 (main): Cast res_call to silence gcc.
3178 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3179 and data unused.
3180 (main): Cast res_call to silence gcc.
3181 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3182 userdata unused.
3183 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3184 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3185 userdata unused.
3186 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3187 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3188 userdata unused.
3189 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3190 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3191 userdata unused.
3192 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3193 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3194 userdata unused.
3195 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3196 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3197 and userdata unused.
3198 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3199 userdata unused.
3200 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3201 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3202 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3203 Cleanup white spaces.
3204 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3205 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3206 cif and userdata unused.
3207 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3208 Likewise.
3209 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3210 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3211 formatters to silence gcc.
3212 (B_gn): Mark cif and userdata unused.
3213 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3214 unused.
3215 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3216 (B_gn): Mark cif and userdata unused.
3217 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3218 unused.
3219 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3220 (B_gn): Mark cif and userdata unused.
3221 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3222 unused.
3223 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3224 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3225 * testsuite/libffi.call/problem1.c (stub): Likewise.
3226 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3227 gcc.
3228 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3229 in the last commit for this test case in the test case itself.
3230 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3231 unused.
3232 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3233 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3234 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3235 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3236 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3237 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3238
5ab2e6e4 32392006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3240
3241 * src/sh/sysv.S: Fix register numbers in the FDE for
3242 ffi_closure_SYSV.
3243
849b9f91 32442006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3245
3246 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3247 declaration to avoid a false negative on ix86. See PR323.
3248
003f258f 32492006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3250
3251 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3252 and cast integer to void * if needed. Update the pointer to
3253 the FP register saved area correctly.
81b376ae 3254
9121151b 32552006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3256
3257 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3258 is fixed.
3259 * testsuite/libffi.call/nested_struct4.c: Likewise.
3260
019a3b64 32612006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3262
6cbfba8c 3263 * testsuite/libffi.call/return_dbl.c: New test case.
3264 * testsuite/libffi.call/return_dbl1.c: Likewise.
3265 * testsuite/libffi.call/return_dbl2.c: Likewise.
3266 * testsuite/libffi.call/return_fl.c: Likewise.
3267 * testsuite/libffi.call/return_fl1.c: Likewise.
3268 * testsuite/libffi.call/return_fl2.c: Likewise.
3269 * testsuite/libffi.call/return_fl3.c: Likewise.
3270 * testsuite/libffi.call/closure_fn6.c: Likewise.
3271
019a3b64 3272 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3273 definition.
3274 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3275 here to be used by other test cases too.
3276
3277 * testsuite/libffi.call/nested_struct10.c: New test case.
3278 * testsuite/libffi.call/nested_struct9.c: Likewise.
3279 * testsuite/libffi.call/nested_struct8.c: Likewise.
3280 * testsuite/libffi.call/nested_struct7.c: Likewise.
3281 * testsuite/libffi.call/nested_struct6.c: Likewise.
3282 * testsuite/libffi.call/nested_struct5.c: Likewise.
3283 * testsuite/libffi.call/nested_struct4.c: Likewise.
3284
946a8d62 32852006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3286
3287 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3288 * configure: Rebuilt.
3289
cb99d24e 32902006-01-18 Jakub Jelinek <jakub@redhat.com>
3291
3292 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3293 instead do the shifting inline.
3294 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3295 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3296 and 8 byte structs, for the remaining struct sizes don't call
3297 __lshrdi3, instead do the shifting inline.
3298
06bf2366 32992005-12-07 Thiemo Seufer <ths@networkno.de>
3300
3301 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3302 missing parentheses.
3303 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3304 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3305 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3306 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3307 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3308 FA_0_0_OFF2.
3309 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3310 endianness bugs.
3311 (ffi_prep_closure): Improve trampoline instruction scheduling.
3312 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3313
9a385484 33142005-12-03 Alan Modra <amodra@bigpond.net.au>
3315
3316 * src/powerpc/ffi.c: Formatting.
3317 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3318 (ffi_prep_args64): Likewise.
3319
193c2942 33202005-09-30 Geoffrey Keating <geoffk@apple.com>
3321
3322 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3323 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3324
d3eb23fb 33252005-09-26 Tom Tromey <tromey@redhat.com>
3326
3327 * testsuite/libffi.call/float1.c (value_type): New typedef.
3328 (CANARY): New define.
3329 (main): Check for result buffer overflow.
3330 * src/powerpc/linux64.S: Handle linux64 long double returns.
3331 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3332 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3333
5497bbdf 33342005-08-25 Alan Modra <amodra@bigpond.net.au>
3335
3336 PR target/23404
3337 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3338 homed fp args.
3339 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3340
33b4ca90 33412005-08-11 Jakub Jelinek <jakub@redhat.com>
3342
3343 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3344 (AH_BOTTOM): Add FFI_HIDDEN definition.
3345 * configure: Rebuilt.
3346 * fficonfig.h.in: Rebuilt.
3347 * src/powerpc/ffi.c (hidden): Remove.
3348 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3349 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3350 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3351 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3352 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3353 add FFI_HIDDEN to its prototype.
3354 (ffi_closure_SYSV_inner): New.
3355 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3356 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3357
967ec51b 33582005-08-10 Alfred M. Szmidt <ams@gnu.org>
3359
3360 PR libffi/21819:
3361 * configure: Rebuilt.
3362 * configure.ac: Handle i*86-*-gnu*.
3363
80207f81 33642005-08-09 Jakub Jelinek <jakub@redhat.com>
3365
3366 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3367 DW_CFA_offset_extended_sf rather than
3368 DW_CFA_GNU_negative_offset_extended.
3369 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3370
6a0e74dc 33712005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3372
3373 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3374 on sh3.
3375 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3376 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3377 partially on register.
3378 (ffi_closure_helper_SYSV): Likewise.
3379 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3380
cef3f52b 33812005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3382
3383 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3384 Remove empty line.
3385 * src/sh64/ffi.c (simple_type): Remove.
3386 (return_type): Handle small structures correctly.
3387 (ffi_prep_args): Likewise.
3388 (ffi_call): Likewise.
3389 (ffi_closure_helper_SYSV): Likewise.
3390 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3391 Emit position independent code if PIC and remove wrong datalabel
3392 prefixes from EH data.
3393
66c44239 33942005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3395
3396 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3397 * Makefile.in: Regenerate.
3398 * include/Makefile.in: Likewise.
3399 * testsuite/Makefile.in: Likewise.
3400 * configure.ac: Add POWERPC_FREEBSD rules.
3401 * configure: Regenerate.
3402 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3403 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3404 * src/powerpc/ffi.c: Add flags to handle small structure returns
3405 in ffi_call_SYSV.
3406 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3407 Aka FFI_SYSV.
3408 (ffi_closure_helper_SYSV): Likewise.
3409 * src/powerpc/ppc_closure.S: Add return types for small structures.
3410 * src/powerpc/sysv.S: Add bits to handle small structures for
3411 final SYSV 4 ABI.
3412
a21bd97f 34132005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3414
3415 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3416 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3417 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3418
c350327d 34192005-07-05 Randolph Chung <tausq@debian.org>
3420
3421 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3422 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3423 structures. Kill compilation warnings.
3424 (ffi_closure_inner_LINUX): Print return values as hex in debug
3425 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3426 Properly handle 5-7 byte structure returns.
3427 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3428 (FFI_TYPE_SMALL_STRUCT2): Remove.
3429 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3430 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3431 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3432 (checksmst1, checksmst2): Remove.
3433 (checksmst3): Optimize handling of 3-byte struct returns.
3434 (checksmst567): Properly handle 5-7 byte struct returns.
3435
20750e69 34362005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3437
3438 PR libgcj/21943
3439 * src/mips/n32.S: Enforce PIC code.
3440 * src/mips/o32.S: Likewise.
3441
58841df8 34422005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3443
3444 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3445 * configure: Regenerate.
81b376ae 3446
cc46fb30 34472005-06-01 Alan Modra <amodra@bigpond.net.au>
3448
3449 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3450 to call ffi_closure_helper_SYSV. Append @local instead.
3451 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3452
6e912c1e 34532005-05-17 Kelley Cook <kcook@gcc.gnu.org>
69738b31 3454
3455 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3456 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3457 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3458 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3459 include/Makefile.in, testsuite/Makefile.in: Regenerate.
81b376ae 3460
5f0a087e 34612005-05-09 Mike Stump <mrs@apple.com>
3462
3463 * configure: Regenerate.
3464
81734468 34652005-05-08 Richard Henderson <rth@redhat.com>
3466
3467 PR libffi/21285
3468 * src/alpha/osf.S: Update unwind into to match code.
3469
4e9df534 34702005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3471 Richard Henderson <rth@redhat.com>
3472
3473 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3474 bit 11 of flags.
3475 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3476 (ffi_prep_closure): Set carry bit if sse-used flag set.
3477 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3478 Only load sse registers if ssecount non-zero.
3479 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3480
34812005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
6155bf60 3482
3483 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3484 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3485 * configure: Regenerate.
3486
643e4a19 34872005-04-20 Hans-Peter Nilsson <hp@axis.com>
3488
3489 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3490 have Tcl8.3-compatible intermediate variable.
3491
81b376ae 34922005-04-18 Simon Posnjak <simon.posnjak@siol.net>
7e5823cf 3493 Hans-Peter Nilsson <hp@axis.com>
3494
3495 * Makefile.am: Add CRIS support.
3496 * configure.ac: Likewise.
942132a7 3497 * Makefile.in, configure, testsuite/Makefile.in,
3498 include/Makefile.in: Regenerate.
7e5823cf 3499 * src/cris: New directory.
3500 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3501 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
f0a2eecf 3502
3503 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3504 \r?\n in output tests.
3505
3bcf2cd5 35062005-04-12 Mike Stump <mrs@apple.com>
3507
3508 * configure: Regenerate.
3509
b7292ee2 35102005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3511
3512 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
81b376ae 3513
3bdc9b0e 35142005-03-30 Steve Ellcey <sje@cup.hp.com>
3515
3516 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3517 (ffi_sarg) Ditto.
3518 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3519 to 64 bits in ILP32 mode.
3520 Load 64 bits even for short data.
3521
7abd8367 35222005-03-23 Mike Stump <mrs@apple.com>
3523
3524 * src/powerpc/darwin.S: Update for -m64 multilib.
3525 * src/powerpc/darwin_closure.S: Likewise.
3526
bbb07d35 35272005-03-21 Zack Weinberg <zack@codesourcery.com>
3528
3529 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3530 Do not set tool_include_dir.
3531 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3532 Regenerate.
3533 * include/Makefile.am: Set gcc_version and toollibffidir.
3534 * include/Makefile.in: Regenerate.
3535
e6fd470b 35362005-02-22 Andrew Haley <aph@redhat.com>
3537
3538 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3539 odd-numbered register pairs for 64-bit integer types.
3540
4f373876 35412005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3542
3543 PR libffi/20104
3544 * testsuite/libffi.call/return_ll1.c: New test case.
3545
c2cf854f 35462005-02-11 Janis Johnson <janis187@us.ibm.com>
3547
3548 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3549 * testsuite/libffi.call/float.c: Ditto.
3550 * testsuite/libffi.call/float2.c: Ditto.
3551 * testsuite/libffi.call/float3.c: Ditto.
3552
9e71f2c8 35532005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3554
3555 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3556
45e075b4 35572005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3558
3559 * testsuite/libffi.special/special.exp (cxx_options): Add
3560 -shared-libgcc.
3561
f587fca2 35622004-12-31 Richard Henderson <rth@redhat.com>
3563
3564 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3565 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3566 offset parameters with a type parameter; deduce size and structure
3567 alignment. Update all users.
3568
717c502e 35692004-12-31 Richard Henderson <rth@redhat.com>
3570
3571 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3572 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
bbb07d35 3573 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
717c502e 3574 into ffi_prep_closure.
3575 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3576 from scratch.
3577
4a60643d 35782004-12-27 Richard Henderson <rth@redhat.com>
3579
3580 * src/x86/unix64.S: Fix typo in unwind info.
3581
66d912b3 35822004-12-25 Richard Henderson <rth@redhat.com>
3583
3584 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3585 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3586 (merge_classes): Check for it.
3587 (SSE_CLASS_P): New.
3588 (classify_argument): Pass byte_offset by value; perform all updates
3589 inside struct case.
3590 (examine_argument): Add classes argument; handle
3591 X86_64_COMPLEX_X87_CLASS.
3592 (ffi_prep_args): Merge into ...
3593 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3594 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3595 (ffi_fill_return_value): Remove.
3596 (ffi_prep_closure): Remove dead assert.
3597 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3598 Rewrite to use struct register_args instead of va_list. Create
3599 flags for handling structure returns.
3600 * src/x86/unix64.S: Remove dead strings.
3601 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3602 stack frame with ffi_call. Handle structure returns properly.
3603 (float2sse, floatfloat2sse, double2sse): Remove.
3604 (sse2float, sse2double, sse2floatfloat): Remove.
3605 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3606 to handle structure returns properly.
3607
a8594486 36082004-12-08 David Edelsohn <edelsohn@gnu.org>
3609
3610 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3611 PICFLAG.
3612 * Makefile.in: Regenerated.
3613
14ac9144 36142004-12-02 Richard Sandiford <rsandifo@redhat.com>
3615
3616 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3617 * configure, aclocal.m4, Makefile.in: Regenerate.
3618 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3619
d081dd29 36202004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3621
3622 * configure: Regenerate for libtool change.
3623
a234d196 36242004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3625
3626 * configure: Regenerate for libtool reversion.
3627
7f93fe7a 36282004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3629
3630 * configure: Regenerate for libtool change.
3631
c0e31427 36322004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3633
3634 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3635
36362004-11-23 Richard Sandiford <rsandifo@redhat.com>
3637
3638 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3639 of jal. Use an absolute encoding for the frame information.
3640
36412004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3642
3643 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3644 * acinclude.m4: Delete logic for sincludes.
3645 * aclocal.m4, Makefile.in, configure: Regenerate.
3646 * include/Makefile: Likewise.
3647 * testsuite/Makefile: Likewise.
3648
68fa8e89 36492004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3650
3651 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3652 on a 8-byte boundary.
3653 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3654
c11820d9 36552004-10-27 Richard Earnshaw <rearnsha@arm.com>
3656
3657 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3658 long long values. Round stack allocation to a multiple of 8 bytes
3659 for ATPCS compatibility.
3660 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3661 names. Handle returning long long types. Add Thumb and interworking
3662 support. Improve soft-float code.
3663
03b2b968 36642004-10-27 Richard Earnshaw <rearnsha@arm.com>
3665
3666 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3667 (libffi_exit): New function.
3668 (libffi_init): Build the testglue wrapper if needed.
3669
9f234538 36702004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3671
3672 PR other/18138
3673 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3674
61dc6540 36752004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3676
3677 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3678
3b77fb00 36792004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3680
3681 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3682 * testsuite/libffi.call/float3.c: New test case.
3683
7c2fd652 36842004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3685
3686 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3687 the function returning a structure pointed with R2.
3688 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3689 the structure return value if T bit set. Emit position
3690 independent code and EH data if PIC.
3691
7e74b6d4 36922004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3693
3694 * Makefile.am: Add m32r support.
3695 * configure.ac: Likewise.
3696 * Makefile.in: Regenerate.
3697 * confiugre: Regenerate.
3698 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3699 (uint64, sint64, double, longdouble)
3700 * src/m32r: New directory.
3701 * src/m32r/ffi.c: New file.
3702 * src/m32r/sysv.S: Likewise.
3703 * src/m32r/ffitarget.h: Likewise.
3704
d601026d 37052004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3706
3707 * testsuite/libffi.call/negint.c: New test case.
3708
ec1bc4ab 37092004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3710
3711 PR libgcj/17465
3712 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3713 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3714 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3715 DYLD_LIBRARY_PATH.
3716
41067a17 37172004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3718
3719 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3720 * testsuite/libffi.call/promotion.c: Likewise.
3721 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3722 whitespaces.
3723 * testsuite/libffi.call/return_sc.c: Likewise.
3724 * testsuite/libffi.call/return_uc.c: Likewise.
3725
acbdb39a 37262004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3727
3728 * src/powerpc/darwin.S: Fix comments and identation.
3729 * src/powerpc/darwin_closure.S: Likewise.
3730
de7fad36 37312004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3732
3733 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3734 (ffi_prep_args): Handle longdouble arguments.
3735 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3736 longdouble.
3737 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3738 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3739 values.
3740 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3741 * src/types.c: Defined longdouble size and alignment for darwin.
3742
8bf7bfd1 37432004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3744
3745 * src/powerpc/aix.S: Remove whitespaces.
3746 * src/powerpc/aix_closure.S: Likewise.
3747 * src/powerpc/asm.h: Likewise.
3748 * src/powerpc/ffi.c: Likewise.
3749 * src/powerpc/ffitarget.h: Likewise.
3750 * src/powerpc/linux64.S: Likewise.
3751 * src/powerpc/linux64_closure.S: Likewise.
3752 * src/powerpc/ppc_closure.S: Likewise.
3753 * src/powerpc/sysv.S: Likewise.
3754
2e818f50 37552004-08-30 Anthony Green <green@redhat.com>
3756
3757 * Makefile.am: Add frv support.
3758 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3759 * configure.ac: Read configure.host.
3760 * configure.in: Read configure.host.
3761 * configure.host: New file. frv-elf needs libgloss.
3762 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
752da755 3763 alignment. This is needed to frv and shouldn't harm the others.
2e818f50 3764 * include/ffi_common.h (ALIGN_DOWN): New macro.
3765 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3766
d36998ee 37672004-08-24 David Daney <daney@avtrex.com>
3768
3769 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3770 * testsuite/libffi.call/closure_fn1.c: Likewise.
3771 * testsuite/libffi.call/closure_fn2.c Likewise.
3772 * testsuite/libffi.call/closure_fn3.c: Likewise.
3773 * testsuite/libffi.call/closure_fn4.c: Likewise.
3774 * testsuite/libffi.call/closure_fn5.c: Likewise.
3775 * testsuite/libffi.call/cls_18byte.c: Likewise.
3776 * testsuite/libffi.call/cls_19byte.c: Likewise.
3777 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3778 * testsuite/libffi.call/cls_20byte.c: Likewise.
3779 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3780 * testsuite/libffi.call/cls_24byte.c: Likewise.
3781 * testsuite/libffi.call/cls_2byte.c: Likewise.
3782 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3783 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3784 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3785 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3786 * testsuite/libffi.call/cls_4byte.c: Likewise.
3787 * testsuite/libffi.call/cls_64byte.c: Likewise.
3788 * testsuite/libffi.call/cls_6byte.c: Likewise.
3789 * testsuite/libffi.call/cls_7byte.c: Likewise.
3790 * testsuite/libffi.call/cls_8byte.c: Likewise.
3791 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3792 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3793 * testsuite/libffi.call/cls_align_double.c: Likewise.
3794 * testsuite/libffi.call/cls_align_float.c: Likewise.
3795 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3796 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3797 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3798 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3799 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3800 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3801 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3802 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3803 * testsuite/libffi.call/cls_double.c: Likewise.
3804 * testsuite/libffi.call/cls_float.c: Likewise.
3805 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3806 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3807 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3808 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3809 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3810 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3811 * testsuite/libffi.call/cls_schar.c: Likewise.
3812 * testsuite/libffi.call/cls_sint.c: Likewise.
3813 * testsuite/libffi.call/cls_sshort.c: Likewise.
3814 * testsuite/libffi.call/cls_uchar.c: Likewise.
3815 * testsuite/libffi.call/cls_uint.c: Likewise.
3816 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3817 * testsuite/libffi.call/cls_ushort.c: Likewise.
3818 * testsuite/libffi.call/nested_struct.c: Likewise.
3819 * testsuite/libffi.call/nested_struct1.c: Likewise.
3820 * testsuite/libffi.call/nested_struct2.c: Likewise.
3821 * testsuite/libffi.call/nested_struct3.c: Likewise.
3822 * testsuite/libffi.call/problem1.c: Likewise.
3823 * testsuite/libffi.special/unwindtest.cc: Likewise.
3824 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3825 to zero.
3826 * testsuite/libffi.call/cls_16byte.c: Likewise.
3827 * testsuite/libffi.call/cls_5byte.c: Likewise.
3828
29ac6c83 38292004-08-23 David Daney <daney@avtrex.com>
3830
3831 PR libgcj/13141
3832 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3833 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3834 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3835 parameters and return types.
3836 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3837 (ffi_prep_closure): Ditto.
3838 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3839 alignment calculations.
3840 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3841 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3842
4487a7e8 38432004-08-14 Casey Marshall <csm@gnu.org>
3844
3845 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3846 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3847 integer (O32 ABI only).
3848 (ffi_prep_closure): new function.
3849 (ffi_closure_mips_inner_O32): new function.
bbb07d35 3850 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
4487a7e8 3851 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3852 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3853 64 bit integers correctly.
3854 (ffi_closure_O32): new function.
3855 Added DWARF-2 unwind info for both functions.
3856
bb2d2363 38572004-08-10 Andrew Haley <aph@redhat.com>
3858
3859 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3860
cb8a7007 38612004-08-01 Robert Millan <robertmh@gnu.org>
3862
3863 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3864 * configure: Regenerate.
3865
e2f66690 38662004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3867
3868 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3869 and mmap() explicitly instead of relying on preset autoconf cache
3870 variables.
3871 * aclocal.m4: Regenerate.
3872 * configure: Regenerate.
3873
e395522d 38742004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3875
3876 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3877 (ffi_check_float_struct): Remove unused prototype.
3878
b589ba75 38792004-06-30 Geoffrey Keating <geoffk@apple.com>
3880
3881 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3882 character on Darwin, use '\n\t' instead.
3883
7b709c61 38842004-06-26 Matthias Klose <doko@debian.org>
3885
3886 * libtool-version: Fix typo in revision/age.
3887
06e2077b 38882004-06-17 Matthias Klose <doko@debian.org>
3889
3890 * libtool-version: New.
3891 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3892 * Makefile.in: Regenerate.
3893
4889e098 38942004-06-15 Paolo Bonzini <bonzini@gnu.org>
d947df39 3895
3896 * Makefile.am: Remove useless multilib rules.
3897 * Makefile.in: Regenerate.
3898 * aclocal.m4: Regenerate with automake 1.8.5.
3899 * configure.ac: Remove useless multilib configury.
3900 * configure: Regenerate.
3901
4889e098 39022004-06-15 Paolo Bonzini <bonzini@gnu.org>
b2191698 3903
3904 * .cvsignore: New file.
3905
6bc491fa 39062004-06-10 Jakub Jelinek <jakub@redhat.com>
3907
3908 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3909 fp_done.
3910 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3911 changed from 8.
3912
e1c1d65f 39132004-06-06 Sean McNeil <sean@mcneil.com>
3914
3915 * configure.ac: Add x86_64-*-freebsd* support.
3916 * configure: Regenerate.
3917
2be99030 39182004-04-26 Joe Buck <jbuck@welsh-buck.org>
3919
3920 Bug 15093
3921 * configure.ac: Test for existence of mmap and sys/mman.h before
3922 checking blacklist. Fix suggested by Jim Wilson.
3923 * configure: Regenerate.
3924
efefde65 39252004-04-26 Matt Austern <austern@apple.com>
3926
3927 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3928 FDE location.
3929 * src/powerpc/darwin_closure.S: Likewise.
bbb07d35 3930
5766842b 39312004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3932
3933 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3934 error. Reported by Thomas Heller <theller@python.net>.
3935 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3936 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3937
43935228 39382004-03-20 Matthias Klose <doko@debian.org>
3939
3940 * src/pa/linux.S: Fix typo.
3941
f35c338f 39422004-03-19 Matthias Klose <doko@debian.org>
3943
5766842b 3944 * Makefile.am: Update.
f35c338f 3945 * Makefile.in: Regenerate.
3946 * src/pa/ffi.h.in: Remove.
3947 * src/pa/ffitarget.h: New file.
3948
39492004-02-10 Randolph Chung <tausq@debian.org>
3950
3951 * Makefile.am: Add PA support.
3952 * Makefile.in: Regenerate.
3953 * include/Makefile.in: Regenerate.
3954 * configure.ac: Add PA target.
3955 * configure: Regenerate.
3956 * src/pa/ffi.c: New file.
3957 * src/pa/ffi.h.in: Add PA support.
3958 * src/pa/linux.S: New file.
3959 * prep_cif.c: Add PA support.
3960
021bf237 39612004-03-16 Hosaka Yuji <hos@tamanegi.org>
3962
3963 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3964 double.
3965 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3966 with ecif->cif->flags.
3967 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3968 with cif->flags.
3969 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3970 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3971 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3972 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3973
4a900809 39742004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3975
3976 * configure.in: Rename file to ...
3977 * configure.ac: ... this.
3978 * fficonfig.h.in: Regenerate.
3979 * Makefile.in: Regenerate.
3980 * include/Makefile.in: Regenerate.
3981 * testsuite/Makefile.in: Regenerate.
3982
d128584a 39832004-03-12 Matt Austern <austern@apple.com>
3984
3985 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3986 changes in EH format resulting from addition of linkonce support.
3987 * src/powerpc/darwin_closure.S: Likewise.
021bf237 3988
b375837d 39892004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3990 Paolo Bonzini <bonzini@gnu.org>
3991
3992 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3993 Remove VPATH. Remove rules for object files. Remove multilib support.
3994 (AM_CCASFLAGS): Add.
3995 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3996 (AC_PREREQ): Bump version to 2.59.
3997 (AC_INIT): Fill with version info and bug address.
3998 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3999 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4000 De-precious CC so that the right flags are passed down to multilibs.
4001 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4002 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4003 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4004 * configure: Rebuilt.
4005 * aclocal.m4: Likewise.
4006 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4007 * fficonfig.h.in: Likewise.
4008
52cee448 40092004-03-11 Andreas Schwab <schwab@suse.de>
4010
4011 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4012 arguments from fp registers only for the first 8 parameter slots.
4013 Don't convert a float parameter when passed in memory.
4014
ac09b42b 40152004-03-09 Hans-Peter Nilsson <hp@axis.com>
4016
4017 * configure: Regenerate for config/accross.m4 correction.
4018
497c7020 40192004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
4020
4021 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4022 ecif->cif->bytes to bytes.
4023 (ffi_prep_cif_machdep): Add braces around nested if statement.
4024
0ad895fb 40252004-02-09 Alan Modra <amodra@bigpond.net.au>
4026
ad98ab60 4027 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
4028
0ad895fb 4029 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4030 (ffi_closure_helper_LINUX64): Fix typo.
4031 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4032 for powerpc64-*-*.
4033 * testsuite/libffi.call/float.c: Likewise.
4034 * testsuite/libffi.call/float2.c: Likewise.
4035
de9c7178 40362004-02-08 Alan Modra <amodra@bigpond.net.au>
4037
4038 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4039 long double function return and long double arg handling.
4040 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
4041 Use "end_pfr" instead of "nf". Correct long double handling.
4042 Localise "temp".
4043 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4044 return value.
4045 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4046 space for long double return value. Adjust stack frame and offsets.
4047 Load f2 long double return.
4048
3474a085 40492004-02-07 Alan Modra <amodra@bigpond.net.au>
4050
4051 * src/types.c: Use 16 byte long double for POWERPC64.
4052
071ff5d6 40532004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
4054
4055 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4056 when the structure return address is passed in %o0.
4057 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4058 (ffi_v9_layout_struct): Align the field following a nested structure
4059 on a word boundary. Use memmove instead of memcpy.
4060 (ffi_call): Update call to ffi_V9_return_struct.
4061 (ffi_prep_closure): Define 'ctx' only for V8.
4062 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4063 and ffi_closure_sparc_inner_v9.
4064 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
4065 Always skip the structure return address. For structures and long
4066 doubles, copy the argument directly.
4067 (ffi_closure_sparc_inner_v9): Skip the structure return address only
4068 if required. Shift the maximum floating-point slot accordingly. For
4069 big structures, copy the argument directly; otherwise, left-justify the
4070 argument and call ffi_v9_layout_struct to lay out the structure on
4071 the stack.
4072 * src/sparc/v8.S: Undef STACKFRAME before defining it.
4073 (ffi_closure_v8): Pass the structure return address. Update call to
4074 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
4075 Skip the 'unimp' insn when returning long doubles and structures.
4076 * src/sparc/v9.S: Undef STACKFRAME before defining it.
4077 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
4078 FFI_TYPE_INT handling. Load structures both in integers and
4079 floating-point registers on return.
4080 * README: Update status of the SPARC port.
4081
24ee5f14 40822004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
4083
4084 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4085 as of type ffi_arg.
4086 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
4087
1e0ee4d8 40882004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
4089
4090 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4091 value as of type ffi_arg, not unsigned int.
4092
c886ae3f 40932004-01-21 Michael Ritzert <ritzert@t-online.de>
4094
4095 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4096 of the LHS.
4097
fcd85db3 40982004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
4099
4100 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4101 Solaris.
4102
dcf910e2 41032004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4104
4105 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4106 to void *.
4107
3d3042b8 41082003-12-10 Richard Henderson <rth@redhat.com>
4109
4110 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4111 size_t instead of int.
4112
dc36d4d1 41132003-12-04 Hosaka Yuji <hos@tamanegi.org>
4114
4115 * testsuite/libffi.call/many_win32.c: Include <float.h>.
4116 * testsuite/libffi.call/many_win32.c (main): Replace variable
4117 int i with unsigned long ul.
4118
4119 * testsuite/libffi.call/cls_align_uint64.c: New test case.
4120 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
4121 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
4122 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
4123 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
4124 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
4125 * testsuite/libffi.call/cls_align_float.c: Likewise.
4126 * testsuite/libffi.call/cls_align_double.c: Likewise.
4127 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4128 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
4129
f90351a5 41302003-12-02 Hosaka Yuji <hos@tamanegi.org>
4131
4132 PR other/13221
4133 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4134 Align arguments to 32 bits.
4135
1c4a2a48 41362003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4137
4138 PR other/13221
4139 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4140 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4141 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4142 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4143 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4144 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4145
4146 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4147
8c899267 41482003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4149
4150 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4151 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4152
857794c9 41532003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4154
4155 * Makefile.in: Rebuilt.
4156 * configure: Likewise.
4157 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4158 the right type.
4159
e7f352cc 41602003-11-21 Andreas Jaeger <aj@suse.de>
4161 Andreas Tobler <a.tobler@schweiz.ch>
4162
4163 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4164 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4165 * Makefile.in: Rebuilt.
4166 * aclocal.m4: Likewise.
4167 * configure: Likewise.
4168 * fficonfig.h.in: Likewise.
4169 * testsuite/lib/libffi-dg.exp: Add include dir.
4170 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4171 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4172 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4173 for ffi_closure if available.
4174 * testsuite/libffi.call/closure_fn1.c: Likewise.
4175 * testsuite/libffi.call/closure_fn2.c: Likewise.
4176 * testsuite/libffi.call/closure_fn3.c: Likewise.
4177 * testsuite/libffi.call/closure_fn4.c: Likewise.
4178 * testsuite/libffi.call/closure_fn5.c: Likewise.
4179 * testsuite/libffi.call/cls_12byte.c: Likewise.
4180 * testsuite/libffi.call/cls_16byte.c: Likewise.
4181 * testsuite/libffi.call/cls_18byte.c: Likewise.
4182 * testsuite/libffi.call/cls_19byte.c: Likewise.
4183 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4184 * testsuite/libffi.call/cls_20byte.c: Likewise.
4185 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4186 * testsuite/libffi.call/cls_24byte.c: Likewise.
4187 * testsuite/libffi.call/cls_2byte.c: Likewise.
4188 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4189 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4190 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4191 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4192 * testsuite/libffi.call/cls_4byte.c: Likewise.
4193 * testsuite/libffi.call/cls_5byte.c: Likewise.
4194 * testsuite/libffi.call/cls_64byte.c: Likewise.
4195 * testsuite/libffi.call/cls_6byte.c: Likewise.
4196 * testsuite/libffi.call/cls_7byte.c: Likewise.
4197 * testsuite/libffi.call/cls_8byte.c: Likewise.
4198 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4199 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4200 * testsuite/libffi.call/cls_double.c: Likewise.
4201 * testsuite/libffi.call/cls_float.c: Likewise.
4202 * testsuite/libffi.call/cls_schar.c: Likewise.
4203 * testsuite/libffi.call/cls_sint.c: Likewise.
4204 * testsuite/libffi.call/cls_sshort.c: Likewise.
4205 * testsuite/libffi.call/cls_uchar.c: Likewise.
4206 * testsuite/libffi.call/cls_uint.c: Likewise.
4207 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4208 * testsuite/libffi.call/cls_ushort.c: Likewise.
4209 * testsuite/libffi.call/nested_struct.c: Likewise.
4210 * testsuite/libffi.call/nested_struct1.c: Likewise.
4211 * testsuite/libffi.call/nested_struct2.c: Likewise.
4212 * testsuite/libffi.call/nested_struct3.c: Likewise.
4213 * testsuite/libffi.call/problem1.c: Likewise.
4214 * testsuite/libffi.special/unwindtest.cc: Likewise.
4215
71e96ac5 42162003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4217
4218 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4219
fd0a337b 42202003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4221
4222 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4223 Add -lgcc_s to additional flags.
4224
c2dfd8f6 42252003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4226
4227 * configure.in, include/Makefile.am: PR libgcj/11147, install
4228 the ffitarget.h header file in a gcc versioned and target
4229 dependent place.
4230 * configure: Regenerated.
4231 * Makefile.in, include/Makefile.in: Likewise.
4232 * testsuite/Makefile.in: Likewise.
4233
17c9ab63 42342003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4235
4236 * testsuite/libffi.call/closure_fn0.c: Print result and check
4237 with dg-output to make debugging easier.
4238 * testsuite/libffi.call/closure_fn1.c: Likewise.
4239 * testsuite/libffi.call/closure_fn2.c: Likewise.
4240 * testsuite/libffi.call/closure_fn3.c: Likewise.
4241 * testsuite/libffi.call/closure_fn4.c: Likewise.
4242 * testsuite/libffi.call/closure_fn5.c: Likewise.
4243 * testsuite/libffi.call/cls_12byte.c: Likewise.
4244 * testsuite/libffi.call/cls_16byte.c: Likewise.
4245 * testsuite/libffi.call/cls_18byte.c: Likewise.
4246 * testsuite/libffi.call/cls_19byte.c: Likewise.
4247 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4248 * testsuite/libffi.call/cls_20byte.c: Likewise.
4249 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4250 * testsuite/libffi.call/cls_24byte.c: Likewise.
4251 * testsuite/libffi.call/cls_2byte.c: Likewise.
4252 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4253 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4254 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4255 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4256 * testsuite/libffi.call/cls_4byte.c: Likewise.
4257 * testsuite/libffi.call/cls_5byte.c: Likewise.
4258 * testsuite/libffi.call/cls_64byte.c: Likewise.
4259 * testsuite/libffi.call/cls_6byte.c: Likewise.
4260 * testsuite/libffi.call/cls_7byte.c: Likewise.
4261 * testsuite/libffi.call/cls_8byte.c: Likewise.
4262 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4263 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4264 * testsuite/libffi.call/cls_double.c: Likewise.
4265 * testsuite/libffi.call/cls_float.c: Likewise.
4266 * testsuite/libffi.call/cls_schar.c: Likewise.
4267 * testsuite/libffi.call/cls_sint.c: Likewise.
4268 * testsuite/libffi.call/cls_sshort.c: Likewise.
4269 * testsuite/libffi.call/cls_uchar.c: Likewise.
4270 * testsuite/libffi.call/cls_uint.c: Likewise.
4271 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4272 * testsuite/libffi.call/cls_ushort.c: Likewise.
4273 * testsuite/libffi.call/problem1.c: Likewise.
4274
4275 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4276 static.
4277
a0b53ce0 42782003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4279
4280 * testsuite/libffi.call/cls_9byte2.c: New test case.
4281 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4282 * testsuite/libffi.call/cls_64byte.c: Likewise.
4283 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4284 * testsuite/libffi.call/cls_19byte.c: Likewise.
4285 * testsuite/libffi.call/cls_18byte.c: Likewise.
4286 * testsuite/libffi.call/closure_fn4.c: Likewise.
4287 * testsuite/libffi.call/closure_fn5.c: Likewise.
4288 * testsuite/libffi.call/cls_schar.c: Likewise.
4289 * testsuite/libffi.call/cls_sint.c: Likewise.
4290 * testsuite/libffi.call/cls_sshort.c: Likewise.
4291 * testsuite/libffi.call/nested_struct2.c: Likewise.
4292 * testsuite/libffi.call/nested_struct3.c: Likewise.
4293
ed0ed2e9 42942003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4295
4296 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4297 * testsuite/libffi.call/cls_uchar.c: Likewise.
4298 * testsuite/libffi.call/cls_uint.c: Likewise.
4299 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4300 * testsuite/libffi.call/cls_ushort.c: Likewise.
4301 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4302
61641cc0 43032003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4304
4305 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4306 the initialization.
4307
6a759884 43082003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4309
61641cc0 4310 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
6a759884 4311 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4312
4f388831 43132003-10-22 David Daney <ddaney@avtrex.com>
4314
4315 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4316 __attribute__((__mode__(__SI__))) and friends.
4317
b4891aa6 43182003-10-22 Andreas Schwab <schwab@suse.de>
4319
4320 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4321
3d37e05c 43222003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4323
4324 * configure.in: AC_LINK_FILES(ffitarget.h).
4325 * configure: Regenerate.
4326 * Makefile.in: Likewise.
4327 * include/Makefile.in: Likewise.
4328 * testsuite/Makefile.in: Likewise.
4329 * fficonfig.h.in: Likewise.
4330
43312003-10-21 Paolo Bonzini <bonzini@gnu.org>
4332 Richard Henderson <rth@redhat.com>
4333
4334 Avoid that ffi.h includes fficonfig.h.
4335
4336 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4337 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4338 (TARGET_SRC_MIPS_SGI): Removed.
4339 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4340 (MIPS_SGI): Removed.
4341 (CLEANFILES): Removed.
4342 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4343 targets.
4344 * acconfig.h: Removed.
4345 * configure.in: Compute sizeofs only for double and long double.
4346 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4347 into AC_DEFINE instead of using acconfig.h. Create
4348 include/ffitarget.h instead of include/fficonfig.h. Rename
4349 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4350 AC_DEFINE EH_FRAME_FLAGS.
4351 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4352 (hack_DATA): Add ffitarget.h.
4353 * include/ffi.h.in: Remove all system specific definitions.
4354 Declare raw API even if it is not installed, why bother?
4355 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4356 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4357 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4358 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4359 * include/ffi_common.h (bool): Do not define.
4360 (ffi_assert): Accept failed assertion.
4361 (ffi_type_test): Return void and accept file/line.
4362 (FFI_ASSERT): Pass stringized failed assertion.
4363 (FFI_ASSERT_AT): New macro.
4364 (FFI_ASSERT_VALID_TYPE): New macro.
4365 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4366 UINT64, SINT64): Define here with gcc's __attribute__ macro
4367 instead of in ffi.h
4368 (FLOAT32, ALIGN): Define here instead of in ffi.h
4369 * include/ffi-mips.h: Removed. Its content moved to
4370 src/mips/ffitarget.h after separating assembly and C sections.
4371 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4372 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4373 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4374 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4375 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4376 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4377 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4378 (ffi_type_test): Rewritten.
4379 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4380 FFI_ASSERT_VALID_TYPE.
4381 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4382 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4383 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4384 src/s390/ffitarget.h, src/sh/ffitarget.h,
4385 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4386 src/x86/ffitarget.h: New files.
4387 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4388 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4389 src/powerpc/aix.S, src/powerpc/darwin.S,
4390 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4391 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4392 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4393 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4394 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4395 include fficonfig.h
4396
2a5f9ffc 43972003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4398
4399 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4400 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4401
51c5f96c 44022003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4403
4404 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4405 Used when FFI_DEBUG = 1.
4406
ee46e78f 44072003-10-14 Alan Modra <amodra@bigpond.net.au>
4408
4409 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4410 and align.
4411
a3abe7fe 44122003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4413
4414 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4415 FFI_MIPS_O32 for O32 ABI.
4416
1ee4561e 44172003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4418
4419 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4420 SPARC64. Cleanup whitespaces.
4421
93421fe6 44222003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4423
4424 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4425 strongarm, xscale. Cleanup whitespaces.
4426 * testsuite/libffi.call/closure_fn1.c: Likewise.
4427 * testsuite/libffi.call/closure_fn2.c: Likewise.
4428 * testsuite/libffi.call/closure_fn3.c: Likewise.
4429 * testsuite/libffi.call/cls_12byte.c: Likewise.
4430 * testsuite/libffi.call/cls_16byte.c: Likewise.
4431 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4432 * testsuite/libffi.call/cls_20byte.c: Likewise.
4433 * testsuite/libffi.call/cls_24byte.c: Likewise.
4434 * testsuite/libffi.call/cls_2byte.c: Likewise.
4435 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4436 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4437 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4438 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4439 * testsuite/libffi.call/cls_4byte.c: Likewise.
4440 * testsuite/libffi.call/cls_5byte.c: Likewise.
4441 * testsuite/libffi.call/cls_6byte.c: Likewise.
4442 * testsuite/libffi.call/cls_7byte.c: Likewise.
4443 * testsuite/libffi.call/cls_8byte.c: Likewise.
4444 * testsuite/libffi.call/cls_double.c: Likewise.
4445 * testsuite/libffi.call/cls_float.c: Likewise.
4446 * testsuite/libffi.call/cls_uchar.c: Likewise.
4447 * testsuite/libffi.call/cls_uint.c: Likewise.
4448 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4449 * testsuite/libffi.call/cls_ushort.c: Likewise.
4450 * testsuite/libffi.call/nested_struct.c: Likewise.
4451 * testsuite/libffi.call/nested_struct1.c: Likewise.
4452 * testsuite/libffi.call/problem1.c: Likewise.
4453 * testsuite/libffi.special/unwindtest.cc: Likewise.
4454 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4455
8a94dd75 44562003-09-18 David Edelsohn <edelsohn@gnu.org>
4457
4458 * src/powerpc/aix.S: Cleanup whitespaces.
4459 * src/powerpc/aix_closure.S: Likewise.
4460
bd1f3533 44612003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4462
4463 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4464 * src/powerpc/darwin_closure.S: Likewise.
4465 * src/powerpc/ffi_darwin.c: Likewise.
4466
7a142533 44672003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4468 David Edelsohn <edelsohn@gnu.org>
4469
4470 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4471 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4472 parameter stack.
4473 * src/powerpc/darwin_closure.S: Likewise.
4474 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4475 according to the Darwin/AIX ABI.
4476 (ffi_prep_cif_machdep): Likewise.
4477 (ffi_closure_helper_DARWIN): Likewise.
4478 Remove the outgoing parameter stack logic. Simplify the evaluation
4479 of the different CASE types.
4480 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4481 statement in the trampoline code.
4482
d80727ae 44832003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4484
4485 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4486 for the register size.
4487 (ffi_closure_helper_SYSV): Handle the structure return value
4488 address correctly.
4489 (ffi_closure_helper_SYSV): Return the appropriate type when
4490 the registers are used for the structure return value.
4491 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4492 the 64-bit return value. Update copyright years.
4493
47fab6c3 44942003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4495
4496 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4497 srcdir for ffi_mips.h.
4498
f397026a 44992003-09-12 Alan Modra <amodra@bigpond.net.au>
4500
4501 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4502 structure size.
4503 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4504 placement of float result.
4505 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4506 cast of "resp" for big-endian 64 bit machines.
4507
341b7dcf 45082003-09-11 Alan Modra <amodra@bigpond.net.au>
4509
4510 * src/types.c (double, longdouble): Merge identical SH and ARM
4511 typedefs, and add POWERPC64.
4512 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4513 struct split over gpr and rest.
4514 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4515 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4516
06855f3a 45172003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4518
4519 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4520 passing correctly.
c886ae3f 4521
9165b0af 45222003-09-09 Alan Modra <amodra@bigpond.net.au>
4523
4524 * configure: Regenerate.
4525
98d58335 45262003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4527
4528 * Makefile.am: Remove build rules for ffitest.
4529 * Makefile.in: Rebuilt.
c886ae3f 4530
98d58335 45312003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
0262ee1f 4532
4533 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4534 about implicit declaration of abort().
4535
3743c332 45362003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4537
4538 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4539 * Makefile.in: Rebuilt.
4540 * configure.in: Add dejagnu test framework.
4541 * configure: Rebuilt.
4542
4543 * testsuite/Makefile.am: New file.
4544 * testsuite/Makefile.in: Built
c886ae3f 4545 * testsuite/lib/libffi-dg.exp: New file.
3743c332 4546 * testsuite/config/default.exp: Likewise.
4547 * testsuite/libffi.call/call.exp: Likewise.
4548 * testsuite/libffi.call/ffitest.h: Likewise.
4549 * testsuite/libffi.call/closure_fn0.c: Likewise.
4550 * testsuite/libffi.call/closure_fn1.c: Likewise.
4551 * testsuite/libffi.call/closure_fn2.c: Likewise.
4552 * testsuite/libffi.call/closure_fn3.c: Likewise.
4553 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4554 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4555 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4556 * testsuite/libffi.call/cls_2byte.c: Likewise.
4557 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4558 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4559 * testsuite/libffi.call/cls_4byte.c: Likewise.
4560 * testsuite/libffi.call/cls_5byte.c: Likewise.
4561 * testsuite/libffi.call/cls_6byte.c: Likewise.
4562 * testsuite/libffi.call/cls_7byte.c: Likewise.
4563 * testsuite/libffi.call/cls_8byte.c: Likewise.
4564 * testsuite/libffi.call/cls_12byte.c: Likewise.
4565 * testsuite/libffi.call/cls_16byte.c: Likewise.
4566 * testsuite/libffi.call/cls_20byte.c: Likewise.
4567 * testsuite/libffi.call/cls_24byte.c: Likewise.
4568 * testsuite/libffi.call/cls_double.c: Likewise.
4569 * testsuite/libffi.call/cls_float.c: Likewise.
4570 * testsuite/libffi.call/cls_uchar.c: Likewise.
4571 * testsuite/libffi.call/cls_uint.c: Likewise.
4572 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4573 * testsuite/libffi.call/cls_ushort.c: Likewise.
4574 * testsuite/libffi.call/float.c: Likewise.
4575 * testsuite/libffi.call/float1.c: Likewise.
4576 * testsuite/libffi.call/float2.c: Likewise.
4577 * testsuite/libffi.call/many.c: Likewise.
4578 * testsuite/libffi.call/many_win32.c: Likewise.
4579 * testsuite/libffi.call/nested_struct.c: Likewise.
4580 * testsuite/libffi.call/nested_struct1.c: Likewise.
4581 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4582 * testsuite/libffi.call/problem1.c: Likewise.
4583 * testsuite/libffi.call/promotion.c: Likewise.
4584 * testsuite/libffi.call/return_ll.c: Likewise.
4585 * testsuite/libffi.call/return_sc.c: Likewise.
4586 * testsuite/libffi.call/return_uc.c: Likewise.
4587 * testsuite/libffi.call/strlen.c: Likewise.
4588 * testsuite/libffi.call/strlen_win32.c: Likewise.
4589 * testsuite/libffi.call/struct1.c: Likewise.
4590 * testsuite/libffi.call/struct2.c: Likewise.
4591 * testsuite/libffi.call/struct3.c: Likewise.
4592 * testsuite/libffi.call/struct4.c: Likewise.
4593 * testsuite/libffi.call/struct5.c: Likewise.
4594 * testsuite/libffi.call/struct6.c: Likewise.
4595 * testsuite/libffi.call/struct7.c: Likewise.
4596 * testsuite/libffi.call/struct8.c: Likewise.
c886ae3f 4597 * testsuite/libffi.call/struct9.c: Likewise.
3743c332 4598 * testsuite/libffi.special/special.exp: New file.
4599 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4600 * testsuite/libffi.special/unwindtest.cc: Likewise.
4601
c886ae3f 4602
3a845f75 46032003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4604
4605 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4606 copyright years.
4607
4637dfa6 46082003-08-02 Alan Modra <amodra@bigpond.net.au>
4609
4610 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4611 structure passing.
4612 (ffi_closure_helper_LINUX64): Likewise.
4613 * src/powerpc/linux64.S: Remove code writing to parm save area.
4614 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4615 address in lr from ffi_closure_helper_LINUX64 call to calculate
4616 table address. Optimize function tail.
4617
8bcdc7f0 46182003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4619
4620 * src/sparc/ffi.c: Handle all floating point registers.
4621 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4622
3d6cc549 46232003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4624
4625 * README: Note that libffi is not part of GCC. Update the project
4626 URL and status.
4627
9b770b5a 46282003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4629
4630 * src/powerpc/ppc_closure.S: Include ffi.h.
4631
d46ab9f3 46322003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4633
4634 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4635 Use C style comments.
4636
81f536a3 46372003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4638
4639 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4640 * Makefile.in: Regenerate.
4641 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4642 * configure: Regenerate.
4643 * include/ffi.h.in: Add SHmedia support.
4644 * src/sh64/ffi.c: New file.
4645 * src/sh64/sysv.S: New file.
4646
1da888ec 46472003-05-16 Jakub Jelinek <jakub@redhat.com>
4648
4649 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4650 should be read-only.
4651 * configure: Rebuilt.
4652 * fficonfig.h.in: Rebuilt.
4653 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4654 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4655 * src/powerpc/linux64.S: Likewise.
4656 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4657 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4658 if -fpic/-fPIC/-mrelocatable.
4659 * src/powerpc/powerpc_closure.S: Likewise.
4660 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4661 #write in .eh_frame flags.
4662 * src/sparc/v9.S: Likewise.
4663 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4664 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4665 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4666
f3bd7a2c 46672003-05-07 Jeff Sturm <jsturm@one-point.com>
4668
4669 Fixes PR bootstrap/10656
4670 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4671 support for .register pseudo-op.
4672 * src/sparc/v8.S: Use it.
4673 * fficonfig.h.in: Rebuilt.
4674 * configure: Rebuilt.
4675
3647950d 46762003-04-18 Jakub Jelinek <jakub@redhat.com>
4677
4678 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4679 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4680 Make it the default on POWERPC64.
4681 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4682 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4683 * configure: Rebuilt.
4684 * src/powerpc/ffi.c (hidden): Define.
4685 (ffi_prep_args_SYSV): Renamed from
4686 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4687 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4688 ASM_NEEDS_REGISTERS64): New.
4689 (ffi_prep_args64): New function.
4690 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4691 (ffi_call): Likewise.
4692 (ffi_prep_closure): Likewise.
4693 (flush_icache): Surround by #ifndef POWERPC64.
4694 (ffi_dblfl): New union type.
4695 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4696 (ffi_closure_helper_LINUX64): New function.
4697 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4698 __powerpc64__.
4699 * src/powerpc/sysv.S: Likewise.
4700 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4701 * src/powerpc/linux64.S: New file.
4702 * src/powerpc/linux64_closure.S: New file.
4703 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4704 src/powerpc/linux64_closure.S.
4705 (TARGET_SRC_POWERPC): Likewise.
4706
4707 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4708 closure_test_fn3): Fix result printing on big-endian 64-bit
4709 machines.
4710 (main): Print tst2_arg instead of uninitialized tst2_result.
4711
4712 * src/ffitest.c (main): Hide what closure pointer really points to
4713 from the compiler.
4714
1636e920 47152003-04-16 Richard Earnshaw <rearnsha@arm.com>
4716
4717 * configure.in (arm-*-netbsdelf*): Add configuration.
4718 (configure): Regenerated.
4719
e663564a 47202003-04-04 Loren J. Rittle <ljrittle@acm.org>
4721
4722 * include/Makefile.in: Regenerate.
4723
02f5d4c9 47242003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4725
4726 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4727 bit mode.
4728 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4729 Receive closure pointer through parameter, read args using
4730 __builtin_dwarf_cfa.
4731 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4732
b8e27232 47332003-03-12 Andreas Schwab <schwab@suse.de>
4734
4735 * configure.in: Avoid trailing /. in toolexeclibdir.
4736 * configure: Rebuilt.
4737
5fee68c6 47382003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4739
bbb07d35 4740 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
5fee68c6 4741
ecadab3f 47422003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4743
4744 * libffi/src/powerpc/darwin_closure.S:
4745 Fix alignement bug, allocate 8 bytes for the result.
c886ae3f 4746 * libffi/src/powerpc/aix_closure.S:
ecadab3f 4747 Likewise.
4748 * libffi/src/powerpc/ffi_darwin.c:
4749 Update stackframe description for aix/darwin_closure.S.
c886ae3f 4750
a0294641 47512003-02-06 Jakub Jelinek <jakub@redhat.com>
4752
4753 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4754 attribute.
4755
624476ed 47562003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4757 Andreas Schwab <schwab@suse.de>
4758
bbb07d35 4759 * configure.in: Adjust command to source config-ml.in to account
624476ed 4760 for changes to the libffi_basedir definition.
4761 (libffi_basedir): Remove ${srcdir} from value and include trailing
4762 slash if nonempty.
c886ae3f 4763
bbb07d35 4764 * configure: Regenerate.
624476ed 4765
1143cc9b 47662003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4767
4768 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4769
967ae8fb 47702003-01-28 Andrew Haley <aph@redhat.com>
4771
4772 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4773 * src/x86/ffi64.c (ffi_prep_closure): New.
4774 (ffi_closure_UNIX64_inner): New.
4775 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4776
c8d4fa8c 47772003-01-27 Alexandre Oliva <aoliva@redhat.com>
4778
4779 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4780 Remove USE_LIBDIR conditional.
4781 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4782 * Makefile.in, configure: Rebuilt.
4783
2dd7852c 47842003-01027 David Edelsohn <edelsohn@gnu.org>
4785
4786 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4787 * Makefile.in: Regenerate.
4788
008eadcd 47892003-01-22 Andrew Haley <aph@redhat.com>
4790
4791 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4792 unwind info.
4793
cb440058 47942003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4795
4796 * src/powerpc/darwin.S: Add unwind info.
4797 * src/powerpc/darwin_closure.S: Likewise.
4798
149417bc 47992003-01-14 Andrew Haley <aph@redhat.com>
4800
4801 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4802 (ffi_prep_cif_machdep): Likewise.
4803 * src/x86/unix64.S: Add unwind info.
4804
d4dcd973 48052003-01-14 Andreas Jaeger <aj@suse.de>
4806
4807 * src/ffitest.c (main): Only use ffi_closures if those are
4808 supported.
4809
a7898d0c 48102003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4811
4812 * libffi/src/ffitest.c
bbb07d35 4813 add closure testcases
a7898d0c 4814
48152003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4816
4817 * libffi/src/powerpc/ffi.c
bbb07d35 4818 fix alignment bug for float (4 byte aligned iso 8 byte)
a7898d0c 4819
4e844289 48202003-01-09 Geoffrey Keating <geoffk@apple.com>
4821
4822 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4823 * src/powerpc/darwin.S: Remove RCS version string.
4824
0ef3e9c5 48252003-01-03 Jeff Sturm <jsturm@one-point.com>
4826
4827 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4828 * src/ffitest.c (main): Use static storage for closure.
4829 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4830 * src/sparc/v8.S (ffi_closure_v8): New.
4831 * src/sparc/v9.S (ffi_closure_v9): New.
4832
acdc3fc3 48332002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4834
4835 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4836 enumeration for X86_WIN32.
4837 * src/x86/win32.S: Added ffi_call_STDCALL function
4838 definition.
4839 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4840 switch cases for recognising FFI_STDCALL and
4841 calling ffi_call_STDCALL if target is X86_WIN32.
4842 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4843 stdcall versions of the "my_strlen" and "many"
4844 test functions (for X86_WIN32).
4845 Added test cases to test stdcall invocation using
4846 these functions.
4847
805e22b2 48482002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4849
4850 * src/sh/sysv.S: Add DWARF2 unwind info.
4851
6d219176 48522002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4853
4854 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4855
4827afc9 48562002-11-26 Jim Wilson <wilson@redhat.com>
4857
4858 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4859
805e22b2 48602002-11-23 H.J. Lu <hjl@gnu.org>
4861
4862 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4863 Include ../config/accross.m4.
4864 * aclocal.m4; Rebuild.
4865 * configure: Likewise.
4866
e3a04290 48672002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4868
4869 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4870
be36f77d 48712002-11-11 DJ Delorie <dj@redhat.com>
4872
4873 * configure.in: Look for common files in the right place.
4874
dd985e54 48752002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4876
4877 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4878 raw data as _Jv_word values, not ffi_raw.
4879 (ffi_java_ptrarray_to_raw): Likewise.
4880 (ffi_java_rvalue_to_raw): New function.
4881 (ffi_java_raw_call): Call it.
4882 (ffi_java_raw_to_rvalue): New function.
4883 (ffi_java_translate_args): Call it.
4884 * src/ffitest.c (closure_test_fn): Interpret return value
4885 as ffi_arg, not int.
4886 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4887 FFI_TYPE_POINTER case.
4888 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4889 values extended to word size.
4890
4a18e5fa 48912002-10-02 Andreas Jaeger <aj@suse.de>
4892
4893 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4894
3d8ac088 48952002-10-01 Bo Thorsen <bo@smetana.suse.de>
4896
4897 * include/ffi.h.in: Fix i386 win32 compilation.
4898
e0aaecf3 48992002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4900
4901 * configure.in: Add s390x-*-linux-* target.
4902 * configure: Regenerate.
4903 * include/ffi.h.in: Define S390X for s390x targets.
4904 (FFI_CLOSURES): Define for s390/s390x.
4905 (FFI_TRAMPOLINE_SIZE): Likewise.
4906 (FFI_NATIVE_RAW_API): Likewise.
4907 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4908 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
805e22b2 4909 * src/s390/ffi.c: Major rework of existing code. Add support for
e0aaecf3 4910 s390x targets. Add closure support.
4911 * src/s390/sysv.S: Likewise.
4912
c3e9c301 49132002-09-29 Richard Earnshaw <rearnsha@arm.com>
4914
4915 * src/arm/sysv.S: Fix typo.
4916
d13886be 49172002-09-28 Richard Earnshaw <rearnsha@arm.com>
4918
4919 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4920 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4921 (ffi_call_SYSV): Handle soft-float.
4922
aaff811e 49232002-09-27 Bo Thorsen <bo@suse.de>
4924
4925 * include/ffi.h.in: Fix multilib x86-64 support.
4926
5f7912d8 49272002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4928
4929 * Makefile.am (all-multi): Fix multilib parallel build.
4930
ccda5e55 49312002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4932
4933 * configure.in (sh[34]*-*-linux*): Add brackets.
4934 * configure: Regenerate.
4935
b1e5d71d 49362002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4937
4938 * Makefile.am: Add SH support.
4939 * Makefile.in: Regenerate.
4940 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4941 * configure: Regenerate.
4942 * include/ffi.h.in: Add SH support.
4943 * src/sh/ffi.c: New file.
4944 * src/sh/sysv.S: New file.
4945 * src/types.c: Add SH support.
4946
42c71854 49472002-07-16 Bo Thorsen <bo@suse.de>
4948
4949 * src/x86/ffi64.c: New file that adds x86-64 support.
4950 * src/x86/unix64.S: New file that handles argument setup for
4951 x86-64.
4952 * src/x86/sysv.S: Don't use this on x86-64.
4953 * src/x86/ffi.c: Don't use this on x86-64.
4954 Remove unused vars.
4955 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4956 for x86-64.
4957 * src/ffitest.c (struct6): New test that tests a special case in
4958 the x86-64 ABI.
4959 (struct7): Likewise.
4960 (struct8): Likewise.
4961 (struct9): Likewise.
4962 (closure_test_fn): Silence warning about this when it's not used.
4963 (main): Add the new tests.
4964 (main): Fix a couple of wrong casts and silence some compiler warnings.
4965 * include/ffi.h.in: Add x86-64 ABI definition.
4966 * fficonfig.h.in: Regenerate.
4967 * Makefile.am: Add x86-64 support.
4968 * configure.in: Likewise.
4969 * Makefile.in: Regenerate.
4970 * configure: Likewise.
4971
49722002-06-24 Bo Thorsen <bo@suse.de>
4973
4974 * src/types.c: Merge settings for similar architectures.
4975 Add x86-64 sizes and alignments.
4976
49772002-06-23 Bo Thorsen <bo@suse.de>
4978
4979 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4980 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4981 * src/mips/ffi.c (ffi_prep_args): Likewise.
4982 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4983
72726889 49842002-07-18 H.J. Lu (hjl@gnu.org)
4985
4986 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4987 (libffi_la_SOURCES): Support MIPS_LINUX.
4988 (libffi_convenience_la_SOURCES): Likewise.
4989 * Makefile.in: Regenerated.
4990
4991 * configure.in (mips64*-*): Skip.
4992 (mips*-*-linux*): New.
4993 * configure: Regenerated.
4994
4995 * src/mips/ffi.c: Include <sgidefs.h>.
4996
e17e640b 49972002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4998
4999 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
5000
b5d69d52 50012002-05-27 Roger Sayle <roger@eyesopen.com>
5002
5003 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5004
eadca1d5 50052002-05-27 Bo Thorsen <bo@suse.de>
5006
5007 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5008 fix formatting.
5009
2abdadc9 50102002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
5011
5012 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5013 beginning of function (for older apple cc).
5014
0b045cf7 50152002-05-08 Alexandre Oliva <aoliva@redhat.com>
5016
5017 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5018 script entry, and set LD to it when configuring multilibs.
5019 * configure: Rebuilt.
5020
7f0e056d 50212002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5022
5023 * configure.in (sparc64-*-netbsd*): Add target.
5024 (sparc-*-netbsdelf*): Likewise.
5025 * configure: Regenerate.
5026
b19313f4 50272002-04-28 David S. Miller <davem@redhat.com>
5028
5029 * configure.in, configure: Fix SPARC test in previous change.
5030
ea1f83c5 50312002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
5032
5033 * Makefile.am: Add Linux for S/390 support.
5034 * Makefile.in: Regenerate.
5035 * configure.in: Add Linux for S/390 support.
5036 * configure: Regenerate.
5037 * include/ffi.h.in: Add Linux for S/390 support.
5038 * src/s390/ffi.c: New file from libffi CVS tree.
5039 * src/s390/sysv.S: New file from libffi CVS tree.
5040
b40c762b 50412002-04-28 Jakub Jelinek <jakub@redhat.com>
5042
5043 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5044 %r_disp32().
5045 * src/sparc/v8.S: Use it.
5046 * src/sparc/v9.S: Likewise.
5047 * fficonfig.h.in: Rebuilt.
5048 * configure: Rebuilt.
5049
00f87a50 50502002-04-08 Hans Boehm <Hans_Boehm@hp.com>
5051
5052 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5053 correctly.
5054 * src/ia64/unix.S: Add unwind information. Fix comments.
5055 Save sp in a way that's compatible with unwind info.
5056 (ffi_call_unix): Correctly restore sp in all cases.
5057 * src/ia64/ffi.c: Add, fix comments.
5058
a622ae9d 50592002-04-08 Jakub Jelinek <jakub@redhat.com>
5060
5061 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
5062
c1d86bcd 50632002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
5064
5065 * configure.in (alpha*-*-netbsd*): Add target.
5066 * configure: Regenerate.
5067
3faa4340 50682002-04-04 Jeff Sturm <jsturm@one-point.com>
5069
5070 * src/sparc/v8.S: Add unwind info.
5071 * src/sparc/v9.S: Likewise.
5072
ec66e65b 50732002-03-30 Krister Walfridsson <cato@df.lth.se>
5074
5075 * configure.in: Enable i*86-*-netbsdelf*.
5076 * configure: Rebuilt.
805e22b2 5077
9ee9948b 50782002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
5079
5080 PR other/2620
5081 * src/mips/n32.s: Delete
5082 * src/mips/o32.s: Delete
5083
6c74b4f2 50842002-03-21 Loren J. Rittle <ljrittle@acm.org>
5085
5086 * configure.in: Enable alpha*-*-freebsd*.
5087 * configure: Rebuilt.
5088
9d0a2dd5 50892002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5090
5091 * Makefile.am: libfficonvenience -> libffi_convenience.
5092 * Makefile.in: Rebuilt.
805e22b2 5093
ee7750c2 5094 * Makefile.am: Define ffitest_OBJECTS.
5095 * Makefile.in: Rebuilt.
9d0a2dd5 5096
f6a16bd8 50972002-03-07 Andreas Tobler <toa@pop.agri.ch>
5098 David Edelsohn <edelsohn@gnu.org>
5099
5100 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5101 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5102 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5103 * Makefile.in: Regenerate.
5104 * include/ffi.h.in: Add AIX and Darwin closure definitions.
5105 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5106 (flush_icache, flush_range): New functions.
5107 (ffi_closure_helper_DARWIN): New function.
5108 * src/powerpc/aix_closure.S: New file.
5109 * src/powerpc/darwin_closure.S: New file.
805e22b2 5110
fed8d18d 51112002-02-24 Jeff Sturm <jsturm@one-point.com>
5112
5113 * include/ffi.h.in: Add typedef for ffi_arg.
5114 * src/ffitest.c (main): Declare rint with ffi_arg.
805e22b2 5115
ddac7e16 51162002-02-21 Andreas Tobler <toa@pop.agri.ch>
5117
5118 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5119 number of GPRs for floating-point arguments.
5120
ed35b400 51212002-01-31 Anthony Green <green@redhat.com>
5122
5123 * configure: Rebuilt.
5124 * configure.in: Replace CHECK_SIZEOF and endian tests with
5125 cross-compiler friendly macros.
5126 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5127 macros.
5128
bf270768 51292002-01-18 David Edelsohn <edelsohn@gnu.org>
5130
5131 * src/powerpc/darwin.S (_ffi_call_AIX): New.
dc155f85 5132 * src/powerpc/aix.S (ffi_call_DARWIN): New.
bf270768 5133
faae36ce 51342002-01-17 David Edelsohn <edelsohn@gnu.org>
5135
5136 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5137 (TARGET_SRC_POWERPC_AIX): New.
5138 (POWERPC_AIX): New stanza.
5139 * Makefile.in: Regenerate.
5140 * configure.in: Add AIX case.
5141 * configure: Regenerate.
5142 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5143 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5144 size. Fix "long double" support.
5145 (ffi_call): Add FFI_AIX case.
5146 * src/powerpc/aix.S: New.
5147
b81d6fe1 51482001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5149
5150 Implement Darwin PowerPC ABI.
5151 * configure.in: Handle powerpc-*-darwin*.
5152 * Makefile.am: Set source files for POWERPC_DARWIN.
5153 * configure: Rebuilt.
5154 * Makefile.in: Rebuilt.
5155 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5156 POWERPC_DARWIN.
5157 * src/powerpc/darwin.S: New file.
5158 * src/powerpc/ffi_darwin.c: New file.
5159
9bccb7a3 51602001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5161
5162 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5163
ac1f371e 51642001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5165
5166 * src/x86/sysv.S: Avoid gas-only .balign directive.
5167 Use C style comments.
5168
e1e36390 51692001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5170
5171 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5172 Fixes PR bootstrap/3563.
5173
deb29e7a 51742001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5175
5176 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5177
8008de24 51782001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5179
5180 * configure.in: Recognize sparc*-sun-* host.
5181 * configure: Regenerate.
805e22b2 5182
5fc46419 51832001-06-06 Andrew Haley <aph@redhat.com>
5184
968b0d1e 5185 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5fc46419 5186
49ff2ded 51872001-06-03 Andrew Haley <aph@redhat.com>
5188
968b0d1e 5189 * src/alpha/osf.S: Add unwind info.
5190 * src/powerpc/sysv.S: Add unwind info.
5191 * src/powerpc/ppc_closure.S: Likewise.
49ff2ded 5192
070883fe 51932000-05-31 Jeff Sturm <jsturm@one-point.com>
5194
5195 * configure.in: Fix AC_ARG_ENABLE usage.
5196 * configure: Rebuilt.
5197
09da9506 51982001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5199
5200 * configure.in: Remove warning about beta code.
5201 * configure: Rebuilt.
5202
52032001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5204
6c1b002f 5205 * src/ia64/unix.S: Restore stack pointer when returning from
5206 ffi_closure_UNIX.
5207 * src/ia64/ffi.c: Fix typo in comment.
5208
c4312026 52092001-04-18 Jim Wilson <wilson@redhat.com>
5210
5211 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5212 to eliminate RAW DV.
5213
db6ca0af 52142001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5215
5216 * Makefile.am: Make a libtool convenience library.
5217 * Makefile.in: Rebuilt.
5218
9461b350 52192001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5220
5221 * configure.in: Use different syntax for subdirectory creation.
5222 * configure: Rebuilt.
5223
a4cc90ca 52242001-03-27 Jon Beniston <jon@beniston.com>
5225
5226 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5227 * configure: Rebuilt.
5228 * Makefile.am: Added X86_WIN32 target support.
5229 * Makefile.in: Rebuilt.
5230
5231 * include/ffi.h.in: Added X86_WIN32 target support.
5232
5233 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5234 * src/types.c: Added X86_WIN32 target support.
5235
5236 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5237 stuff removed and made to work with CygWin's gas.
5238
21f4579d 52392001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5240
5241 * configure.in: Make target subdirectory in build dir.
5242 * Makefile.am: Override suffix based rules to specify correct output
5243 subdirectory.
5244 * Makefile.in: Rebuilt.
5245 * configure: Rebuilt.
5246
29183c57 52472001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
384eea1f 5248
5249 * src/powerpc/ppc_closure.S: New file.
5250 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5251 involving long long and register pairs.
5252 (ffi_prep_closure): New function.
5253 (flush_icache): Likewise.
5254 (ffi_closure_helper_SYSV): Likewise.
5255 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5256 (FFI_TRAMPOLINE_SIZE): Likewise.
5257 (FFI_NATIVE_RAW_API): Likewise.
5258 * Makefile.in: Rebuilt.
5259 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5260 (TARGET_SRC_POWERPC): Likewise.
5261
49604b5b 52622001-03-19 Tom Tromey <tromey@redhat.com>
5263
5264 * Makefile.in: Rebuilt.
5265 * Makefile.am (ffitest_LDFLAGS): New macro.
5266
c8fdcc07 52672001-03-02 Nick Clifton <nickc@redhat.com>
5268
5269 * include/ffi.h.in: Remove RCS ident string.
5270 * include/ffi_mips.h: Remove RCS ident string.
5271 * src/debug.c: Remove RCS ident string.
5272 * src/ffitest.c: Remove RCS ident string.
5273 * src/prep_cif.c: Remove RCS ident string.
5274 * src/types.c: Remove RCS ident string.
5275 * src/alpha/ffi.c: Remove RCS ident string.
5276 * src/alpha/osf.S: Remove RCS ident string.
5277 * src/arm/ffi.c: Remove RCS ident string.
5278 * src/arm/sysv.S: Remove RCS ident string.
5279 * src/mips/ffi.c: Remove RCS ident string.
5280 * src/mips/n32.S: Remove RCS ident string.
5281 * src/mips/o32.S: Remove RCS ident string.
5282 * src/sparc/ffi.c: Remove RCS ident string.
5283 * src/sparc/v8.S: Remove RCS ident string.
5284 * src/sparc/v9.S: Remove RCS ident string.
5285 * src/x86/ffi.c: Remove RCS ident string.
5286 * src/x86/sysv.S: Remove RCS ident string.
5287
8cb0f8ea 52882001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5289
5290 * include/ffi.h.in: Change sourceware.cygnus.com references to
5291 gcc.gnu.org.
5292
18f704a9 52932000-12-09 Richard Henderson <rth@redhat.com>
5294
5295 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5296 (ffi_closure_osf_inner): Index rather than increment avalue
5297 and arg_types. Give ffi_closure_osf the raw return value type.
5298 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5299 promotion.
5300
53012000-12-07 Richard Henderson <rth@redhat.com>
fdf04128 5302
5303 * src/raw_api.c (ffi_translate_args): Fix typo.
5304 (ffi_prep_closure): Likewise.
5305
5306 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5307 FFI_TRAMPOLINE_SIZE.
5308 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5309 cif->bytes for new ffi_call_osf implementation.
5310 (ffi_prep_args): Absorb into ...
5311 (ffi_call): ... here. Do all stack allocation here and
5312 avoid a callback function.
5313 (ffi_prep_closure, ffi_closure_osf_inner): New.
5314 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5315 (ffi_closure_osf): New.
5316
652f285b 53172000-09-10 Alexandre Oliva <aoliva@redhat.com>
5318
4bfa769b 5319 * config.guess, config.sub, install-sh: Removed.
5320 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5321 * Makefile.in: Rebuilt.
5322
652f285b 5323 * acinclude.m4: Include libtool macros from the top level.
5324 * aclocal.m4, configure: Rebuilt.
5325
6f52caf7 53262000-08-22 Alexandre Oliva <aoliva@redhat.com>
5327
5328 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5329 * configure: Rebuilt.
5330
d03e800c 53312000-05-11 Scott Bambrough <scottb@netwinder.org>
5332
805e22b2 5333 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5334 memory correctly. Use conditional instructions, not branches where
d03e800c 5335 possible.
5336
f3e32e0b 53372000-05-04 Tom Tromey <tromey@cygnus.com>
5338
5339 * configure: Rebuilt.
5340 * configure.in: Match `arm*-*-linux-*'.
5341 From Chris Dornan <cdornan@arm.com>.
5342
b23e0d76 53432000-04-28 Jakub Jelinek <jakub@redhat.com>
5344
5345 * Makefile.am (SUBDIRS): Define.
5346 (AM_MAKEFLAGS): Likewise.
5347 (Multilib support.): Add section.
5348 * Makefile.in: Rebuilt.
5349 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
968b0d1e 5350 New variables. Set for gcc using -print-multi-lib. Export them
5351 to libtool.
5352 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5353 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5354 for -shared links.
5355 (extra_compiler_flags_value, extra_compiler_flags): Check these
5356 for extra compiler options which need to be passed down in
5357 compiler_flags.
b23e0d76 5358
2c9b297c 53592000-04-16 Anthony Green <green@redhat.com>
5360
5361 * configure: Rebuilt.
5362 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5363
d7a35c6c 53642000-04-14 Jakub Jelinek <jakub@redhat.com>
5365
968b0d1e 5366 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
d7a35c6c 5367 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5368 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5369 Replace all void * sizeofs with sizeof(int).
5370 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5371 different than DOUBLE.
5372 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5373 (ffi_prep_args_v9): New function.
5374 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5375 (ffi_V9_return_struct): New function.
5376 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5377 32bit code (not yet cross-arch calls).
5378 * src/sparc/v8.S: Add struct return delay nop.
5379 Handle long long.
5380 * src/sparc/v9.S: New file.
5381 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5382 is used on sparc64 only for structures larger than 32 bytes.
5383 Pass by reference for structures is done for structure arguments
5384 larger than 16 bytes.
5385 * src/ffitest.c (main): Use 64bit rint on sparc64.
5386 Run long long tests on sparc.
5387 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5388 sparc64.
5389 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5390 on sparc64.
5391 * configure.in (sparc-*-linux*): New supported target.
5392 (sparc64-*-linux*): Likewise.
5393 * configure: Rebuilt.
5394 * Makefile.am: Add v9.S to SPARC files.
5395 * Makefile.in: Likewise.
5396 (LINK): Surround $(CCLD) into double quotes, so that multilib
5397 compiles work correctly.
5398
800d12c7 53992000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5400
5401 * configure: Rebuilt.
5402 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5403 proposed by Bryce McKinlay.
5404
c44e8808 54052000-03-20 Tom Tromey <tromey@cygnus.com>
5406
5407 * Makefile.in: Hand edit for java_raw_api.lo.
5408
f764cb60 54092000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5410
5411 * config.guess, config.sub: Update from the gcc tree.
5412 Fix for PR libgcj/168.
5413
3b43a26e 54142000-03-03 Tom Tromey <tromey@cygnus.com>
5415
96215ab3 5416 * Makefile.in: Fixed ia64 by hand.
5417
3b43a26e 5418 * configure: Rebuilt.
5419 * configure.in (--enable-multilib): New option.
5420 (libffi_basedir): New subst.
5421 (AC_OUTPUT): Added multilib code.
5422
03ae52bb 54232000-03-02 Tom Tromey <tromey@cygnus.com>
5424
5425 * Makefile.in: Rebuilt.
5426 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5427 directory name.
5428
28c07da5 54292000-02-25 Hans Boehm <boehm@acm.org>
5430
5431 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5432 files.
5433 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5434 list.
5435 (ffi_prep_raw_closure): Use ffi_translate_args, not
5436 ffi_closure_translate.
5437 * src/java_raw_api.c: New file.
5438 * src/ffitest.c (closure_test_fn): New function.
5439 (main): Define `rint' as long long on IA64. Added new test when
5440 FFI_CLOSURES is defined.
5441 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5442 (ffi_abi): Recognize IA64.
5443 (ffi_raw): Added `flt' field.
5444 Added "Java raw API" code.
5445 * configure.in: Recognize ia64.
5446 * Makefile.am (TARGET_SRC_IA64): New macro.
5447 (libffi_la_common_SOURCES): Added java_raw_api.c.
5448 (libffi_la_SOURCES): Define in IA64 case.
5449
0bcdf5c5 54502000-01-04 Tom Tromey <tromey@cygnus.com>
5451
5452 * Makefile.in: Rebuilt with newer automake.
5453
e9de8c8b 54541999-12-31 Tom Tromey <tromey@cygnus.com>
5455
5456 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5457
20e58c02 54581999-09-01 Tom Tromey <tromey@cygnus.com>
5459
5460 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5461 undefs.
5462 * fficonfig.h.in: Rebuilt.
5463 * configure: Rebuilt.
5464 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5465 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5466 * acconfig.h: Don't #undef PACKAGE or VERSION.
5467
47c5fab6 54681999-08-09 Anthony Green <green@cygnus.com>
5469
5470 * include/ffi.h.in: Try to work around messy header problem
5471 with PACKAGE and VERSION.
5472
5473 * configure: Rebuilt.
5474 * configure.in: Change version to 2.00-beta.
5475
968b0d1e 5476 * fficonfig.h.in: Rebuilt.
47c5fab6 5477 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5478
5479 * src/x86/ffi.c (ffi_raw_call): Rename.
5480
54811999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5482
5483 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5484 (ffi_prep_incoming_args_SYSV): Ditto.
5485 (ffi_prep_closure): Ditto.
5486 (ffi_closure_raw_SYSV): Ditto.
5487 (ffi_prep_raw_closure): More ditto.
5488 (ffi_call_raw): Final ditto.
5489
5490 * include/ffi.h.in: Add definitions for closure and raw API.
5491
5492 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
805e22b2 5493 FFI_TYPE_UINT64.
47c5fab6 5494
5495 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5496
5497 * src/raw_api.c: New file.
5498
5499 * include/ffi.h.in (ffi_raw): New type.
5500 (UINT_ARG, SINT_ARG): New defines.
5501 (ffi_closure, ffi_raw_closure): New types.
5502 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
805e22b2 5503
47c5fab6 5504 * configure.in: Add check for endianness and sizeof void*.
5505
5506 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5507 instead of directly.
5508
5509 * configure: Rebuilt.
5510
5511Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5512
5513 * configure.in: Add x86 and powerpc BeOS configurations.
5514 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5515
55161999-05-09 Anthony Green <green@cygnus.com>
5517
5518 * configure.in: Add warning about this being beta code.
5519 Remove src/Makefile.am from the picture.
5520 * configure: Rebuilt.
5521
5522 * Makefile.am: Move logic from src/Makefile.am. Add changes
5523 to support libffi as a target library.
5524 * Makefile.in: Rebuilt.
5525
5526 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5527 Upgraded to new autoconf, automake, libtool.
5528
5529 * README: Tweaks.
5530
5531 * LICENSE: Update copyright date.
5532
5533 * src/Makefile.am, src/Makefile.in: Removed.
5534
55351998-11-29 Anthony Green <green@cygnus.com>
5536
5537 * include/ChangeLog: Removed.
5538 * src/ChangeLog: Removed.
5539 * src/mips/ChangeLog: Removed.
5540 * src/sparc/ChangeLog: Remboved.
5541 * src/x86/ChangeLog: Removed.
5542
5543 * ChangeLog.v1: Created.