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