• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12014-03-16  Josh Triplett  <josh@joshtriplett.org>
2
3	* ChangeLog: Archive to ChangeLog.libffi-3.1 and delete.  Future
4	changelogs will come from git, with autogenerated snapshots shipped in
5	distributed tarballs.
6
72014-03-16  Josh Triplett  <josh@joshtriplett.org>
8
9	Add support for stdcall, thiscall, and fastcall on non-Windows
10	x86-32.
11
12	Linux supports the stdcall calling convention, either via
13	functions explicitly declared with the stdcall attribute, or via
14	code compiled with -mrtd which effectively makes stdcall the
15	default.
16
17	This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on
18	non-Windows x86-32 platforms, as non-default calling conventions.
19
20	* Makefile.am: Compile in src/x86/win32.S on non-Windows x86-32.
21	* src/x86/ffitarget.h: Add FFI_STDCALL, FFI_THISCALL, and
22	FFI_FASTCALL on non-Windows x86-32.  Increase trampoline size to
23	accomodate these calling conventions, and unify some ifdeffery.
24	* src/x86/ffi.c: Add support for FFI_STDCALL, FFI_THISCALL, and
25	FFI_FASTCALL on non-Windows x86-32 platforms; update ifdeffery.
26	* src/x86/win32.S: Support compiling on non-Windows x86-32
27	platforms.  On those platforms, avoid redefining the SYSV symbols
28	already provided by src/x86/sysv.S.
29	* testsuite/libffi.call/closure_stdcall.c: Run on non-Windows.
30	#define __stdcall if needed.
31	* testsuite/libffi.call/closure_thiscall.c: Run on non-Windows.
32	#define __fastcall if needed.
33	* testsuite/libffi.call/fastthis1_win32.c: Run on non-Windows.
34	* testsuite/libffi.call/fastthis2_win32.c: Ditto.
35	* testsuite/libffi.call/fastthis3_win32.c: Ditto.
36	* testsuite/libffi.call/many2_win32.c: Ditto.
37	* testsuite/libffi.call/many_win32.c: Ditto.
38	* testsuite/libffi.call/strlen2_win32.c: Ditto.
39	* testsuite/libffi.call/strlen_win32.c: Ditto.
40	* testsuite/libffi.call/struct1_win32.c: Ditto.
41	* testsuite/libffi.call/struct2_win32.c: Ditto.
42
432014-03-16  Josh Triplett  <josh@joshtriplett.org>
44
45	* prep_cif.c: Remove unnecessary ifdef for X86_WIN32.
46	ffi_prep_cif_core had a special case for X86_WIN32, checking for
47	FFI_THISCALL in addition to the FFI_FIRST_ABI-to-FFI_LAST_ABI
48	range before returning FFI_BAD_ABI.  However, on X86_WIN32,
49	FFI_THISCALL already falls in that range, making the special case
50	unnecessary.  Remove it.
51
522014-03-16  Josh Triplett  <josh@joshtriplett.org>
53
54	* testsuite/libffi.call/closure_stdcall.c,
55	testsuite/libffi.call/closure_thiscall.c: Remove fragile stack
56	pointer checks.  These files included inline assembly to save the
57	stack pointer before and after the call, and compare the values.
58	However, compilers can and do leave the stack in different states
59	for these two pieces of inline assembly, such as by saving a
60	temporary value on the stack across the call; observed with gcc
61	-Os, and verified as spurious through careful inspection of
62	disassembly.
63
642014-03-16  Josh Triplett  <josh@joshtriplett.org>
65
66	* testsuite/libffi.call/many.c: Avoid spurious failure due to
67	excess floating-point precision.
68	* testsuite/libffi.call/many_win32.c: Ditto.
69
702014-03-16  Josh Triplett <josh@joshtriplett.org>
71
72	* libtool-ldflags: Re-add.
73
742014-03-16  Josh Triplett <josh@joshtriplett.org>
75
76	* Makefile.in, aclocal.m4, compile, config.guess, config.sub,
77	configure, depcomp, include/Makefile.in, install-sh,
78	libtool-ldflags, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
79	m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4,
80	man/Makefile.in, mdate-sh, missing, testsuite/Makefile.in: Delete
81	autogenerated files from version control.
82	* .gitignore: Add autogenerated files.
83	* autogen.sh: New script to generate the autogenerated files.
84	* README: Document requirement to run autogen.sh when building
85	directly from version control.
86	* .travis.yml: Run autogen.sh
87
882014-03-14  Anthony Green <green@moxielogic.com>
89
90	* configure, Makefile.in: Rebuilt.
91
922014-03-10  Mike Hommey <mh+mozilla@glandium.org>
93
94	* configure.ac: Allow building for mipsel with Android NDK r8.
95	* Makefile.am (AM_MAKEFLAGS): Replace double quotes with single
96	quotes.
97
982014-03-10  Landry Breuil <landry@openbsd.org>
99
100	* configure.ac: Ensure the linker supports @unwind sections in libffi.
101
1022014-03-01  Anthony Green  <green@moxielogic.com>
103
104	* Makefile.am (EXTRA_DIST): Replace old scripts with
105	generate-darwin-source-and-headers.py.
106	* Makefile.in: Rebuilt.
107
1082014-02-28  Anthony Green  <green@moxielogic.com>
109
110	* Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for
111	--enable-debug builds.
112	* Makefile.in: Rebuilt.
113
1142014-02-28  Makoto Kato  <m_kato@ga2.so-net.ne.jp>
115
116	* src/closures.c: Fix build failure when using clang for Android.
117
1182014-02-28  Marcin Wojdyr  <wojdyr@gmail.com>
119
120	* libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead
121	of -L${libdir}.
122
1232014-02-28  Paulo Pizarro  <paulo.pizarro@gmail.com>
124
125	* src/bfin/sysv.S: Calling functions in shared libraries requires
126	considering the GOT.
127
1282014-02-28  Josh Triplett  <josh@joshtriplett.org>
129
130	* src/x86/ffi64.c (classify_argument): Handle case where
131	FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE.
132
1332014-02-28  Anthony Green  <green@moxielogic.com>
134
135	* ltmain.sh: Generate with libtool-2.4.2.418.
136	* m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto.
137	* configure: Rebuilt.
138
1392014-02-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
140
141	* configure.ac (AC_ARG_ENABLE struct): Fix typo in help
142	message.
143	(AC_ARG_ENABLE raw_api): Ditto.
144	* configure, fficonfig.h.in: Rebuilt.
145
1462014-02-28  Will Newton  <will.newton@linaro.org>
147
148	* src/arm/sysv.S: Initialize IP register with FP.
149
1502014-02-28  Yufeng Zhang  <yufeng.zhang@arm.com>
151
152	* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
153	main CFA reg; update cfi_rel_offset.
154
1552014-02-15  Marcus Comstedt  <marcus@mc.pp.se>
156
157	* src/powerpc/ffi_linux64.c, src/powerpc/linux64_closure.S: Remove
158	assumption on contents of r11 in closure.
159
1602014-02-09  Heiher  <r@hev.cc>
161
162	* src/mips/n32.S: Fix call floating point va function.
163
1642014-01-21  Zachary Waldowski  <zach@waldowski.me>
165
166	* src/aarch64/ffi.c: Fix missing semicolons on assertions under
167	debug mode.
168
1692013-12-30  Zachary Waldowski  <zach@waldowski.me>
170
171	* .gitignore: Exclude darwin_* generated source and build_* trees.
172	* src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang
173	previous prototype warnings.
174	* src/arm/ffi.c: Prevent NULL dereference, fix short type warning
175	* src/dlmalloc.c: Fix warnings from set_segment_flags return type,
176	and the native use of size_t for malloc on platforms
177	* src/arm/sysv.S: Use unified syntax. Clang clean-ups for
178	ARM_FUNC_START.
179	* generate-osx-source-and-headers.py: Remove.
180	* build-ios.sh: Remove.
181	* libffi.xcodeproj/project.pbxproj: Rebuild targets. Include
182	x86_64+aarch64 pieces in library.  Export headers properly.
183	* src/x86/ffi64.c: More Clang warning clean-ups.
184	* src/closures.c (open_temp_exec_file_dir): Use size_t.
185	* src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result.
186	* src/aarch64/sysv.S: Use CNAME for global symbols.  Only use
187	.size for ELF targets.
188	* src/aarch64/ffi.c: Clean up for double == long double.  Clean up
189	from Clang warnings.  Use Clang cache invalidation builtin.  Use
190	size_t in place of unsigned in many places.  Accommodate for
191	differences in Apple AArch64 ABI.
192
1932013-12-02  Daniel Rodríguez Troitiño  <drodrigueztroitino@yahoo.es>
194
195	* generate-darwin-source-and-headers.py: Clean up, modernize,
196	merged version of previous scripts.
197
1982013-11-21  Anthony Green  <green@moxielogic.com>
199
200	* configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
201	man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt.
202
2032013-11-21  Alan Modra  <amodra@gmail.com>
204
205	* Makefile.am (EXTRA_DIST): Add new src/powerpc files.
206	(nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
207	* configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
208	* include/ffi.h.in (ffi_prep_types): Declare.
209	* src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
210	* src/types.c (FFI_NONCONST_TYPEDEF): Define and use for
211	HAVE_LONG_DOUBLE_VARIANT.
212	* src/powerpc/ffi_powerpc.h: New file.
213	* src/powerpc/ffi.c: Split into..
214	* src/powerpc/ffi_sysv.c: ..new file, and..
215	* src/powerpc/ffi_linux64.c: ..new file, rewriting parts.
216	* src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI
217	selection as bits controlling features.
218	* src/powerpc/linux64.S: For consistency, use POWERPC64 rather
219	than __powerpc64__.
220	* src/powerpc/linux64_closure.S: Likewise.
221	* src/powerpc/ppc_closure.S: Likewise.  Move .note.FNU-stack
222	inside guard.
223	* src/powerpc/sysv.S: Likewise.
224	* configure: Regenerate.
225	* fficonfig.h.in: Regenerate.
226	* Makefile.in: Regenerate.
227
2282013-11-20  Alan Modra  <amodra@gmail.com>
229
230	* src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use
231	NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their
232	32-bit versions for 64-bit code.
233	* src/powerpc/linux64_closure.S: Don't use the return value area
234	as a parameter save area on ELFv2.
235
2362013-11-18  Iain Sandoe  <iain@codesourcery.com>
237
238	* src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding.
239	* src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase
240	labels.
241
2422013-11-18  Anthony Green  <green@moxielogic.com>
243
244	* src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of
245	function.
246	* src/arm/ffi.c (ffi_closure_inner): Moderize function declaration
247	to appease compiler.
248	Thanks for Gregory P. Smith <greg@krypto.org>.
249
2502013-11-18  Anthony Green  <green@moxielogic.com>
251
252	* README (tested): Mention PowerPC ELFv2.
253
2542013-11-16  Alan Modra  <amodra@gmail.com>
255
256	* src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
257	Don't bl .Luint128.
258
2592013-11-16  Alan Modra  <amodra@gmail.com>
260
261	* src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
262	test to select parameter save sizing for ELFv2 vs. ELFv1.
263	* src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
264	FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define.
265	(FFI_TRAMPOLINE_SIZE): Define variant for ELFv2.
266	* src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define.
267	(discover_homogeneous_aggregate): New function.
268	(ffi_prep_args64): Adjust start of param save area for ELFv2.
269	Handle homogenous floating point struct parms.
270	(ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2.
271	Handle ELFv2 return values.  Set FLAG_ARG_NEEDS_PSAVE.  Handle
272	homogenous floating point structs.
273	(ffi_call): Increase size of smst_buffer for ELFv2.  Handle ELFv2.
274	(flush_icache): Compile for ELFv2.
275	(ffi_prep_closure_loc): Set up ELFv2 trampoline.
276	(ffi_closure_helper_LINUX64): Don't return all structs directly
277	to caller.  Handle homogenous floating point structs.  Handle
278	ELFv2 struct return values.
279	* src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for
280	ELFv2.  Adjust toc save location.  Call function pointer using
281	r12.  Handle FLAG_RETURNS_SMST.  Don't predict branches.
282	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2
283	for ELFv2.  Define ELFv2 versions of STACKFRAME, PARMSAVE, and
284	RETVAL.  Handle possibly missing parameter save area.  Handle
285	ELFv2 return values.
286	(.note.GNU-stack): Move inside outer #ifdef.
287
2882013-11-16  Alan Modra  <amodra@gmail.com>
289
290	* src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08
291	change.  Do not consume an int arg when returning a small struct
292	for FFI_SYSV ABI.
293	(ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST.
294	Properly copy bounce buffer to destination.
295	* src/powerpc/sysv.S: Revert 2013-02-08 change.
296	* src/powerpc/ppc_closure.S: Remove stray '+'.
297
2982013-11-16  Alan Modra  <amodra@gmail.com>
299
300	* src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters
301	according to __STRUCT_PARM_ALIGN__.
302	(ffi_prep_cif_machdep_core): Likewise.
303	(ffi_closure_helper_LINUX64): Likewise.
304
3052013-11-16  Alan Modra  <amodra@gmail.com>
306
307	* src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28.
308	(.note.GNU-stack): Move inside outer #ifdef.
309	* src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE,
310	RETVAL): Define and use throughout.
311	(ffi_closure_LINUX64): Save fprs before buying stack.
312	(.note.GNU-stack): Move inside outer #ifdef.
313
3142013-11-16  Alan Modra  <amodra@gmail.com>
315
316	* src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
317	(FFI_EXTRA_CIF_FIELDS): Define.
318	* src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
319	ABI, not to both fpr and param save area.
320	(ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
321	Keep initial flags.  Formatting.  Remove dead FFI_LINUX_SOFT_FLOAT
322	code.
323	(ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
324	(ffi_closure_helper_LINUX64): Pass floating point as per ABI,
325	not to both fpr and parameter save areas.
326
327	* libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
328	function cast and don't call ffi_prep_cif.
329	* libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
330
3312013-11-15  Andrew Haley  <aph@redhat.com>
332
333	* doc/libffi.texi (Closure Example): Fix the sample code.
334	* doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
335
3362013-11-15  Andrew Haley  <aph@redhat.com>
337
338	* testsuite/libffi.call/va_struct1.c (main): Fix broken test.
339	* testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
340	* testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
341	* testsuite/libffi.call/va_1.c (main): Likewise.
342
3432013-11-14  David Schneider  <david.schneider@bivab.de>
344
345	* src/arm/ffi.c: Fix register allocation for mixed float and
346	doubles.
347	* testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
348	for many mixed float and double arguments.
349
3502013-11-13  Alan Modra  <amodra@gmail.com>
351
352	* doc/libffi.texi (Simple Example): Correct example code.
353	* doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
354
3552013-11-13  Anthony Green  <green@moxielogic.com>
356
357	* include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
358	based build. (Thanks to tmr111116 on github)
359
3602013-11-09  Anthony Green  <green@moxielogic.com>
361
362	* m4/libtool.m4: Refresh.
363	* configure, Makefile.in: Rebuilt.
364	* README: Add more notes about next release.
365
3662013-11-09  Shigeharu TAKENO  <shige@iee.niit.ac.jp>
367
368	* m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
369	UltraSPARC-IIi as ultrasparc3.
370
3712013-11-06  Mark Kettenis  <kettenis@gnu.org>
372
373	* src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
374        16-bytes.
375
3762013-11-06  Konstantin Belousov <kib@freebsd.org>
377
378	* src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
379	source as not requiring executable stack.
380
3812013-11-02  Anthony Green  <green@moxielogic.com>
382
383	* doc/libffi.texi (The Basics): Clarify return value buffer size
384	requirements.  Also, NULL result buffer pointers are no longer
385	supported.
386	* doc/libffi.info: Rebuilt.
387
3882013-11-02  Mischa Jonker  <mjonker@synopsys.com>
389
390	* Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
391	* Makefile.in: Rebuilt.
392
3932013-11-02  David Schneider  <david.schneider@bivab.de>
394
395	* src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
396	* testsuite/libffi.call/many_mixed.c: New file.
397	* testsuite/libffi.call/cls_many_mixed_args.c: More tests.
398
3992013-11-02  Vitaly Budovski
400
401	* src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
402
4032013-10-23  Mark H Weaver  <mhw@netris.org>
404
405	* src/mips/ffi.c: Fix handling of uint32_t arguments on the
406	MIPS N32 ABI.
407
4082013-10-13  Sandra Loosemore  <sandra@codesourcery.com>
409
410	* README: Add Nios II to table of supported platforms.
411	* Makefile.am (EXTRA_DIST): Add nios2 files.
412	(nodist_libffi_la_SOURCES): Likewise.
413	* Makefile.in: Regenerated.
414	* configure.ac (nios2*-linux*): New host.
415	(NIOS2): Add AM_CONDITIONAL.
416	* configure: Regenerated.
417	* src/nios2/ffi.c: New.
418	* src/nios2/ffitarget.h: New.
419	* src/nios2/sysv.S: New.
420	* src/prep_cif.c (initialize_aggregate): Handle extra structure
421	alignment via FFI_AGGREGATE_ALIGNMENT.
422	(ffi_prep_cif_core): Conditionalize structure return for NIOS2.
423
4242013-10-10  Sandra Loosemore  <sandra@codesourcery.com>
425
426	* testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
427	Fix uninitialized variable.
428
4292013-10-11  Marcus Shawcroft  <marcus.shawcroft@arm.com>
430
431	* testsuite/libffi.call/many.c (many): Replace * with +.
432
4332013-10-08  Ondřej Bílka  <neleai@seznam.cz>
434
435	* src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
436	src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
437	src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
438	src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
439	src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
440	src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
441	spelling errors.
442
4432013-10-08  Anthony Green  <green@moxielogic.com>
444
445	* aclocal.m4, compile, config.guess, config.sub, depcomp,
446	install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
447	* configure.ac: Update version to 3.0.14-rc0.
448	* Makefile.in, configure, Makefile.in, include/Makefile.in,
449	man/Makefile.in, testsuite/Makefile.in: Rebuilt.
450	* README: Mention M88K and VAX.
451
4522013-07-15  Miod Vallat  <miod@openbsd.org>
453
454	* Makefile.am,
455	configure.ac,
456	src/m88k/ffi.c,
457	src/m88k/ffitarget.h,
458	src/m88k/obsd.S,
459	src/vax/elfbsd.S,
460	src/vax/ffi.c,
461	src/vax/ffitarget.h: Add m88k and vax support.
462
4632013-06-24 Alan Modra  <amodra@gmail.com>
464
465	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
466	before statements.
467	(ffi_prep_args64): Support little-endian.
468	(ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
469	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
470	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
471
4722013-06-12  Mischa Jonker  <mjonker@synopsys.com>
473
474	 * configure.ac: Add support for ARC.
475	 * Makefile.am: Likewise.
476	 * README: Add ARC details.
477	 * src/arc/arcompact.S: New.
478	 * src/arc/ffi.c: Likewise.
479	 * src/arc/ffitarget.h: Likewise.
480
4812013-03-28  David Schneider  <david.schneider@bivab.de>
482
483	 * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
484	 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
485	 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
486	 mixed arguments, many doubles.
487	 * testsuite/libffi.call/many_double.c: testcase for calling a function using
488	 more than 8 doubles.
489	 * testcase/libffi.call/many.c: use absolute value to check result against an
490	 epsilon
491
4922013-03-17  Anthony Green  <green@moxielogic.com>
493
494	* README: Update for 3.0.13.
495	* configure.ac: Ditto.
496	* configure: Rebuilt.
497	* doc/*: Update version.
498
4992013-03-17  Dave Korn  <dave.korn.cygwin@gmail.com>
500
501	* src/closures.c (is_emutramp_enabled
502	[!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
503	enclosing #if scope.
504
5052013-03-17  Anthony Green  <green@moxielogic.com>
506
507	* configure.ac: Only modify toolexecdir in certain cases.
508	* configure: Rebuilt.
509
5102013-03-16  Gilles Talis  <gilles.talis@gmail.com>
511
512	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
513	fparg_count,etc on __NO_FPRS__ targets.
514
5152013-03-16  Alan Hourihane  <alanh@fairlite.co.uk>
516
517	* src/m68k/sysv.S (epilogue): Don't use extb instruction on
518	m680000 machines.
519
5202013-03-16  Alex Gaynor <alex.gaynor@gmail.com>
521
522	* src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
523
5242013-03-13  Markos Chandras <markos.chandras@imgtec.com>
525
526	* configure.ac: Add support for Imagination Technologies Meta.
527	* Makefile.am: Likewise.
528	* README: Add Imagination Technologies Meta details.
529	* src/metag/ffi.c: New.
530	* src/metag/ffitarget.h: Likewise.
531	* src/metag/sysv.S: Likewise.
532
5332013-02-24  Andreas Schwab  <schwab@linux-m68k.org>
534
535	* doc/libffi.texi (Structures): Fix missing category argument of
536	@deftp.
537
5382013-02-11  Anthony Green <green@moxielogic.com>
539
540	* configure.ac: Update release number to 3.0.12.
541	* configure: Rebuilt.
542	* README: Update release info.
543
5442013-02-10  Anthony Green <green@moxielogic.com>
545
546	* README: Add Moxie.
547	* src/moxie/ffi.c: Created.
548	* src/moxie/eabi.S: Created.
549	* src/moxie/ffitarget.h: Created.
550	* Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
551	* Makefile.in: Rebuilt.
552	* configure.ac: Add Moxie.
553	* configure: Rebuilt.
554	* testsuite/libffi.call/huge_struct.c: Disable format string
555	warnings for moxie*-*-elf tests.
556
5572013-02-10  Anthony Green <green@moxielogic.com>
558
559	* Makefile.am (LTLDFLAGS): Fix reference.
560	* Makefile.in: Rebuilt.
561
5622013-02-10  Anthony Green <green@moxielogic.com>
563
564	* README: Update supported platforms.  Update test results link.
565
5662013-02-09  Anthony Green <green@moxielogic.com>
567
568	* testsuite/libffi.call/negint.c: Remove forced -O2.
569	* testsuite/libffi.call/many2.c (foo): Remove GCCism.
570	* testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
571
572	* src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
573	closure return type fix developed by Martin v. Löwis for cpython
574	fork.
575
5762013-02-08  Andreas Tobler  <andreast@fgznet.ch>
577
578	* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
579	support.
580	* src/powerpc/sysv.S: Ditto.
581
5822013-02-08  Anthony Green <green@moxielogic.com>
583
584	* testsuite/libffi.call/cls_longdouble.c: Remove xfail for
585	arm*-*-*.
586
5872013-02-08  Anthony Green <green@moxielogic.com>
588
589	* src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
590
5912013-02-08  Matthias Klose  <doko@ubuntu.com>
592
593	* man/ffi_prep_cif.3: Clean up for debian linter.
594
5952013-02-08  Peter Bergner  <bergner@vnet.ibm.com>
596
597	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
598	on the stack.
599
6002013-02-08  Anthony Green <green@moxielogic.com>
601
602	* Makefile.am (EXTRA_DIST): Add missing files.
603	* testsuite/Makefile.am (EXTRA_DIST): Ditto.
604	* Makefile.in: Rebuilt.
605
6062013-02-08  Anthony Green <green@moxielogic.com>
607
608	* configure.ac: Move sparc asm config checks to within functions
609	for compatibility with sun tools.
610	* configure: Rebuilt.
611	* src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
612	systems.
613	* src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
614	flusher.
615
6162013-02-08  Nathan Rossi <nathan.rossi@xilinx.com>
617
618	* src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
619	small big-endian structures.
620	(ffi_prep_args): Ditto.
621
6222013-02-07  Anthony Green <green@moxielogic.com>
623
624	* src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
625	(effectively hiding ffi_call_v8).
626
6272013-02-07  Anthony Green <green@moxielogic.com>
628
629	* configure.ac: Update bug reporting address.
630	* configure.in: Rebuild.
631
632	* src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
633	Sun compiler.
634	* src/sparc/ffi.c (ffi_call): Remove warning.
635	Call ffi_flush_icache for non-GCC builds.
636	(ffi_prep_closure_loc): Use ffi_flush_icache.
637
638	* Makefile.am (EXTRA_DIST): Add libtool-ldflags.
639	* Makefile.in: Rebuilt.
640	* libtool-ldflags: New file.
641
6422013-02-07  Daniel Schepler <dschepler@gmail.com>
643
644	* configure.ac: Correctly identify x32 systems as 64-bit.
645	* m4/libtool.m4: Remove libtool expr error.
646	* aclocal.m4, configure: Rebuilt.
647
6482013-02-07  Anthony Green <green@moxielogic.com>
649
650	* configure.ac: Fix GCC usage test.
651	* configure: Rebuilt.
652	* README: Mention LLVM/GCC x86_64 issue.
653	* testsuite/Makefile.in: Rebuilt.
654
6552013-02-07  Anthony Green <green@moxielogic.com>
656
657	* testsuite/libffi.call/cls_double_va.c (main): Replace // style
658	comments with /* */ for xlc compiler.
659	* testsuite/libffi.call/stret_large.c (main): Ditto.
660	* testsuite/libffi.call/stret_large2.c (main): Ditto.
661	* testsuite/libffi.call/nested_struct1.c (main): Ditto.
662	* testsuite/libffi.call/huge_struct.c (main): Ditto.
663	* testsuite/libffi.call/float_va.c (main): Ditto.
664	* testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
665	* testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
666	* testsuite/libffi.call/cls_pointer.c (main): Ditto.
667	* testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
668
6692013-02-06  Anthony Green <green@moxielogic.com>
670
671	* man/ffi_prep_cif.3: Clean up for debian lintian checker.
672
6732013-02-06  Anthony Green <green@moxielogic.com>
674
675	* Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
676	* Makefile.in: Rebuild.
677
6782013-02-02  Mark H Weaver <mhw@netris.org>
679
680	* src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
681	via general purpose registers.
682
6832013-01-21  Nathan Rossi <nathan.rossi@xilinx.com>
684
685	* README: Add MicroBlaze details.
686	* Makefile.am: Add MicroBlaze support.
687	* configure.ac: Likewise.
688	* src/microblaze/ffi.c: New.
689	* src/microblaze/ffitarget.h: Likewise.
690	* src/microblaze/sysv.S: Likewise.
691
6922013-01-21  Nathan Rossi <nathan.rossi@xilinx.com>
693	* testsuite/libffi.call/return_uc.c: Fixed issue.
694
6952013-01-21  Chris Zankel   <chris@zankel.net>
696
697	* README: Add Xtensa support.
698	* Makefile.am: Likewise.
699	* configure.ac: Likewise.
700	* Makefile.in Regenerate.
701	* configure: Likewise.
702	* src/prep_cif.c: Handle Xtensa.
703	* src/xtensa: New directory.
704	* src/xtensa/ffi.c: New file.
705	* src/xtensa/ffitarget.h: Ditto.
706	* src/xtensa/sysv.S: Ditto.
707
7082013-01-11  Anthony Green  <green@moxielogic.com>
709
710	* src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
711	comments with /* */ for xlc compiler.
712	* src/powerpc/aix.S (ffi_call_AIX): Ditto.
713	* testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
714	deprecated inline function.
715	* testsuite/libffi.special/ffitestcxx.h: Ditto.
716	* README: Add update for AIX support.
717
7182013-01-11  Anthony Green  <green@moxielogic.com>
719
720	* configure.ac: Robustify pc relative reloc check.
721	* m4/ax_cc_maxopt.m4: Don't -malign-double.  This is an ABI
722	changing option for 32-bit x86.
723	* aclocal.m4, configure: Rebuilt.
724	* README: Update supported target list.
725
7262013-01-10  Anthony Green  <green@moxielogic.com>
727
728	* README (tested): Add Compiler column to table.
729
7302013-01-10  Anthony Green  <green@moxielogic.com>
731
732	* src/x86/ffi64.c (struct register_args): Make sse array and array
733	of unions for sunpro compiler compatibility.
734
7352013-01-10  Anthony Green  <green@moxielogic.com>
736
737	* configure.ac: Test target platform size_t size.  Handle both 32
738	and 64-bit builds for x86_64-* and i?86-* targets (allowing for
739	CFLAG option to change default settings).
740	* configure, aclocal.m4: Rebuilt.
741
7422013-01-10  Anthony Green  <green@moxielogic.com>
743
744	* testsuite/libffi.special/special.exp: Only run exception
745	handling tests when using GNU compiler.
746
747	* m4/ax_compiler_vendor.m4: New file.
748	* configure.ac: Test for compiler vendor and don't use
749	AX_CFLAGS_WARN_ALL with the sun compiler.
750	* aclocal.m4, configure: Rebuilt.
751
7522013-01-10  Anthony Green  <green@moxielogic.com>
753
754	* include/ffi_common.h: Don't use GCCisms to define types when
755	building with the SUNPRO compiler.
756
7572013-01-10  Anthony Green  <green@moxielogic.com>
758
759	* configure.ac: Put local.exp in the right place.
760	* configure: Rebuilt.
761
762	* src/x86/ffi.c: Update comment about regparm function attributes.
763	* src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
764	that all function arguments be passed on the stack (no regparm
765	support).
766
7672013-01-08  Anthony Green  <green@moxielogic.com>
768
769	* configure.ac: Generate local.exp.  This sets CC_FOR_TARGET
770	when we are using the vendor compiler.
771	* testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
772	../local.exp.
773	* configure, testsuite/Makefile.in: Rebuilt.
774
775	* testsuite/libffi.call/call.exp: Run tests with different
776	options, depending on whether or not we are using gcc or the
777	vendor compiler.
778	* testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
779	whether or not we are building/testing with gcc.
780
7812013-01-08  Anthony Green  <green@moxielogic.com>
782
783	* configure.ac: Switch x86 solaris target to X86 by default.
784	* configure: Rebuilt.
785
7862013-01-08  Anthony Green  <green@moxielogic.com>
787
788	* configure.ac: Fix test for read-only eh_frame.
789	* configure: Rebuilt.
790
7912013-01-08  Anthony Green  <green@moxielogic.com>
792
793	* src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
794	when building with the GNU toolchain.
795	* testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
796	compiler.
797
7982013-01-07  Thorsten Glaser <tg@mirbsd.org>
799
800	* testsuite/libffi.call/cls_uchar_va.c,
801	testsuite/libffi.call/cls_ushort_va.c,
802	testsuite/libffi.call/va_1.c: Testsuite fixes.
803
8042013-01-07  Thorsten Glaser <tg@mirbsd.org>
805
806	* src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
807	(ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
808	* src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
809
8102013-01-04  Anthony Green  <green@moxielogic.com>
811
812	* Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
813	and -Wall.  This is set in the configure script after testing for
814	GCC.
815	* Makefile.in: Rebuilt.
816
8172013-01-02  rofl0r <https://github.com/rofl0r>
818
819	* src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
820	when long double == double.
821
8222013-01-02  Reini Urban  <rurban@x-ray.at>
823
824	* Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
825	(required for shared libs on cygwin/mingw).
826	* Makefile.in: Rebuilt.
827
8282012-10-31  Alan Modra  <amodra@gmail.co>
829
830	* src/powerpc/linux64_closure.S: Add new ABI support.
831	* src/powerpc/linux64.S: Likewise.
832
8332012-10-30  Magnus Granberg  <zorry@gentoo.org>
834	    Pavel Labushev  <pavel.labushev@runbox.ru>
835
836	* configure.ac: New options pax_emutramp
837	* configure, fficonfig.h.in: Regenerated
838	* src/closures.c: New function emutramp_enabled_check() and
839	checks.
840
8412012-10-30  Frederick Cheung  <frederick.cheung@gmail.com>
842
843	* configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
844	lion) and future version.
845	* configure: Rebuild.
846
8472012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
848            Marcus Shawcroft  <marcus.shawcroft at arm.com>
849
850        * README: Add details of aarch64 port.
851        * src/aarch64/ffi.c: New.
852        * src/aarch64/ffitarget.h: Likewise.
853        * src/aarch64/sysv.S: Likewise.
854	* Makefile.am: Support aarch64.
855	* configure.ac: Support aarch64.
856	* Makefile.in, configure: Rebuilt.
857
8582012-10-30  James Greenhalgh  <james.greenhalgh at arm.com>
859            Marcus Shawcroft  <marcus.shawcroft at arm.com>
860
861        * testsuite/lib/libffi.exp: Add support for aarch64.
862        * testsuite/libffi.call/cls_struct_va1.c: New.
863        * testsuite/libffi.call/cls_uchar_va.c: Likewise.
864        * testsuite/libffi.call/cls_uint_va.c: Likewise.
865        * testsuite/libffi.call/cls_ulong_va.c: Likewise.
866        * testsuite/libffi.call/cls_ushort_va.c: Likewise.
867        * testsuite/libffi.call/nested_struct11.c: Likewise.
868        * testsuite/libffi.call/uninitialized.c: Likewise.
869        * testsuite/libffi.call/va_1.c: Likewise.
870        * testsuite/libffi.call/va_struct1.c: Likewise.
871        * testsuite/libffi.call/va_struct2.c: Likewise.
872        * testsuite/libffi.call/va_struct3.c: Likewise.
873
8742012-10-12  Walter Lee  <walt@tilera.com>
875
876        * Makefile.am: Add TILE-Gx/TILEPro support.
877        * configure.ac: Likewise.
878        * Makefile.in: Regenerate.
879        * configure: Likewise.
880        * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
881        * src/tile: New directory.
882        * src/tile/ffi.c: New file.
883        * src/tile/ffitarget.h: Ditto.
884        * src/tile/tile.S: Ditto.
885
8862012-10-12  Matthias Klose  <doko@ubuntu.com>
887
888	* generate-osx-source-and-headers.py: Normalize whitespace.
889
8902012-09-14  David Edelsohn  <dje.gcc@gmail.com>
891
892	* configure: Regenerated.
893
8942012-08-26  Andrew Pinski  <apinski@cavium.com>
895
896	PR libffi/53014
897	* src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
898	soft-float.
899
9002012-08-08  Uros Bizjak  <ubizjak@gmail.com>
901
902	* src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
903	just return FFI_BAD_ABI when things are wrong.
904
9052012-07-18  H.J. Lu  <hongjiu.lu@intel.com>
906
907	PR libffi/53982
908	PR libffi/53973
909	* src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
910	(FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
911
9122012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
913
914	* configure: Regenerated.
915
9162012-05-05  Nicolas Lelong
917
918	* libffi.xcodeproj/project.pbxproj: Fixes.
919	* README: Update for iOS builds.
920
9212012-04-23  Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
922
923	* configure.ac: Add Blackfin/sysv support
924	* Makefile.am: Add Blackfin/sysv support
925	* src/bfin/ffi.c:  Add Blackfin/sysv support
926	* src/bfin/ffitarget.h: Add Blackfin/sysv support
927
9282012-04-11  Anthony Green  <green@moxielogic.com>
929
930	* Makefile.am (EXTRA_DIST): Add new script.
931	* Makefile.in: Rebuilt.
932
9332012-04-11  Zachary Waldowski  <zwaldowski@gmail.com>
934
935	* generate-ios-source-and-headers.py,
936	libffi.xcodeproj/project.pbxproj: Support a Mac static library via
937	Xcode. Set iOS compatibility to 4.0.  Move iOS trampoline
938	generation into an Xcode "run script" phase.  Include both as
939	Xcode build scripts. Don't always regenerate config files.
940
9412012-04-10  Anthony Green  <green@moxielogic.com>
942
943	* src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
944
9452012-04-06  Anthony Green  <green@moxielogic.com>
946
947	* Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
948	* Makefile.in: Rebuilt.
949
9502012-04-06  Mike Lewis  <mikelikespie@gmail.com>
951
952	* generate-ios-source-and-headers.py: New file.
953	* libffi.xcodeproj/project.pbxproj: New file.
954	* README: Update instructions on building iOS binary.
955	* build-ios.sh: Delete.
956
9572012-04-06  Anthony Green  <green@moxielogic.com>
958
959	* src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
960	compilers, then use it.
961
9622012-04-06  H.J. Lu  <hongjiu.lu@intel.com>
963
964	* m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
965
9662012-04-06  Anthony Green  <green@moxielogic.com>
967
968	* testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
969	* testsuite/Makefile.in: Rebuilt.
970
9712012-04-05  Zachary Waldowski  <zwaldowski@gmail.com>
972
973	* include/ffi.h.in: Add missing trampoline table fields.
974	* src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
975	in CNAME.
976	* src/x86/ffi.c: Wrap Windows specific code in ifdefs.
977
9782012-04-02  Peter Bergner  <bergner@vnet.ibm.com>
979
980	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
981	Silence casting pointer to integer of different size warning.
982	Delete goto to previously deleted label.
983	(ffi_call): Silence possibly undefined warning.
984	(ffi_closure_helper_SYSV): Declare variable type.
985
9862012-04-02  Peter Rosin  <peda@lysator.liu.se>
987
988	* src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
989	value in the Intel version as is already done for the AT&T version.
990	(ffi_closure_SYSV): Likewise.
991	(ffi_closure_raw_SYSV): Likewise.
992	(ffi_closure_STDCALL): Likewise.
993
9942012-03-29  Peter Rosin  <peda@lysator.liu.se>
995
996	* src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
997	generation, fix the ENDP label and remove the surplus third arg
998	from the 'lea' insn.
999
10002012-03-29  Peter Rosin  <peda@lysator.liu.se>
1001
1002	* src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
1003	visible outside the PROC, so that ffi_closure_raw_THISCALL can see
1004	it.  Also instruct the assembler to add a frame to the function.
1005
10062012-03-23  Peter Rosin  <peda@lysator.liu.se>
1007
1008	* Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
1009	* Makefile.in: Rebuilt.
1010	* include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
1011	to all data exports, when compiling libffi clients using MSVC.
1012
10132012-03-29  Peter Rosin  <peda@lysator.liu.se>
1014
1015	* src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
1016	make it the default for MSVC.
1017	(FFI_TYPE_MS_STRUCT): New structure return convention.
1018	* src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
1019	return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
1020	instead of an ordinary FFI_TYPE_STRUCT.
1021	(ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
1022	(ffi_call): Likewise.
1023	(ffi_prep_incoming_args_SYSV): Likewise.
1024	(ffi_raw_call): Likewise.
1025	(ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
1026	* src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
1027	return a pointer to the result structure in eax and don't pop
1028	that pointer from the stack, the caller takes care of it.
1029	(ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
1030	(ffi_closure_raw_SYSV): Likewise.
1031
10322012-03-22  Peter Rosin  <peda@lysator.liu.se>
1033
1034	* testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
1035	assembly version with Intel syntax.
1036	* testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
1037
10382012-03-23  Peter Rosin  <peda@lysator.liu.se>
1039
1040	* testsuite/libffi.call/ffitest.h: Provide abstration of
1041	__attribute__((fastcall)) in the form of a __FASTCALL__
1042	define.  Define it to __fastcall for MSVC.
1043	* testsuite/libffi.call/fastthis1_win32.c: Use the above.
1044	* testsuite/libffi.call/fastthis2_win32.c: Likewise.
1045	* testsuite/libffi.call/fastthis3_win32.c: Likewise.
1046	* testsuite/libffi.call/strlen2_win32.c: Likewise.
1047	* testsuite/libffi.call/struct1_win32.c: Likewise.
1048	* testsuite/libffi.call/struct2_win32.c: Likewise.
1049
10502012-03-22  Peter Rosin  <peda@lysator.liu.se>
1051
1052	* src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
1053	frame on function entry, MASM adds one automatically.
1054
10552012-03-22  Peter Rosin  <peda@lysator.liu.se>
1056
1057	* testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
1058	bits in the MSVC headers.
1059
10602012-03-22  Peter Rosin  <peda@lysator.liu.se>
1061
1062	* testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
1063	with no declarations after statements.
1064	* testsuite/libffi.call/cls_16byte.c: Likewise.
1065	* testsuite/libffi.call/cls_18byte.c: Likewise.
1066	* testsuite/libffi.call/cls_19byte.c: Likewise.
1067	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
1068	* testsuite/libffi.call/cls_20byte.c: Likewise.
1069	* testsuite/libffi.call/cls_20byte1.c: Likewise.
1070	* testsuite/libffi.call/cls_24byte.c: Likewise.
1071	* testsuite/libffi.call/cls_2byte.c: Likewise.
1072	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
1073	* testsuite/libffi.call/cls_3byte1.c: Likewise.
1074	* testsuite/libffi.call/cls_3byte2.c: Likewise.
1075	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
1076	* testsuite/libffi.call/cls_4byte.c: Likewise.
1077	* testsuite/libffi.call/cls_5_1_byte.c: Likewise.
1078	* testsuite/libffi.call/cls_5byte.c: Likewise.
1079	* testsuite/libffi.call/cls_64byte.c: Likewise.
1080	* testsuite/libffi.call/cls_6_1_byte.c: Likewise.
1081	* testsuite/libffi.call/cls_6byte.c: Likewise.
1082	* testsuite/libffi.call/cls_7_1_byte.c: Likewise.
1083	* testsuite/libffi.call/cls_7byte.c: Likewise.
1084	* testsuite/libffi.call/cls_8byte.c: Likewise.
1085	* testsuite/libffi.call/cls_9byte1.c: Likewise.
1086	* testsuite/libffi.call/cls_9byte2.c: Likewise.
1087	* testsuite/libffi.call/cls_align_double.c: Likewise.
1088	* testsuite/libffi.call/cls_align_float.c: Likewise.
1089	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
1090	* testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
1091	* testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1092	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
1093	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
1094	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
1095	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
1096	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
1097	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
1098	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
1099	* testsuite/libffi.call/cls_dbls_struct.c: Likewise.
1100	* testsuite/libffi.call/cls_pointer_stack.c: Likewise.
1101	* testsuite/libffi.call/err_bad_typedef.c: Likewise.
1102	* testsuite/libffi.call/huge_struct.c: Likewise.
1103	* testsuite/libffi.call/nested_struct.c: Likewise.
1104	* testsuite/libffi.call/nested_struct1.c: Likewise.
1105	* testsuite/libffi.call/nested_struct10.c: Likewise.
1106	* testsuite/libffi.call/nested_struct2.c: Likewise.
1107	* testsuite/libffi.call/nested_struct3.c: Likewise.
1108	* testsuite/libffi.call/nested_struct4.c: Likewise.
1109	* testsuite/libffi.call/nested_struct5.c: Likewise.
1110	* testsuite/libffi.call/nested_struct6.c: Likewise.
1111	* testsuite/libffi.call/nested_struct7.c: Likewise.
1112	* testsuite/libffi.call/nested_struct8.c: Likewise.
1113	* testsuite/libffi.call/nested_struct9.c: Likewise.
1114	* testsuite/libffi.call/stret_large.c: Likewise.
1115	* testsuite/libffi.call/stret_large2.c: Likewise.
1116	* testsuite/libffi.call/stret_medium.c: Likewise.
1117	* testsuite/libffi.call/stret_medium2.c: Likewise.
1118	* testsuite/libffi.call/struct1.c: Likewise.
1119	* testsuite/libffi.call/struct1_win32.c: Likewise.
1120	* testsuite/libffi.call/struct2.c: Likewise.
1121	* testsuite/libffi.call/struct2_win32.c: Likewise.
1122	* testsuite/libffi.call/struct3.c: Likewise.
1123	* testsuite/libffi.call/struct4.c: Likewise.
1124	* testsuite/libffi.call/struct5.c: Likewise.
1125	* testsuite/libffi.call/struct6.c: Likewise.
1126	* testsuite/libffi.call/struct7.c: Likewise.
1127	* testsuite/libffi.call/struct8.c: Likewise.
1128	* testsuite/libffi.call/struct9.c: Likewise.
1129	* testsuite/libffi.call/testclosure.c: Likewise.
1130
11312012-03-21  Peter Rosin	 <peda@lysator.liu.se>
1132
1133	* testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
1134	printing doubles (%lf is for long doubles).
1135	(main): Likewise.
1136
11372012-03-21  Peter Rosin  <peda@lysator.liu.se>
1138
1139	* testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1140	(set_ld_library_path_env_vars): Add the library search dir to PATH
1141	(and save PATH for later).
1142	(restore_ld_library_path_env_vars): Restore PATH.
1143
11442012-03-21  Peter Rosin  <peda@lysator.liu.se>
1145
1146	* testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
1147	(set_ld_library_path_env_vars): Add the library search dir to PATH
1148	(and save PATH for later).
1149	(restore_ld_library_path_env_vars): Restore PATH.
1150
11512012-03-20  Peter Rosin  <peda@lysator.liu.se>
1152
1153	* testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1154	* src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1155	visible outside the PROC, so that ffi_closure_THISCALL can see it.
1156
11572012-03-20  Peter Rosin  <peda@lysator.liu.se>
1158
1159	* testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
1160	* src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
1161	visible outside the PROC, so that ffi_closure_THISCALL can see it.
1162
11632012-03-19  Alan Hourihane  <alanh@fairlite.co.uk>
1164
1165	* src/m68k/ffi.c: Add MINT support.
1166	* src/m68k/sysv.S: Ditto.
1167
11682012-03-06  Chung-Lin Tang  <cltang@codesourcery.com>
1169
1170	* src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
1171	ffi_call_VFP().
1172	(ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
1173	ffi_closure_VFP.
1174	* src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
1175
11762012-03-19  chennam  <csit@axway.com>
1177
1178	* src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
1179	support.
1180
11812012-03-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1182
1183	* src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1184	just return FFI_BAD_ABI when things are wrong.
1185	* src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
1186
11872012-03-09  David Edelsohn  <dje.gcc@gmail.com>
1188
1189	* src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
1190	change to return value of ffi_closure_helper_DARWIN and load type
1191	from return type.
1192
11932012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
1194
1195	* src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
1196	long.
1197	(ffi_prep_closure_loc): Cast to 64bit address in trampoline.
1198	(ffi_closure_unix64_inner): Cast return pointer to unsigned long
1199	first.
1200
1201	* src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
1202	(ffi_arg): Set to unsigned long long for x32.
1203	(ffi_sarg): Set to long long for x32.
1204
12052012-03-03  H.J. Lu  <hongjiu.lu@intel.com>
1206
1207	* src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
1208
12092012-03-03  Andoni Morales Alastruey  <ylatuya@gmail.com>
1210
1211	* configure.ac: Add -no-undefined for both 32- and 64-bit x86
1212	windows-like hosts.
1213	* configure: Rebuilt.
1214
12152012-02-27  Mikael Pettersson  <mikpe@it.uu.se>
1216
1217	PR libffi/52223
1218	* Makefile.am (FLAGS_TO_PASS): Define.
1219	* Makefile.in: Regenerate.
1220
12212012-02-23  Anthony Green  <green@moxielogic.com>
1222
1223	* src/*/ffitarget.h: Ensure that users never include ffitarget.h
1224	directly.
1225
12262012-02-23  Kai Tietz  <ktietz@redhat.com>
1227
1228	PR libffi/52221
1229	* src/x86/ffi.c (ffi_closure_raw_THISCALL): New
1230	prototype.
1231	(ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
1232	thiscall-convention.
1233	(ffi_raw_call): Use ffi_prep_args_raw.
1234	* src/x86/win32.S (ffi_closure_raw_THISCALL): Add
1235	implementation for stub.
1236
12372012-02-10  Kai Tietz  <ktietz@redhat.com>
1238
1239	* configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
1240	windows target.
1241	* configure: Regenerated.
1242
12432012-02-08  Kai Tietz  <ktietz@redhat.com>
1244
1245	* src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
1246	also FFI_THISCALL.
1247	* src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
1248	(FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
1249	(ffi_prep_closure_loc): Add FFI_THISCALL support.
1250	* src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
1251	* src/x86/win32.S (ffi_closure_THISCALL): New closure code
1252	for thiscall-calling convention.
1253	* testsuite/libffi.call/closure_thiscall.c: New test.
1254
12552012-01-28  Kai Tietz  <ktietz@redhat.com>
1256
1257	* src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
1258	argument to prototype for specify calling-convention.
1259	(ffi_call): Add support for stdcall/thiscall convention.
1260	(ffi_prep_args): Likewise.
1261	(ffi_raw_call): Likewise.
1262	* src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
1263	FFI_FASTCALL.
1264	* src/x86/win32.S (_ffi_call_win32): Add support for
1265	fastcall/thiscall calling-convention calls.
1266	* testsuite/libffi.call/fastthis1_win32.c: New test.
1267	* testsuite/libffi.call/fastthis2_win32.c: New test.
1268	* testsuite/libffi.call/fastthis3_win32.c: New test.
1269	* testsuite/libffi.call/strlen2_win32.c: New test.
1270	* testsuite/libffi.call/many2_win32.c: New test.
1271	* testsuite/libffi.call/struct1_win32.c: New test.
1272	* testsuite/libffi.call/struct2_win32.c: New test.
1273
12742012-01-23  Uros Bizjak  <ubizjak@gmail.com>
1275
1276	* src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
1277
12782012-01-23  Anthony Green  <green@moxielogic.com>
1279	    Chris Young  <cdyoung@ntlworld.com>
1280
1281	* configure.ac: Add Amiga support.
1282	* configure: Rebuilt.
1283
12842012-01-23  Dmitry Nadezhin  <dmitry.nadezhin@gmail.com>
1285
1286	* include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
1287
12882012-01-23  Andreas Schwab  <schwab@linux-m68k.org>
1289
1290	* src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
1291	mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.
1292
12932012-01-19  Jakub Jelinek  <jakub@redhat.com>
1294
1295	PR rtl-optimization/48496
1296	* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
1297
12982012-01-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1299
1300	* configure.ac (i?86-*-*): Set TARGET to X86_64.
1301	* configure: Regenerate.
1302
13032011-12-07  Andrew Pinski  <apinski@cavium.com>
1304
1305	PR libffi/50051
1306	* src/mips/n32.S: Add ".set mips4".
1307
13082011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1309
1310	* configure: Regenerate.
1311
13122011-11-12  David Gilbert <david.gilbert@linaro.org>
1313
1314	* doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
1315	man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
1316	man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
1317	src/cris/ffi.c, src/prep_cif.c,
1318	testsuite/libffi.call/cls_double_va.c,
1319	testsuite/libffi.call/cls_longdouble_va.c,
1320	testsuite/libffi.call/float_va.c: Many changes to support variadic
1321	function calls.
1322
13232011-11-12  Kyle Moffett <Kyle.D.Moffett@boeing.com>
1324
1325	* src/powerpc/ffi.c, src/powerpc/ffitarget.h,
1326	src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
1327	softfloat powerpc variants.
1328
13292011-11-12  Petr Salinger <Petr.Salinger@seznam.cz>
1330
1331	* configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
1332	* configure: Rebuilt.
1333
13342011-11-12  Timothy Wall  <twall@users.sf.net>
1335
1336	* src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
1337	alignment of 4 for wince on ARM.
1338
13392011-11-12  Kyle Moffett <Kyle.D.Moffett@boeing.com>
1340	    Anthony Green <green@moxielogic.com>
1341
1342	* src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
1343	instructions (not available on some cores, like the PPC440).
1344
13452011-11-12  Kimura Wataru  <kimuraw@i.nifty.jp>
1346
1347	* m4/ax_enable_builddir: Change from string comparison to numeric
1348	comparison for wc output.
1349	* configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
1350	X 10.7.
1351	* configure: Rebuilt.
1352
13532011-11-12  Anthony Green  <green@moxielogic.com>
1354
1355	* Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
1356	files with debug info.
1357	* Makefile.in: Rebuilt.
1358
13592011-11-12  Jasper Lievisse Adriaanse <jasper@openbsd.org>
1360
1361	* README: Update list of supported OpenBSD systems.
1362
13632011-11-12  Anthony Green  <green@moxielogic.com>
1364
1365	* libtool-version: Update.
1366	* Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
1367	FFI_DEBUG.
1368	(libffi_la_SOURCES): Remove src/debug.c
1369	(EXTRA_DIST): Add src/debug.c
1370	* Makefile.in: Rebuilt.
1371	* README: Update for 3.0.11.
1372
13732011-11-10  Richard Henderson  <rth@redhat.com>
1374
1375	* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
1376	* configure, aclocal.m4: Rebuild.
1377
13782011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
1379
1380	PR libffi/49594
1381	* src/powerpc/darwin_closure.S (stubs): Make the stub binding
1382	helper reference track the architecture pointer size.
1383
13842011-08-25  Andrew Haley  <aph@redhat.com>
1385
1386	* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
1387	instructions.
1388	* src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
1389
13902011-07-11  Andrew Haley  <aph@redhat.com>
1391
1392        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
1393
13942011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1395
1396	* testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
1397	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1398
13992011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1400
1401	PR libffi/46660
1402	* testsuite/libffi.call/cls_double_va.c: xfail dg-output on
1403	mips-sgi-irix6*.
1404	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.
1405
14062011-06-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1407
1408	* testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
1409	PRId8 instead of %hhu, %hhd.
1410	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
1411	PRIu8): Define.
1412	[__sgi__] (PRId8, PRIu8): Define.
1413
14142011-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1415
1416	* src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
1417	Define.
1418	Use them to handle ELF vs. ECOFF differences.
1419	[__osf__] (_GLOBAL__F_ffi_call_osf): Define.
1420
14212011-03-30  Timothy Wall  <twall@users.sf.net>
1422
1423	* src/powerpc/darwin.S: Fix unknown FDE encoding.
1424	* src/powerpc/darwin_closure.S: ditto.
1425
14262011-02-25  Anthony Green  <green@moxielogic.com>
1427
1428	* src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
1429	32-bit ABIs.
1430
14312011-02-15  Anthony Green  <green@moxielogic.com>
1432
1433	* m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
1434	* configure: Rebuilt.
1435
14362011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1437
1438	* configure: Regenerate.
1439
14402011-02-13  Anthony Green  <green@moxielogic.com>
1441
1442	* include/ffi_common.h (UNLIKELY, LIKELY): Define.
1443	* src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
1444	* src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
1445
1446	* src/prep_cif.c (initialize_aggregate): Convert assertion into
1447	FFI_BAD_TYPEDEF return.  Initialize arg size and alignment to 0.
1448
1449	* src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1450	just return FFI_BAD_ABI when things are wrong.
1451	* src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
1452	* src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
1453	* src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
1454	* src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
1455	* src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
1456
14572011-02-11  Anthony Green  <green@moxielogic.com>
1458
1459	* src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
1460	just return FFI_BAD_ABI when things are wrong.
1461
14622012-02-11  Eric Botcazou  <ebotcazou@adacore.com>
1463
1464	* src/sparc/v9.S (STACKFRAME): Bump to 176.
1465
14662011-02-09  Stuart Shelton  <srcshelton@gmail.com>
1467
1468	http://bugs.gentoo.org/show_bug.cgi?id=286911
1469	* src/mips/ffitarget.h: Clean up error messages.
1470	* src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
1471	ffi_raw*.
1472	* include/ffi.h.in: Add pragma for SGI compiler.
1473
14742011-02-09  Anthony Green  <green@moxielogic.com>
1475
1476	* configure.ac: Add powerpc64-*-darwin* support.
1477
14782011-02-09  Anthony Green <green@moxielogic.com>
1479
1480	* README: Mention Interix.
1481
14822011-02-09  Jonathan Callen  <abcd@gentoo.org>
1483
1484	* configure.ac: Add Interix to win32/cygwin/mingw case.
1485	* configure: Ditto.
1486	* src/closures.c: Treat Interix like Cygwin, instead of as a
1487	generic win32.
1488
14892011-02-09  Anthony Green <green@moxielogic.com>
1490
1491	* testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
1492	* testsuite/libffi.call/err_bad_abi.c: Remove xfail.
1493	* src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
1494	(ffi_prep_closure_loc): Check for bad ABI.
1495	* src/prep_cif.c (UNLIKELY, LIKELY): Define.
1496	(initialize_aggregate): Check for bad types.
1497
14982011-02-09  Landon Fuller <landonf@plausible.coop>
1499
1500	* Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
1501	src/arm/trampoline.S.
1502	(nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
1503	* configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
1504	* src/arm/ffi.c (ffi_trampoline_table)
1505	(ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
1506	(FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
1507	(FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
1508	(ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
1509	Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
1510	(ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
1511	separately.
1512	* src/arm/sysv.S: Handle Apple iOS host.
1513	* src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
1514	* build-ios.sh: New file.
1515	* fficonfig.h.in, configure, Makefile.in: Rebuilt.
1516	* README: Mention ARM iOS.
1517
15182011-02-08  Oren Held  <orenhe@il.ibm.com>
1519
1520	* src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
1521	redefinition of mallinfo on HP-UX.
1522
15232011-02-08  Ginn Chen  <ginn.chen@oracle.com>
1524
1525	* src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
1526	aggregate return ABI.  Flush cache.
1527	(ffi_prep_closure_loc): Flush cache.
1528
15292011-02-11  Anthony Green  <green@moxielogic.com>
1530
1531	From Tom Honermann <tom.honermann@oracle.com>:
1532	* src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
1533	AIX.  Declare .ffi_prep_args.  Insert nops after branch
1534	instructions so that the AIX linker can insert TOC reload
1535	instructions.
1536	* src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
1537
15382011-02-08  Ed  <ed@kdtc.net>
1539
1540	* src/powerpc/asm.h: Fix grammar nit in comment.
1541
15422011-02-08  Uli Link  <ul.mcamafia@linkitup.de>
1543
1544	* include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
1545
15462011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1547
1548	PR libffi/46661
1549	* testsuite/libffi.call/cls_pointer.c (main): Cast void * to
1550	uintptr_t first.
1551	* testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
1552
15532011-02-08  Rafael Avila de Espindola  <respindola@mozilla.com>
1554
1555	* configure.ac: Fix x86 test for pc related relocs.
1556	* configure: Rebuilt.
1557
15582011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
1559
1560	* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
1561	Handle case when CPU variant does not have long double support.
1562	* libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
1563	and cores with soft floating point.
1564
15652011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>
1566
1567	* configure.ac: Add mips*-*-rtems* support.
1568	* configure: Regenerate.
1569	* src/mips/ffitarget.h: Ensure needed constants are available
1570	for targets which do not have sgidefs.h.
1571
15722011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
1573
1574	PR target/40125
1575	* configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
1576	* configure: Regenerate.
1577
15782010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
1579
1580	PR libffi/29152
1581	PR libffi/42378
1582	* src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
1583	update comments.
1584	* src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
1585	(FFI_TRAMPOLINE_SIZE): Update for Darwin64.
1586	* src/powerpc/darwin.S: Provide Darwin64 implementation,
1587	update comments.
1588	* src/powerpc/ffi_darwin.c: Likewise.
1589
15902010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1591
1592	* configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
1593	backslashes.
1594	(libffi_cv_as_string_pseudo_op): Likewise.
1595	* configure: Regenerate.
1596
15972010-12-03  Chung-Lin Tang  <cltang@codesourcery.com>
1598
1599	* src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1600	(ffi_closure_VFP): Same.
1601	(ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1602	directive.
1603
16042010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1605
1606	* testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1607	(PRIuPTR): Define.
1608
16092010-11-29  Richard Henderson  <rth@redhat.com>
1610	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1611
1612	* src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1613	(.eh_frame): Use FDE_ENCODING.
1614	(.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1615
16162010-11-22  Jacek Caban <jacek@codeweavers.com>
1617
1618	* configure.ac: Check for symbol underscores on mingw-w64.
1619	* configure: Rebuilt.
1620	* src/x86/win64.S: Correctly access extern symbols in respect to
1621	underscores.
1622
16232010-11-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1624
1625	* testsuite/lib/libffi-dg.exp: Rename ...
1626	* testsuite/lib/libffi.exp: ... to this.
1627	* libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1628	* libffi/testsuite/libffi.special/special.exp: Likewise.
1629
16302010-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
1631
1632	* src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1633	code, new parameter, and return value. Update comments.
1634	(ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1635	call to layout_vfp_args().
1636	(ffi_call_SYSV): Update declaration.
1637	(ffi_call_VFP): New declaration.
1638	(ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1639	when ABI is FFI_VFP.
1640	(ffi_closure_VFP): New declaration.
1641	(ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1642	ffi_prep_incoming_args_SYSV().
1643	(ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1644	case handling.
1645	(ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1646	construction under VFP hard-float.
1647	(rec_vfp_type_p): New function.
1648	(vfp_type_p): Same.
1649	(place_vfp_arg): Same.
1650	(layout_vfp_args): Same.
1651	* src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1652	based on __ARM_PCS_VFP.
1653	(FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1654	fields.
1655	(FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1656	(FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1657	* src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1658	direct call. Move function pointer load upwards.
1659	(ffi_call_VFP): New function.
1660	(ffi_closure_VFP): Same.
1661
1662	* testsuite/lib/libffi-dg.exp (check-flags): New function.
1663	(dg-skip-if): New function.
1664	* testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1665	and compiler options include -mfloat-abi=hard.
1666	* testsuite/libffi.call/cls_longdouble_va.c: Same.
1667
16682010-10-01  Jakub Jelinek  <jakub@redhat.com>
1669
1670	PR libffi/45677
1671	* src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1672	a multiple of 8.
1673	* testsuite/libffi.call/many2.c: New test.
1674
16752010-08-20  Mark Wielaard  <mjw@redhat.com>
1676
1677	* src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1678	returns NULL.
1679
16802010-08-09  Andreas Tobler  <andreast@fgznet.ch>
1681
1682	* configure.ac: Add target powerpc64-*-freebsd*.
1683	* configure: Regenerate.
1684	* testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1685	-mlong-double-128 only to linux targets.
1686	* testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1687	* testsuite/libffi.call/cls_longdouble.c: Likewise.
1688	* testsuite/libffi.call/huge_struct.c: Likewise.
1689
16902010-08-05  Dan Witte  <dwitte@mozilla.com>
1691
1692        * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1693        debug CRT when --enable-debug is given.
1694        * configure.ac: Define it.
1695        * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1696
16972010-08-04  Dan Witte  <dwitte@mozilla.com>
1698
1699	* src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1700	platforms.
1701	* src/x86/ffi.c: Remove redundant ifdef checks.
1702	* src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1703	for X86_ANY so return value space doesn't get added twice.
1704
17052010-08-03  Neil Rashbrooke <neil@parkwaycc.co.uk>
1706
1707	* msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1708
17092010-07-22  Dan Witte  <dwitte@mozilla.com>
1710
1711	* src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1712	* src/prep_cif.c: Fix ABI assertion.
1713        * src/cris/ffi.c: Ditto.
1714
17152010-07-10  Evan Phoenix  <evan@fallingsnow.net>
1716
1717	* src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1718
17192010-07-07  Dan Horák <dan@danny.cz>
1720
1721	* include/ffi.h.in: Protect #define with #ifndef.
1722	* src/powerpc/ffitarget.h: Ditto.
1723	* src/s390/ffitarget.h: Ditto.
1724	* src/sparc/ffitarget.h: Ditto.
1725
17262010-07-07   Neil Roberts <neil@linux.intel.com>
1727
1728	* src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1729	16-bytes.
1730
17312010-07-02  Jakub Jelinek  <jakub@redhat.com>
1732
1733	* Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1734	* Makefile.in: Regenerated.
1735
17362010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1737
1738	* configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1739	output, too.
1740	(libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1741	(libffi_cv_as_string_pseudo_op): Check for .string.
1742	* configure: Regenerate.
1743	* fficonfig.h.in: Regenerate.
1744	* src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1745
17462010-05-11  Dan Witte  <dwitte@mozilla.com>
1747
1748	* doc/libffi.tex: Document previous change.
1749
17502010-05-11  Makoto Kato <m_kato@ga2.so-net.ne.jp>
1751
1752	* src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1753
17542010-05-05  Michael Kohler <michaelkohler@live.com>
1755
1756	* src/dlmalloc.c (dlfree): Fix spelling.
1757	* src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1758	* configure.ac: Ditto.
1759	* configure: Rebuilt.
1760
17612010-04-13  Dan Witte  <dwitte@mozilla.com>
1762
1763	* msvcc.sh: Build with -W3 instead of -Wall.
1764	* src/powerpc/ffi_darwin.c: Remove build warnings.
1765	* src/x86/ffi.c: Ditto.
1766	* src/x86/ffitarget.h: Ditto.
1767
17682010-04-12  Dan Witte  <dwitte@mozilla.com>
1769	    Walter Meinl <wuno@lsvw.de>
1770
1771	* configure.ac: Add OS/2 support.
1772	* configure: Rebuilt.
1773	* src/closures.c: Ditto.
1774	* src/dlmalloc.c: Ditto.
1775	* src/x86/win32.S: Ditto.
1776
17772010-04-07  Jakub Jelinek  <jakub@redhat.com>
1778
1779	* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
1780
17812010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1782
1783	* Makefile.in: Regenerate.
1784	* aclocal.m4: Regenerate.
1785	* include/Makefile.in: Regenerate.
1786	* man/Makefile.in: Regenerate.
1787	* testsuite/Makefile.in: Regenerate.
1788
17892010-03-30  Dan Witte  <dwitte@mozilla.com>
1790
1791	* msvcc.sh: Disable build warnings.
1792	* README (tested): Clarify windows build procedure.
1793
17942010-03-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1795
1796	* configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1797	* configure: Regenerate.
1798	* fficonfig.h.in: Regenerate.
1799	* libffi/src/x86/unix64.S (.eh_frame)
1800	[HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1801
18022010-03-14  Matthias Klose  <doko@ubuntu.com>
1803
1804	* src/x86/ffi64.c: Fix typo in comment.
1805	* src/x86/ffi.c: Use /* ... */ comment style.
1806
18072010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1808
1809	* doc/libffi.texi (The Closure API): Fix typo.
1810	* doc/libffi.info: Remove.
1811
18122010-02-15  Matthias Klose  <doko@ubuntu.com>
1813
1814	* src/arm/sysv.S (__ARM_ARCH__): Define for processor
1815	__ARM_ARCH_7EM__.
1816
18172010-01-15  Anthony Green  <green@redhat.com>
1818
1819	* README: Add notes on building with Microsoft Visual C++.
1820
18212010-01-15  Daniel Witte  <dwitte@mozilla.com>
1822
1823	* msvcc.sh: New file.
1824
1825	* src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1826	* src/x86/ffi.c: Tweak function declaration and remove excess
1827	parens.
1828	* include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1829	ffi_closure.
1830
1831	* src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1832	function ffi_call_win32 on X86_WIN32.
1833	* src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1834	(ffi_call_STDCALL): Remove.
1835
1836	* src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1837	to ffi_prep_cif_machdep for x86.
1838	* src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1839
18402010-01-15  Oliver Kiddle  <okiddle@yahoo.co.uk>
1841
1842	* src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
1843	Sun Studio compiler compatibility.
1844
18452010-01-12  Conrad Irwin <conrad.irwin@gmail.com>
1846
1847	* doc/libffi.texi: Add closure example.
1848
18492010-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1850
1851	PR libffi/40701
1852	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1853	PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1854	* testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1855	alpha*-dec-osf*.
1856	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
1857	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
1858	* testsuite/libffi.call/return_ll1.c: Likewise.
1859	* testsuite/libffi.call/stret_medium2.c: Likewise.
1860	* testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1861	MAP_FAILED to char *.
1862
18632010-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1864
1865	* src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1866
18672009-12-31  Anthony Green  <green@redhat.com>
1868
1869	* README: Update for libffi 3.0.9.
1870
18712009-12-27  Matthias Klose  <doko@ubuntu.com>
1872
1873	* configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1874	appropriate.
1875	* configure: Rebuilt.
1876
18772009-12-26  Anthony Green  <green@redhat.com>
1878
1879	* testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1880	avr32*-*-*.
1881	* testsuite/libffi.call/cls_double_va.c: Ditto.
1882
18832009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1884
1885	* testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1886	and inttypes.h.
1887	* testsuite/libffi.special/unwindtest.cc: Ditto.
1888
18892009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1890
1891	* configure.ac: Add amd64-*-openbsd*.
1892	* configure: Rebuilt.
1893	* testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1894	openbsd programs with -lpthread.
1895
18962009-12-26  Anthony Green  <green@redhat.com>
1897
1898	* testsuite/libffi.call/cls_double_va.c,
1899	testsuite/libffi.call/cls_longdouble.c,
1900	testsuite/libffi.call/cls_longdouble_va.c,
1901	testsuite/libffi.call/cls_pointer.c,
1902	testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1903	mips*-*-* and arm*-*-*.
1904	* testsuite/libffi.call/cls_align_longdouble_split.c,
1905	testsuite/libffi.call/cls_align_longdouble_split2.c,
1906	testsuite/libffi.call/stret_medium2.c,
1907	testsuite/libffi.call/stret_medium.c,
1908	testsuite/libffi.call/stret_large.c,
1909	testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1910
19112009-12-31  Kay Tietz  <ktietz70@googlemail.com>
1912
1913	* testsuite/libffi.call/ffitest.h,
1914	testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1915	definitions.
1916
19172009-12-31  Carlo Bramini  <carlo.bramix@libero.it>
1918
1919	* configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1920	* Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1921	* configure: Rebuilt.
1922	* Makefile.in: Rebuilt.
1923
19242009-12-31  Anthony Green  <green@redhat.com>
1925	    Blake Chaffin.
1926
1927	* testsuite/libffi.call/huge_struct.c: New test case from Blake
1928	Chaffin @ Apple.
1929
19302009-12-28  David Edelsohn  <edelsohn@gnu.org>
1931
1932	* src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1933	local variables.
1934	(aix_adjust_aggregate_sizes): New function.
1935	(ffi_prep_cif_machdep): Call it.
1936
19372009-12-26  Andreas Tobler  <a.tobler@schweiz.org>
1938
1939	* configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1940	* configure: Regenerate.
1941	* fficonfig.h.in: Likewise.
1942	* src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1943	Solaris/x86.
1944
19452009-12-26  Andreas Schwab  <schwab@linux-m68k.org>
1946
1947	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1948	when a float arguments is passed in memory.
1949	(ffi_closure_helper_SYSV): Mark general registers as used up when
1950	a 64bit or soft-float long double argument is passed in memory.
1951
19522009-12-25  Matthias Klose  <doko@ubuntu.com>
1953
1954	* man/ffi_call.3: Fix #include in examples.
1955	* doc/libffi.texi: Add dircategory.
1956
19572009-12-25  Frank Everdij <f.p.x.everdij@tudelft.nl>
1958
1959	* include/ffi.h.in: Placed '__GNUC__' ifdef around
1960	'__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1961	IRIX MIPSPro c99.
1962	* include/ffi_common.h: Added '__sgi' define to non
1963	'__attribute__((__mode__()))' integer typedefs.
1964	* src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
1965	ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1966	(ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1967	FFI_LONGDOUBLE support and alignment(N32 only).
1968	* src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1969	fixed non '__attribute__((__mode__()))' integer typedefs.
1970	* src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1971	since they are Linux/GNU Assembler specific.
1972
19732009-12-25  Bradley Smith  <brad@brad-smith.co.uk>
1974
1975	* configure.ac, Makefile.am, src/avr32/ffi.c,
1976	src/avr32/ffitarget.h,
1977	src/avr32/sysv.S: Add AVR32 port.
1978	* configure, Makefile.in: Rebuilt.
1979
19802009-12-21  Andreas Tobler  <a.tobler@schweiz.org>
1981
1982	* configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1983	* configure: Regenerate.
1984
19852009-12-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1986
1987	* testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1988
19892009-12-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1990
1991	* src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1992	type on HP-UX.
1993
19942012-02-13  Kai Tietz  <ktietz@redhat.com>
1995
1996	PR libffi/52221
1997	* src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1998	support for X86_WIN32.
1999	(FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
2000
20012009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
2002
2003	* src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
2004	double' arguments.
2005
20062009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008	* testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
2009
20102009-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2011
2012	PR libffi/40700
2013	* src/closures.c [X86_64 && __sun__ && __svr4__]
2014	(FFI_MMAP_EXEC_WRIT): Define.
2015
20162009-12-08  David Daney  <ddaney@caviumnetworks.com>
2017
2018	* testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
2019	* testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
2020	* testsuite/libffi.call/stret_large.c: Same.
2021	* testsuite/libffi.call/cls_align_longdouble_split.c: Same.
2022	* testsuite/libffi.call/stret_large2.c: Same.
2023	* testsuite/libffi.call/stret_medium2.c: Same.
2024
20252009-12-07  David Edelsohn  <edelsohn@gnu.org>
2026
2027	* src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
2028	typo.
2029
20302009-12-05  David Edelsohn  <edelsohn@gnu.org>
2031
2032	* src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
2033	code.
2034	* src/powerpc/aix_closure.S: Same.
2035
20362009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2037
2038	* Makefile.in: Regenerate.
2039	* configure: Regenerate.
2040	* include/Makefile.in: Regenerate.
2041	* man/Makefile.in: Regenerate.
2042	* testsuite/Makefile.in: Regenerate.
2043
20442009-12-04  David Edelsohn  <edelsohn@gnu.org>
2045
2046	* src/powerpc/aix_closure.S: Reorganize 64-bit code to match
2047	linux64_closure.S.
2048
20492009-12-04  Uros Bizjak  <ubizjak@gmail.com>
2050
2051	PR libffi/41908
2052	* src/x86/ffi64.c (classify_argument): Update from
2053	gcc/config/i386/i386.c.
2054	(ffi_closure_unix64_inner): Do not use the address of two consecutive
2055	SSE registers directly.
2056	* testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
2057	for x86_64 linux targets.
2058
20592009-12-04  David Edelsohn  <edelsohn@gnu.org>
2060
2061	* src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
2062	pfr for long double split between fpr13 and stack.
2063
20642009-12-03  David Edelsohn  <edelsohn@gnu.org>
2065
2066	* src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
2067	fparg_count twice for long double.
2068
20692009-12-03  David Edelsohn  <edelsohn@gnu.org>
2070
2071	PR libffi/42243
2072	* src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
2073
20742009-12-03  Uros Bizjak  <ubizjak@gmail.com>
2075
2076	* testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
2077	Remove xfails for x86 linux targets.
2078
20792009-12-02  David Edelsohn  <edelsohn@gnu.org>
2080
2081	* src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
2082	case.
2083
20842009-12-01  David Edelsohn  <edelsohn@gnu.org>
2085
2086	* src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
2087	register usage.  Call ffi_prep_args directly.  Add long double
2088	return value support.
2089	* src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
2090	applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
2091	Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
2092	(ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
2093	mode.
2094	(ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
2095	into case.
2096	* src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
2097	Allocate result area between params and FPRs.
2098
20992009-11-30  David Edelsohn  <edelsohn@gnu.org>
2100
2101	PR target/35484
2102	* src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
2103	AIX64.
2104	* src/powerpc/aix.S: Implement AIX64 version.
2105	* src/powerpc/aix_closure.S: Implement AIX64 version.
2106	(ffi_closure_ASM): Use extsb, lha and displament addresses.
2107	* src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
2108	support.
2109	(ffi_prep_cif_machdep): Same.
2110	(ffi_call): Same.
2111	(ffi_closure_helper_DARWIN): Same.
2112
21132009-11-02  Andreas Tobler  <a.tobler@schweiz.org>
2114
2115	PR libffi/41908
2116	* testsuite/libffi.call/testclosure.c: New test.
2117
21182009-09-28  Kai Tietz  <kai.tietz@onevision.com>
2119
2120	* src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
2121	assembly version use of ___chkstk.
2122
21232009-09-23  Matthias Klose  <doko@ubuntu.com>
2124
2125	PR libffi/40242, PR libffi/41443
2126	* src/arm/sysv.S (__ARM_ARCH__): Define for processors
2127	__ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
2128	__ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
2129	Change the conditionals to __SOFTFP__ || __ARM_EABI__
2130	for -mfloat-abi=softfp to work.
2131
21322009-09-17  Loren J. Rittle  <ljrittle@acm.org>
2133
2134	PR testsuite/32843 (strikes again)
2135	* src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
2136	enable proper extension on char and short.
2137
21382009-09-15  David Daney  <ddaney@caviumnetworks.com>
2139
2140	* src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
2141	handling for FFI_TYPE_POINTER.
2142	* src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
2143	FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
2144	FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
2145	FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
2146	(FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
2147	(enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
2148	* src/mips/n32.S (ffi_call_N32): Add handling for soft-float
2149	structure and pointer returns.
2150	(ffi_closure_N32): Add handling for pointer returns.
2151	* src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
2152	calc_n32_return_struct_flags): Handle soft-float.
2153	(ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
2154	(ffi_call_N32): Declare proper argument types.
2155	(ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
2156	soft-float.
2157
21582009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2159
2160	* configure.ac (AC_PREREQ): Bump to 2.64.
2161
21622009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2163
2164	* Makefile.am (install-html, install-pdf): Remove.
2165	* Makefile.in: Regenerate.
2166
2167	* Makefile.in: Regenerate.
2168	* aclocal.m4: Regenerate.
2169	* configure: Regenerate.
2170	* fficonfig.h.in: Regenerate.
2171	* include/Makefile.in: Regenerate.
2172	* man/Makefile.in: Regenerate.
2173	* testsuite/Makefile.in: Regenerate.
2174
21752011-08-22  Jasper Lievisse Adriaanse <jasper@openbsd.org>
2176
2177	* configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
2178	* configure: Rebuilt.
2179
21802009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2181
2182	* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2183
21842009-07-24  Dave Korn  <dave.korn.cygwin@gmail.com>
2185
2186	PR libffi/40807
2187	* src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
2188	return types for X86_WIN32.
2189	* src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
2190	(_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
2191	_ffi_closure_STDCALL): Likewise.
2192
2193	* src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
2194	(dlmmap, dlmunmap): Also use these functions on Cygwin.
2195
21962009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
2197
2198	PR testsuite/40699
2199	PR testsuite/40707
2200	PR testsuite/40709
2201	* testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
2202	2009-06-30 commits.
2203
22042009-07-01  Richard Sandiford  <r.sandiford@uk.ibm.com>
2205
2206	* testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
2207	to "" before adding paths.  (This reinstates an assignment that
2208	was removed by my 2009-06-30 commit, but changes the initial
2209	value from "." to "".)
2210
22112009-07-01  H.J. Lu  <hongjiu.lu@intel.com>
2212
2213	PR testsuite/40601
2214	* testsuite/lib/libffi-dg.exp (libffi-init): Properly set
2215	gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
2216	empty.
2217
22182009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
2219
2220	* testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
2221	to ld_library_path.  Use add_path.  Add just find_libgcc_s
2222	to ld_library_path, not every libgcc multilib directory.
2223
22242009-06-16  Wim Lewis  <wiml@hhhh.org>
2225
2226	* src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
2227	supposed to be callee-saved.
2228	* src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
2229	return buffer for odd-size structs.
2230
22312009-06-16  Andreas Tobler  <a.tobler@schweiz.org>
2232
2233	PR libffi/40444
2234	* testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
2235	allow_stack_execute for Darwin.
2236
22372009-06-16  Andrew Haley  <aph@redhat.com>
2238
2239	* configure.ac (TARGETDIR): Add missing blank lines.
2240	* configure: Regenerate.
2241
22422009-06-16  Andrew Haley  <aph@redhat.com>
2243
2244	* testsuite/libffi.call/cls_align_sint64.c,
2245	testsuite/libffi.call/cls_align_uint64.c,
2246	testsuite/libffi.call/cls_longdouble_va.c,
2247	testsuite/libffi.call/cls_ulonglong.c,
2248	testsuite/libffi.call/return_ll1.c,
2249	testsuite/libffi.call/stret_medium2.c: Fix printf format
2250	specifiers.
2251	* testsuite/libffi.call/ffitest.h,
2252	testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
2253
22542009-06-15  Andrew Haley  <aph@redhat.com>
2255
2256	* testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
2257	* testsuite/libffi.call/err_bad_abi.c: Likewise.
2258
22592009-06-12  Andrew Haley  <aph@redhat.com>
2260
2261	* Makefile.am: Remove info_TEXINFOS.
2262
22632009-06-12  Andrew Haley  <aph@redhat.com>
2264
2265	* ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
2266	testsuite/libffi.call/cls_align_uint64.c,
2267	testsuite/libffi.call/cls_ulonglong.c,
2268	testsuite/libffi.call/return_ll1.c,
2269	testsuite/libffi.call/stret_medium2.c: Fix printf format
2270	specifiers.
2271	testsuite/libffi.special/unwindtest.cc: include stdint.h.
2272
22732009-06-11  Timothy Wall  <twall@users.sf.net>
2274
2275	* Makefile.am,
2276	configure.ac,
2277	include/ffi.h.in,
2278	include/ffi_common.h,
2279	src/closures.c,
2280	src/dlmalloc.c,
2281	src/x86/ffi.c,
2282	src/x86/ffitarget.h,
2283	src/x86/win64.S (new),
2284	README: Added win64 support (mingw or MSVC)
2285	* Makefile.in,
2286	include/Makefile.in,
2287	man/Makefile.in,
2288	testsuite/Makefile.in,
2289	configure,
2290	aclocal.m4: Regenerated
2291	* ltcf-c.sh: properly escape cygwin/w32 path
2292	* man/ffi_call.3: Clarify size requirements for return value.
2293	* src/x86/ffi64.c: Fix filename in comment.
2294	* src/x86/win32.S: Remove unused extern.
2295
2296	* testsuite/libffi.call/closure_fn0.c,
2297	testsuite/libffi.call/closure_fn1.c,
2298	testsuite/libffi.call/closure_fn2.c,
2299	testsuite/libffi.call/closure_fn3.c,
2300	testsuite/libffi.call/closure_fn4.c,
2301	testsuite/libffi.call/closure_fn5.c,
2302	testsuite/libffi.call/closure_fn6.c,
2303	testsuite/libffi.call/closure_stdcall.c,
2304	testsuite/libffi.call/cls_12byte.c,
2305	testsuite/libffi.call/cls_16byte.c,
2306	testsuite/libffi.call/cls_18byte.c,
2307	testsuite/libffi.call/cls_19byte.c,
2308	testsuite/libffi.call/cls_1_1byte.c,
2309	testsuite/libffi.call/cls_20byte.c,
2310	testsuite/libffi.call/cls_20byte1.c,
2311	testsuite/libffi.call/cls_24byte.c,
2312	testsuite/libffi.call/cls_2byte.c,
2313	testsuite/libffi.call/cls_3_1byte.c,
2314	testsuite/libffi.call/cls_3byte1.c,
2315 	testsuite/libffi.call/cls_3byte2.c,
2316 	testsuite/libffi.call/cls_4_1byte.c,
2317 	testsuite/libffi.call/cls_4byte.c,
2318 	testsuite/libffi.call/cls_5_1_byte.c,
2319 	testsuite/libffi.call/cls_5byte.c,
2320 	testsuite/libffi.call/cls_64byte.c,
2321 	testsuite/libffi.call/cls_6_1_byte.c,
2322 	testsuite/libffi.call/cls_6byte.c,
2323 	testsuite/libffi.call/cls_7_1_byte.c,
2324 	testsuite/libffi.call/cls_7byte.c,
2325 	testsuite/libffi.call/cls_8byte.c,
2326 	testsuite/libffi.call/cls_9byte1.c,
2327 	testsuite/libffi.call/cls_9byte2.c,
2328 	testsuite/libffi.call/cls_align_double.c,
2329 	testsuite/libffi.call/cls_align_float.c,
2330 	testsuite/libffi.call/cls_align_longdouble.c,
2331 	testsuite/libffi.call/cls_align_longdouble_split.c,
2332 	testsuite/libffi.call/cls_align_longdouble_split2.c,
2333 	testsuite/libffi.call/cls_align_pointer.c,
2334 	testsuite/libffi.call/cls_align_sint16.c,
2335 	testsuite/libffi.call/cls_align_sint32.c,
2336 	testsuite/libffi.call/cls_align_sint64.c,
2337 	testsuite/libffi.call/cls_align_uint16.c,
2338 	testsuite/libffi.call/cls_align_uint32.c,
2339 	testsuite/libffi.call/cls_align_uint64.c,
2340 	testsuite/libffi.call/cls_dbls_struct.c,
2341 	testsuite/libffi.call/cls_double.c,
2342 	testsuite/libffi.call/cls_double_va.c,
2343 	testsuite/libffi.call/cls_float.c,
2344 	testsuite/libffi.call/cls_longdouble.c,
2345 	testsuite/libffi.call/cls_longdouble_va.c,
2346 	testsuite/libffi.call/cls_multi_schar.c,
2347 	testsuite/libffi.call/cls_multi_sshort.c,
2348 	testsuite/libffi.call/cls_multi_sshortchar.c,
2349 	testsuite/libffi.call/cls_multi_uchar.c,
2350 	testsuite/libffi.call/cls_multi_ushort.c,
2351 	testsuite/libffi.call/cls_multi_ushortchar.c,
2352 	testsuite/libffi.call/cls_pointer.c,
2353 	testsuite/libffi.call/cls_pointer_stack.c,
2354 	testsuite/libffi.call/cls_schar.c,
2355 	testsuite/libffi.call/cls_sint.c,
2356 	testsuite/libffi.call/cls_sshort.c,
2357 	testsuite/libffi.call/cls_uchar.c,
2358 	testsuite/libffi.call/cls_uint.c,
2359 	testsuite/libffi.call/cls_ulonglong.c,
2360 	testsuite/libffi.call/cls_ushort.c,
2361 	testsuite/libffi.call/err_bad_abi.c,
2362 	testsuite/libffi.call/err_bad_typedef.c,
2363 	testsuite/libffi.call/float2.c,
2364 	testsuite/libffi.call/huge_struct.c,
2365 	testsuite/libffi.call/nested_struct.c,
2366 	testsuite/libffi.call/nested_struct1.c,
2367 	testsuite/libffi.call/nested_struct10.c,
2368 	testsuite/libffi.call/nested_struct2.c,
2369 	testsuite/libffi.call/nested_struct3.c,
2370 	testsuite/libffi.call/nested_struct4.c,
2371 	testsuite/libffi.call/nested_struct5.c,
2372 	testsuite/libffi.call/nested_struct6.c,
2373 	testsuite/libffi.call/nested_struct7.c,
2374 	testsuite/libffi.call/nested_struct8.c,
2375 	testsuite/libffi.call/nested_struct9.c,
2376 	testsuite/libffi.call/problem1.c,
2377 	testsuite/libffi.call/return_ldl.c,
2378 	testsuite/libffi.call/return_ll1.c,
2379 	testsuite/libffi.call/stret_large.c,
2380 	testsuite/libffi.call/stret_large2.c,
2381 	testsuite/libffi.call/stret_medium.c,
2382 	testsuite/libffi.call/stret_medium2.c,
2383	testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
2384	of checking for MMAP.  Use intptr_t instead of long casts.
2385
23862009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2387
2388	* testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
2389	* testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
2390	* testsuite/libffi.call/err_bad_typedef.c: Likewise.
2391
23922009-06-09  Andrew Haley  <aph@redhat.com>
2393
2394	* src/x86/freebsd.S: Add missing file.
2395
23962009-06-08  Andrew Haley  <aph@redhat.com>
2397
2398	Import from libffi 3.0.8:
2399
2400	* doc/libffi.texi: New file.
2401	* doc/libffi.info: Likewise.
2402	* doc/stamp-vti: Likewise.
2403	* man/Makefile.am: New file.
2404	* man/ffi_call.3: New file.
2405
2406	* Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
2407	src/dlmalloc.c.
2408	(nodist_libffi_la_SOURCES): Add X86_FREEBSD.
2409
2410	* configure.ac: Bump version to 3.0.8.
2411	parisc*-*-linux*: Add.
2412	i386-*-freebsd* | i386-*-openbsd*: Add.
2413	powerpc-*-beos*: Add.
2414	AM_CONDITIONAL X86_FREEBSD: Add.
2415	AC_CONFIG_FILES: Add man/Makefile.
2416
2417	* include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
2418
24192009-06-08  Andrew Haley  <aph@redhat.com>
2420
2421	* README: Import from libffi 3.0.8.
2422
24232009-06-08  Andrew Haley  <aph@redhat.com>
2424
2425	* testsuite/libffi.call/err_bad_abi.c: Add xfails.
2426	* testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
2427	* testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
2428	* testsuite/libffi.call/err_bad_typedef.c: Add xfails.
2429
2430	* testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
2431	* testsuite/libffi.call/stret_medium.c: Likewise.
2432	* testsuite/libffi.call/stret_large2.c: Likewise.
2433	* testsuite/libffi.call/stret_large.c:  Likewise.
2434
24352008-12-26  Timothy Wall  <twall@users.sf.net>
2436
2437	* testsuite/libffi.call/cls_longdouble.c,
2438	testsuite/libffi.call/cls_longdouble_va.c,
2439	testsuite/libffi.call/cls_align_longdouble.c,
2440	testsuite/libffi.call/cls_align_longdouble_split.c,
2441	testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
2442	failures on x86_64 cygwin/mingw.
2443
24442008-12-22  Timothy Wall  <twall@users.sf.net>
2445
2446	* testsuite/libffi.call/closure_fn0.c,
2447	testsuite/libffi.call/closure_fn1.c,
2448	testsuite/libffi.call/closure_fn2.c,
2449	testsuite/libffi.call/closure_fn3.c,
2450	testsuite/libffi.call/closure_fn4.c,
2451	testsuite/libffi.call/closure_fn5.c,
2452	testsuite/libffi.call/closure_fn6.c,
2453	testsuite/libffi.call/closure_loc_fn0.c,
2454	testsuite/libffi.call/closure_stdcall.c,
2455	testsuite/libffi.call/cls_align_pointer.c,
2456	testsuite/libffi.call/cls_pointer.c,
2457	testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
2458	pointer to integer (intptr_t).
2459	* testsuite/libffi.call/cls_longdouble.c: disable for win64.
2460
24612008-07-24  Anthony Green  <green@redhat.com>
2462
2463	* testsuite/libffi.call/cls_dbls_struct.c,
2464	testsuite/libffi.call/cls_double_va.c,
2465	testsuite/libffi.call/cls_longdouble.c,
2466	testsuite/libffi.call/cls_longdouble_va.c,
2467	testsuite/libffi.call/cls_pointer.c,
2468	testsuite/libffi.call/cls_pointer_stack.c,
2469	testsuite/libffi.call/err_bad_abi.c: Clean up failures from
2470	compiler warnings.
2471
24722008-03-04  Anthony Green  <green@redhat.com>
2473	    Blake Chaffin
2474	    hos@tamanegi.org
2475
2476	* testsuite/libffi.call/cls_align_longdouble_split2.c
2477	  testsuite/libffi.call/cls_align_longdouble_split.c
2478	  testsuite/libffi.call/cls_dbls_struct.c
2479	  testsuite/libffi.call/cls_double_va.c
2480	  testsuite/libffi.call/cls_longdouble.c
2481	  testsuite/libffi.call/cls_longdouble_va.c
2482	  testsuite/libffi.call/cls_pointer.c
2483	  testsuite/libffi.call/cls_pointer_stack.c
2484	  testsuite/libffi.call/err_bad_abi.c
2485	  testsuite/libffi.call/err_bad_typedef.c
2486	  testsuite/libffi.call/stret_large2.c
2487	  testsuite/libffi.call/stret_large.c
2488	  testsuite/libffi.call/stret_medium2.c
2489	  testsuite/libffi.call/stret_medium.c: New tests from Apple.
2490
24912009-06-05  Andrew Haley  <aph@redhat.com>
2492
2493	* src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
2494	libffi.
2495
24962009-06-04  Andrew Haley  <aph@redhat.com>
2497
2498	* src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
2499	stdcall changes.
2500
25012008-02-26  Anthony Green  <green@redhat.com>
2502	    Thomas Heller  <theller@ctypes.org>
2503
2504	* src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
2505	comment.
2506
25072008-02-03  Timothy Wall  <twall@users.sf.net>
2508
2509	* src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
2510	  offset based on code pointer, not data pointer.
2511
25122008-01-31  Timothy Wall <twall@users.sf.net>
2513
2514	* testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
2515	closures.
2516	* src/x86/ffitarget.h: Increase size of trampoline for stdcall
2517	closures.
2518	* src/x86/win32.S: Add assembly for stdcall closure.
2519	* src/x86/ffi.c: Initialize stdcall closure trampoline.
2520
25212009-06-04  Andrew Haley  <aph@redhat.com>
2522
2523	* include/ffi.h.in: Change void (*)() to void (*)(void).
2524	* src/x86/ffi.c: Likewise.
2525
25262009-06-04  Andrew Haley  <aph@redhat.com>
2527
2528	* src/powerpc/ppc_closure.S: Insert licence header.
2529	* src/powerpc/linux64_closure.S: Likewise.
2530	* src/m68k/sysv.S: Likewise.
2531
2532	* src/sh64/ffi.c: Change void (*)() to void (*)(void).
2533	* src/powerpc/ffi.c: Likewise.
2534	* src/powerpc/ffi_darwin.c: Likewise.
2535	* src/m32r/ffi.c: Likewise.
2536	* src/sh64/ffi.c: Likewise.
2537	* src/x86/ffi64.c: Likewise.
2538	* src/alpha/ffi.c: Likewise.
2539	* src/alpha/osf.S: Likewise.
2540	* src/frv/ffi.c: Likewise.
2541	* src/s390/ffi.c: Likewise.
2542	* src/pa/ffi.c: Likewise.
2543	* src/pa/hpux32.S: Likewise.
2544	* src/ia64/unix.S: Likewise.
2545	* src/ia64/ffi.c: Likewise.
2546	* src/sparc/ffi.c: Likewise.
2547	* src/mips/ffi.c: Likewise.
2548	* src/sh/ffi.c: Likewise.
2549
25502008-02-15  David Daney  <ddaney@avtrex.com>
2551
2552	* src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
2553	Define (conditionally), and use it to include cachectl.h.
2554	(ffi_prep_closure_loc): Fix cache flushing.
2555	* src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
2556
25572009-06-04  Andrew Haley  <aph@redhat.com>
2558
2559	include/ffi.h.in,
2560	src/arm/ffitarget.h,
2561	src/arm/ffi.c,
2562	src/arm/sysv.S,
2563	src/powerpc/ffitarget.h,
2564	src/closures.c,
2565	src/sh64/ffitarget.h,
2566	src/sh64/ffi.c,
2567	src/sh64/sysv.S,
2568	src/types.c,
2569	src/x86/ffi64.c,
2570	src/x86/ffitarget.h,
2571	src/x86/win32.S,
2572	src/x86/darwin.S,
2573	src/x86/ffi.c,
2574	src/x86/sysv.S,
2575	src/x86/unix64.S,
2576	src/alpha/ffitarget.h,
2577	src/alpha/ffi.c,
2578	src/alpha/osf.S,
2579	src/m68k/ffitarget.h,
2580	src/frv/ffitarget.h,
2581	src/frv/ffi.c,
2582	src/s390/ffitarget.h,
2583	src/s390/sysv.S,
2584	src/cris/ffitarget.h,
2585	src/pa/linux.S,
2586	src/pa/ffitarget.h,
2587	src/pa/ffi.c,
2588	src/raw_api.c,
2589	src/ia64/ffitarget.h,
2590	src/ia64/unix.S,
2591	src/ia64/ffi.c,
2592	src/ia64/ia64_flags.h,
2593	src/java_raw_api.c,
2594	src/debug.c,
2595	src/sparc/v9.S,
2596	src/sparc/ffitarget.h,
2597	src/sparc/ffi.c,
2598	src/sparc/v8.S,
2599	src/mips/ffitarget.h,
2600	src/mips/n32.S,
2601	src/mips/o32.S,
2602	src/mips/ffi.c,
2603	src/prep_cif.c,
2604	src/sh/ffitarget.h,
2605	src/sh/ffi.c,
2606	src/sh/sysv.S: Update license text.
2607
26082009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2609
2610	* src/x86/win32.S (_ffi_closure_STDCALL):  New function.
2611	(.eh_frame):  Add FDE for it.
2612
26132009-05-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2614
2615	* configure.ac:  Also check if assembler supports pc-relative
2616	relocs on X86_WIN32 targets.
2617	* configure:  Regenerate.
2618	* src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
2619	(_ffi_call_SYSV):  Add missing function type symbol .def and
2620	add EH markup labels.
2621	(_ffi_call_STDCALL):  Likewise.
2622	(_ffi_closure_SYSV):  Likewise.
2623	(_ffi_closure_raw_SYSV):  Likewise.
2624	(.eh_frame):  Add hand-crafted EH data.
2625
26262009-04-09  Jakub Jelinek  <jakub@redhat.com>
2627
2628	* testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2629	version 3 of the GNU General Public License and to point readers
2630	at the COPYING3 file and the FSF's license web page.
2631	* testsuite/libffi.call/call.exp: Likewise.
2632	* testsuite/libffi.special/special.exp: Likewise.
2633
26342009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2635
2636	* configure: Regenerate.
2637
26382008-12-18  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2639
2640	PR libffi/26048
2641	* configure.ac (HAVE_AS_X86_PCREL): New test.
2642	* configure: Regenerate.
2643	* fficonfig.h.in: Regenerate.
2644	* src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2645	RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2646	RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2647	(.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2648	* src/x86/unix64.S (.Lstore_table): Move to .text section.
2649	(.Lload_table): Likewise.
2650	(.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2651
26522008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2653
2654	* configure: Regenerate.
2655
26562008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2657
2658	* src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2659	signed/unsigned int8/16 return values.
2660	* src/sparc/v8.S (ffi_call_v8): Likewise.
2661	(ffi_closure_v8): Likewise.
2662
26632008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2664	    Steve Ellcey  <sje@cup.hp.com>
2665
2666	* configure: Regenerate for new libtool.
2667	* Makefile.in: Ditto.
2668	* include/Makefile.in: Ditto.
2669	* aclocal.m4: Ditto.
2670
26712008-08-25  Andreas Tobler  <a.tobler@schweiz.org>
2672
2673	* src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2674	FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2675	Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2676	Adjust copyright notice.
2677	* src/powerpc/ffi.c: Add two new flags to indicate if we have one
2678	register or two register to use for FFI_SYSV structs.
2679	(ffi_prep_cif_machdep): Pass the right register flag introduced above.
2680	(ffi_closure_helper_SYSV): Fix the return type for
2681	FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2682	Adjust copyright notice.
2683
26842008-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2685
2686	* src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2687	int.
2688
26892008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2690
2691	* configure: Regenerate.
2692	* include/Makefile.in: Regenerate.
2693	* testsuite/Makefile.in: Regenerate.
2694
26952008-06-07  Joseph Myers  <joseph@codesourcery.com>
2696
2697	* configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2698	powerpc-*-beos*): Remove.
2699	* configure: Regenerate.
2700
27012008-05-09  Julian Brown  <julian@codesourcery.com>
2702
2703	* Makefile.am (LTLDFLAGS): New.
2704	(libffi_la_LDFLAGS): Use above.
2705	* Makefile.in: Regenerate.
2706
27072008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2708
2709	PR bootstrap/35457
2710	* aclocal.m4: Regenerate.
2711	* configure: Regenerate.
2712
27132008-03-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2714
2715	* src/sh/sysv.S: Add .note.GNU-stack on Linux.
2716	* src/sh64/sysv.S: Likewise.
2717
27182008-03-26  Daniel Jacobowitz  <dan@debian.org>
2719
2720	* src/arm/sysv.S: Fix ARM comment marker.
2721
27222008-03-26  Jakub Jelinek  <jakub@redhat.com>
2723
2724	* src/alpha/osf.S: Add .note.GNU-stack on Linux.
2725	* src/s390/sysv.S: Likewise.
2726	* src/powerpc/ppc_closure.S: Likewise.
2727	* src/powerpc/sysv.S: Likewise.
2728	* src/x86/unix64.S: Likewise.
2729	* src/x86/sysv.S: Likewise.
2730	* src/sparc/v8.S: Likewise.
2731	* src/sparc/v9.S: Likewise.
2732	* src/m68k/sysv.S: Likewise.
2733	* src/arm/sysv.S: Likewise.
2734
27352008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2736
2737	* aclocal.m4: Regenerate.
2738	* configure: Likewise.
2739	* Makefile.in: Likewise.
2740	* include/Makefile.in: Likewise.
2741	* testsuite/Makefile.in: Likewise.
2742
27432008-02-12  Bjoern Koenig  <bkoenig@alpha-tierchen.de>
2744	    Andreas Tobler  <a.tobler@schweiz.org>
2745
2746	* configure.ac: Add amd64-*-freebsd* target.
2747	* configure: Regenerate.
2748
27492008-01-30  H.J. Lu  <hongjiu.lu@intel.com>
2750
2751	PR libffi/34612
2752	* src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2753	returning struct.
2754
2755	* testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2756	tests.
2757
27582008-01-24  David Edelsohn  <edelsohn@gnu.org>
2759
2760	* configure: Regenerate.
2761
27622008-01-06  Andreas Tobler  <a.tobler@schweiz.org>
2763
2764	* src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2765
27662008-01-05  Andreas Tobler  <a.tobler@schweiz.org>
2767
2768	PR testsuite/32843
2769	* src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2770	signed/unsigned int8/16 for X86_DARWIN.
2771	Updated copyright info.
2772	Handle one and two byte structs with special cif->flags.
2773	* src/x86/ffitarget.h: Add special types for one and two byte structs.
2774	Updated copyright info.
2775	* src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2776	sysv.S
2777	Remove code to pop args from the stack after call.
2778	Special-case signed/unsigned for int8/16, one and two byte structs.
2779	(ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2780	FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2781	FFI_TYPE_SINT32.
2782	Updated copyright info.
2783
27842007-12-08  David Daney  <ddaney@avtrex.com>
2785
2786	* src/mips/n32.S (ffi_call_N32):  Replace dadd with ADDU, dsub with
2787	SUBU, add with ADDU and use smaller code sequences.
2788
27892007-12-07  David Daney  <ddaney@avtrex.com>
2790
2791	* src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2792	type.
2793
27942007-12-06  David Daney  <ddaney@avtrex.com>
2795
2796	* include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not	already
2797	defined.
2798	(ffi_java_raw): New typedef.
2799	(ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2800	ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2801	ffi_java_raw.
2802	(ffi_java_raw_closure) : Same.
2803	(ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2804	parameter types.
2805	* src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
2806	FFI_SIZEOF_JAVA_RAW.
2807	(ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2808	Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2809	sizeof(ffi_java_raw) for alignment calculations.
2810	(ffi_java_ptrarray_to_raw): Same.
2811	(ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
2812	if FFI_SIZEOF_JAVA_RAW == 4.
2813	(ffi_java_raw_to_rvalue): Same.
2814	(ffi_java_raw_call): Change type of raw to ffi_java_raw.
2815	(ffi_java_translate_args): Same.
2816	(ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2817	parameter types.
2818	* src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2819
28202007-12-06  David Daney  <ddaney@avtrex.com>
2821
2822	* src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
2823	pointer values.
2824
28252007-12-01  Andreas Tobler  <a.tobler@schweiz.org>
2826
2827	PR libffi/31937
2828	* src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2829	Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2830	* src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2831	set the NUM_FPR_ARG_REGISTERS according to.
2832	Add support for potential soft-float support under hard-float
2833	architecture.
2834	(ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2835	FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2836	to the FFI_LINUX_SOFT_FLOAT ABI.
2837	(ffi_prep_cif_machdep): Likewise.
2838	(ffi_closure_helper_SYSV): Likewise.
2839	* src/powerpc/ppc_closure.S: Make sure not to store float/double
2840	on archs where __NO_FPRS__ is true.
2841	Add FFI_TYPE_UINT128 support.
2842	* src/powerpc/sysv.S: Add support for soft-float long-double-128.
2843	Adjust copyright notice.
2844
28452007-11-25  Andreas Tobler  <a.tobler@schweiz.org>
2846
2847	* src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2848	* include/ffi_common.h: ... here.
2849	Update copyright.
2850
28512007-11-17  Andreas Tobler  <a.tobler@schweiz.org>
2852
2853	* src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2854	* src/powerpc/linux64.S: Likewise.
2855	* src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2856	* testsuite/libffi.call/return_ldl.c: New test.
2857
28582007-09-04    <aph@redhat.com>
2859
2860	* src/arm/sysv.S (UNWIND): New.
2861	(Whole file): Conditionally compile unwinder directives.
2862	* src/arm/sysv.S: Add unwinder directives.
2863
2864	* src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2865	Only treat r0 as a struct address if we're actually returning a
2866	struct by address.
2867	Only copy the bytes that are actually within a struct.
2868	(ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2869	is returned in r0, not passed by address.
2870	(ffi_call): Allocate a word-sized temporary for the case where
2871	a composite is returned in r0.
2872	(ffi_prep_incoming_args_SYSV): Align as necessary.
2873
28742007-08-05  Steven Newbury  <s_j_newbury@yahoo.co.uk>
2875
2876	* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
2877	directly using the sys_cacheflush syscall.
2878
28792007-07-27  Andrew Haley  <aph@redhat.com>
2880
2881	* src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2882
28832007-09-03  Maciej W. Rozycki  <macro@linux-mips.org>
2884
2885	* Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2886	* configure.ac: Likewise.
2887	* Makefile.in: Regenerate.
2888	* include/Makefile.in: Likewise.
2889	* testsuite/Makefile.in: Likewise.
2890	* configure: Likewise.
2891
28922007-08-24  David Daney  <ddaney@avtrex.com>
2893
2894	* testsuite/libffi.call/return_sl.c: New test.
2895
28962007-08-10  David Daney  <ddaney@avtrex.com>
2897
2898	* testsuite/libffi.call/cls_multi_ushort.c,
2899	testsuite/libffi.call/cls_align_uint16.c,
2900	testsuite/libffi.call/nested_struct1.c,
2901	testsuite/libffi.call/nested_struct3.c,
2902	testsuite/libffi.call/cls_7_1_byte.c,
2903	testsuite/libffi.call/nested_struct5.c,
2904	testsuite/libffi.call/cls_double.c,
2905	testsuite/libffi.call/nested_struct7.c,
2906	testsuite/libffi.call/cls_sint.c,
2907	testsuite/libffi.call/nested_struct9.c,
2908	testsuite/libffi.call/cls_20byte1.c,
2909	testsuite/libffi.call/cls_multi_sshortchar.c,
2910	testsuite/libffi.call/cls_align_sint64.c,
2911	testsuite/libffi.call/cls_3byte2.c,
2912	testsuite/libffi.call/cls_multi_schar.c,
2913	testsuite/libffi.call/cls_multi_uchar.c,
2914	testsuite/libffi.call/cls_19byte.c,
2915	testsuite/libffi.call/cls_9byte1.c,
2916	testsuite/libffi.call/cls_align_float.c,
2917	testsuite/libffi.call/closure_fn1.c,
2918	testsuite/libffi.call/problem1.c,
2919	testsuite/libffi.call/closure_fn3.c,
2920	testsuite/libffi.call/cls_sshort.c,
2921	testsuite/libffi.call/closure_fn5.c,
2922	testsuite/libffi.call/cls_align_double.c,
2923	testsuite/libffi.call/nested_struct.c,
2924	testsuite/libffi.call/cls_2byte.c,
2925	testsuite/libffi.call/nested_struct10.c,
2926	testsuite/libffi.call/cls_4byte.c,
2927	testsuite/libffi.call/cls_6byte.c,
2928	testsuite/libffi.call/cls_8byte.c,
2929	testsuite/libffi.call/cls_multi_sshort.c,
2930	testsuite/libffi.call/cls_align_sint16.c,
2931	testsuite/libffi.call/cls_align_uint32.c,
2932	testsuite/libffi.call/cls_20byte.c,
2933	testsuite/libffi.call/cls_float.c,
2934	testsuite/libffi.call/nested_struct2.c,
2935	testsuite/libffi.call/cls_5_1_byte.c,
2936	testsuite/libffi.call/nested_struct4.c,
2937	testsuite/libffi.call/cls_24byte.c,
2938	testsuite/libffi.call/nested_struct6.c,
2939	testsuite/libffi.call/cls_64byte.c,
2940	testsuite/libffi.call/nested_struct8.c,
2941	testsuite/libffi.call/cls_uint.c,
2942	testsuite/libffi.call/cls_multi_ushortchar.c,
2943	testsuite/libffi.call/cls_schar.c,
2944	testsuite/libffi.call/cls_uchar.c,
2945	testsuite/libffi.call/cls_align_uint64.c,
2946	testsuite/libffi.call/cls_ulonglong.c,
2947	testsuite/libffi.call/cls_align_longdouble.c,
2948	testsuite/libffi.call/cls_1_1byte.c,
2949	testsuite/libffi.call/cls_12byte.c,
2950	testsuite/libffi.call/cls_3_1byte.c,
2951	testsuite/libffi.call/cls_3byte1.c,
2952	testsuite/libffi.call/cls_4_1byte.c,
2953	testsuite/libffi.call/cls_6_1_byte.c,
2954	testsuite/libffi.call/cls_16byte.c,
2955	testsuite/libffi.call/cls_18byte.c,
2956	testsuite/libffi.call/closure_fn0.c,
2957	testsuite/libffi.call/cls_9byte2.c,
2958	testsuite/libffi.call/closure_fn2.c,
2959	testsuite/libffi.call/closure_fn4.c,
2960	testsuite/libffi.call/cls_ushort.c,
2961	testsuite/libffi.call/closure_fn6.c,
2962	testsuite/libffi.call/cls_5byte.c,
2963	testsuite/libffi.call/cls_align_pointer.c,
2964	testsuite/libffi.call/cls_7byte.c,
2965	testsuite/libffi.call/cls_align_sint32.c,
2966	testsuite/libffi.special/unwindtest_ffi_call.cc,
2967	testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2968
29692007-08-10  David Daney  <ddaney@avtrex.com>
2970
2971	PR libffi/28313
2972	* configure.ac: Don't treat mips64 as a special case.
2973	* Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2974	* configure: Regenerate
2975	* Makefile.in: Ditto.
2976	* fficonfig.h.in: Ditto.
2977	* src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2978	(LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2979	(FFI_DEFAULT_ABI): Set for n64 case.
2980	(FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2981	* src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2982	(ffi_closure_N32): New function.
2983	(.eh_frame): New section
2984	* src/mips/o32.S: Clean up comments.
2985	(ffi_closure_O32): Pass ffi_closure parameter in $12.
2986	* src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2987	_MIPS_SIM == _ABIN32 throughout.
2988	(FFI_MIPS_STOP_HERE): New, use in place of
2989	ffi_stop_here.
2990	(ffi_prep_args): Use unsigned long to hold pointer values.  Rewrite
2991	to support n32/n64 ABIs.
2992	(calc_n32_struct_flags): Rewrite.
2993	(calc_n32_return_struct_flags): Remove unused variable.  Reverse
2994	position of flag bits.
2995	(ffi_prep_cif_machdep): Rewrite n32 portion.
2996	(ffi_call): Enable for n64.  Add special handling for small structure
2997	return values.
2998	(ffi_prep_closure_loc): Add n32 and n64 support.
2999	(ffi_closure_mips_inner_O32): Add cast to silence warning.
3000	(copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
3001
30022007-08-08  David Daney  <ddaney@avtrex.com>
3003
3004	* testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
3005	* testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
3006	specifiers.
3007	* testsuite/libffi.call/nested_struct1.c (main): Ditto.
3008	* testsuite/libffi.call/cls_sint.c (main): Ditto.
3009	* testsuite/libffi.call/nested_struct9.c (main): Ditto.
3010	* testsuite/libffi.call/cls_20byte1.c (main): Ditto.
3011	* testsuite/libffi.call/cls_9byte1.c (main): Ditto.
3012	* testsuite/libffi.call/closure_fn1.c (main): Ditto.
3013	* testsuite/libffi.call/closure_fn3.c (main): Ditto.
3014	* testsuite/libffi.call/return_dbl2.c (main): Ditto.
3015	* testsuite/libffi.call/cls_sshort.c (main): Ditto.
3016	* testsuite/libffi.call/return_fl3.c (main): Ditto.
3017	* testsuite/libffi.call/closure_fn5.c (main): Ditto.
3018	* testsuite/libffi.call/nested_struct.c (main): Ditto.
3019	* testsuite/libffi.call/nested_struct10.c (main): Ditto.
3020	* testsuite/libffi.call/return_ll1.c (main): Ditto.
3021	* testsuite/libffi.call/cls_8byte.c (main): Ditto.
3022	* testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
3023	* testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
3024	* testsuite/libffi.call/cls_20byte.c (main): Ditto.
3025	* testsuite/libffi.call/nested_struct2.c (main): Ditto.
3026	* testsuite/libffi.call/cls_24byte.c (main): Ditto.
3027	* testsuite/libffi.call/nested_struct6.c (main): Ditto.
3028	* testsuite/libffi.call/cls_uint.c (main): Ditto.
3029	* testsuite/libffi.call/cls_12byte.c (main): Ditto.
3030	* testsuite/libffi.call/cls_16byte.c (main): Ditto.
3031	* testsuite/libffi.call/closure_fn0.c (main): Ditto.
3032	* testsuite/libffi.call/cls_9byte2.c (main): Ditto.
3033	* testsuite/libffi.call/closure_fn2.c (main): Ditto.
3034	* testsuite/libffi.call/return_dbl1.c (main): Ditto.
3035	* testsuite/libffi.call/closure_fn4.c (main): Ditto.
3036	* testsuite/libffi.call/closure_fn6.c (main): Ditto.
3037	* testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
3038
30392007-08-07  Andrew Haley  <aph@redhat.com>
3040
3041	* src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
3042	checkin.
3043
30442007-08-06  Andrew Haley  <aph@redhat.com>
3045
3046	PR testsuite/32843
3047	* src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
3048	FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
3049	FFI_TYPE_SINT32.
3050
30512007-08-02  David Daney  <ddaney@avtrex.com>
3052
3053	* testsuite/libffi.call/return_ul.c (main): Define return type as
3054	ffi_arg.  Use proper printf conversion specifier.
3055
30562007-07-30  Andrew Haley  <aph@redhat.com>
3057
3058	PR testsuite/32843
3059	* src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
3060	signed/unsigned int8/16.
3061	* src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
3062	Use a jump table.
3063	Remove code to pop args from the stack after call.
3064	Special-case signed/unsigned int8/16.
3065	* testsuite/libffi.call/return_sc.c (main): Revert.
3066
30672007-07-26  Richard Guenther  <rguenther@suse.de>
3068
3069	PR testsuite/32843
3070	* testsuite/libffi.call/return_sc.c (main): Verify call
3071	result as signed char, not ffi_arg.
3072
30732007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3074
3075	* configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
3076	* configure: Regenerate.
3077
30782007-07-11  David Daney  <ddaney@avtrex.com>
3079
3080	* src/mips/ffi.c: Don't include sys/cachectl.h.
3081	(ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
3082	cacheflush().
3083
30842007-05-18  Aurelien Jarno  <aurelien@aurel32.net>
3085
3086	* src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
3087	from (ffi_prep_closure): ... this.
3088	(FFI_INIT_TRAMPOLINE): Adjust.
3089
30902005-12-31  Phil Blundell  <pb@reciva.com>
3091
3092	* src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
3093	ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
3094	* src/arm/sysv.S(ffi_closure_SYSV): Likewise.
3095	* src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
3096	(FFI_CLOSURES): Enable closure support.
3097
30982007-07-03  Andrew Haley  <aph@hedges.billgatliff.com>
3099
3100	* testsuite/libffi.call/cls_multi_ushort.c,
3101	testsuite/libffi.call/cls_align_uint16.c,
3102	testsuite/libffi.call/nested_struct1.c,
3103	testsuite/libffi.call/nested_struct3.c,
3104	testsuite/libffi.call/cls_7_1_byte.c,
3105	testsuite/libffi.call/cls_double.c,
3106	testsuite/libffi.call/nested_struct5.c,
3107	testsuite/libffi.call/nested_struct7.c,
3108	testsuite/libffi.call/cls_sint.c,
3109	testsuite/libffi.call/nested_struct9.c,
3110	testsuite/libffi.call/cls_20byte1.c,
3111	testsuite/libffi.call/cls_multi_sshortchar.c,
3112	testsuite/libffi.call/cls_align_sint64.c,
3113	testsuite/libffi.call/cls_3byte2.c,
3114	testsuite/libffi.call/cls_multi_schar.c,
3115	testsuite/libffi.call/cls_multi_uchar.c,
3116	testsuite/libffi.call/cls_19byte.c,
3117	testsuite/libffi.call/cls_9byte1.c,
3118	testsuite/libffi.call/cls_align_float.c,
3119	testsuite/libffi.call/closure_fn1.c,
3120	testsuite/libffi.call/problem1.c,
3121	testsuite/libffi.call/closure_fn3.c,
3122	testsuite/libffi.call/cls_sshort.c,
3123	testsuite/libffi.call/closure_fn5.c,
3124	testsuite/libffi.call/cls_align_double.c,
3125	testsuite/libffi.call/cls_2byte.c,
3126	testsuite/libffi.call/nested_struct.c,
3127	testsuite/libffi.call/nested_struct10.c,
3128	testsuite/libffi.call/cls_4byte.c,
3129	testsuite/libffi.call/cls_6byte.c,
3130	testsuite/libffi.call/cls_8byte.c,
3131	testsuite/libffi.call/cls_multi_sshort.c,
3132	testsuite/libffi.call/cls_align_uint32.c,
3133	testsuite/libffi.call/cls_align_sint16.c,
3134	testsuite/libffi.call/cls_float.c,
3135	testsuite/libffi.call/cls_20byte.c,
3136	testsuite/libffi.call/cls_5_1_byte.c,
3137	testsuite/libffi.call/nested_struct2.c,
3138	testsuite/libffi.call/cls_24byte.c,
3139	testsuite/libffi.call/nested_struct4.c,
3140	testsuite/libffi.call/nested_struct6.c,
3141	testsuite/libffi.call/cls_64byte.c,
3142	testsuite/libffi.call/nested_struct8.c,
3143	testsuite/libffi.call/cls_uint.c,
3144	testsuite/libffi.call/cls_multi_ushortchar.c,
3145	testsuite/libffi.call/cls_schar.c,
3146	testsuite/libffi.call/cls_uchar.c,
3147	testsuite/libffi.call/cls_align_uint64.c,
3148	testsuite/libffi.call/cls_ulonglong.c,
3149	testsuite/libffi.call/cls_align_longdouble.c,
3150	testsuite/libffi.call/cls_1_1byte.c,
3151	testsuite/libffi.call/cls_12byte.c,
3152	testsuite/libffi.call/cls_3_1byte.c,
3153	testsuite/libffi.call/cls_3byte1.c,
3154	testsuite/libffi.call/cls_4_1byte.c,
3155	testsuite/libffi.call/cls_6_1_byte.c,
3156	testsuite/libffi.call/cls_16byte.c,
3157	testsuite/libffi.call/cls_18byte.c,
3158	testsuite/libffi.call/closure_fn0.c,
3159	testsuite/libffi.call/cls_9byte2.c,
3160	testsuite/libffi.call/closure_fn2.c,
3161	testsuite/libffi.call/closure_fn4.c,
3162	testsuite/libffi.call/cls_ushort.c,
3163	testsuite/libffi.call/closure_fn6.c,
3164	testsuite/libffi.call/cls_5byte.c,
3165	testsuite/libffi.call/cls_align_pointer.c,
3166	testsuite/libffi.call/cls_7byte.c,
3167	testsuite/libffi.call/cls_align_sint32.c,
3168	testsuite/libffi.special/unwindtest_ffi_call.cc,
3169	testsuite/libffi.special/unwindtest.cc: Enable for ARM.
3170
31712007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3172
3173	* aclocal.m4: Regenerated.
3174
31752007-06-02  Paolo Bonzini  <bonzini@gnu.org>
3176
3177	* configure: Regenerate.
3178
31792007-05-23  Steve Ellcey  <sje@cup.hp.com>
3180
3181	* Makefile.in: Regenerate.
3182	* configure: Regenerate.
3183	* aclocal.m4: Regenerate.
3184	* include/Makefile.in: Regenerate.
3185	* testsuite/Makefile.in: Regenerate.
3186
31872007-05-10  Roman Zippel <zippel@linux-m68k.org>
3188
3189	* src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
3190	ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
3191	* src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
3192	* src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
3193	(FFI_CLOSURES): Enable closure support.
3194
31952007-05-10  Roman Zippel <zippel@linux-m68k.org>
3196
3197	* configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
3198	* configure: Regenerate.
3199	* fficonfig.h.in: Regenerate.
3200	* src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
3201	CFI_OFFSET,CFI_DEF_CFA): New macros.
3202	(ffi_call_SYSV): Add callframe annotation.
3203
32042007-05-10  Roman Zippel <zippel@linux-m68k.org>
3205
3206	* src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
3207	numerous test suite failures.
3208	* src/m68k/sysv.S (ffi_call_SYSV): Likewise.
3209
32102007-04-11  Paolo Bonzini  <bonzini@gnu.org>
3211
3212	* Makefile.am (EXTRA_DIST): Bring up to date.
3213	* Makefile.in: Regenerate.
3214	* src/frv/eabi.S: Remove RCS keyword.
3215
32162007-04-06  Richard Henderson  <rth@redhat.com>
3217
3218	* configure.ac: Tidy target case.
3219	(HAVE_LONG_DOUBLE): Allow the target to override.
3220	* configure: Regenerate.
3221	* include/ffi.h.in: Don't define ffi_type_foo if
3222	LIBFFI_HIDE_BASIC_TYPES is defined.
3223	(ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
3224	to ffi_type_double.
3225	* types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
3226	(FFI_TYPEDEF, ffi_type_void): Mark the data const.
3227	(ffi_type_longdouble): Special case for Alpha.  Don't define
3228	if long double == double.
3229
3230	* src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
3231	(ffi_prep_cif_machdep): Handle it as the 128-bit type.
3232	(ffi_call, ffi_closure_osf_inner): Likewise.
3233	(ffi_closure_osf_inner): Likewise.  Mark hidden.
3234	(ffi_call_osf, ffi_closure_osf): Mark hidden.
3235	* src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
3236	* src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
3237	(load_table): Handle 128-bit long double.
3238
3239	* testsuite/libffi.call/float4.c: Add -mieee for alpha.
3240
32412007-04-06  Tom Tromey  <tromey@redhat.com>
3242
3243	PR libffi/31491:
3244	* README: Fixed bug in example.
3245
32462007-04-03  Jakub Jelinek  <jakub@redhat.com>
3247
3248	* src/closures.c: Include sys/statfs.h.
3249	(_GNU_SOURCE): Define on Linux.
3250	(FFI_MMAP_EXEC_SELINUX): Define.
3251	(selinux_enabled): New variable.
3252	(selinux_enabled_check): New function.
3253	(is_selinux_enabled): Define.
3254	(dlmmap): Use it.
3255
32562007-03-24  Uros Bizjak  <ubizjak@gmail.com>
3257
3258	* testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
3259	Use 'volatile float sum' to create sum of floats to avoid false
3260	negative due to excess precision on ix86 targets.
3261	(main): Ditto.
3262
32632007-03-08  Alexandre Oliva  <aoliva@redhat.com>
3264
3265	* src/powerpc/ffi.c (flush_icache): Fix left-over from previous
3266	patch.
3267	(ffi_prep_closure_loc): Remove unneeded casts.  Add needed ones.
3268
32692007-03-07  Alexandre Oliva  <aoliva@redhat.com>
3270
3271	* include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
3272	(ffi_prep_closure_loc): New.
3273	(ffi_prep_raw_closure_loc): New.
3274	(ffi_prep_java_raw_closure_loc): New.
3275	* src/closures.c: New file.
3276	* src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
3277	Replace sflags with exec_offset.
3278	[FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
3279	sub_segment_exec_offset): New macros.
3280	(get_segment_flags, set_segment_flags, check_segment_merge): New
3281	macros.
3282	(is_mmapped_segment, is_extern_segment): Use get_segment_flags.
3283	(add_segment, sys_alloc, create_mspace, create_mspace_with_base,
3284	destroy_mspace): Use new macros.
3285	(sys_alloc): Silence warning.
3286	* Makefile.am (libffi_la_SOURCES): Add src/closures.c.
3287	* Makefile.in: Rebuilt.
3288	* src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
3289	terms of ffi_prep_closure_loc.
3290	* src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
3291	from...
3292	(ffi_prep_raw_closure): ... this.  Re-implement in terms of the
3293	renamed version.
3294	* src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
3295	adjusted from...
3296	(ffi_prep_java_raw_closure): ... this.  Re-implement in terms of
3297	the renamed version.
3298	* src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
3299	(ffi_prep_closure): ... this.
3300	* src/pa/ffi.c: Likewise.
3301	* src/cris/ffi.c: Likewise.  Adjust.
3302	* src/frv/ffi.c: Likewise.
3303	* src/ia64/ffi.c: Likewise.
3304	* src/mips/ffi.c: Likewise.
3305	* src/powerpc/ffi_darwin.c: Likewise.
3306	* src/s390/ffi.c: Likewise.
3307	* src/sh/ffi.c: Likewise.
3308	* src/sh64/ffi.c: Likewise.
3309	* src/sparc/ffi.c: Likewise.
3310	* src/x86/ffi64.c: Likewise.
3311	* src/x86/ffi.c: Likewise.
3312	(FFI_INIT_TRAMPOLINE): Adjust.
3313	(ffi_prep_raw_closure_loc): Renamed and adjusted from...
3314	(ffi_prep_raw_closure): ... this.
3315	* src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
3316	(ffi_prep_closure): ... this.
3317	(flush_icache): Adjust.
3318
33192007-03-07  Alexandre Oliva  <aoliva@redhat.com>
3320
3321	* src/dlmalloc.c: New file, imported version 2.8.3 of Doug
3322	Lea's malloc.
3323
33242007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3325
3326	* Makefile.am: Add dummy install-pdf target.
3327	* Makefile.in: Regenerate
3328
33292007-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3330
3331	* src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
3332	ffi_closure_helper_SYSV): Add long double handling.
3333
33342007-02-02  Jakub Jelinek  <jakub@redhat.com>
3335
3336	* src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
3337	immediately after bctrl instruction.
3338
33392007-01-18  Alexandre Oliva  <aoliva@redhat.com>
3340
3341	* Makefile.am (all-recursive, install-recursive,
3342	mostlyclean-recursive, clean-recursive, distclean-recursive,
3343	maintainer-clean-recursive): Add missing targets.
3344	* Makefile.in: Rebuilt.
3345
33462006-12-14  Andreas Tobler  <a.tobler@schweiz.org>
3347
3348	* configure.ac: Add TARGET for x86_64-*-darwin*.
3349	* Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
3350	for X86_DARWIN.
3351	* src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
3352	* src/x86/darwin64.S: New file for x86_64-*-darwin* support.
3353	* configure: Regenerate.
3354	* Makefile.in: Regenerate.
3355	* include/Makefile.in: Regenerate.
3356	* testsuite/Makefile.in: Regenerate.
3357	* testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
3358	ffi_call only.
3359
33602006-12-13  Andreas Tobler <a.tobler@schweiz.org>
3361
3362	* aclocal.m4: Regenerate with aclocal -I .. as written in the
3363	Makefile.am.
3364
33652006-10-31  Geoffrey Keating  <geoffk@apple.com>
3366
3367	* src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
3368	(ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
3369	Darwin.
3370	* testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
3371	* testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
3372
33732006-10-10  Paolo Bonzini  <bonzini@gnu.org>
3374	    Sandro Tolaini  <tolaini@libero.it>
3375
3376	* configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
3377	conditional.
3378	* configure: Regenerated.
3379	* Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
3380	(EXTRA_DIST): Add src/x86/darwin.S.
3381	* Makefile.in: Regenerated.
3382	* include/Makefile.in: Regenerated.
3383	* testsuite/Makefile.in: Regenerated.
3384
3385	* src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
3386	X86_WIN32, and additionally align stack to 16 bytes.
3387	* src/x86/darwin.S: New, based on sysv.S.
3388	* src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
3389
33902006-09-12  David Daney  <ddaney@avtrex.com>
3391
3392	PR libffi/23935
3393	* include/Makefile.am: Install both ffi.h and ffitarget.h in
3394	$(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
3395	* aclocal.m4: Regenerated for automake 1.9.6.
3396	* Makefile.in: Regenerated.
3397	* include/Makefile.in: Regenerated.
3398	* testsuite/Makefile.in: Regenerated.
3399
34002006-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
3401
3402	* include/ffi_common.h (struct): Revert accidental commit.
3403
34042006-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
3405
3406	* include/ffi_common.h: Remove lint directives.
3407	* include/ffi.h.in: Likewise.
3408
34092006-07-25  Torsten Schoenfeld  <kaffeetisch@gmx.de>
3410
3411	* include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
3412	for 32-bit architectures.
3413	* testsuite/libffi.call/return_ul.c: New test case.
3414
34152006-07-19  David Daney  <ddaney@avtrex.com>
3416
3417	* testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
3418	xfail remains for mips64.
3419
34202006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
3421
3422	* Makefile.am: Add install-html target. Add install-html to .PHONY
3423	* Makefile.in: Regenerate.
3424	* aclocal.m4: Regenerate.
3425	* include/Makefile.in: Regenerate.
3426	* testsuite/Makefile.in: Regenerate.
3427
34282006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3429
3430	* pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
3431	stack slot.
3432
34332006-04-22  Andreas Tobler  <a.tobler@schweiz.ch>
3434
3435	* README: Remove notice about 'Crazy Comments'.
3436	* src/debug.c: Remove lint directives. Cleanup white spaces.
3437	* src/java_raw_api.c: Likewise.
3438	* src/prep_cif.c: Likewise.
3439	* src/raw_api.c: Likewise.
3440	* src/ffitest.c: Delete. No longer needed, all test cases migrated
3441	to the testsuite.
3442	* src/arm/ffi.c: Remove lint directives.
3443	* src/m32r/ffi.c: Likewise.
3444	* src/pa/ffi.c: Likewise.
3445	* src/powerpc/ffi.c: Likewise.
3446	* src/powerpc/ffi_darwin.c: Likewise.
3447	* src/sh/ffi.c: Likewise.
3448	* src/sh64/ffi.c: Likewise.
3449	* src/x86/ffi.c: Likewise.
3450	* testsuite/libffi.call/float2.c: Likewise.
3451	* testsuite/libffi.call/promotion.c: Likewise.
3452	* testsuite/libffi.call/struct1.c: Likewise.
3453
34542006-04-13  Andreas Tobler  <a.tobler@schweiz.ch>
3455
3456	* src/pa/hpux32.S: Correct unwind offset calculation for
3457	ffi_closure_pa32.
3458	* src/pa/linux.S: Likewise.
3459
34602006-04-12  James E Wilson  <wilson@specifix.com>
3461
3462	PR libgcj/26483
3463	* src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
3464	(hfa_type_load): Call stf_spill.
3465	(hfa_type_store): Call ldf_fill.
3466	(ffi_call): Adjust calls to above routines.  Add local temps for
3467	macro result.
3468
34692006-04-10  Matthias Klose  <doko@debian.org>
3470
3471	* testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
3472	directory names containing underscores.
3473
34742006-04-07  James E Wilson  <wilson@specifix.com>
3475
3476	* testsuite/libffi.call/float4.c: New testcase.
3477
34782006-04-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3479	    Andreas Tobler  <a.tobler@schweiz.ch>
3480
3481	* Makefile.am: Add PA_HPUX port.
3482	* Makefile.in: Regenerate.
3483	* include/Makefile.in: Likewise.
3484	* testsuite/Makefile.in: Likewise.
3485	* configure.ac: Add PA_HPUX rules.
3486	* configure: Regenerate.
3487	* src/pa/ffitarget.h: Rename linux target to PA_LINUX.
3488	Add PA_HPUX and PA64_HPUX.
3489	Rename FFI_LINUX ABI to FFI_PA32 ABI.
3490	(FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
3491	(FFI_TYPE_SMALL_STRUCT2): Define.
3492	(FFI_TYPE_SMALL_STRUCT4): Likewise.
3493	(FFI_TYPE_SMALL_STRUCT8): Likewise.
3494	(FFI_TYPE_SMALL_STRUCT3): Redefine.
3495	(FFI_TYPE_SMALL_STRUCT5): Likewise.
3496	(FFI_TYPE_SMALL_STRUCT6): Likewise.
3497	(FFI_TYPE_SMALL_STRUCT7): Likewise.
3498	* src/pa/ffi.c (ROUND_DOWN): Delete.
3499	(fldw, fstw, fldd, fstd): Use '__asm__'.
3500	(ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
3501	FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
3502	(ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
3503	Simplify incrementing of stack slot variable. Change type of local
3504	'n' to unsigned int.
3505	(ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
3506	double on PA_HPUX.
3507	(ffi_prep_cif_machdep): Likewise.
3508	(ffi_call): Likewise.
3509	(ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
3510	return type to ffi_status. Simplify incrementing of stack slot
3511	variable. Only copy floating point argument registers when PA_LINUX
3512	is true. Reformat debug statement.
3513	Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
3514	FFI_TYPE_SMALL_STRUCT8.
3515	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
3516	declaration.
3517	(ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
3518	Add nops to cache flush.  Add trampoline for PA_HPUX.
3519	* src/pa/hpux32.S: New file.
3520	* src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
3521	ffi_prep_args_LINUX to ffi_prep_args_pa32.
3522	Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
3523	unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
3524	argument type checks so that common argument types appear first.
3525	(ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
3526	ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
3527
35282006-03-24  Alan Modra  <amodra@bigpond.net.au>
3529
3530	* src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX.  Default
3531	for 32-bit using IBM extended double format.  Fix FFI_LAST_ABI.
3532	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
3533	FFI_TYPE_LONGDOUBLE.
3534	(ffi_prep_args64): Assert using IBM extended double.
3535	(ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
3536	Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
3537	(ffi_call): Handle FFI_LINUX.
3538	(ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
3539	gpr3 return pointer as for struct return.  Handle FFI_LINUX
3540	FFI_TYPE_LONGDOUBLE return and args.  Don't increment "nf"
3541	unnecessarily.
3542	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
3543	for FFI_TYPE_LONGDOUBLE.  Move epilogue insns into case table.
3544	Don't use r6 as pointer to results, instead use sp offset.  Don't
3545	make a special call to load lr with case table address, instead
3546	use offset from previous call.
3547	* src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
3548	* src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
3549	return.
3550
35512006-03-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3552
3553	* src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
3554	passed with FP registers correctly.
3555	(ffi_closure_helper_SYSV): Likewise.
3556	* src/sh64/sysv.S: Likewise.
3557
35582006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>
3559
3560	* testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
3561	args and userdata unused.
3562	(closure_test_fn1): Mark cif and userdata unused.
3563	(main): Remove unused res.
3564
35652006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>
3566
3567	* testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
3568	-O2, -O3, -Os and the warning flags -W -Wall.
3569	* testsuite/libffi.special/special.exp: Likewise.
3570	* testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
3571	unused parameter unused for gcc or else do nothing.
3572	* testsuite/libffi.special/ffitestcxx.h: Likewise.
3573	* testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
3574	and userdata unused.
3575	* testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
3576	* testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
3577	* testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
3578	* testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
3579	* testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
3580	* testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
3581	* testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
3582	* testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
3583	* testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
3584	* testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
3585	* testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
3586	* testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
3587	* testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
3588	* testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
3589	* testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
3590	* testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
3591	* testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
3592	* testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
3593	* testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3594	* testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3595	* testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3596	* testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3597	* testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3598	* testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3599	Likewise.
3600	* testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3601	Likewise.
3602	* testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3603	Likewise.
3604	* testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3605	void* to avoid compiler warning.
3606	(main): Likewise.
3607	(cls_struct_align_gn): Mark cif and userdata unused.
3608	* testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3609	Likewise.
3610	* testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3611	Likewise.
3612	* testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3613	Likewise.
3614	* testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3615	Likewise.
3616	* testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3617	Likewise.
3618	* testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3619	* testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3620	* testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3621	data unused.
3622	(main): Cast res_call to silence gcc.
3623	* testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3624	data unused.
3625	(main): Cast res_call to silence gcc.
3626	* testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3627	and data unused.
3628	(main): Cast res_call to silence gcc.
3629	* testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3630	data unused.
3631	(main): Cast res_call to silence gcc.
3632	* testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3633	data unused.
3634	(main): Cast res_call to silence gcc.
3635	* testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3636	and data unused.
3637	(main): Cast res_call to silence gcc.
3638	* testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3639	userdata unused.
3640	(cls_ret_schar_fn): Cast printf parameter to silence gcc.
3641	* testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3642	userdata unused.
3643	(cls_ret_sint_fn): Cast printf parameter to silence gcc.
3644	* testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3645	userdata unused.
3646	(cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3647	* testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
3648	userdata unused.
3649	(cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3650	* testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3651	userdata unused.
3652	(cls_ret_uint_fn): Cast printf parameter to silence gcc.
3653	* testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3654	and userdata unused.
3655	* testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3656	userdata unused.
3657	(cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3658	* testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3659	* testsuite/libffi.call/float1.c (main): Remove unused variable i.
3660	Cleanup white spaces.
3661	* testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3662	* testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3663	cif and userdata unused.
3664	* testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3665	Likewise.
3666	* testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3667	* testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3668	formatters to silence gcc.
3669	(B_gn): Mark cif and userdata unused.
3670	* testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3671	unused.
3672	* testsuite/libffi.call/nested_struct4.c: Mention related PR.
3673	(B_gn): Mark cif and userdata unused.
3674	* testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3675	unused.
3676	* testsuite/libffi.call/nested_struct6.c: Mention related PR.
3677	(B_gn): Mark cif and userdata unused.
3678	* testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3679	unused.
3680	* testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3681	* testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3682	* testsuite/libffi.call/problem1.c (stub): Likewise.
3683	* testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3684	gcc.
3685	* testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3686	in the last commit for this test case in the test case itself.
3687	* testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3688	unused.
3689	* testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3690	* testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3691	* testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3692	* testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3693	* testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3694	* testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3695
36962006-02-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3697
3698	* src/sh/sysv.S: Fix register numbers in the FDE for
3699	ffi_closure_SYSV.
3700
37012006-02-20  Andreas Tobler  <a.tobler@schweiz.ch>
3702
3703	* testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3704	declaration to avoid a false negative on ix86. See PR323.
3705
37062006-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3707
3708	* src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3709	and cast integer to void * if needed.  Update the pointer to
3710	the FP register saved area correctly.
3711
37122006-02-17  Andreas Tobler  <a.tobler@schweiz.ch>
3713
3714	* testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3715	is fixed.
3716	* testsuite/libffi.call/nested_struct4.c: Likewise.
3717
37182006-02-16  Andreas Tobler  <a.tobler@schweiz.ch>
3719
3720	* testsuite/libffi.call/return_dbl.c: New test case.
3721	* testsuite/libffi.call/return_dbl1.c: Likewise.
3722	* testsuite/libffi.call/return_dbl2.c: Likewise.
3723	* testsuite/libffi.call/return_fl.c: Likewise.
3724	* testsuite/libffi.call/return_fl1.c: Likewise.
3725	* testsuite/libffi.call/return_fl2.c: Likewise.
3726	* testsuite/libffi.call/return_fl3.c: Likewise.
3727	* testsuite/libffi.call/closure_fn6.c: Likewise.
3728
3729	* testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3730	definition.
3731	* testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3732	here to be used by other test cases too.
3733
3734	* testsuite/libffi.call/nested_struct10.c: New test case.
3735	* testsuite/libffi.call/nested_struct9.c: Likewise.
3736	* testsuite/libffi.call/nested_struct8.c: Likewise.
3737	* testsuite/libffi.call/nested_struct7.c: Likewise.
3738	* testsuite/libffi.call/nested_struct6.c: Likewise.
3739	* testsuite/libffi.call/nested_struct5.c: Likewise.
3740	* testsuite/libffi.call/nested_struct4.c: Likewise.
3741
37422006-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
3743
3744	* configure.ac: Enable libffi for sparc64-*-freebsd*.
3745	* configure: Rebuilt.
3746
37472006-01-18  Jakub Jelinek  <jakub@redhat.com>
3748
3749	* src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3750	instead do the shifting inline.
3751	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3752	shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
3753	and 8 byte structs, for the remaining struct sizes don't call
3754	__lshrdi3, instead do the shifting inline.
3755
37562005-12-07  Thiemo Seufer  <ths@networkno.de>
3757
3758	* src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3759	missing parentheses.
3760	* src/mips/o32.S (ffi_call_O32): Code formatting. Define
3761	and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3762	(ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3763	A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3764	V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3765	FA_0_0_OFF2.
3766	* src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3767	endianness bugs.
3768	(ffi_prep_closure): Improve trampoline instruction scheduling.
3769	(ffi_closure_mips_inner_O32): Fix endianness bugs.
3770
37712005-12-03  Alan Modra  <amodra@bigpond.net.au>
3772
3773	* src/powerpc/ffi.c: Formatting.
3774	(ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3775	(ffi_prep_args64): Likewise.
3776
37772005-09-30  Geoffrey Keating  <geoffk@apple.com>
3778
3779	* testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3780	darwin, use -shared-libgcc not -lgcc_s, and explain why.
3781
37822005-09-26  Tom Tromey  <tromey@redhat.com>
3783
3784	* testsuite/libffi.call/float1.c (value_type): New typedef.
3785	(CANARY): New define.
3786	(main): Check for result buffer overflow.
3787	* src/powerpc/linux64.S: Handle linux64 long double returns.
3788	* src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3789	(ffi_prep_cif_machdep): Handle linux64 long double returns.
3790
37912005-08-25  Alan Modra  <amodra@bigpond.net.au>
3792
3793	PR target/23404
3794	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3795	homed fp args.
3796	(ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3797
37982005-08-11  Jakub Jelinek  <jakub@redhat.com>
3799
3800	* configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3801	(AH_BOTTOM): Add FFI_HIDDEN definition.
3802	* configure: Rebuilt.
3803	* fficonfig.h.in: Rebuilt.
3804	* src/powerpc/ffi.c (hidden): Remove.
3805	(ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3806	ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3807	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3808	.ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3809	* src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3810	add FFI_HIDDEN to its prototype.
3811	(ffi_closure_SYSV_inner): New.
3812	* src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3813	* src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3814
38152005-08-10  Alfred M. Szmidt  <ams@gnu.org>
3816
3817	PR libffi/21819:
3818	* configure: Rebuilt.
3819	* configure.ac: Handle i*86-*-gnu*.
3820
38212005-08-09  Jakub Jelinek  <jakub@redhat.com>
3822
3823	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3824	DW_CFA_offset_extended_sf rather than
3825	DW_CFA_GNU_negative_offset_extended.
3826	* src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3827
38282005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
3829
3830	* src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3831	on sh3.
3832	(ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3833	* src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3834	partially on register.
3835	(ffi_closure_helper_SYSV): Likewise.
3836	(ffi_prep_cif_machdep): Don't set too many cif->flags.
3837
38382005-07-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3839
3840	* src/sh/ffi.c (ffi_call): Handle small structures correctly.
3841	Remove empty line.
3842	* src/sh64/ffi.c (simple_type): Remove.
3843	(return_type): Handle small structures correctly.
3844	(ffi_prep_args): Likewise.
3845	(ffi_call): Likewise.
3846	(ffi_closure_helper_SYSV): Likewise.
3847	* src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3848	Emit position independent code if PIC and remove wrong datalabel
3849	prefixes from EH data.
3850
38512005-07-19  Andreas Tobler  <a.tobler@schweiz.ch>
3852
3853	* Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3854	* Makefile.in: Regenerate.
3855	* include/Makefile.in: Likewise.
3856	* testsuite/Makefile.in: Likewise.
3857	* configure.ac: Add POWERPC_FREEBSD rules.
3858	* configure: Regenerate.
3859	* src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3860	(FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3861	* src/powerpc/ffi.c: Add flags to handle small structure returns
3862	in ffi_call_SYSV.
3863	(ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3864	Aka FFI_SYSV.
3865	(ffi_closure_helper_SYSV): Likewise.
3866	* src/powerpc/ppc_closure.S: Add return types for small structures.
3867	* src/powerpc/sysv.S: Add bits to handle small structures for
3868	final SYSV 4 ABI.
3869
38702005-07-10  Andreas Tobler  <a.tobler@schweiz.ch>
3871
3872	* testsuite/libffi.call/cls_5_1_byte.c: New test file.
3873	* testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3874	* testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3875
38762005-07-05  Randolph Chung  <tausq@debian.org>
3877
3878	* src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3879	as FFI_TYPE_SMALL_STRUCT3.  Break out handling for 5-7 byte
3880	structures.  Kill compilation warnings.
3881	(ffi_closure_inner_LINUX): Print return values as hex in debug
3882	message.  Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3883	Properly handle 5-7 byte structure returns.
3884	* src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3885	(FFI_TYPE_SMALL_STRUCT2): Remove.
3886	(FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3887	(FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3888	* src/pa/linux.S: Mark source file as using PA1.1 assembly.
3889	(checksmst1, checksmst2): Remove.
3890	(checksmst3): Optimize handling of 3-byte struct returns.
3891	(checksmst567): Properly handle 5-7 byte struct returns.
3892
38932005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3894
3895	PR libgcj/21943
3896	* src/mips/n32.S: Enforce PIC code.
3897	* src/mips/o32.S: Likewise.
3898
38992005-06-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3900
3901	* configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3902	* configure: Regenerate.
3903
39042005-06-01  Alan Modra  <amodra@bigpond.net.au>
3905
3906	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3907	to call ffi_closure_helper_SYSV.  Append @local instead.
3908	* src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3909
39102005-05-17  Kelley Cook  <kcook@gcc.gnu.org>
3911
3912	* configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3913	Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3914	* Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3915	* aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3916	include/Makefile.in, testsuite/Makefile.in: Regenerate.
3917
39182005-05-09  Mike Stump  <mrs@apple.com>
3919
3920	* configure: Regenerate.
3921
39222005-05-08  Richard Henderson  <rth@redhat.com>
3923
3924	PR libffi/21285
3925	* src/alpha/osf.S: Update unwind into to match code.
3926
39272005-05-04  Andreas Degert <ad@papyrus-gmbh.de>
3928	    Richard Henderson  <rth@redhat.com>
3929
3930	* src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3931	bit 11 of flags.
3932	(ffi_call): Mask return type field.  Pass ssecount to ffi_call_unix64.
3933	(ffi_prep_closure): Set carry bit if sse-used flag set.
3934	* src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3935	Only load sse registers if ssecount non-zero.
3936	(ffi_closure_unix64): Only save sse registers if carry set on entry.
3937
39382005-04-29  Ralf Corsepius  <ralf.corsepius@rtems.org>
3939
3940	* configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3941	powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3942	* configure: Regenerate.
3943
39442005-04-20  Hans-Peter Nilsson  <hp@axis.com>
3945
3946	* testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3947	have Tcl8.3-compatible intermediate variable.
3948
39492005-04-18  Simon Posnjak <simon.posnjak@siol.net>
3950	    Hans-Peter Nilsson  <hp@axis.com>
3951
3952	* Makefile.am: Add CRIS support.
3953	* configure.ac: Likewise.
3954	* Makefile.in, configure, testsuite/Makefile.in,
3955	include/Makefile.in: Regenerate.
3956	* src/cris: New directory.
3957	* src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3958	* src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3959
3960	* testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3961	\r?\n in output tests.
3962
39632005-04-12  Mike Stump  <mrs@apple.com>
3964
3965	* configure: Regenerate.
3966
39672005-03-30  Hans Boehm  <Hans.Boehm@hp.com>
3968
3969	* src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
3970
39712005-03-30  Steve Ellcey  <sje@cup.hp.com>
3972
3973	* src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3974	(ffi_sarg) Ditto.
3975	* src/ia64/unix.S (ffi_closure_unix): Extend gp
3976	to 64 bits in ILP32 mode.
3977	Load 64 bits even for short data.
3978
39792005-03-23  Mike Stump  <mrs@apple.com>
3980
3981	* src/powerpc/darwin.S: Update for -m64 multilib.
3982	* src/powerpc/darwin_closure.S: Likewise.
3983
39842005-03-21  Zack Weinberg  <zack@codesourcery.com>
3985
3986	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
3987	Do not set tool_include_dir.
3988	* aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3989	Regenerate.
3990	* include/Makefile.am: Set gcc_version and toollibffidir.
3991	* include/Makefile.in: Regenerate.
3992
39932005-02-22  Andrew Haley  <aph@redhat.com>
3994
3995	* src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3996	odd-numbered register pairs for 64-bit integer types.
3997
39982005-02-23  Andreas Tobler  <a.tobler@schweiz.ch>
3999
4000	PR libffi/20104
4001	* testsuite/libffi.call/return_ll1.c: New test case.
4002
40032005-02-11  Janis Johnson  <janis187@us.ibm.com>
4004
4005	* testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
4006	* testsuite/libffi.call/float.c: Ditto.
4007	* testsuite/libffi.call/float2.c: Ditto.
4008	* testsuite/libffi.call/float3.c: Ditto.
4009
40102005-02-08  Andreas Tobler  <a.tobler@schweiz.ch>
4011
4012	* src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
4013
40142005-01-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
4015
4016	* testsuite/libffi.special/special.exp (cxx_options): Add
4017	-shared-libgcc.
4018
40192004-12-31  Richard Henderson  <rth@redhat.com>
4020
4021	* src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
4022	(FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF.  Replace size and
4023	offset parameters with a type parameter; deduce size and structure
4024	alignment.  Update all users.
4025
40262004-12-31  Richard Henderson  <rth@redhat.com>
4027
4028	* src/types.c (FFI_TYPE_POINTER): Define with sizeof.
4029	(FFI_TYPE_LONGDOUBLE): Fix for ia64.
4030	* src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
4031	into ffi_prep_closure.
4032	* src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
4033	from scratch.
4034
40352004-12-27  Richard Henderson  <rth@redhat.com>
4036
4037	* src/x86/unix64.S: Fix typo in unwind info.
4038
40392004-12-25  Richard Henderson  <rth@redhat.com>
4040
4041	* src/x86/ffi64.c (struct register_args): Rename from stackLayout.
4042	(enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
4043	(merge_classes): Check for it.
4044	(SSE_CLASS_P): New.
4045	(classify_argument): Pass byte_offset by value; perform all updates
4046	inside struct case.
4047	(examine_argument): Add classes argument; handle
4048	X86_64_COMPLEX_X87_CLASS.
4049	(ffi_prep_args): Merge into ...
4050	(ffi_call): ... here.  Share stack frame with ffi_call_unix64.
4051	(ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
4052	(ffi_fill_return_value): Remove.
4053	(ffi_prep_closure): Remove dead assert.
4054	(ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
4055	Rewrite to use struct register_args instead of va_list.  Create
4056	flags for handling structure returns.
4057	* src/x86/unix64.S: Remove dead strings.
4058	(ffi_call_unix64): Rename from ffi_call_UNIX64.  Rewrite to share
4059	stack frame with ffi_call.  Handle structure returns properly.
4060	(float2sse, floatfloat2sse, double2sse): Remove.
4061	(sse2float, sse2double, sse2floatfloat): Remove.
4062	(ffi_closure_unix64): Rename from ffi_closure_UNIX64.  Rewrite
4063	to handle structure returns properly.
4064
40652004-12-08  David Edelsohn  <edelsohn@gnu.org>
4066
4067	* Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
4068	PICFLAG.
4069	* Makefile.in: Regenerated.
4070
40712004-12-02  Richard Sandiford  <rsandifo@redhat.com>
4072
4073	* configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
4074	* configure, aclocal.m4, Makefile.in: Regenerate.
4075	* include/Makefile.in, testsuite/Makefile.in: Regenerate.
4076
40772004-11-29  Kelley Cook  <kcook@gcc.gnu.org>
4078
4079	* configure: Regenerate for libtool change.
4080
40812004-11-25  Kelley Cook  <kcook@gcc.gnu.org>
4082
4083	* configure: Regenerate for libtool reversion.
4084
40852004-11-24  Kelley Cook  <kcook@gcc.gnu.org>
4086
4087	* configure: Regenerate for libtool change.
4088
40892004-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4090
4091	* testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
4092
40932004-11-23  Richard Sandiford  <rsandifo@redhat.com>
4094
4095	* src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
4096	of jal.  Use an absolute encoding for the frame information.
4097
40982004-11-23  Kelley Cook  <kcook@gcc.gnu.org>
4099
4100	* Makefile.am: Remove no-dependencies.  Add ACLOCAL_AMFLAGS.
4101	* acinclude.m4: Delete logic for sincludes.
4102	* aclocal.m4, Makefile.in, configure: Regenerate.
4103	* include/Makefile: Likewise.
4104	* testsuite/Makefile: Likewise.
4105
41062004-11-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4107
4108	* src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
4109	on a 8-byte boundary.
4110	* src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
4111
41122004-10-27  Richard Earnshaw  <rearnsha@arm.com>
4113
4114	* src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
4115	long long values.  Round stack allocation to a multiple of 8 bytes
4116	for ATPCS compatibility.
4117	* src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
4118	names.  Handle returning long long types.  Add Thumb and interworking
4119	support.  Improve soft-float code.
4120
41212004-10-27  Richard Earnshaw  <rearnsha@arm.com>
4122
4123	* testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
4124	(libffi_exit): New function.
4125	(libffi_init): Build the testglue wrapper if needed.
4126
41272004-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4128
4129	PR other/18138
4130	* testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
4131
41322004-10-25  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4133
4134	* src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
4135
41362004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4137
4138	* src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
4139	* testsuite/libffi.call/float3.c: New test case.
4140
41412004-10-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4142
4143	* src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
4144	the function returning a structure pointed with R2.
4145	* src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
4146	the structure return value if T bit set.  Emit position
4147	independent code and EH data if PIC.
4148
41492004-10-13  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4150
4151	* Makefile.am: Add m32r support.
4152	* configure.ac: Likewise.
4153	* Makefile.in: Regenerate.
4154	* confiugre: Regenerate.
4155	* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
4156	(uint64, sint64, double, longdouble)
4157	* src/m32r: New directory.
4158	* src/m32r/ffi.c: New file.
4159	* src/m32r/sysv.S: Likewise.
4160	* src/m32r/ffitarget.h: Likewise.
4161
41622004-10-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4163
4164	* testsuite/libffi.call/negint.c: New test case.
4165
41662004-09-14  H.J. Lu  <hongjiu.lu@intel.com>
4167
4168	PR libgcj/17465
4169	* testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
4170	Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
4171	LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
4172	DYLD_LIBRARY_PATH.
4173
41742004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
4175
4176	* testsuite/libffi.call/many_win32.c: Remove whitespaces.
4177	* testsuite/libffi.call/promotion.c: Likewise.
4178	* testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
4179	whitespaces.
4180	* testsuite/libffi.call/return_sc.c: Likewise.
4181	* testsuite/libffi.call/return_uc.c: Likewise.
4182
41832004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>
4184
4185	* src/powerpc/darwin.S: Fix comments and identation.
4186	* src/powerpc/darwin_closure.S: Likewise.
4187
41882004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
4189
4190	* src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
4191	(ffi_prep_args): Handle longdouble arguments.
4192	(ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
4193	longdouble.
4194	(ffi_closure_helper_DARWIN): Add closure handling for longdouble.
4195	* src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
4196	values.
4197	* src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
4198	* src/types.c: Defined longdouble size and alignment for darwin.
4199
42002004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>
4201
4202	* src/powerpc/aix.S: Remove whitespaces.
4203	* src/powerpc/aix_closure.S: Likewise.
4204	* src/powerpc/asm.h: Likewise.
4205	* src/powerpc/ffi.c: Likewise.
4206	* src/powerpc/ffitarget.h: Likewise.
4207	* src/powerpc/linux64.S: Likewise.
4208	* src/powerpc/linux64_closure.S: Likewise.
4209	* src/powerpc/ppc_closure.S: Likewise.
4210	* src/powerpc/sysv.S: Likewise.
4211
42122004-08-30  Anthony Green  <green@redhat.com>
4213
4214	* Makefile.am: Add frv support.
4215	* Makefile.in, testsuite/Makefile.in: Rebuilt.
4216	* configure.ac: Read configure.host.
4217	* configure.in: Read configure.host.
4218	* configure.host: New file.  frv-elf needs libgloss.
4219	* include/ffi.h.in: Force ffi_closure to have a nice big (8)
4220	alignment.  This is needed to frv and shouldn't harm the others.
4221	* include/ffi_common.h (ALIGN_DOWN): New macro.
4222	* src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
4223
42242004-08-24  David Daney  <daney@avtrex.com>
4225
4226	* testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
4227	* testsuite/libffi.call/closure_fn1.c: Likewise.
4228	* testsuite/libffi.call/closure_fn2.c  Likewise.
4229	* testsuite/libffi.call/closure_fn3.c: Likewise.
4230	* testsuite/libffi.call/closure_fn4.c: Likewise.
4231	* testsuite/libffi.call/closure_fn5.c: Likewise.
4232	* testsuite/libffi.call/cls_18byte.c: Likewise.
4233	* testsuite/libffi.call/cls_19byte.c: Likewise.
4234	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
4235	* testsuite/libffi.call/cls_20byte.c: Likewise.
4236	* testsuite/libffi.call/cls_20byte1.c: Likewise.
4237	* testsuite/libffi.call/cls_24byte.c: Likewise.
4238	* testsuite/libffi.call/cls_2byte.c: Likewise.
4239	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
4240	* testsuite/libffi.call/cls_3byte1.c: Likewise.
4241	* testsuite/libffi.call/cls_3byte2.c: Likewise.
4242	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
4243	* testsuite/libffi.call/cls_4byte.c: Likewise.
4244	* testsuite/libffi.call/cls_64byte.c: Likewise.
4245	* testsuite/libffi.call/cls_6byte.c: Likewise.
4246	* testsuite/libffi.call/cls_7byte.c: Likewise.
4247	* testsuite/libffi.call/cls_8byte.c: Likewise.
4248	* testsuite/libffi.call/cls_9byte1.c: Likewise.
4249	* testsuite/libffi.call/cls_9byte2.c: Likewise.
4250	* testsuite/libffi.call/cls_align_double.c: Likewise.
4251	* testsuite/libffi.call/cls_align_float.c: Likewise.
4252	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4253	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
4254	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
4255	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
4256	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
4257	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
4258	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
4259	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
4260	* testsuite/libffi.call/cls_double.c: Likewise.
4261	* testsuite/libffi.call/cls_float.c: Likewise.
4262	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
4263	* testsuite/libffi.call/cls_multi_sshort.c: Likewise.
4264	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4265	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4266	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4267	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4268	* testsuite/libffi.call/cls_schar.c: Likewise.
4269	* testsuite/libffi.call/cls_sint.c: Likewise.
4270	* testsuite/libffi.call/cls_sshort.c: Likewise.
4271	* testsuite/libffi.call/cls_uchar.c: Likewise.
4272	* testsuite/libffi.call/cls_uint.c: Likewise.
4273	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
4274	* testsuite/libffi.call/cls_ushort.c: Likewise.
4275	* testsuite/libffi.call/nested_struct.c: Likewise.
4276	* testsuite/libffi.call/nested_struct1.c: Likewise.
4277	* testsuite/libffi.call/nested_struct2.c: Likewise.
4278	* testsuite/libffi.call/nested_struct3.c: Likewise.
4279	* testsuite/libffi.call/problem1.c: Likewise.
4280	* testsuite/libffi.special/unwindtest.cc: Likewise.
4281	* testsuite/libffi.call/cls_12byte.c: Likewise and set return value
4282	to zero.
4283	* testsuite/libffi.call/cls_16byte.c: Likewise.
4284	* testsuite/libffi.call/cls_5byte.c: Likewise.
4285
42862004-08-23  David Daney <daney@avtrex.com>
4287
4288	PR libgcj/13141
4289	* src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
4290	* src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
4291	(ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
4292	parameters and return types.
4293	(ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
4294	(ffi_prep_closure): Ditto.
4295	(ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
4296	alignment calculations.
4297	* src/mips/o32.S (ffi_closure_O32): Don't use floating point
4298	instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
4299
43002004-08-14  Casey Marshall <csm@gnu.org>
4301
4302	* src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
4303	contain `FFI_TYPE_UINT64' as return type for any 64-bit
4304	integer (O32 ABI only).
4305	(ffi_prep_closure): new function.
4306	(ffi_closure_mips_inner_O32): new function.
4307	* src/mips/ffitarget.h: Define `FFI_CLOSURES' and
4308	`FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
4309	* src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
4310	64 bit integers correctly.
4311	(ffi_closure_O32): new function.
4312	Added DWARF-2 unwind info for both functions.
4313
43142004-08-10  Andrew Haley  <aph@redhat.com>
4315
4316	* src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
4317
43182004-08-01  Robert Millan  <robertmh@gnu.org>
4319
4320	* configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
4321	* configure: Regenerate.
4322
43232004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
4324
4325	* acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4326	and mmap() explicitly instead of relying on preset autoconf cache
4327	variables.
4328	* aclocal.m4: Regenerate.
4329	* configure: Regenerate.
4330
43312004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
4332
4333	* src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
4334	(ffi_check_float_struct): Remove unused prototype.
4335
43362004-06-30  Geoffrey Keating  <geoffk@apple.com>
4337
4338	* src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
4339	character on Darwin, use '\n\t' instead.
4340
43412004-06-26  Matthias Klose  <doko@debian.org>
4342
4343	* libtool-version: Fix typo in revision/age.
4344
43452004-06-17  Matthias Klose  <doko@debian.org>
4346
4347	* libtool-version: New.
4348	* Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
4349	* Makefile.in: Regenerate.
4350
43512004-06-15  Paolo Bonzini  <bonzini@gnu.org>
4352
4353	* Makefile.am: Remove useless multilib rules.
4354	* Makefile.in: Regenerate.
4355	* aclocal.m4: Regenerate with automake 1.8.5.
4356	* configure.ac: Remove useless multilib configury.
4357	* configure: Regenerate.
4358
43592004-06-15  Paolo Bonzini  <bonzini@gnu.org>
4360
4361	* .cvsignore: New file.
4362
43632004-06-10  Jakub Jelinek  <jakub@redhat.com>
4364
4365	* src/ia64/unix.S (ffi_call_unix): Insert group barrier break
4366	fp_done.
4367	(ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
4368	changed from 8.
4369
43702004-06-06  Sean McNeil  <sean@mcneil.com>
4371
4372	* configure.ac: Add x86_64-*-freebsd* support.
4373	* configure: Regenerate.
4374
43752004-04-26  Joe Buck <jbuck@welsh-buck.org>
4376
4377	Bug 15093
4378	* configure.ac: Test for existence of mmap and sys/mman.h before
4379	checking blacklist.  Fix suggested by Jim Wilson.
4380	* configure: Regenerate.
4381
43822004-04-26  Matt Austern  <austern@apple.com>
4383
4384	* src/powerpc/darwin.S: Go through a non-lazy pointer for initial
4385	FDE location.
4386	* src/powerpc/darwin_closure.S: Likewise.
4387
43882004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>
4389
4390	* testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
4391	error. Reported by Thomas Heller <theller@python.net>.
4392	* testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
4393	* testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
4394
43952004-03-20  Matthias Klose  <doko@debian.org>
4396
4397	* src/pa/linux.S: Fix typo.
4398
43992004-03-19  Matthias Klose  <doko@debian.org>
4400
4401	* Makefile.am: Update.
4402	* Makefile.in: Regenerate.
4403	* src/pa/ffi.h.in: Remove.
4404	* src/pa/ffitarget.h: New file.
4405
44062004-02-10  Randolph Chung  <tausq@debian.org>
4407
4408	* Makefile.am: Add PA support.
4409	* Makefile.in: Regenerate.
4410	* include/Makefile.in: Regenerate.
4411	* configure.ac: Add PA target.
4412	* configure: Regenerate.
4413	* src/pa/ffi.c: New file.
4414	* src/pa/ffi.h.in: Add PA support.
4415	* src/pa/linux.S: New file.
4416	* prep_cif.c: Add PA support.
4417
44182004-03-16  Hosaka Yuji  <hos@tamanegi.org>
4419
4420	* src/types.c: Fix alignment size of X86_WIN32 case int64 and
4421	double.
4422	* src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
4423	with ecif->cif->flags.
4424	(ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
4425	with cif->flags.
4426	(ffi_prep_cif_machdep): Add X86_WIN32 struct case.
4427	(ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
4428	* src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
4429	sc_retstruct2b): Add for 1 or 2-bytes struct case.
4430
44312004-03-15 Kelley Cook <kcook@gcc.gnu.org>
4432
4433	* configure.in: Rename file to ...
4434	* configure.ac: ... this.
4435	* fficonfig.h.in: Regenerate.
4436	* Makefile.in: Regenerate.
4437	* include/Makefile.in: Regenerate.
4438	* testsuite/Makefile.in: Regenerate.
4439
44402004-03-12  Matt Austern  <austern@apple.com>
4441
4442	* src/powerpc/darwin.S: Fix EH information so it corresponds to
4443	changes in EH format resulting from addition of linkonce support.
4444	* src/powerpc/darwin_closure.S: Likewise.
4445
44462004-03-11  Andreas Tobler  <a.tobler@schweiz.ch>
4447	    Paolo Bonzini  <bonzini@gnu.org>
4448
4449	* Makefile.am (AUTOMAKE_OPTIONS): Set them.
4450	Remove VPATH. Remove rules for object files. Remove multilib support.
4451	(AM_CCASFLAGS): Add.
4452	* configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
4453	(AC_PREREQ): Bump version to 2.59.
4454	(AC_INIT): Fill with version info and bug address.
4455	(ORIGINAL_LD_FOR_MULTILIBS): Remove.
4456	(AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
4457	De-precious CC so that the right flags are passed down to multilibs.
4458	(AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
4459	(AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
4460	(AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
4461	* configure: Rebuilt.
4462	* aclocal.m4: Likewise.
4463	* Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
4464	* fficonfig.h.in: Likewise.
4465
44662004-03-11  Andreas Schwab  <schwab@suse.de>
4467
4468	* src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
4469	arguments from fp registers only for the first 8 parameter slots.
4470	Don't convert a float parameter when passed in memory.
4471
44722004-03-09  Hans-Peter Nilsson  <hp@axis.com>
4473
4474	* configure: Regenerate for config/accross.m4 correction.
4475
44762004-02-25  Matt Kraai  <kraai@alumni.cmu.edu>
4477
4478	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
4479	ecif->cif->bytes to bytes.
4480	(ffi_prep_cif_machdep): Add braces around nested if statement.
4481
44822004-02-09  Alan Modra  <amodra@bigpond.net.au>
4483
4484	* src/types.c (pointer): POWERPC64 has 8 byte pointers.
4485
4486	* src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
4487	(ffi_closure_helper_LINUX64): Fix typo.
4488	* testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
4489	for powerpc64-*-*.
4490	* testsuite/libffi.call/float.c: Likewise.
4491	* testsuite/libffi.call/float2.c: Likewise.
4492
44932004-02-08  Alan Modra  <amodra@bigpond.net.au>
4494
4495	* src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
4496	long double function return and long double arg handling.
4497	(ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
4498	Use "end_pfr" instead of "nf".  Correct long double handling.
4499	Localise "temp".
4500	* src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
4501	return value.
4502	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
4503	space for long double return value.  Adjust stack frame and offsets.
4504	Load f2 long double return.
4505
45062004-02-07  Alan Modra  <amodra@bigpond.net.au>
4507
4508	* src/types.c: Use 16 byte long double for POWERPC64.
4509
45102004-01-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4511
4512	* src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
4513	when the structure return address is passed in %o0.
4514	(ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
4515	(ffi_v9_layout_struct): Align the field following a nested structure
4516	on a word boundary.  Use memmove instead of memcpy.
4517	(ffi_call): Update call to ffi_V9_return_struct.
4518	(ffi_prep_closure): Define 'ctx' only for V8.
4519	(ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
4520	and ffi_closure_sparc_inner_v9.
4521	(ffi_closure_sparc_inner_v8): Return long doubles by reference.
4522	Always skip the structure return address.  For structures and long
4523	doubles, copy the argument directly.
4524	(ffi_closure_sparc_inner_v9): Skip the structure return address only
4525	if required.  Shift the maximum floating-point slot accordingly.  For
4526	big structures, copy the argument directly; otherwise, left-justify the
4527	argument and call ffi_v9_layout_struct to lay out the structure on
4528	the stack.
4529	* src/sparc/v8.S: Undef STACKFRAME before defining it.
4530	(ffi_closure_v8): Pass the structure return address.  Update call to
4531	ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
4532	Skip the 'unimp' insn when returning long doubles and structures.
4533	* src/sparc/v9.S: Undef STACKFRAME before defining it.
4534	(ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
4535	FFI_TYPE_INT handling.  Load structures both in integers and
4536	floating-point registers on return.
4537	* README: Update status of the SPARC port.
4538
45392004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
4540
4541	* testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
4542	as of type ffi_arg.
4543	* testsuite/libffi.call/struct3.c (main): Fix CHECK.
4544
45452004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
4546
4547	* testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
4548	value as of type ffi_arg, not unsigned int.
4549
45502004-01-21  Michael Ritzert  <ritzert@t-online.de>
4551
4552	* ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
4553	of the LHS.
4554
45552004-01-12  Andreas Tobler  <a.tobler@schweiz.ch>
4556
4557	* testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
4558	Solaris.
4559
45602004-01-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4561
4562	* testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
4563	to void *.
4564
45652003-12-10  Richard Henderson  <rth@redhat.com>
4566
4567	* testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
4568	size_t instead of int.
4569
45702003-12-04  Hosaka Yuji  <hos@tamanegi.org>
4571
4572	* testsuite/libffi.call/many_win32.c: Include <float.h>.
4573	* testsuite/libffi.call/many_win32.c (main): Replace variable
4574	int i with unsigned long ul.
4575
4576	* testsuite/libffi.call/cls_align_uint64.c: New test case.
4577	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
4578	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
4579	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
4580	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
4581	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
4582	* testsuite/libffi.call/cls_align_float.c: Likewise.
4583	* testsuite/libffi.call/cls_align_double.c: Likewise.
4584	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
4585	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
4586
45872003-12-02  Hosaka Yuji  <hos@tamanegi.org>
4588
4589	PR other/13221
4590	* src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
4591	Align arguments to 32 bits.
4592
45932003-12-01  Andreas Tobler  <a.tobler@schweiz.ch>
4594
4595	PR other/13221
4596	* testsuite/libffi.call/cls_multi_sshort.c: New test case.
4597	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4598	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4599	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
4600	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4601	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4602
4603	* testsuite/libffi.special/unwindtest.cc: Cosmetics.
4604
46052003-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4606
4607	* testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4608	* testsuite/libffi.special/ffitestcxx.h: Likewise.
4609
46102003-11-22  Andreas Tobler  <a.tobler@schweiz.ch>
4611
4612	* Makefile.in: Rebuilt.
4613	* configure: Likewise.
4614	* testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4615	the right type.
4616
46172003-11-21  Andreas Jaeger  <aj@suse.de>
4618	    Andreas Tobler  <a.tobler@schweiz.ch>
4619
4620	* acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4621	* configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4622	* Makefile.in: Rebuilt.
4623	* aclocal.m4: Likewise.
4624	* configure: Likewise.
4625	* fficonfig.h.in: Likewise.
4626	* testsuite/lib/libffi-dg.exp: Add include dir.
4627	* testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4628	* testsuite/libffi.special/ffitestcxx.h: Likewise.
4629	* testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4630	for ffi_closure if available.
4631	* testsuite/libffi.call/closure_fn1.c: Likewise.
4632	* testsuite/libffi.call/closure_fn2.c: Likewise.
4633	* testsuite/libffi.call/closure_fn3.c: Likewise.
4634	* testsuite/libffi.call/closure_fn4.c: Likewise.
4635	* testsuite/libffi.call/closure_fn5.c: Likewise.
4636	* testsuite/libffi.call/cls_12byte.c: Likewise.
4637	* testsuite/libffi.call/cls_16byte.c: Likewise.
4638	* testsuite/libffi.call/cls_18byte.c: Likewise.
4639	* testsuite/libffi.call/cls_19byte.c: Likewise.
4640	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
4641	* testsuite/libffi.call/cls_20byte.c: Likewise.
4642	* testsuite/libffi.call/cls_20byte1.c: Likewise.
4643	* testsuite/libffi.call/cls_24byte.c: Likewise.
4644	* testsuite/libffi.call/cls_2byte.c: Likewise.
4645	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
4646	* testsuite/libffi.call/cls_3byte1.c: Likewise.
4647	* testsuite/libffi.call/cls_3byte2.c: Likewise.
4648	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
4649	* testsuite/libffi.call/cls_4byte.c: Likewise.
4650	* testsuite/libffi.call/cls_5byte.c: Likewise.
4651	* testsuite/libffi.call/cls_64byte.c: Likewise.
4652	* testsuite/libffi.call/cls_6byte.c: Likewise.
4653	* testsuite/libffi.call/cls_7byte.c: Likewise.
4654	* testsuite/libffi.call/cls_8byte.c: Likewise.
4655	* testsuite/libffi.call/cls_9byte1.c: Likewise.
4656	* testsuite/libffi.call/cls_9byte2.c: Likewise.
4657	* testsuite/libffi.call/cls_double.c: Likewise.
4658	* testsuite/libffi.call/cls_float.c: Likewise.
4659	* testsuite/libffi.call/cls_schar.c: Likewise.
4660	* testsuite/libffi.call/cls_sint.c: Likewise.
4661	* testsuite/libffi.call/cls_sshort.c: Likewise.
4662	* testsuite/libffi.call/cls_uchar.c: Likewise.
4663	* testsuite/libffi.call/cls_uint.c: Likewise.
4664	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
4665	* testsuite/libffi.call/cls_ushort.c: Likewise.
4666	* testsuite/libffi.call/nested_struct.c: Likewise.
4667	* testsuite/libffi.call/nested_struct1.c: Likewise.
4668	* testsuite/libffi.call/nested_struct2.c: Likewise.
4669	* testsuite/libffi.call/nested_struct3.c: Likewise.
4670	* testsuite/libffi.call/problem1.c: Likewise.
4671	* testsuite/libffi.special/unwindtest.cc: Likewise.
4672
46732003-11-20  Andreas Tobler  <a.tobler@schweiz.ch>
4674
4675	* testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4676
46772003-11-19  Andreas Tobler  <a.tobler@schweiz.ch>
4678
4679	* testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4680	Add -lgcc_s to additional flags.
4681
46822003-11-12  Andreas Tobler  <a.tobler@schweiz.ch>
4683
4684	* configure.in, include/Makefile.am: PR libgcj/11147, install
4685	the ffitarget.h header file in a gcc versioned and target
4686	dependent place.
4687	* configure: Regenerated.
4688	* Makefile.in, include/Makefile.in: Likewise.
4689	* testsuite/Makefile.in: Likewise.
4690
46912003-11-09  Andreas Tobler  <a.tobler@schweiz.ch>
4692
4693	* testsuite/libffi.call/closure_fn0.c: Print result and check
4694	with dg-output to make debugging easier.
4695	* testsuite/libffi.call/closure_fn1.c: Likewise.
4696	* testsuite/libffi.call/closure_fn2.c: Likewise.
4697	* testsuite/libffi.call/closure_fn3.c: Likewise.
4698	* testsuite/libffi.call/closure_fn4.c: Likewise.
4699	* testsuite/libffi.call/closure_fn5.c: Likewise.
4700	* testsuite/libffi.call/cls_12byte.c: Likewise.
4701	* testsuite/libffi.call/cls_16byte.c: Likewise.
4702	* testsuite/libffi.call/cls_18byte.c: Likewise.
4703	* testsuite/libffi.call/cls_19byte.c: Likewise.
4704	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
4705	* testsuite/libffi.call/cls_20byte.c: Likewise.
4706	* testsuite/libffi.call/cls_20byte1.c: Likewise.
4707	* testsuite/libffi.call/cls_24byte.c: Likewise.
4708	* testsuite/libffi.call/cls_2byte.c: Likewise.
4709	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
4710	* testsuite/libffi.call/cls_3byte1.c: Likewise.
4711	* testsuite/libffi.call/cls_3byte2.c: Likewise.
4712	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
4713	* testsuite/libffi.call/cls_4byte.c: Likewise.
4714	* testsuite/libffi.call/cls_5byte.c: Likewise.
4715	* testsuite/libffi.call/cls_64byte.c: Likewise.
4716	* testsuite/libffi.call/cls_6byte.c: Likewise.
4717	* testsuite/libffi.call/cls_7byte.c: Likewise.
4718	* testsuite/libffi.call/cls_8byte.c: Likewise.
4719	* testsuite/libffi.call/cls_9byte1.c: Likewise.
4720	* testsuite/libffi.call/cls_9byte2.c: Likewise.
4721	* testsuite/libffi.call/cls_double.c: Likewise.
4722	* testsuite/libffi.call/cls_float.c: Likewise.
4723	* testsuite/libffi.call/cls_schar.c: Likewise.
4724	* testsuite/libffi.call/cls_sint.c: Likewise.
4725	* testsuite/libffi.call/cls_sshort.c: Likewise.
4726	* testsuite/libffi.call/cls_uchar.c: Likewise.
4727	* testsuite/libffi.call/cls_uint.c: Likewise.
4728	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
4729	* testsuite/libffi.call/cls_ushort.c: Likewise.
4730	* testsuite/libffi.call/problem1.c: Likewise.
4731
4732	* testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4733	static.
4734
47352003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
4736
4737	* testsuite/libffi.call/cls_9byte2.c: New test case.
4738	* testsuite/libffi.call/cls_9byte1.c: Likewise.
4739	* testsuite/libffi.call/cls_64byte.c: Likewise.
4740	* testsuite/libffi.call/cls_20byte1.c: Likewise.
4741	* testsuite/libffi.call/cls_19byte.c: Likewise.
4742	* testsuite/libffi.call/cls_18byte.c: Likewise.
4743	* testsuite/libffi.call/closure_fn4.c: Likewise.
4744	* testsuite/libffi.call/closure_fn5.c: Likewise.
4745	* testsuite/libffi.call/cls_schar.c: Likewise.
4746	* testsuite/libffi.call/cls_sint.c: Likewise.
4747	* testsuite/libffi.call/cls_sshort.c: Likewise.
4748	* testsuite/libffi.call/nested_struct2.c: Likewise.
4749	* testsuite/libffi.call/nested_struct3.c: Likewise.
4750
47512003-11-08  Andreas Tobler  <a.tobler@schweiz.ch>
4752
4753	* testsuite/libffi.call/cls_double.c: Do a check on the result.
4754	* testsuite/libffi.call/cls_uchar.c: Likewise.
4755	* testsuite/libffi.call/cls_uint.c: Likewise.
4756	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
4757	* testsuite/libffi.call/cls_ushort.c: Likewise.
4758	* testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4759
47602003-11-06  Andreas Tobler  <a.tobler@schweiz.ch>
4761
4762	* src/prep_cif.c (ffi_prep_cif): Move the validity check after
4763	the initialization.
4764
47652003-10-23  Andreas Tobler  <a.tobler@schweiz.ch>
4766
4767	* src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4768	FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4769
47702003-10-22  David Daney  <ddaney@avtrex.com>
4771
4772	* src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4773	__attribute__((__mode__(__SI__))) and friends.
4774
47752003-10-22  Andreas Schwab  <schwab@suse.de>
4776
4777	* src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4778
47792003-10-21  Andreas Tobler  <a.tobler@schweiz.ch>
4780
4781	* configure.in: AC_LINK_FILES(ffitarget.h).
4782	* configure: Regenerate.
4783	* Makefile.in: Likewise.
4784	* include/Makefile.in: Likewise.
4785	* testsuite/Makefile.in: Likewise.
4786	* fficonfig.h.in: Likewise.
4787
47882003-10-21  Paolo Bonzini  <bonzini@gnu.org>
4789	    Richard Henderson  <rth@redhat.com>
4790
4791	Avoid that ffi.h includes fficonfig.h.
4792
4793	* Makefile.am (EXTRA_DIST): Include ffitarget.h files
4794	(TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4795	(TARGET_SRC_MIPS_SGI): Removed.
4796	(MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4797	(MIPS_SGI): Removed.
4798	(CLEANFILES): Removed.
4799	(mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4800	targets.
4801	* acconfig.h: Removed.
4802	* configure.in: Compute sizeofs only for double and long double.
4803	Use them to define and subst HAVE_LONG_DOUBLE.  Include comments
4804	into AC_DEFINE instead of using acconfig.h.  Create
4805	include/ffitarget.h instead of include/fficonfig.h.  Rename
4806	MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4807	AC_DEFINE EH_FRAME_FLAGS.
4808	* include/Makefile.am (DISTCLEANFILES): New automake macro.
4809	(hack_DATA): Add ffitarget.h.
4810	* include/ffi.h.in: Remove all system specific definitions.
4811	Declare raw API even if it is not installed, why bother?
4812	Use limits.h instead of SIZEOF_* to define ffi_type_*.  Do
4813	not define EH_FRAME_FLAGS, it is in fficonfig.h now.  Include
4814	ffitarget.h instead of fficonfig.h.  Remove ALIGN macro.
4815	(UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4816	* include/ffi_common.h (bool): Do not define.
4817	(ffi_assert): Accept failed assertion.
4818	(ffi_type_test): Return void and accept file/line.
4819	(FFI_ASSERT): Pass stringized failed assertion.
4820	(FFI_ASSERT_AT): New macro.
4821	(FFI_ASSERT_VALID_TYPE): New macro.
4822	(UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4823	UINT64, SINT64): Define here with gcc's __attribute__ macro
4824	instead of in ffi.h
4825	(FLOAT32, ALIGN): Define here instead of in ffi.h
4826	* include/ffi-mips.h: Removed.  Its content moved to
4827	src/mips/ffitarget.h after separating assembly and C sections.
4828	* src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4829	src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4830	src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4831	src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4832	SIZEOF_ARG -> FFI_SIZEOF_ARG.
4833	* src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4834	* src/debug.c (ffi_assert): Accept stringized failed assertion.
4835	(ffi_type_test): Rewritten.
4836	* src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4837	FFI_ASSERT_VALID_TYPE.
4838	* src/alpha/ffitarget.h, src/arm/ffitarget.h,
4839	src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4840	src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4841	src/s390/ffitarget.h, src/sh/ffitarget.h,
4842	src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4843	src/x86/ffitarget.h: New files.
4844	* src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4845	src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4846	src/powerpc/aix.S, src/powerpc/darwin.S,
4847	src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4848	src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4849	src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4850	src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4851	src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4852	include fficonfig.h
4853
48542003-10-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4855
4856	* src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4857	_MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4858
48592003-10-19  Andreas Tobler  <a.tobler@schweiz.ch>
4860
4861	* src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4862	Used when FFI_DEBUG = 1.
4863
48642003-10-14  Alan Modra  <amodra@bigpond.net.au>
4865
4866	* src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4867	and align.
4868
48692003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4870
4871	* include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4872	FFI_MIPS_O32 for O32 ABI.
4873
48742003-10-01  Andreas Tobler  <a.tobler@schweiz.ch>
4875
4876	* testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4877	SPARC64. Cleanup whitespaces.
4878
48792003-09-19  Andreas Tobler  <a.tobler@schweiz.ch>
4880
4881	* testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4882	strongarm, xscale. Cleanup whitespaces.
4883	* testsuite/libffi.call/closure_fn1.c: Likewise.
4884	* testsuite/libffi.call/closure_fn2.c: Likewise.
4885	* testsuite/libffi.call/closure_fn3.c: Likewise.
4886	* testsuite/libffi.call/cls_12byte.c: Likewise.
4887	* testsuite/libffi.call/cls_16byte.c: Likewise.
4888	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
4889	* testsuite/libffi.call/cls_20byte.c: Likewise.
4890	* testsuite/libffi.call/cls_24byte.c: Likewise.
4891	* testsuite/libffi.call/cls_2byte.c: Likewise.
4892	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
4893	* testsuite/libffi.call/cls_3byte1.c: Likewise.
4894	* testsuite/libffi.call/cls_3byte2.c: Likewise.
4895	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
4896	* testsuite/libffi.call/cls_4byte.c: Likewise.
4897	* testsuite/libffi.call/cls_5byte.c: Likewise.
4898	* testsuite/libffi.call/cls_6byte.c: Likewise.
4899	* testsuite/libffi.call/cls_7byte.c: Likewise.
4900	* testsuite/libffi.call/cls_8byte.c: Likewise.
4901	* testsuite/libffi.call/cls_double.c: Likewise.
4902	* testsuite/libffi.call/cls_float.c: Likewise.
4903	* testsuite/libffi.call/cls_uchar.c: Likewise.
4904	* testsuite/libffi.call/cls_uint.c: Likewise.
4905	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
4906	* testsuite/libffi.call/cls_ushort.c: Likewise.
4907	* testsuite/libffi.call/nested_struct.c: Likewise.
4908	* testsuite/libffi.call/nested_struct1.c: Likewise.
4909	* testsuite/libffi.call/problem1.c: Likewise.
4910	* testsuite/libffi.special/unwindtest.cc: Likewise.
4911	* testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4912
49132003-09-18  David Edelsohn  <edelsohn@gnu.org>
4914
4915	* src/powerpc/aix.S: Cleanup whitespaces.
4916	* src/powerpc/aix_closure.S: Likewise.
4917
49182003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
4919
4920	* src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4921	* src/powerpc/darwin_closure.S: Likewise.
4922	* src/powerpc/ffi_darwin.c: Likewise.
4923
49242003-09-18  Andreas Tobler  <a.tobler@schweiz.ch>
4925	    David Edelsohn  <edelsohn@gnu.org>
4926
4927	* src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4928	* src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4929	parameter stack.
4930	* src/powerpc/darwin_closure.S: Likewise.
4931	* src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4932	according to the Darwin/AIX ABI.
4933	(ffi_prep_cif_machdep): Likewise.
4934	(ffi_closure_helper_DARWIN): Likewise.
4935	Remove the outgoing parameter stack logic. Simplify the evaluation
4936	of the different CASE types.
4937	(ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4938	statement in the trampoline code.
4939
49402003-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4941
4942	* src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4943	for the register size.
4944	(ffi_closure_helper_SYSV): Handle the structure return value
4945	address correctly.
4946	(ffi_closure_helper_SYSV): Return the appropriate type when
4947	the registers are used for the structure return value.
4948	* src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4949	the 64-bit return value.  Update copyright years.
4950
49512003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4952
4953	* testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4954	srcdir for ffi_mips.h.
4955
49562003-09-12  Alan Modra  <amodra@bigpond.net.au>
4957
4958	* src/prep_cif.c (initialize_aggregate): Include tail padding in
4959	structure size.
4960	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4961	placement of float result.
4962	* testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4963	cast of "resp" for big-endian 64 bit machines.
4964
49652003-09-11  Alan Modra  <amodra@bigpond.net.au>
4966
4967	* src/types.c (double, longdouble): Merge identical SH and ARM
4968	typedefs, and add POWERPC64.
4969	* src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4970	struct split over gpr and rest.
4971	(ffi_prep_cif_machdep): Correct intarg_count for structures.
4972	* src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4973
49742003-09-09  Andreas Tobler  <a.tobler@schweiz.ch>
4975
4976	* src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4977	passing correctly.
4978
49792003-09-09  Alan Modra  <amodra@bigpond.net.au>
4980
4981	* configure: Regenerate.
4982
49832003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
4984
4985	* Makefile.am: Remove build rules for ffitest.
4986	* Makefile.in: Rebuilt.
4987
49882003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
4989
4990	* src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4991	about implicit declaration of abort().
4992
49932003-09-04  Andreas Tobler  <a.tobler@schweiz.ch>
4994
4995	* Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4996	* Makefile.in: Rebuilt.
4997	* configure.in: Add dejagnu test framework.
4998	* configure: Rebuilt.
4999
5000	* testsuite/Makefile.am: New file.
5001	* testsuite/Makefile.in: Built
5002	* testsuite/lib/libffi-dg.exp: New file.
5003	* testsuite/config/default.exp: Likewise.
5004	* testsuite/libffi.call/call.exp: Likewise.
5005	* testsuite/libffi.call/ffitest.h: Likewise.
5006	* testsuite/libffi.call/closure_fn0.c: Likewise.
5007	* testsuite/libffi.call/closure_fn1.c: Likewise.
5008	* testsuite/libffi.call/closure_fn2.c: Likewise.
5009	* testsuite/libffi.call/closure_fn3.c: Likewise.
5010	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
5011	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
5012	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
5013	* testsuite/libffi.call/cls_2byte.c: Likewise.
5014	* testsuite/libffi.call/cls_3byte1.c: Likewise.
5015	* testsuite/libffi.call/cls_3byte2.c: Likewise.
5016	* testsuite/libffi.call/cls_4byte.c: Likewise.
5017	* testsuite/libffi.call/cls_5byte.c: Likewise.
5018	* testsuite/libffi.call/cls_6byte.c: Likewise.
5019	* testsuite/libffi.call/cls_7byte.c: Likewise.
5020	* testsuite/libffi.call/cls_8byte.c: Likewise.
5021	* testsuite/libffi.call/cls_12byte.c: Likewise.
5022	* testsuite/libffi.call/cls_16byte.c: Likewise.
5023	* testsuite/libffi.call/cls_20byte.c: Likewise.
5024	* testsuite/libffi.call/cls_24byte.c: Likewise.
5025	* testsuite/libffi.call/cls_double.c: Likewise.
5026	* testsuite/libffi.call/cls_float.c: Likewise.
5027	* testsuite/libffi.call/cls_uchar.c: Likewise.
5028	* testsuite/libffi.call/cls_uint.c: Likewise.
5029	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
5030	* testsuite/libffi.call/cls_ushort.c: Likewise.
5031	* testsuite/libffi.call/float.c: Likewise.
5032	* testsuite/libffi.call/float1.c: Likewise.
5033	* testsuite/libffi.call/float2.c: Likewise.
5034	* testsuite/libffi.call/many.c: Likewise.
5035	* testsuite/libffi.call/many_win32.c: Likewise.
5036	* testsuite/libffi.call/nested_struct.c: Likewise.
5037	* testsuite/libffi.call/nested_struct1.c: Likewise.
5038	* testsuite/libffi.call/pyobjc-tc.c: Likewise.
5039	* testsuite/libffi.call/problem1.c: Likewise.
5040	* testsuite/libffi.call/promotion.c: Likewise.
5041	* testsuite/libffi.call/return_ll.c: Likewise.
5042	* testsuite/libffi.call/return_sc.c: Likewise.
5043	* testsuite/libffi.call/return_uc.c: Likewise.
5044	* testsuite/libffi.call/strlen.c: Likewise.
5045	* testsuite/libffi.call/strlen_win32.c: Likewise.
5046	* testsuite/libffi.call/struct1.c: Likewise.
5047	* testsuite/libffi.call/struct2.c: Likewise.
5048	* testsuite/libffi.call/struct3.c: Likewise.
5049	* testsuite/libffi.call/struct4.c: Likewise.
5050	* testsuite/libffi.call/struct5.c: Likewise.
5051	* testsuite/libffi.call/struct6.c: Likewise.
5052	* testsuite/libffi.call/struct7.c: Likewise.
5053	* testsuite/libffi.call/struct8.c: Likewise.
5054	* testsuite/libffi.call/struct9.c: Likewise.
5055	* testsuite/libffi.special/special.exp: New file.
5056	* testsuite/libffi.special/ffitestcxx.h: Likewise.
5057	* testsuite/libffi.special/unwindtest.cc: Likewise.
5058
5059
50602003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
5061
5062	* src/sh/ffi.c (OFS_INT16): Set 0 for little endian case.  Update
5063	copyright years.
5064
50652003-08-02  Alan Modra  <amodra@bigpond.net.au>
5066
5067	* src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
5068	structure passing.
5069	(ffi_closure_helper_LINUX64): Likewise.
5070	* src/powerpc/linux64.S: Remove code writing to parm save area.
5071	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
5072	address in lr from ffi_closure_helper_LINUX64 call to calculate
5073	table address.  Optimize function tail.
5074
50752003-07-28  Andreas Tobler  <a.tobler@schweiz.ch>
5076
5077	* src/sparc/ffi.c: Handle all floating point registers.
5078	* src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
5079
50802003-07-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5081
5082	* README: Note that libffi is not part of GCC.  Update the project
5083	URL and status.
5084
50852003-06-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5086
5087	* src/powerpc/ppc_closure.S: Include ffi.h.
5088
50892003-06-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5090
5091	* src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
5092	Use C style comments.
5093
50942003-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
5095
5096	* Makefile.am: Add SHmedia support.  Fix a typo of SH support.
5097	* Makefile.in: Regenerate.
5098	* configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
5099	* configure: Regenerate.
5100	* include/ffi.h.in: Add SHmedia support.
5101	* src/sh64/ffi.c: New file.
5102	* src/sh64/sysv.S: New file.
5103
51042003-05-16  Jakub Jelinek  <jakub@redhat.com>
5105
5106	* configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
5107	should be read-only.
5108	* configure: Rebuilt.
5109	* fficonfig.h.in: Rebuilt.
5110	* include/ffi.h.in (EH_FRAME_FLAGS): Define.
5111	* src/alpha/osf.S: Use EH_FRAME_FLAGS.
5112	* src/powerpc/linux64.S: Likewise.
5113	* src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
5114	* src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
5115	if -fpic/-fPIC/-mrelocatable.
5116	* src/powerpc/powerpc_closure.S: Likewise.
5117	* src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
5118	#write in .eh_frame flags.
5119	* src/sparc/v9.S: Likewise.
5120	* src/x86/unix64.S: Use EH_FRAME_FLAGS.
5121	* src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
5122	* src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.
5123
51242003-05-07  Jeff Sturm  <jsturm@one-point.com>
5125
5126	Fixes PR bootstrap/10656
5127	* configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
5128	support for .register pseudo-op.
5129	* src/sparc/v8.S: Use it.
5130	* fficonfig.h.in: Rebuilt.
5131	* configure: Rebuilt.
5132
51332003-04-18  Jakub Jelinek  <jakub@redhat.com>
5134
5135	* include/ffi.h.in (POWERPC64): Define if 64-bit.
5136	(enum ffi_abi): Add FFI_LINUX64 on POWERPC.
5137	Make it the default on POWERPC64.
5138	(FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
5139	* configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
5140	* configure: Rebuilt.
5141	* src/powerpc/ffi.c (hidden): Define.
5142	(ffi_prep_args_SYSV): Renamed from
5143	ffi_prep_args.  Cast pointers to unsigned long to shut up warnings.
5144	(NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
5145	ASM_NEEDS_REGISTERS64): New.
5146	(ffi_prep_args64): New function.
5147	(ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
5148	(ffi_call): Likewise.
5149	(ffi_prep_closure): Likewise.
5150	(flush_icache): Surround by #ifndef POWERPC64.
5151	(ffi_dblfl): New union type.
5152	(ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
5153	(ffi_closure_helper_LINUX64): New function.
5154	* src/powerpc/ppc_closure.S: Surround whole file by #ifndef
5155	__powerpc64__.
5156	* src/powerpc/sysv.S: Likewise.
5157	(ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
5158	* src/powerpc/linux64.S: New file.
5159	* src/powerpc/linux64_closure.S: New file.
5160	* Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
5161	src/powerpc/linux64_closure.S.
5162	(TARGET_SRC_POWERPC): Likewise.
5163
5164	* src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
5165	closure_test_fn3): Fix result printing on big-endian 64-bit
5166	machines.
5167	(main): Print tst2_arg instead of uninitialized tst2_result.
5168
5169	* src/ffitest.c (main): Hide what closure pointer really points to
5170	from the compiler.
5171
51722003-04-16  Richard Earnshaw  <rearnsha@arm.com>
5173
5174	* configure.in (arm-*-netbsdelf*): Add configuration.
5175	(configure): Regenerated.
5176
51772003-04-04  Loren J. Rittle  <ljrittle@acm.org>
5178
5179	* include/Makefile.in: Regenerate.
5180
51812003-03-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5182
5183	* libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
5184	bit mode.
5185	* libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
5186	Receive closure pointer through parameter, read args using
5187	__builtin_dwarf_cfa.
5188	(FFI_INIT_TRAMPOLINE): Send closure reference through eax.
5189
51902003-03-12  Andreas Schwab  <schwab@suse.de>
5191
5192	* configure.in: Avoid trailing /. in toolexeclibdir.
5193	* configure: Rebuilt.
5194
51952003-03-03  Andreas Tobler <a.tobler@schweiz.ch>
5196
5197	* src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
5198
51992003-02-06  Andreas Tobler <a.tobler@schweiz.ch>
5200
5201	* libffi/src/powerpc/darwin_closure.S:
5202	Fix alignement bug, allocate 8 bytes for the result.
5203	* libffi/src/powerpc/aix_closure.S:
5204	Likewise.
5205	* libffi/src/powerpc/ffi_darwin.c:
5206	Update stackframe description for aix/darwin_closure.S.
5207
52082003-02-06  Jakub Jelinek  <jakub@redhat.com>
5209
5210	* src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
5211	attribute.
5212
52132003-01-31  Christian Cornelssen  <ccorn@cs.tu-berlin.de>,
5214	    Andreas Schwab  <schwab@suse.de>
5215
5216	* configure.in: Adjust command to source config-ml.in to account
5217	for changes to the libffi_basedir definition.
5218	(libffi_basedir): Remove ${srcdir} from value and include trailing
5219	slash if nonempty.
5220
5221	* configure: Regenerate.
5222
52232003-01-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5224
5225	* src/powerpc/ppc_closure.S: Recode to fit shared libs.
5226
52272003-01-28  Andrew Haley  <aph@redhat.com>
5228
5229	* include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
5230	* src/x86/ffi64.c (ffi_prep_closure): New.
5231	(ffi_closure_UNIX64_inner): New.
5232	* src/x86/unix64.S (ffi_closure_UNIX64): New.
5233
52342003-01-27  Alexandre Oliva  <aoliva@redhat.com>
5235
5236	* configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
5237	Remove USE_LIBDIR conditional.
5238	* Makefile.am (toolexecdir, toolexeclibdir): Don't override.
5239	* Makefile.in, configure: Rebuilt.
5240
52412003-01027  David Edelsohn  <edelsohn@gnu.org>
5242
5243	* Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
5244	* Makefile.in: Regenerate.
5245
52462003-01-22  Andrew Haley  <aph@redhat.com>
5247
5248	* src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
5249	unwind info.
5250
52512003-01-21  Andreas Tobler  <a.tobler@schweiz.ch>
5252
5253	* src/powerpc/darwin.S: Add unwind info.
5254	* src/powerpc/darwin_closure.S: Likewise.
5255
52562003-01-14  Andrew Haley  <aph@redhat.com>
5257
5258	* src/x86/ffi64.c (ffi_prep_args): Check for void retval.
5259	(ffi_prep_cif_machdep): Likewise.
5260	* src/x86/unix64.S: Add unwind info.
5261
52622003-01-14  Andreas Jaeger  <aj@suse.de>
5263
5264	* src/ffitest.c (main): Only use ffi_closures if those are
5265	supported.
5266
52672003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
5268
5269	* libffi/src/ffitest.c
5270	 add closure testcases
5271
52722003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
5273
5274	* libffi/src/powerpc/ffi.c
5275	 fix alignment bug for float (4 byte aligned iso 8 byte)
5276
52772003-01-09  Geoffrey Keating  <geoffk@apple.com>
5278
5279	* src/powerpc/ffi_darwin.c: Remove RCS version string.
5280	* src/powerpc/darwin.S: Remove RCS version string.
5281
52822003-01-03  Jeff Sturm  <jsturm@one-point.com>
5283
5284	* include/ffi.h.in: Add closure defines for SPARC, SPARC64.
5285	* src/ffitest.c (main): Use static storage for closure.
5286	* src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
5287	* src/sparc/v8.S (ffi_closure_v8): New.
5288	* src/sparc/v9.S (ffi_closure_v9): New.
5289
52902002-11-10  Ranjit Mathew <rmathew@hotmail.com>
5291
5292	* include/ffi.h.in: Added FFI_STDCALL ffi_type
5293	  enumeration for X86_WIN32.
5294	* src/x86/win32.S: Added ffi_call_STDCALL function
5295	  definition.
5296	* src/x86/ffi.c (ffi_call/ffi_raw_call): Added
5297	  switch cases for recognising FFI_STDCALL and
5298	  calling ffi_call_STDCALL if target is X86_WIN32.
5299	* src/ffitest.c (my_stdcall_strlen/stdcall_many):
5300	  stdcall versions of the "my_strlen" and "many"
5301	  test functions (for X86_WIN32).
5302	  Added test cases to test stdcall invocation using
5303	  these functions.
5304
53052002-12-02  Kaz Kojima  <kkojima@gcc.gnu.org>
5306
5307	* src/sh/sysv.S: Add DWARF2 unwind info.
5308
53092002-11-27  Ulrich Weigand  <uweigand@de.ibm.com>
5310
5311	* src/s390/sysv.S (.eh_frame section): Make section read-only.
5312
53132002-11-26  Jim Wilson  <wilson@redhat.com>
5314
5315	* src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
5316
53172002-11-23  H.J. Lu <hjl@gnu.org>
5318
5319	* acinclude.m4: Add dummy AM_PROG_LIBTOOL.
5320	Include ../config/accross.m4.
5321	* aclocal.m4; Rebuild.
5322	* configure: Likewise.
5323
53242002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
5325
5326	* src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
5327
53282002-11-11  DJ Delorie  <dj@redhat.com>
5329
5330	* configure.in: Look for common files in the right place.
5331
53322002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
5333
5334	* src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
5335	raw data as _Jv_word values, not ffi_raw.
5336	(ffi_java_ptrarray_to_raw): Likewise.
5337	(ffi_java_rvalue_to_raw): New function.
5338	(ffi_java_raw_call): Call it.
5339	(ffi_java_raw_to_rvalue): New function.
5340	(ffi_java_translate_args): Call it.
5341	* src/ffitest.c (closure_test_fn): Interpret return value
5342	as ffi_arg, not int.
5343	* src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
5344	FFI_TYPE_POINTER case.
5345	(ffi_closure_helper_SYSV): Likewise.  Also, assume return
5346	values extended to word size.
5347
53482002-10-02  Andreas Jaeger  <aj@suse.de>
5349
5350	* src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
5351
53522002-10-01  Bo Thorsen  <bo@smetana.suse.de>
5353
5354	* include/ffi.h.in: Fix i386 win32 compilation.
5355
53562002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
5357
5358	* configure.in: Add s390x-*-linux-* target.
5359	* configure: Regenerate.
5360	* include/ffi.h.in: Define S390X for s390x targets.
5361	(FFI_CLOSURES): Define for s390/s390x.
5362	(FFI_TRAMPOLINE_SIZE): Likewise.
5363	(FFI_NATIVE_RAW_API): Likewise.
5364	* src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
5365	* src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
5366	* src/s390/ffi.c: Major rework of existing code.  Add support for
5367	s390x targets.  Add closure support.
5368	* src/s390/sysv.S: Likewise.
5369
53702002-09-29  Richard Earnshaw  <rearnsha@arm.com>
5371
5372	* src/arm/sysv.S: Fix typo.
5373
53742002-09-28  Richard Earnshaw  <rearnsha@arm.com>
5375
5376	* src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
5377	has defined __USER_LABEL_PREFIX__, then use it in CNAME.
5378	(ffi_call_SYSV): Handle soft-float.
5379
53802002-09-27  Bo Thorsen  <bo@suse.de>
5381
5382	* include/ffi.h.in: Fix multilib x86-64 support.
5383
53842002-09-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5385
5386	* Makefile.am (all-multi): Fix multilib parallel build.
5387
53882002-07-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5389
5390	* configure.in (sh[34]*-*-linux*): Add brackets.
5391	* configure: Regenerate.
5392
53932002-07-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5394
5395	* Makefile.am: Add SH support.
5396	* Makefile.in: Regenerate.
5397	* configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
5398	* configure: Regenerate.
5399	* include/ffi.h.in: Add SH support.
5400	* src/sh/ffi.c: New file.
5401	* src/sh/sysv.S: New file.
5402	* src/types.c: Add SH support.
5403
54042002-07-16  Bo Thorsen  <bo@suse.de>
5405
5406	* src/x86/ffi64.c: New file that adds x86-64 support.
5407	* src/x86/unix64.S: New file that handles argument setup for
5408	x86-64.
5409	* src/x86/sysv.S: Don't use this on x86-64.
5410	* src/x86/ffi.c: Don't use this on x86-64.
5411	Remove unused vars.
5412	* src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
5413	for x86-64.
5414	* src/ffitest.c (struct6): New test that tests a special case in
5415	the x86-64 ABI.
5416	(struct7): Likewise.
5417	(struct8): Likewise.
5418	(struct9): Likewise.
5419	(closure_test_fn): Silence warning about this when it's not used.
5420	(main): Add the new tests.
5421	(main): Fix a couple of wrong casts and silence some compiler warnings.
5422	* include/ffi.h.in: Add x86-64 ABI definition.
5423	* fficonfig.h.in: Regenerate.
5424	* Makefile.am: Add x86-64 support.
5425	* configure.in: Likewise.
5426	* Makefile.in: Regenerate.
5427	* configure: Likewise.
5428
54292002-06-24  Bo Thorsen  <bo@suse.de>
5430
5431	* src/types.c: Merge settings for similar architectures.
5432	Add x86-64 sizes and alignments.
5433
54342002-06-23  Bo Thorsen  <bo@suse.de>
5435
5436	* src/arm/ffi.c (ffi_prep_args): Remove unused vars.
5437	* src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
5438	* src/mips/ffi.c (ffi_prep_args): Likewise.
5439	* src/m68k/ffi.c (ffi_prep_args): Likewise.
5440
54412002-07-18  H.J. Lu  (hjl@gnu.org)
5442
5443	* Makefile.am (TARGET_SRC_MIPS_LINUX): New.
5444	(libffi_la_SOURCES): Support MIPS_LINUX.
5445	(libffi_convenience_la_SOURCES): Likewise.
5446	* Makefile.in: Regenerated.
5447
5448	* configure.in (mips64*-*): Skip.
5449	(mips*-*-linux*): New.
5450	* configure: Regenerated.
5451
5452	* src/mips/ffi.c: Include <sgidefs.h>.
5453
54542002-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
5455
5456	* src/s390/sysv.S: Save/restore %r6.  Add DWARF-2 unwind info.
5457
54582002-05-27  Roger Sayle  <roger@eyesopen.com>
5459
5460	* src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
5461
54622002-05-27  Bo Thorsen  <bo@suse.de>
5463
5464	* src/x86/ffi.c (ffi_prep_args): Remove unused variable and
5465	fix formatting.
5466
54672002-05-13  Andreas Tobler  <a.tobler@schweiz.ch>
5468
5469	* src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
5470	beginning of function (for older apple cc).
5471
54722002-05-08  Alexandre Oliva  <aoliva@redhat.com>
5473
5474	* configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
5475	script entry, and set LD to it when configuring multilibs.
5476	* configure: Rebuilt.
5477
54782002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
5479
5480	* configure.in (sparc64-*-netbsd*): Add target.
5481	(sparc-*-netbsdelf*): Likewise.
5482	* configure: Regenerate.
5483
54842002-04-28  David S. Miller  <davem@redhat.com>
5485
5486	* configure.in, configure: Fix SPARC test in previous change.
5487
54882002-04-29  Gerhard Tonn  <GerhardTonn@swol.de>
5489
5490	* Makefile.am: Add Linux for S/390 support.
5491	* Makefile.in: Regenerate.
5492	* configure.in: Add Linux for S/390 support.
5493	* configure: Regenerate.
5494	* include/ffi.h.in: Add Linux for S/390 support.
5495	* src/s390/ffi.c: New file from libffi CVS tree.
5496	* src/s390/sysv.S: New file from libffi CVS tree.
5497
54982002-04-28  Jakub Jelinek  <jakub@redhat.com>
5499
5500	* configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
5501	%r_disp32().
5502	* src/sparc/v8.S: Use it.
5503	* src/sparc/v9.S: Likewise.
5504	* fficonfig.h.in: Rebuilt.
5505	* configure: Rebuilt.
5506
55072002-04-08  Hans Boehm  <Hans_Boehm@hp.com>
5508
5509	* src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
5510	correctly.
5511	* src/ia64/unix.S: Add unwind information. Fix comments.
5512	Save sp in a way that's compatible with unwind info.
5513	(ffi_call_unix): Correctly restore sp in all cases.
5514	* src/ia64/ffi.c: Add, fix comments.
5515
55162002-04-08  Jakub Jelinek  <jakub@redhat.com>
5517
5518	* src/sparc/v8.S: Make .eh_frame dependent on target word size.
5519
55202002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
5521
5522	* configure.in (alpha*-*-netbsd*): Add target.
5523	* configure: Regenerate.
5524
55252002-04-04  Jeff Sturm  <jsturm@one-point.com>
5526
5527	* src/sparc/v8.S: Add unwind info.
5528	* src/sparc/v9.S: Likewise.
5529
55302002-03-30  Krister Walfridsson  <cato@df.lth.se>
5531
5532	* configure.in: Enable i*86-*-netbsdelf*.
5533	* configure: Rebuilt.
5534
55352002-03-29  David Billinghurst <David.Billinghurst@riotinto.com>
5536
5537	PR other/2620
5538	* src/mips/n32.s: Delete
5539	* src/mips/o32.s: Delete
5540
55412002-03-21  Loren J. Rittle  <ljrittle@acm.org>
5542
5543	* configure.in: Enable alpha*-*-freebsd*.
5544	* configure: Rebuilt.
5545
55462002-03-17  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5547
5548	* Makefile.am: libfficonvenience -> libffi_convenience.
5549	* Makefile.in: Rebuilt.
5550
5551	* Makefile.am: Define ffitest_OBJECTS.
5552	* Makefile.in: Rebuilt.
5553
55542002-03-07  Andreas Tobler  <toa@pop.agri.ch>
5555	    David Edelsohn  <edelsohn@gnu.org>
5556
5557	* Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
5558	(TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
5559	(TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
5560	* Makefile.in: Regenerate.
5561	* include/ffi.h.in: Add AIX and Darwin closure definitions.
5562	* src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
5563	(flush_icache, flush_range): New functions.
5564	(ffi_closure_helper_DARWIN): New function.
5565	* src/powerpc/aix_closure.S: New file.
5566	* src/powerpc/darwin_closure.S: New file.
5567
55682002-02-24  Jeff Sturm  <jsturm@one-point.com>
5569
5570	* include/ffi.h.in: Add typedef for ffi_arg.
5571	* src/ffitest.c (main): Declare rint with ffi_arg.
5572
55732002-02-21  Andreas Tobler  <toa@pop.agri.ch>
5574
5575	* src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
5576	number of GPRs for floating-point arguments.
5577
55782002-01-31  Anthony Green  <green@redhat.com>
5579
5580	* configure: Rebuilt.
5581	* configure.in: Replace CHECK_SIZEOF and endian tests with
5582	cross-compiler friendly macros.
5583	* aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
5584	macros.
5585
55862002-01-18  David Edelsohn  <edelsohn@gnu.org>
5587
5588	* src/powerpc/darwin.S (_ffi_call_AIX): New.
5589	* src/powerpc/aix.S (ffi_call_DARWIN): New.
5590
55912002-01-17  David Edelsohn  <edelsohn@gnu.org>
5592
5593	* Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5594	(TARGET_SRC_POWERPC_AIX): New.
5595	(POWERPC_AIX): New stanza.
5596	* Makefile.in: Regenerate.
5597	* configure.in: Add AIX case.
5598	* configure: Regenerate.
5599	* include/ffi.h.in (ffi_abi): Add FFI_AIX.
5600	* src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5601	size.  Fix "long double" support.
5602	(ffi_call): Add FFI_AIX case.
5603	* src/powerpc/aix.S: New.
5604
56052001-10-09  John Hornkvist  <john@toastedmarshmallow.com>
5606
5607	Implement Darwin PowerPC ABI.
5608	* configure.in: Handle powerpc-*-darwin*.
5609	* Makefile.am: Set source files for POWERPC_DARWIN.
5610	* configure: Rebuilt.
5611	* Makefile.in: Rebuilt.
5612	* include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5613	POWERPC_DARWIN.
5614	* src/powerpc/darwin.S: New file.
5615	* src/powerpc/ffi_darwin.c: New file.
5616
56172001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
5618
5619	* src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5620
56212001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5622
5623	* src/x86/sysv.S: Avoid gas-only .balign directive.
5624	Use C style comments.
5625
56262001-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5627
5628	* src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5629	Fixes PR bootstrap/3563.
5630
56312001-06-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5632
5633	* src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5634
56352001-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5636
5637	* configure.in: Recognize sparc*-sun-* host.
5638	* configure: Regenerate.
5639
56402001-06-06  Andrew Haley  <aph@redhat.com>
5641
5642	* src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5643
56442001-06-03  Andrew Haley  <aph@redhat.com>
5645
5646	* src/alpha/osf.S: Add unwind info.
5647	* src/powerpc/sysv.S: Add unwind info.
5648	* src/powerpc/ppc_closure.S: Likewise.
5649
56502000-05-31  Jeff Sturm  <jsturm@one-point.com>
5651
5652	* configure.in: Fix AC_ARG_ENABLE usage.
5653	* configure: Rebuilt.
5654
56552001-05-06  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5656
5657	* configure.in: Remove warning about beta code.
5658	* configure: Rebuilt.
5659
56602001-04-25  Hans Boehm <Hans_Boehm@hp.com>
5661
5662	* src/ia64/unix.S: Restore stack pointer when returning from
5663	ffi_closure_UNIX.
5664	* src/ia64/ffi.c: Fix typo in comment.
5665
56662001-04-18  Jim Wilson  <wilson@redhat.com>
5667
5668	* src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5669	to eliminate RAW DV.
5670
56712001-04-12  Bryce McKinlay  <bryce@albatross.co.nz>
5672
5673	* Makefile.am: Make a libtool convenience library.
5674	* Makefile.in: Rebuilt.
5675
56762001-03-29  Bryce McKinlay  <bryce@albatross.co.nz>
5677
5678	* configure.in: Use different syntax for subdirectory creation.
5679	* configure: Rebuilt.
5680
56812001-03-27  Jon Beniston  <jon@beniston.com>
5682
5683	* configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5684	* configure: Rebuilt.
5685	* Makefile.am: Added X86_WIN32 target support.
5686	* Makefile.in: Rebuilt.
5687
5688	* include/ffi.h.in: Added X86_WIN32 target support.
5689
5690	* src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5691	* src/types.c: Added X86_WIN32 target support.
5692
5693	* src/x86/win32.S: New file. Based on sysv.S, but with EH
5694	stuff removed and made to work with CygWin's gas.
5695
56962001-03-26  Bryce McKinlay  <bryce@albatross.co.nz>
5697
5698	* configure.in: Make target subdirectory in build dir.
5699	* Makefile.am: Override suffix based rules to specify correct output
5700	subdirectory.
5701	* Makefile.in: Rebuilt.
5702	* configure: Rebuilt.
5703
57042001-03-23  Kevin B Hendricks  <khendricks@ivey.uwo.ca>
5705
5706	* src/powerpc/ppc_closure.S: New file.
5707	* src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5708	involving long long and register pairs.
5709	(ffi_prep_closure): New function.
5710	(flush_icache): Likewise.
5711	(ffi_closure_helper_SYSV): Likewise.
5712	* include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5713	(FFI_TRAMPOLINE_SIZE): Likewise.
5714	(FFI_NATIVE_RAW_API): Likewise.
5715	* Makefile.in: Rebuilt.
5716	* Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5717	(TARGET_SRC_POWERPC): Likewise.
5718
57192001-03-19  Tom Tromey  <tromey@redhat.com>
5720
5721	* Makefile.in: Rebuilt.
5722	* Makefile.am (ffitest_LDFLAGS): New macro.
5723
57242001-03-02  Nick Clifton  <nickc@redhat.com>
5725
5726	* include/ffi.h.in: Remove RCS ident string.
5727	* include/ffi_mips.h: Remove RCS ident string.
5728	* src/debug.c: Remove RCS ident string.
5729	* src/ffitest.c: Remove RCS ident string.
5730	* src/prep_cif.c: Remove RCS ident string.
5731	* src/types.c: Remove RCS ident string.
5732	* src/alpha/ffi.c: Remove RCS ident string.
5733	* src/alpha/osf.S: Remove RCS ident string.
5734	* src/arm/ffi.c: Remove RCS ident string.
5735	* src/arm/sysv.S: Remove RCS ident string.
5736	* src/mips/ffi.c: Remove RCS ident string.
5737	* src/mips/n32.S: Remove RCS ident string.
5738	* src/mips/o32.S: Remove RCS ident string.
5739	* src/sparc/ffi.c: Remove RCS ident string.
5740	* src/sparc/v8.S: Remove RCS ident string.
5741	* src/sparc/v9.S: Remove RCS ident string.
5742	* src/x86/ffi.c: Remove RCS ident string.
5743	* src/x86/sysv.S: Remove RCS ident string.
5744
57452001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
5746
5747	* include/ffi.h.in: Change sourceware.cygnus.com references to
5748	gcc.gnu.org.
5749
57502000-12-09  Richard Henderson  <rth@redhat.com>
5751
5752	* src/alpha/ffi.c (ffi_call): Simplify struct return test.
5753	(ffi_closure_osf_inner): Index rather than increment avalue
5754	and arg_types.  Give ffi_closure_osf the raw return value type.
5755	* src/alpha/osf.S (ffi_closure_osf): Handle return value type
5756	promotion.
5757
57582000-12-07  Richard Henderson  <rth@redhat.com>
5759
5760	* src/raw_api.c (ffi_translate_args): Fix typo.
5761	(ffi_prep_closure): Likewise.
5762
5763	* include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5764	FFI_TRAMPOLINE_SIZE.
5765	* src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5766	cif->bytes for new ffi_call_osf implementation.
5767	(ffi_prep_args): Absorb into ...
5768	(ffi_call): ... here.  Do all stack allocation here and
5769	avoid a callback function.
5770	(ffi_prep_closure, ffi_closure_osf_inner): New.
5771	* src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5772	(ffi_closure_osf): New.
5773
57742000-09-10  Alexandre Oliva  <aoliva@redhat.com>
5775
5776	* config.guess, config.sub, install-sh: Removed.
5777	* ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5778	* Makefile.in: Rebuilt.
5779
5780	* acinclude.m4: Include libtool macros from the top level.
5781	* aclocal.m4, configure: Rebuilt.
5782
57832000-08-22  Alexandre Oliva  <aoliva@redhat.com>
5784
5785	* configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5786	* configure: Rebuilt.
5787
57882000-05-11  Scott Bambrough  <scottb@netwinder.org>
5789
5790	* libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5791	memory correctly.  Use conditional instructions, not branches where
5792	possible.
5793
57942000-05-04  Tom Tromey  <tromey@cygnus.com>
5795
5796	* configure: Rebuilt.
5797	* configure.in: Match `arm*-*-linux-*'.
5798	From Chris Dornan <cdornan@arm.com>.
5799
58002000-04-28  Jakub Jelinek  <jakub@redhat.com>
5801
5802	* Makefile.am (SUBDIRS): Define.
5803	(AM_MAKEFLAGS): Likewise.
5804	(Multilib support.): Add section.
5805	* Makefile.in: Rebuilt.
5806	* ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5807	New variables. Set for gcc using -print-multi-lib. Export them
5808	to libtool.
5809	(sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5810	* ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5811	for -shared links.
5812	(extra_compiler_flags_value, extra_compiler_flags): Check these
5813	for extra compiler options which need to be passed down in
5814	compiler_flags.
5815
58162000-04-16  Anthony Green  <green@redhat.com>
5817
5818	* configure: Rebuilt.
5819	* configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5820
58212000-04-14  Jakub Jelinek  <jakub@redhat.com>
5822
5823	* include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5824	Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5825	* src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5826	Replace all void * sizeofs with sizeof(int).
5827	Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5828	different than DOUBLE.
5829	Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5830	(ffi_prep_args_v9): New function.
5831	(ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5832	(ffi_V9_return_struct): New function.
5833	(ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5834	32bit code (not yet cross-arch calls).
5835	* src/sparc/v8.S: Add struct return delay nop.
5836	Handle long long.
5837	* src/sparc/v9.S: New file.
5838	* src/prep_cif.c (ffi_prep_cif): Return structure pointer
5839	is used on sparc64 only for structures larger than 32 bytes.
5840	Pass by reference for structures is done for structure arguments
5841	larger than 16 bytes.
5842	* src/ffitest.c (main): Use 64bit rint on sparc64.
5843	Run long long tests on sparc.
5844	* src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5845	sparc64.
5846	(FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5847	on sparc64.
5848	* configure.in (sparc-*-linux*): New supported target.
5849	(sparc64-*-linux*): Likewise.
5850	* configure: Rebuilt.
5851	* Makefile.am: Add v9.S to SPARC files.
5852	* Makefile.in: Likewise.
5853	(LINK): Surround $(CCLD) into double quotes, so that multilib
5854	compiles work correctly.
5855
58562000-04-04  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5857
5858	* configure: Rebuilt.
5859	* configure.in: (i*86-*-solaris*): New libffi target. Patch
5860	proposed by Bryce McKinlay.
5861
58622000-03-20  Tom Tromey  <tromey@cygnus.com>
5863
5864	* Makefile.in: Hand edit for java_raw_api.lo.
5865
58662000-03-08  Bryce McKinlay  <bryce@albatross.co.nz>
5867
5868	* config.guess, config.sub: Update from the gcc tree.
5869	Fix for PR libgcj/168.
5870
58712000-03-03  Tom Tromey  <tromey@cygnus.com>
5872
5873	* Makefile.in: Fixed ia64 by hand.
5874
5875	* configure: Rebuilt.
5876	* configure.in (--enable-multilib): New option.
5877	(libffi_basedir): New subst.
5878	(AC_OUTPUT): Added multilib code.
5879
58802000-03-02  Tom Tromey  <tromey@cygnus.com>
5881
5882	* Makefile.in: Rebuilt.
5883	* Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5884	directory name.
5885
58862000-02-25  Hans Boehm <boehm@acm.org>
5887
5888	* src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5889	files.
5890	* src/raw_api.c (ffi_translate_args): Fixed typo in argument
5891	list.
5892	(ffi_prep_raw_closure): Use ffi_translate_args, not
5893	ffi_closure_translate.
5894	* src/java_raw_api.c: New file.
5895	* src/ffitest.c (closure_test_fn): New function.
5896	(main): Define `rint' as long long on IA64.  Added new test when
5897	FFI_CLOSURES is defined.
5898	* include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5899	(ffi_abi): Recognize IA64.
5900	(ffi_raw): Added `flt' field.
5901	Added "Java raw API" code.
5902	* configure.in: Recognize ia64.
5903	* Makefile.am (TARGET_SRC_IA64): New macro.
5904	(libffi_la_common_SOURCES): Added java_raw_api.c.
5905	(libffi_la_SOURCES): Define in IA64 case.
5906
59072000-01-04  Tom Tromey  <tromey@cygnus.com>
5908
5909	* Makefile.in: Rebuilt with newer automake.
5910
59111999-12-31  Tom Tromey  <tromey@cygnus.com>
5912
5913	* Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5914
59151999-09-01  Tom Tromey  <tromey@cygnus.com>
5916
5917	* include/ffi.h.in: Removed PACKAGE and VERSION defines and
5918	undefs.
5919	* fficonfig.h.in: Rebuilt.
5920	* configure: Rebuilt.
5921	* configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5922	Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5923	* acconfig.h: Don't #undef PACKAGE or VERSION.
5924
59251999-08-09  Anthony Green  <green@cygnus.com>
5926
5927	* include/ffi.h.in: Try to work around messy header problem
5928	with PACKAGE and VERSION.
5929
5930	* configure: Rebuilt.
5931	* configure.in: Change version to 2.00-beta.
5932
5933	* fficonfig.h.in: Rebuilt.
5934	* acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5935
5936	* src/x86/ffi.c (ffi_raw_call): Rename.
5937
59381999-08-02  Kresten Krab Thorup  <krab@dominiq.is.s.u-tokyo.ac.jp>
5939
5940	* src/x86/ffi.c (ffi_closure_SYSV): New function.
5941	(ffi_prep_incoming_args_SYSV): Ditto.
5942	(ffi_prep_closure): Ditto.
5943	(ffi_closure_raw_SYSV): Ditto.
5944	(ffi_prep_raw_closure): More ditto.
5945	(ffi_call_raw): Final ditto.
5946
5947	* include/ffi.h.in: Add definitions for closure and raw API.
5948
5949	* src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5950	FFI_TYPE_UINT64.
5951
5952	* Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5953
5954	* src/raw_api.c: New file.
5955
5956	* include/ffi.h.in (ffi_raw): New type.
5957	(UINT_ARG, SINT_ARG): New defines.
5958	(ffi_closure, ffi_raw_closure): New types.
5959	(ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5960
5961	* configure.in: Add check for endianness and sizeof void*.
5962
5963	* src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5964	instead of directly.
5965
5966	* configure: Rebuilt.
5967
5968Thu Jul  8 14:28:42 1999  Anthony Green  <green@cygnus.com>
5969
5970	* configure.in: Add x86 and powerpc BeOS configurations.
5971	From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5972
59731999-05-09  Anthony Green  <green@cygnus.com>
5974
5975	* configure.in: Add warning about this being beta code.
5976	Remove src/Makefile.am from the picture.
5977	* configure: Rebuilt.
5978
5979	* Makefile.am: Move logic from src/Makefile.am.  Add changes
5980	to support libffi as a target library.
5981	* Makefile.in: Rebuilt.
5982
5983	* aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5984	Upgraded to new autoconf, automake, libtool.
5985
5986	* README: Tweaks.
5987
5988	* LICENSE: Update copyright date.
5989
5990	* src/Makefile.am, src/Makefile.in: Removed.
5991
59921998-11-29  Anthony Green  <green@cygnus.com>
5993
5994	* include/ChangeLog: Removed.
5995	* src/ChangeLog: Removed.
5996	* src/mips/ChangeLog: Removed.
5997	* src/sparc/ChangeLog: Remboved.
5998	* src/x86/ChangeLog: Removed.
5999
6000	* ChangeLog.v1: Created.
6001