Fix merge
[libffi.git] / ChangeLog
index 072eba4..138b5af 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,507 @@
+2014-03-10  Mike Hommey <mh+mozilla@glandium.org>
+
+       * configure.ac: Allow building for mipsel with Android NDK r8.
+       * Makefile.am (AM_MAKEFLAGS): Replace double quotes with single quotes.
+
+2014-03-01  Anthony Green  <green@moxielogic.com>
+
+       * Makefile.am (EXTRA_DIST): Replace old scripts with
+       generate-darwin-source-and-headers.py.
+       * Makefile.in: Rebuilt.
+
+2014-02-28  Anthony Green  <green@moxielogic.com>
+
+       * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for
+       --enable-debug builds.
+       * Makefile.in: Rebuilt.
+
+2014-02-28  Makoto Kato  <m_kato@ga2.so-net.ne.jp>
+
+       * src/closures.c: Fix build failure when using clang for Android.
+
+2014-02-28  Marcin Wojdyr  <wojdyr@gmail.com>
+
+       * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead
+       of -L${libdir}.
+
+2014-02-28  Paulo Pizarro  <paulo.pizarro@gmail.com>
+
+       * src/bfin/sysv.S: Calling functions in shared libraries requires
+       considering the GOT.
+
+2014-02-28  Josh Triplett  <josh@joshtriplett.org>
+
+       * src/x86/ffi64.c (classify_argument): Handle case where
+       FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE.
+
+2014-02-28  Anthony Green  <green@moxielogic.com>
+
+       * ltmain.sh: Generate with libtool-2.4.2.418.
+       * m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto.
+       * configure: Rebuilt.
+
+2014-02-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
+
+       * configure.ac (AC_ARG_ENABLE struct): Fix typo in help
+       message.
+       (AC_ARG_ENABLE raw_api): Ditto.
+       * configure, fficonfig.h.in: Rebuilt.
+
+2014-02-28  Will Newton  <will.newton@linaro.org>
+
+       * src/arm/sysv.S: Initialize IP register with FP.
+
+2014-02-28  Yufeng Zhang  <yufeng.zhang@arm.com>
+
+       * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
+       main CFA reg; update cfi_rel_offset.
+
+2014-02-09  Heiher  <r@hev.cc>
+
+       * src/mips/n32.S: Fix call floating point va function.
+
+2014-01-21  Zachary Waldowski  <zach@waldowski.me>
+
+       * src/aarch64/ffi.c: Fix missing semicolons on assertions under
+       debug mode.
+
+2013-12-30  Zachary Waldowski  <zach@waldowski.me>
+
+       * .gitignore: Exclude darwin_* generated source and build_* trees.
+       * src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang
+       previous prototype warnings.
+       * src/arm/ffi.c: Prevent NULL dereference, fix short type warning
+       * src/dlmalloc.c: Fix warnings from set_segment_flags return type,
+       and the native use of size_t for malloc on platforms
+       * src/arm/sysv.S: Use unified syntax. Clang clean-ups for
+       ARM_FUNC_START.
+       * generate-osx-source-and-headers.py: Remove.
+       * build-ios.sh: Remove.
+       * libffi.xcodeproj/project.pbxproj: Rebuild targets. Include
+       x86_64+aarch64 pieces in library.  Export headers properly.
+       * src/x86/ffi64.c: More Clang warning clean-ups.
+       * src/closures.c (open_temp_exec_file_dir): Use size_t.
+       * src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result.
+       * src/aarch64/sysv.S: Use CNAME for global symbols.  Only use
+       .size for ELF targets.
+       * src/aarch64/ffi.c: Clean up for double == long double.  Clean up
+       from Clang warnings.  Use Clang cache invalidation builtin.  Use
+       size_t in place of unsigned in many places.  Accommodate for
+       differences in Apple AArch64 ABI.
+
+2013-12-02  Daniel Rodríguez Troitiño  <drodrigueztroitino@yahoo.es>
+
+       * generate-darwin-source-and-headers.py: Clean up, modernize,
+       merged version of previous scripts.
+
+2013-11-21  Anthony Green  <green@moxielogic.com>
+
+       * configure, Makefile.in, include/Makefile.in, include/ffi.h.in,
+       man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt.
+
+2013-11-21  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am (EXTRA_DIST): Add new src/powerpc files.
+       (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise.
+       * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc.
+       * include/ffi.h.in (ffi_prep_types): Declare.
+       * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types.
+       * src/types.c (FFI_NONCONST_TYPEDEF): Define and use for
+       HAVE_LONG_DOUBLE_VARIANT.
+       * src/powerpc/ffi_powerpc.h: New file.
+       * src/powerpc/ffi.c: Split into..
+       * src/powerpc/ffi_sysv.c: ..new file, and..
+       * src/powerpc/ffi_linux64.c: ..new file, rewriting parts.
+       * src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI
+       selection as bits controlling features.
+       * src/powerpc/linux64.S: For consistency, use POWERPC64 rather
+       than __powerpc64__.
+       * src/powerpc/linux64_closure.S: Likewise.
+       * src/powerpc/ppc_closure.S: Likewise.  Move .note.FNU-stack
+       inside guard.
+       * src/powerpc/sysv.S: Likewise.
+       * configure: Regenerate.
+       * fficonfig.h.in: Regenerate.
+       * Makefile.in: Regenerate.
+
+2013-11-20  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use
+       NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their
+       32-bit versions for 64-bit code.
+       * src/powerpc/linux64_closure.S: Don't use the return value area
+       as a parameter save area on ELFv2.
+
+2013-11-18  Iain Sandoe  <iain@codesourcery.com>
+
+       * src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding.
+       * src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase
+       labels.
+
+2013-11-18  Anthony Green  <green@moxielogic.com>
+
+       * src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of
+       function.
+       * src/arm/ffi.c (ffi_closure_inner): Moderize function declaration
+       to appease compiler.
+       Thanks for Gregory P. Smith <greg@krypto.org>.
+
+2013-11-18  Anthony Green  <green@moxielogic.com>
+
+       * README (tested): Mention PowerPC ELFv2.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
+       Don't bl .Luint128.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
+       test to select parameter save sizing for ELFv2 vs. ELFv1.
+       * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
+       FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define.
+       (FFI_TRAMPOLINE_SIZE): Define variant for ELFv2.
+       * src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define.
+       (discover_homogeneous_aggregate): New function.
+       (ffi_prep_args64): Adjust start of param save area for ELFv2.
+       Handle homogenous floating point struct parms.
+       (ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2.
+       Handle ELFv2 return values.  Set FLAG_ARG_NEEDS_PSAVE.  Handle
+       homogenous floating point structs.
+       (ffi_call): Increase size of smst_buffer for ELFv2.  Handle ELFv2.
+       (flush_icache): Compile for ELFv2.
+       (ffi_prep_closure_loc): Set up ELFv2 trampoline.
+       (ffi_closure_helper_LINUX64): Don't return all structs directly
+       to caller.  Handle homogenous floating point structs.  Handle
+       ELFv2 struct return values.
+       * src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for
+       ELFv2.  Adjust toc save location.  Call function pointer using
+       r12.  Handle FLAG_RETURNS_SMST.  Don't predict branches.
+       * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2
+       for ELFv2.  Define ELFv2 versions of STACKFRAME, PARMSAVE, and
+       RETVAL.  Handle possibly missing parameter save area.  Handle
+       ELFv2 return values.
+       (.note.GNU-stack): Move inside outer #ifdef.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08
+       change.  Do not consume an int arg when returning a small struct
+       for FFI_SYSV ABI.
+       (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST.
+       Properly copy bounce buffer to destination.
+       * src/powerpc/sysv.S: Revert 2013-02-08 change.
+       * src/powerpc/ppc_closure.S: Remove stray '+'.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters
+       according to __STRUCT_PARM_ALIGN__.
+       (ffi_prep_cif_machdep_core): Likewise.
+       (ffi_closure_helper_LINUX64): Likewise.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28.
+       (.note.GNU-stack): Move inside outer #ifdef.
+       * src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE,
+       RETVAL): Define and use throughout.
+       (ffi_closure_LINUX64): Save fprs before buying stack.
+       (.note.GNU-stack): Move inside outer #ifdef.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define.
+       (FFI_EXTRA_CIF_FIELDS): Define.
+       * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the
+       ABI, not to both fpr and param save area.
+       (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep.
+       Keep initial flags.  Formatting.  Remove dead FFI_LINUX_SOFT_FLOAT
+       code.
+       (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions.
+       (ffi_closure_helper_LINUX64): Pass floating point as per ABI,
+       not to both fpr and parameter save areas.
+
+       * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct
+       function cast and don't call ffi_prep_cif.
+       * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise.
+
+2013-11-15  Andrew Haley  <aph@redhat.com>
+
+       * doc/libffi.texi (Closure Example): Fix the sample code.
+       * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2013-11-15  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libffi.call/va_struct1.c (main): Fix broken test.
+       * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise
+       * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise.
+       * testsuite/libffi.call/va_1.c (main): Likewise.
+
+2013-11-14  David Schneider  <david.schneider@bivab.de>
+
+       * src/arm/ffi.c: Fix register allocation for mixed float and
+       doubles.
+       * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase
+       for many mixed float and double arguments.
+
+2013-11-13  Alan Modra  <amodra@gmail.com>
+
+       * doc/libffi.texi (Simple Example): Correct example code.
+       * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2013-11-13  Anthony Green  <green@moxielogic.com>
+
+       * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler
+       based build. (Thanks to tmr111116 on github)
+
+2013-11-09  Anthony Green  <green@moxielogic.com>
+
+       * m4/libtool.m4: Refresh.
+       * configure, Makefile.in: Rebuilt.
+       * README: Add more notes about next release.
+
+2013-11-09  Shigeharu TAKENO  <shige@iee.niit.ac.jp>
+
+       * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize
+       UltraSPARC-IIi as ultrasparc3.
+
+2013-11-06  Mark Kettenis  <kettenis@gnu.org>
+
+       * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to
+        16-bytes.
+
+2013-11-06  Konstantin Belousov <kib@freebsd.org>
+
+       * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler
+       source as not requiring executable stack.
+
+2013-11-02  Anthony Green  <green@moxielogic.com>
+
+       * doc/libffi.texi (The Basics): Clarify return value buffer size
+       requirements.  Also, NULL result buffer pointers are no longer
+       supported.
+       * doc/libffi.info: Rebuilt.
+
+2013-11-02  Mischa Jonker  <mjonker@synopsys.com>
+
+       * Makefile.am (nodist_libffi_la_SOURCES): Fix build error.
+       * Makefile.in: Rebuilt.
+
+2013-11-02  David Schneider  <david.schneider@bivab.de>
+
+       * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat
+       * testsuite/libffi.call/many_mixed.c: New file.
+       * testsuite/libffi.call/cls_many_mixed_args.c: More tests.
+
+2013-11-02  Vitaly Budovski
+
+       * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32.
+
+2013-10-23  Mark H Weaver  <mhw@netris.org>
+
+       * src/mips/ffi.c: Fix handling of uint32_t arguments on the
+       MIPS N32 ABI.
+
+2013-10-13  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * README: Add Nios II to table of supported platforms.
+       * Makefile.am (EXTRA_DIST): Add nios2 files.
+       (nodist_libffi_la_SOURCES): Likewise.
+       * Makefile.in: Regenerated.
+       * configure.ac (nios2*-linux*): New host.
+       (NIOS2): Add AM_CONDITIONAL.
+       * configure: Regenerated.
+       * src/nios2/ffi.c: New.
+       * src/nios2/ffitarget.h: New.
+       * src/nios2/sysv.S: New.
+       * src/prep_cif.c (initialize_aggregate): Handle extra structure
+       alignment via FFI_AGGREGATE_ALIGNMENT.
+       (ffi_prep_cif_core): Conditionalize structure return for NIOS2.
+
+2013-10-10  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn):
+       Fix uninitialized variable.
+
+2013-10-11  Marcus Shawcroft  <marcus.shawcroft@arm.com>
+
+       * testsuite/libffi.call/many.c (many): Replace * with +.
+
+2013-10-08  Ondřej Bílka  <neleai@seznam.cz>
+
+       * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c,
+       src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c,
+       src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c,
+       src/microblaze/sysv.S, src/powerpc/darwin_closure.S,
+       src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c,
+       src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix
+       spelling errors.
+
+2013-10-08  Anthony Green  <green@moxielogic.com>
+
+       * aclocal.m4, compile, config.guess, config.sub, depcomp,
+       install-sh, mdate-sh, missing, texinfo.tex: Update from upstream.
+       * configure.ac: Update version to 3.0.14-rc0.
+       * Makefile.in, configure, Makefile.in, include/Makefile.in,
+       man/Makefile.in, testsuite/Makefile.in: Rebuilt.
+       * README: Mention M88K and VAX.
+
+2013-07-15  Miod Vallat  <miod@openbsd.org>
+
+       * Makefile.am,
+       configure.ac,
+       src/m88k/ffi.c,
+       src/m88k/ffitarget.h,
+       src/m88k/obsd.S,
+       src/vax/elfbsd.S,
+       src/vax/ffi.c,
+       src/vax/ffitarget.h: Add m88k and vax support.
+
+2013-06-24 Alan Modra  <amodra@gmail.com>
+
+       * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration
+       before statements.
+       (ffi_prep_args64): Support little-endian.
+       (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise.
+       * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise.
+       * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise.
+
+2013-06-12  Mischa Jonker  <mjonker@synopsys.com>
+
+        * configure.ac: Add support for ARC.
+        * Makefile.am: Likewise.
+        * README: Add ARC details.
+        * src/arc/arcompact.S: New.
+        * src/arc/ffi.c: Likewise.
+        * src/arc/ffitarget.h: Likewise.
+
+2013-03-28  David Schneider  <david.schneider@bivab.de>
+
+        * src/arm/ffi.c: Fix support for ARM hard-float calling convention.
+        * src/arm/sysv.S: call different methods for SYSV and VFP ABIs.
+        * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with
+        mixed arguments, many doubles.
+        * testsuite/libffi.call/many_double.c: testcase for calling a function using
+        more than 8 doubles.
+        * testcase/libffi.call/many.c: use absolute value to check result against an
+        epsilon
+
+2013-03-17  Anthony Green  <green@moxielogic.com>
+
+       * README: Update for 3.0.13.
+       * configure.ac: Ditto.
+       * configure: Rebuilt.
+       * doc/*: Update version.
+
+2013-03-17  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * src/closures.c (is_emutramp_enabled
+       [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside
+       enclosing #if scope.
+
+2013-03-17  Anthony Green  <green@moxielogic.com>
+
+       * configure.ac: Only modify toolexecdir in certain cases.
+       * configure: Rebuilt.
+
+2013-03-16  Gilles Talis  <gilles.talis@gmail.com>
+
+       * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use
+       fparg_count,etc on __NO_FPRS__ targets.
+
+2013-03-16  Alan Hourihane  <alanh@fairlite.co.uk>
+
+       * src/m68k/sysv.S (epilogue): Don't use extb instruction on
+       m680000 machines.
+
+2013-03-16  Alex Gaynor <alex.gaynor@gmail.com>
+
+       * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack.
+
+2013-03-13  Markos Chandras <markos.chandras@imgtec.com>
+
+       * configure.ac: Add support for Imagination Technologies Meta.
+       * Makefile.am: Likewise.
+       * README: Add Imagination Technologies Meta details.
+       * src/metag/ffi.c: New.
+       * src/metag/ffitarget.h: Likewise.
+       * src/metag/sysv.S: Likewise.
+
+2013-02-24  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * doc/libffi.texi (Structures): Fix missing category argument of
+       @deftp.
+
+2013-02-11  Anthony Green <green@moxielogic.com>
+
+       * configure.ac: Update release number to 3.0.12.
+       * configure: Rebuilt.
+       * README: Update release info.
+
+2013-02-10  Anthony Green <green@moxielogic.com>
+
+       * README: Add Moxie.
+       * src/moxie/ffi.c: Created.
+       * src/moxie/eabi.S: Created.
+       * src/moxie/ffitarget.h: Created.
+       * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie.
+       * Makefile.in: Rebuilt.
+       * configure.ac: Add Moxie.
+       * configure: Rebuilt.
+       * testsuite/libffi.call/huge_struct.c: Disable format string
+       warnings for moxie*-*-elf tests.
+
+2013-02-10  Anthony Green <green@moxielogic.com>
+
+       * Makefile.am (LTLDFLAGS): Fix reference.
+       * Makefile.in: Rebuilt.
+
+2013-02-10  Anthony Green <green@moxielogic.com>
+
+       * README: Update supported platforms.  Update test results link.
+
+2013-02-09  Anthony Green <green@moxielogic.com>
+
+       * testsuite/libffi.call/negint.c: Remove forced -O2.
+       * testsuite/libffi.call/many2.c (foo): Remove GCCism.
+       * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition.
+
+       * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong
+       closure return type fix developed by Martin v. Löwis for cpython
+       fork.
+
+2013-02-08  Andreas Tobler  <andreast@fgznet.ch>
+
+       * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct
+       support.
+       * src/powerpc/sysv.S: Ditto.
+
+2013-02-08  Anthony Green <green@moxielogic.com>
+
+       * testsuite/libffi.call/cls_longdouble.c: Remove xfail for
+       arm*-*-*.
+
+2013-02-08  Anthony Green <green@moxielogic.com>
+
+       * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC.
+
+2013-02-08  Matthias Klose  <doko@ubuntu.com>
+
+       * man/ffi_prep_cif.3: Clean up for debian linter.
+
+2013-02-08  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
+       on the stack.
+
+2013-02-08  Anthony Green <green@moxielogic.com>
+
+       * Makefile.am (EXTRA_DIST): Add missing files.
+       * testsuite/Makefile.am (EXTRA_DIST): Ditto.
+       * Makefile.in: Rebuilt.
+
 2013-02-08  Anthony Green <green@moxielogic.com>
 
        * configure.ac: Move sparc asm config checks to within functions
        (required for shared libs on cygwin/mingw).
        * Makefile.in: Rebuilt.
 
-2012-10-31  Alan Modra  <amodra@gmail.com>
+2012-10-31  Alan Modra  <amodra@gmail.co>
 
        * src/powerpc/linux64_closure.S: Add new ABI support.
        * src/powerpc/linux64.S: Likewise.