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