2012-06-14  Release Manager

	* GCC 4.7.1 released.

2012-03-22  David Edelsohn  <dje.gcc@gmail.com>

	Backport from mainline:
	2012-03-09  David Edelsohn  <dje.gcc@gmail.com>

	* src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
	change to return value of ffi_closure_helper_DARWIN and load type
	from return type.

	From Tom Honermann <tom.honermann@oracle.com>:
	* src/powerpc/aix.S: Declare .ffi_prep_args.  Insert nops after
	branch instructions.
	* src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.

2012-03-22  Release Manager

	* GCC 4.7.0 released.

2012-02-27  Mikael Pettersson  <mikpe@it.uu.se>

	PR libffi/52223
	* Makefile.am (FLAGS_TO_PASS): Define.
	* Makefile.in: Regenerate.

2012-02-23  Kai Tietz  <ktietz@redhat.com>

	PR libffi/52221
	* src/x86/ffi.c (ffi_closure_raw_THISCALL): New
	prototype.
	(ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
	thiscall-convention.
	(ffi_raw_call): Use ffi_prep_args_raw.
	* src/x86/win32.S (ffi_closure_raw_THISCALL): Add
	implementation for stub.

2012-02-13  Kai Tietz  <ktietz@redhat.com>

	PR libffi/52221
	* src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
	support for X86_WIN32.
	(FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.

2012-02-11  Eric Botcazou  <ebotcazou@adacore.com>

	* src/sparc/v9.S (STACKFRAME): Bump to 176.

2012-02-10  Kai Tietz  <ktietz@redhat.com>

	* configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
	windows target.
	* configure: Regenerated.
	
2012-02-08  Kai Tietz  <ktietz@redhat.com>

	* src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
	also FFI_THISCALL.
	* src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
	(FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
	(ffi_prep_closure_loc): Add FFI_THISCALL support.
	* src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
	* src/x86/win32.S (ffi_closure_THISCALL): New closure code
	for thiscall-calling convention.
	* testsuite/libffi.call/closure_thiscall.c: New test.

2012-01-28  Kai Tietz  <ktietz@redhat.com>

	* src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
	argument to prototype for specify calling-convention.
	(ffi_call): Add support for stdcall/thiscall convention.
	(ffi_prep_args): Likewise.
	(ffi_raw_call): Likewise.
	* src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
	FFI_FASTCALL.
	* src/x86/win32.S (_ffi_call_win32): Add support for
	fastcall/thiscall calling-convention calls.
	* testsuite/libffi.call/fastthis1_win32.c: New test.
	* testsuite/libffi.call/fastthis2_win32.c: New test.
	* testsuite/libffi.call/fastthis3_win32.c: New test.
	* testsuite/libffi.call/strlen2_win32.c: New test.
	* testsuite/libffi.call/many2_win32.c: New test.
	* testsuite/libffi.call/struct1_win32.c: New test.
	* testsuite/libffi.call/struct2_win32.c: New test.

2012-01-23  Andreas Schwab  <schwab@linux-m68k.org>

	* src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
	mc68000.  Test for __HAVE_68881__ in addition to __MC68881__.

2012-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/48496
	* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.

2012-01-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (i?86-*-*): Set TARGET to X86_64.
	* configure: Regenerate.

2011-12-07  Andrew Pinski  <apinski@cavium.com>

	PR libffi/50051
	* src/mips/n32.S: Add ".set mips4".

2011-11-21  Andreas Tobler  <andreast@fgznet.ch>

	* configure: Regenerate.

2011-11-10  Richard Henderson  <rth@redhat.com>

	* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
	* configure, aclocal.m4: Rebuild.

2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>

	PR libffi/49594
	* src/powerpc/darwin_closure.S (stubs): Make the stub binding
	helper reference track the architecture pointer size.

2011-08-25  Andrew Haley  <aph@redhat.com>

	* src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
	instructions.
	* src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.

2011-07-11  Andrew Haley  <aph@redhat.com>

        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libffi/46660
	* testsuite/libffi.call/cls_double_va.c: xfail dg-output on
	mips-sgi-irix6*.
	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.

2011-06-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
	PRId8 instead of %hhu, %hhd.
	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
	PRIu8): Define.
	[__sgi__] (PRId8, PRIu8): Define.

2011-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
	Define.
	Use them to handle ELF vs. ECOFF differences.
	[__osf__] (_GLOBAL__F_ffi_call_osf): Define.

2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libffi/46661
	* testsuite/libffi.call/cls_pointer.c (main): Cast void * to
	uintptr_t first.
	* testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.

2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>

	* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
	Handle case when CPU variant does not have long double support.
	* libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
	and cores with soft floating point.

2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>

	* configure.ac: Add mips*-*-rtems* support.
	* configure: Regenerate.
	* src/mips/ffitarget.h: Ensure needed constants are available
	for targets which do not have sgidefs.h.

2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40125
	* configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
	* configure: Regenerate.

2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>

	PR libffi/29152
	PR libffi/42378
	* src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
	update comments.
	* src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
	(FFI_TRAMPOLINE_SIZE): Update for Darwin64.
	* src/powerpc/darwin.S: Provide Darwin64 implementation,
	update comments.
	* src/powerpc/ffi_darwin.c: Likewise.

2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
	backslashes.
	(libffi_cv_as_string_pseudo_op): Likewise.
	* configure: Regenerate.

2010-12-03  Chung-Lin Tang  <cltang@codesourcery.com>

	* src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
	(ffi_closure_VFP): Same.
	(ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
	directive.

2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
	(PRIuPTR): Define.

2010-11-29  Richard Henderson  <rth@redhat.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
	(.eh_frame): Use FDE_ENCODING.
	(.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.

2010-11-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/lib/libffi-dg.exp: Rename ...
	* testsuite/lib/libffi.exp: ... to this.
	* libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
	* libffi/testsuite/libffi.special/special.exp: Likewise.

2010-10-28  Chung-Lin Tang  <cltang@codesourcery.com>

	* src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
	code, new parameter, and return value. Update comments.
	(ffi_prep_cif_machdep): Add case for VFP struct return values. Add
	call to layout_vfp_args().
	(ffi_call_SYSV): Update declaration.
	(ffi_call_VFP): New declaration.
	(ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
	when ABI is FFI_VFP.
	(ffi_closure_VFP): New declaration.
	(ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
	ffi_prep_incoming_args_SYSV().
	(ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
	case handling.
	(ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
	construction under VFP hard-float.
	(rec_vfp_type_p): New function.
	(vfp_type_p): Same.
	(place_vfp_arg): Same.
	(layout_vfp_args): Same.
	* src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
	based on __ARM_PCS_VFP.
	(FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
	fields.
	(FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
	(FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
	* src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
	direct call. Move function pointer load upwards.
	(ffi_call_VFP): New function.
	(ffi_closure_VFP): Same.

	* testsuite/lib/libffi-dg.exp (check-flags): New function.
	(dg-skip-if): New function.
	* testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
	and compiler options include -mfloat-abi=hard.
	* testsuite/libffi.call/cls_longdouble_va.c: Same.

2010-10-01  Jakub Jelinek  <jakub@redhat.com>

	PR libffi/45677
	* src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
	a multiple of 8.
	* testsuite/libffi.call/many2.c: New test.

2010-08-20  Mark Wielaard  <mjw@redhat.com>

	* src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
	returns NULL.

2010-08-09  Andreas Tobler  <andreast@fgznet.ch>

	* configure.ac: Add target powerpc64-*-freebsd*.
	* configure: Regenerate.
	* testsuite/libffi.call/cls_align_longdouble_split.c: Pass
	-mlong-double-128 only to linux targets.
	* testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
	* testsuite/libffi.call/cls_longdouble.c: Likewise.
	* testsuite/libffi.call/huge_struct.c: Likewise.

2010-07-10  Evan Phoenix  <evan@fallingsnow.net>

	* src/closures.c (selinux_enabled_check): Fix strncmp usage bug.

2010-07-07  Dan Horák <dan@danny.cz>

	* include/ffi.h.in: Protect #define with #ifndef.
	* src/powerpc/ffitarget.h: Ditto.
	* src/s390/ffitarget.h: Ditto.
	* src/sparc/ffitarget.h: Ditto.

2010-07-07   Neil Roberts <neil@linux.intel.com>

	* src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
	16-bytes.

2010-07-02  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
	* Makefile.in: Regenerated.

2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
	output, too.
	(libffi_cv_as_ascii_pseudo_op): Check for .ascii.
	(libffi_cv_as_string_pseudo_op): Check for .string.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.

2010-05-05  Michael Kohler <michaelkohler@live.com>

	* src/dlmalloc.c (dlfree): Fix spelling.
	* src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
	* configure.ac: Ditto.
	* configure: Rebuilt.

2010-04-13  Dan Witte  <dwitte@mozilla.com>

	* msvcc.sh: Build with -W3 instead of -Wall.
	* src/powerpc/ffi_darwin.c: Remove build warnings.
	* src/x86/ffi.c: Ditto.
	* src/x86/ffitarget.h: Ditto.

2010-04-12  Dan Witte  <dwitte@mozilla.com>
	    Walter Meinl <wuno@lsvw.de>

	* configure.ac: Add OS/2 support.
	* configure: Rebuilt.
	* src/closures.c: Ditto.
	* src/dlmalloc.c: Ditto.
	* src/x86/win32.S: Ditto.

2010-04-07  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2010-03-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* libffi/src/x86/unix64.S (.eh_frame)
	[HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.

2010-03-14  Matthias Klose  <doko@ubuntu.com>

	* src/x86/ffi64.c: Fix typo in comment.
	* src/x86/ffi.c: Use /* ... */ comment style.

2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/libffi.texi (The Closure API): Fix typo.
	* doc/libffi.info: Remove.

2010-02-15  Matthias Klose  <doko@ubuntu.com>

	* src/arm/sysv.S (__ARM_ARCH__): Define for processor
	__ARM_ARCH_7EM__.

2010-01-15  Anthony Green  <green@redhat.com>

	* README: Add notes on building with Microsoft Visual C++.

2010-01-15  Daniel Witte  <dwitte@mozilla.com>

	* msvcc.sh: New file.

	* src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
	* src/x86/ffi.c: Tweak function declaration and remove excess
	parens.
	* include/ffi.h.in: Add __declspec(align(8)) to typedef struct
	ffi_closure.

	* src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
	function ffi_call_win32 on X86_WIN32.
	* src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
	(ffi_call_STDCALL): Remove.

	* src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
	to ffi_prep_cif_machdep for x86.
	* src/x86/ffi.c (ffi_prep_cif_machdep): To here.

2010-01-15  Oliver Kiddle  <okiddle@yahoo.co.uk>

	* src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
	Sun Studio compiler compatibility.

2010-01-12  Conrad Irwin <conrad.irwin@gmail.com>

	* doc/libffi.texi: Add closure example.

2010-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libffi/40701
	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
	PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
	* testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
	alpha*-dec-osf*.
	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/return_ll1.c: Likewise.
	* testsuite/libffi.call/stret_medium2.c: Likewise.
	* testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
	MAP_FAILED to char *.

2010-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.

2009-12-31  Anthony Green  <green@redhat.com>

	* README: Update for libffi 3.0.9.

2009-12-27  Matthias Klose  <doko@ubuntu.com>

	* configure.ac (HAVE_LONG_DOUBLE): Define for mips when
	appropriate.
	* configure: Rebuilt.

2009-12-26  Anthony Green  <green@redhat.com>

	* testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
	avr32*-*-*.
	* testsuite/libffi.call/cls_double_va.c: Ditto.

2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>

	* testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
	and inttypes.h.
	* testsuite/libffi.special/unwindtest.cc: Ditto.

2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Add amd64-*-openbsd*.
	* configure: Rebuilt.
	* testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
	openbsd programs with -lpthread.

2009-12-26  Anthony Green  <green@redhat.com>

	* testsuite/libffi.call/cls_double_va.c,
	testsuite/libffi.call/cls_longdouble.c,
	testsuite/libffi.call/cls_longdouble_va.c,
	testsuite/libffi.call/cls_pointer.c,
	testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
	mips*-*-* and arm*-*-*.
	* testsuite/libffi.call/cls_align_longdouble_split.c,
	testsuite/libffi.call/cls_align_longdouble_split2.c,
	testsuite/libffi.call/stret_medium2.c,
	testsuite/libffi.call/stret_medium.c,
	testsuite/libffi.call/stret_large.c,
	testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.

2009-12-31  Kay Tietz  <ktietz70@googlemail.com>

	* testsuite/libffi.call/ffitest.h,
	testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
	definitions.

2009-12-31  Carlo Bramini  <carlo.bramix@libero.it>

	* configure.ac (AM_LTLDFLAGS): Define for windows hosts.
	* Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
	* configure: Rebuilt.
	* Makefile.in: Rebuilt.

2009-12-31  Anthony Green  <green@redhat.com>
	    Blake Chaffin.

	* testsuite/libffi.call/huge_struct.c: New test case from Blake
	Chaffin @ Apple.

2009-12-28  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
	local variables.
	(aix_adjust_aggregate_sizes): New function.
	(ffi_prep_cif_machdep): Call it.

2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
	* configure: Regenerate.
	* fficonfig.h.in: Likewise.
	* src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
	Solaris/x86.

2009-12-26  Andreas Schwab  <schwab@linux-m68k.org>

	* src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
	when a float arguments is passed in memory.
	(ffi_closure_helper_SYSV): Mark general registers as used up when
	a 64bit or soft-float long double argument is passed in memory.

2009-12-25  Matthias Klose  <doko@ubuntu.com>

	* man/ffi_call.3: Fix #include in examples.
	* doc/libffi.texi: Add dircategory.

2009-12-25  Frank Everdij <f.p.x.everdij@tudelft.nl>

	* include/ffi.h.in: Placed '__GNUC__' ifdef around
	'__attribute__((aligned(8)))' in ffi_closure, fixes compile for
	IRIX MIPSPro c99.
	* include/ffi_common.h: Added '__sgi' define to non
	'__attribute__((__mode__()))' integer typedefs.
	* src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
	ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
	(ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
	FFI_LONGDOUBLE support and alignment(N32 only).
	* src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
	fixed non '__attribute__((__mode__()))' integer typedefs.
	* src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
	since they are Linux/GNU Assembler specific.

2009-12-25  Bradley Smith  <brad@brad-smith.co.uk>

	* configure.ac, Makefile.am, src/avr32/ffi.c,
	src/avr32/ffitarget.h,
	src/avr32/sysv.S: Add AVR32 port.
	* configure, Makefile.in: Rebuilt.

2009-12-21  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Make i?86 build on FreeBSD and OpenBSD.
	* configure: Regenerate.

2009-12-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.

2009-12-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
	type on HP-UX.

2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	* src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
	double' arguments.

2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	* testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.

2009-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libffi/40700
	* src/closures.c [X86_64 && __sun__ && __svr4__]
	(FFI_MMAP_EXEC_WRIT): Define.

2009-12-08  David Daney  <ddaney@caviumnetworks.com>

	* testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
	* testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
	* testsuite/libffi.call/stret_large.c: Same.
	* testsuite/libffi.call/cls_align_longdouble_split.c: Same.
	* testsuite/libffi.call/stret_large2.c: Same.
	* testsuite/libffi.call/stret_medium2.c: Same.

2009-12-07  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
	typo.

2009-12-05  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
	code.
	* src/powerpc/aix_closure.S: Same.

2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2009-12-04  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/aix_closure.S: Reorganize 64-bit code to match
	linux64_closure.S.

2009-12-04  Uros Bizjak  <ubizjak@gmail.com>

	PR libffi/41908
	* src/x86/ffi64.c (classify_argument): Update from
	gcc/config/i386/i386.c.
	(ffi_closure_unix64_inner): Do not use the address of two consecutive
	SSE registers directly.
	* testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
	for x86_64 linux targets.

2009-12-04  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
	pfr for long double split between fpr13 and stack.

2009-12-03  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
	fparg_count twice for long double.

2009-12-03  David Edelsohn  <edelsohn@gnu.org>

	PR libffi/42243
	* src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.

2009-12-03  Uros Bizjak  <ubizjak@gmail.com>

	* testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
	Remove xfails for x86 linux targets.

2009-12-02  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
	case.

2009-12-01  David Edelsohn  <edelsohn@gnu.org>

	* src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
	register usage.  Call ffi_prep_args directly.  Add long double
	return value support.
	* src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
	applies to FFI_TYPE_DOUBLE.  Correct fpr_base increment typo.
	Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
	(ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
	mode.
	(ffi_closure_helper_DARWIN): Remove nf and ng counters.  Move temp
	into case.
	* src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
	Allocate result area between params and FPRs.

2009-11-30  David Edelsohn  <edelsohn@gnu.org>

	PR target/35484
	* src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
	AIX64.
	* src/powerpc/aix.S: Implement AIX64 version.
	* src/powerpc/aix_closure.S: Implement AIX64 version.
	(ffi_closure_ASM): Use extsb, lha and displament addresses.
	* src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
	support.
	(ffi_prep_cif_machdep): Same.
	(ffi_call): Same.
	(ffi_closure_helper_DARWIN): Same.

2009-11-02  Andreas Tobler  <a.tobler@schweiz.org>

	PR libffi/41908
	* testsuite/libffi.call/testclosure.c: New test.

2009-09-28  Kai Tietz  <kai.tietz@onevision.com>

	* src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
	assembly version use of ___chkstk.

2009-09-23  Matthias Klose  <doko@ubuntu.com>

	PR libffi/40242, PR libffi/41443
	* src/arm/sysv.S (__ARM_ARCH__): Define for processors
	__ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
	__ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
	Change the conditionals to __SOFTFP__ || __ARM_EABI__
	for -mfloat-abi=softfp to work.

2009-09-17  Loren J. Rittle  <ljrittle@acm.org>

	PR testsuite/32843 (strikes again)
	* src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
	enable proper extension on char and short.

2009-09-15  David Daney  <ddaney@caviumnetworks.com>

	* src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
	handling for FFI_TYPE_POINTER.
	* src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
	FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
	FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
	FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
	(FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
	(enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
	* src/mips/n32.S (ffi_call_N32): Add handling for soft-float
	structure and pointer returns.
	(ffi_closure_N32): Add handling for pointer returns.
	* src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
	calc_n32_return_struct_flags): Handle soft-float.
	(ffi_prep_cif_machdep):  Handle soft-float, fix pointer handling.
	(ffi_call_N32): Declare proper argument types.
	(ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
	soft-float.

2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (AC_PREREQ): Bump to 2.64.

2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.am (install-html, install-pdf): Remove.
	* Makefile.in: Regenerate.

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.

2009-07-24  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR libffi/40807
	* src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
	return types for X86_WIN32.
	* src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
	(_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
	_ffi_closure_STDCALL): Likewise.

	* src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
	(dlmmap, dlmunmap): Also use these functions on Cygwin.

2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>

	PR testsuite/40699
	PR testsuite/40707
	PR testsuite/40709
	* testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
	2009-06-30 commits.

2009-07-01  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
	to "" before adding paths.  (This reinstates an assignment that
	was removed by my 2009-06-30 commit, but changes the initial
	value from "." to "".)

2009-07-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR testsuite/40601
	* testsuite/lib/libffi-dg.exp (libffi-init): Properly set
	gccdir.  Adjust ld_library_path for gcc only if gccdir isn't
	empty.

2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
	to ld_library_path.  Use add_path.  Add just find_libgcc_s
	to ld_library_path, not every libgcc multilib directory.

2009-06-16  Wim Lewis  <wiml@hhhh.org>

	* src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
	supposed to be callee-saved.
	* src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
	return buffer for odd-size structs.

2009-06-16  Andreas Tobler  <a.tobler@schweiz.org>

	PR libffi/40444
	* testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
	allow_stack_execute for Darwin.

2009-06-16  Andrew Haley  <aph@redhat.com>

	* configure.ac (TARGETDIR): Add missing blank lines.
	* configure: Regenerate.

2009-06-16  Andrew Haley  <aph@redhat.com>

	* testsuite/libffi.call/cls_align_sint64.c,
	testsuite/libffi.call/cls_align_uint64.c,
	testsuite/libffi.call/cls_longdouble_va.c,
	testsuite/libffi.call/cls_ulonglong.c,
	testsuite/libffi.call/return_ll1.c,
	testsuite/libffi.call/stret_medium2.c: Fix printf format
	specifiers.
	* testsuite/libffi.call/ffitest.h,
	testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.

2009-06-15  Andrew Haley  <aph@redhat.com>

	* testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
	* testsuite/libffi.call/err_bad_abi.c: Likewise.

2009-06-12  Andrew Haley  <aph@redhat.com>

	* Makefile.am: Remove info_TEXINFOS.

2009-06-12  Andrew Haley  <aph@redhat.com>

	* ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
	testsuite/libffi.call/cls_align_uint64.c,
	testsuite/libffi.call/cls_ulonglong.c,
	testsuite/libffi.call/return_ll1.c,
	testsuite/libffi.call/stret_medium2.c: Fix printf format
	specifiers.
	testsuite/libffi.special/unwindtest.cc: include stdint.h.

2009-06-11  Timothy Wall  <twall@users.sf.net>

	* Makefile.am,
	configure.ac,
	include/ffi.h.in,
	include/ffi_common.h,
	src/closures.c,
	src/dlmalloc.c,
	src/x86/ffi.c,
	src/x86/ffitarget.h,
	src/x86/win64.S (new),
	README: Added win64 support (mingw or MSVC)
	* Makefile.in,
	include/Makefile.in,
	man/Makefile.in,
	testsuite/Makefile.in,
	configure,
	aclocal.m4: Regenerated
	* ltcf-c.sh: properly escape cygwin/w32 path
	* man/ffi_call.3: Clarify size requirements for return value.
	* src/x86/ffi64.c: Fix filename in comment.
	* src/x86/win32.S: Remove unused extern.

	* testsuite/libffi.call/closure_fn0.c,
	testsuite/libffi.call/closure_fn1.c,
	testsuite/libffi.call/closure_fn2.c,
	testsuite/libffi.call/closure_fn3.c,
	testsuite/libffi.call/closure_fn4.c,
	testsuite/libffi.call/closure_fn5.c,
	testsuite/libffi.call/closure_fn6.c,
	testsuite/libffi.call/closure_stdcall.c,
	testsuite/libffi.call/cls_12byte.c,
	testsuite/libffi.call/cls_16byte.c,
	testsuite/libffi.call/cls_18byte.c,
	testsuite/libffi.call/cls_19byte.c,
	testsuite/libffi.call/cls_1_1byte.c,
	testsuite/libffi.call/cls_20byte.c,
	testsuite/libffi.call/cls_20byte1.c,
	testsuite/libffi.call/cls_24byte.c,
	testsuite/libffi.call/cls_2byte.c,
	testsuite/libffi.call/cls_3_1byte.c,
	testsuite/libffi.call/cls_3byte1.c,
 	testsuite/libffi.call/cls_3byte2.c,
 	testsuite/libffi.call/cls_4_1byte.c,
 	testsuite/libffi.call/cls_4byte.c,
 	testsuite/libffi.call/cls_5_1_byte.c,
 	testsuite/libffi.call/cls_5byte.c,
 	testsuite/libffi.call/cls_64byte.c,
 	testsuite/libffi.call/cls_6_1_byte.c,
 	testsuite/libffi.call/cls_6byte.c,
 	testsuite/libffi.call/cls_7_1_byte.c,
 	testsuite/libffi.call/cls_7byte.c,
 	testsuite/libffi.call/cls_8byte.c,
 	testsuite/libffi.call/cls_9byte1.c,
 	testsuite/libffi.call/cls_9byte2.c,
 	testsuite/libffi.call/cls_align_double.c,
 	testsuite/libffi.call/cls_align_float.c,
 	testsuite/libffi.call/cls_align_longdouble.c,
 	testsuite/libffi.call/cls_align_longdouble_split.c,
 	testsuite/libffi.call/cls_align_longdouble_split2.c,
 	testsuite/libffi.call/cls_align_pointer.c,
 	testsuite/libffi.call/cls_align_sint16.c,
 	testsuite/libffi.call/cls_align_sint32.c,
 	testsuite/libffi.call/cls_align_sint64.c,
 	testsuite/libffi.call/cls_align_uint16.c,
 	testsuite/libffi.call/cls_align_uint32.c,
 	testsuite/libffi.call/cls_align_uint64.c,
 	testsuite/libffi.call/cls_dbls_struct.c,
 	testsuite/libffi.call/cls_double.c,
 	testsuite/libffi.call/cls_double_va.c,
 	testsuite/libffi.call/cls_float.c,
 	testsuite/libffi.call/cls_longdouble.c,
 	testsuite/libffi.call/cls_longdouble_va.c,
 	testsuite/libffi.call/cls_multi_schar.c,
 	testsuite/libffi.call/cls_multi_sshort.c,
 	testsuite/libffi.call/cls_multi_sshortchar.c,
 	testsuite/libffi.call/cls_multi_uchar.c,
 	testsuite/libffi.call/cls_multi_ushort.c,
 	testsuite/libffi.call/cls_multi_ushortchar.c,
 	testsuite/libffi.call/cls_pointer.c,
 	testsuite/libffi.call/cls_pointer_stack.c,
 	testsuite/libffi.call/cls_schar.c,
 	testsuite/libffi.call/cls_sint.c,
 	testsuite/libffi.call/cls_sshort.c,
 	testsuite/libffi.call/cls_uchar.c,
 	testsuite/libffi.call/cls_uint.c,
 	testsuite/libffi.call/cls_ulonglong.c,
 	testsuite/libffi.call/cls_ushort.c,
 	testsuite/libffi.call/err_bad_abi.c,
 	testsuite/libffi.call/err_bad_typedef.c,
 	testsuite/libffi.call/float2.c,
 	testsuite/libffi.call/huge_struct.c,
 	testsuite/libffi.call/nested_struct.c,
 	testsuite/libffi.call/nested_struct1.c,
 	testsuite/libffi.call/nested_struct10.c,
 	testsuite/libffi.call/nested_struct2.c,
 	testsuite/libffi.call/nested_struct3.c,
 	testsuite/libffi.call/nested_struct4.c,
 	testsuite/libffi.call/nested_struct5.c,
 	testsuite/libffi.call/nested_struct6.c,
 	testsuite/libffi.call/nested_struct7.c,
 	testsuite/libffi.call/nested_struct8.c,
 	testsuite/libffi.call/nested_struct9.c,
 	testsuite/libffi.call/problem1.c,
 	testsuite/libffi.call/return_ldl.c,
 	testsuite/libffi.call/return_ll1.c,
 	testsuite/libffi.call/stret_large.c,
 	testsuite/libffi.call/stret_large2.c,
 	testsuite/libffi.call/stret_medium.c,
 	testsuite/libffi.call/stret_medium2.c,
	testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
	of checking for MMAP.  Use intptr_t instead of long casts.

2009-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>

	* testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
	* testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
	* testsuite/libffi.call/err_bad_typedef.c: Likewise.

2009-06-09  Andrew Haley  <aph@redhat.com>

	* src/x86/freebsd.S: Add missing file.

2009-06-08  Andrew Haley  <aph@redhat.com>

	Import from libffi 3.0.8:

	* doc/libffi.texi: New file.
	* doc/libffi.info: Likewise.
	* doc/stamp-vti: Likewise.
	* man/Makefile.am: New file.
	* man/ffi_call.3: New file.

	* Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
	src/dlmalloc.c.
	(nodist_libffi_la_SOURCES): Add X86_FREEBSD.

	* configure.ac: Bump version to 3.0.8.
	parisc*-*-linux*: Add.
	i386-*-freebsd* | i386-*-openbsd*: Add.
	powerpc-*-beos*: Add.
	AM_CONDITIONAL X86_FREEBSD: Add.
	AC_CONFIG_FILES: Add man/Makefile.

	* include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).

2009-06-08  Andrew Haley  <aph@redhat.com>

	* README: Import from libffi 3.0.8.

2009-06-08  Andrew Haley  <aph@redhat.com>

	* testsuite/libffi.call/err_bad_abi.c: Add xfails.
	* testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
	* testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
	* testsuite/libffi.call/err_bad_typedef.c: Add xfails.

	* testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
	* testsuite/libffi.call/stret_medium.c: Likewise.
	* testsuite/libffi.call/stret_large2.c: Likewise.
	* testsuite/libffi.call/stret_large.c:  Likewise.

2008-12-26  Timothy Wall  <twall@users.sf.net>

	* testsuite/libffi.call/cls_longdouble.c,
	testsuite/libffi.call/cls_longdouble_va.c,
	testsuite/libffi.call/cls_align_longdouble.c,
	testsuite/libffi.call/cls_align_longdouble_split.c,
	testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
	failures on x86_64 cygwin/mingw.

2008-12-22  Timothy Wall  <twall@users.sf.net>
