Add missing ChangeLog entry. Clean up some entries.

This commit is contained in:
Anthony Green
2014-03-16 09:03:57 -04:00
parent 9bc704c58c
commit 9a62a21f5c

View File

@@ -1,23 +1,25 @@
2014-03-16 Josh Triplett <josh@joshtriplett.org> 2014-03-16 Josh Triplett <josh@joshtriplett.org>
Add support for stdcall, thiscall, and fastcall on non-Windows x86-32. Add support for stdcall, thiscall, and fastcall on non-Windows
x86-32.
Linux supports the stdcall calling convention, either via functions Linux supports the stdcall calling convention, either via
explicitly declared with the stdcall attribute, or via code compiled functions explicitly declared with the stdcall attribute, or via
with -mrtd which effectively makes stdcall the default. code compiled with -mrtd which effectively makes stdcall the
default.
This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on
non-Windows x86-32 platforms, as non-default calling conventions. non-Windows x86-32 platforms, as non-default calling conventions.
* Makefile.am: Compile in src/x86/win32.S on non-Windows x86-32. * Makefile.am: Compile in src/x86/win32.S on non-Windows x86-32.
* src/x86/ffitarget.h: Add FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL * src/x86/ffitarget.h: Add FFI_STDCALL, FFI_THISCALL, and
on non-Windows x86-32. Increase trampoline size to accomodate these FFI_FASTCALL on non-Windows x86-32. Increase trampoline size to
calling conventions, and unify some ifdeffery. accomodate these calling conventions, and unify some ifdeffery.
* src/x86/ffi.c: Add support for FFI_STDCALL, FFI_THISCALL, and * src/x86/ffi.c: Add support for FFI_STDCALL, FFI_THISCALL, and
FFI_FASTCALL on non-Windows x86-32 platforms; update ifdeffery. FFI_FASTCALL on non-Windows x86-32 platforms; update ifdeffery.
* src/x86/win32.S: Support compiling on non-Windows x86-32 platforms. * src/x86/win32.S: Support compiling on non-Windows x86-32
On those platforms, avoid redefining the SYSV symbols already provided platforms. On those platforms, avoid redefining the SYSV symbols
by src/x86/sysv.S. already provided by src/x86/sysv.S.
* testsuite/libffi.call/closure_stdcall.c: Run on non-Windows. * testsuite/libffi.call/closure_stdcall.c: Run on non-Windows.
#define __stdcall if needed. #define __stdcall if needed.
* testsuite/libffi.call/closure_thiscall.c: Run on non-Windows. * testsuite/libffi.call/closure_thiscall.c: Run on non-Windows.
@@ -32,30 +34,31 @@
* testsuite/libffi.call/struct1_win32.c: Ditto. * testsuite/libffi.call/struct1_win32.c: Ditto.
* testsuite/libffi.call/struct2_win32.c: Ditto. * testsuite/libffi.call/struct2_win32.c: Ditto.
2014-03-16 Josh Triplett <josh@joshtriplett.org> 2014-03-16 Josh Triplett <josh@joshtriplett.org>
* prep_cif.c: Remove unnecessary ifdef for X86_WIN32. * prep_cif.c: Remove unnecessary ifdef for X86_WIN32.
ffi_prep_cif_core had a special case for X86_WIN32, checking for ffi_prep_cif_core had a special case for X86_WIN32, checking for
FFI_THISCALL in addition to the FFI_FIRST_ABI-to-FFI_LAST_ABI range FFI_THISCALL in addition to the FFI_FIRST_ABI-to-FFI_LAST_ABI
before returning FFI_BAD_ABI. However, on X86_WIN32, FFI_THISCALL range before returning FFI_BAD_ABI. However, on X86_WIN32,
already falls in that range, making the special case unnecessary. FFI_THISCALL already falls in that range, making the special case
Remove it. unnecessary. Remove it.
2014-03-16 Josh Triplett <josh@joshtriplett.org> 2014-03-16 Josh Triplett <josh@joshtriplett.org>
* testsuite/libffi.call/closure_stdcall.c, * testsuite/libffi.call/closure_stdcall.c,
testsuite/libffi.call/closure_thiscall.c: Remove fragile stack pointer testsuite/libffi.call/closure_thiscall.c: Remove fragile stack
checks. These files included inline assembly to save the stack pointer checks. These files included inline assembly to save the
pointer before and after the call, and compare the values. However, stack pointer before and after the call, and compare the values.
compilers can and do leave the stack in different states for these two However, compilers can and do leave the stack in different states
pieces of inline assembly, such as by saving a temporary value on the for these two pieces of inline assembly, such as by saving a
stack across the call; observed with gcc -Os, and verified as spurious temporary value on the stack across the call; observed with gcc
through careful inspection of disassembly. -Os, and verified as spurious through careful inspection of
disassembly.
2014-03-16 Josh Triplett <josh@joshtriplett.org> 2014-03-16 Josh Triplett <josh@joshtriplett.org>
* testsuite/libffi.call/many.c: Avoid spurious failure due to excess * testsuite/libffi.call/many.c: Avoid spurious failure due to
floating-point precision. excess floating-point precision.
* testsuite/libffi.call/many_win32.c: Ditto. * testsuite/libffi.call/many_win32.c: Ditto.
2014-03-16 Josh Triplett <josh@joshtriplett.org> 2014-03-16 Josh Triplett <josh@joshtriplett.org>
@@ -65,11 +68,11 @@
2014-03-16 Josh Triplett <josh@joshtriplett.org> 2014-03-16 Josh Triplett <josh@joshtriplett.org>
* Makefile.in, aclocal.m4, compile, config.guess, config.sub, * Makefile.in, aclocal.m4, compile, config.guess, config.sub,
configure, depcomp, include/Makefile.in, install-sh, libtool-ldflags, configure, depcomp, include/Makefile.in, install-sh,
ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4, libtool-ldflags, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4,
m4/ltversion.m4, m4/lt~obsolete.m4, man/Makefile.in, mdate-sh, m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4,
missing, testsuite/Makefile.in: Delete autogenerated files from man/Makefile.in, mdate-sh, missing, testsuite/Makefile.in: Delete
version control. autogenerated files from version control.
* .gitignore: Add autogenerated files. * .gitignore: Add autogenerated files.
* autogen.sh: New script to generate the autogenerated files. * autogen.sh: New script to generate the autogenerated files.
* README: Document requirement to run autogen.sh when building * README: Document requirement to run autogen.sh when building
@@ -83,7 +86,8 @@
2014-03-10 Mike Hommey <mh+mozilla@glandium.org> 2014-03-10 Mike Hommey <mh+mozilla@glandium.org>
* configure.ac: Allow building for mipsel with Android NDK r8. * configure.ac: Allow building for mipsel with Android NDK r8.
* Makefile.am (AM_MAKEFLAGS): Replace double quotes with single quotes. * Makefile.am (AM_MAKEFLAGS): Replace double quotes with single
quotes.
2014-03-10 Landry Breuil <landry@openbsd.org> 2014-03-10 Landry Breuil <landry@openbsd.org>
@@ -142,6 +146,11 @@
* src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the
main CFA reg; update cfi_rel_offset. main CFA reg; update cfi_rel_offset.
2014-02-15 Marcus Comstedt <marcus@mc.pp.se>
* src/powerpc/ffi_linux64.c, src/powerpc/linux64_closure.S: Remove
assumption on contents of r11 in closure.
2014-02-09 Heiher <r@hev.cc> 2014-02-09 Heiher <r@hev.cc>
* src/mips/n32.S: Fix call floating point va function. * src/mips/n32.S: Fix call floating point va function.