configure.ac


Log

Author Commit Date CI Message
Anthony Green 9b1dd8f2 2022-09-19T12:22:04 Update version to 3.4.3
Hans ee22ecbd 2022-09-18T01:56:25 Add MSYS configuration files (#728) * Add MSYS configuration files MSYS behaves very similiar to Cygwin, e.g. also __CYGWIN__ is defined. Now 'make check' passes on MSYS without extra patches. * Fix warning extra tokens at end of #endif in closures.c Extra tokens converted into a comment. Also nearby indentations corrected. * Fix missing prototype warning mkostemp() on Cygwin Cygwin requires also _GNU_SOURCE to be defined to enable mkostemp() prototype. * Fix warning label ‘out’ defined but not used in ffi functions Define same preprocessor conditions for goto and label visibility. * Fix warning label ‘out’ defined but not used and related indentations. Define same preprocessor conditions for goto and label visibility. Correct also related indentations. Co-authored-by: Hannes Müller <>
Anthony Green a1130f37 2022-09-12T08:53:06 Add static trampoline support for Cygwin
Anthony Green ea124a99 2022-09-07T07:21:21 Remove bogus sparc compiler flag
Anthony Green 8ee64076 2022-09-07T07:14:13 Fix typo
Anthony Green da905276 2022-09-06T21:15:58 dlmmap fix and always check for PaX MPROTECT on linux Also make EMUTRAMP experimental From Stefan Bühler https://github.com/libffi/libffi/pull/282
Anthony Green 9b58d4ba 2022-09-01T08:57:13 GCC_AS_CFI_PSEUDO_OP passes on msvc, although it's not sufficient.
Clément Chigot 80912f2f 2022-09-01T14:47:16 Makefile: enable target overridings. (#661) This patch allows target to provide extra files enabling the override of Makefile rules. This patch is not needed for libffi itself but only for GCC on AIX. The t-aix file which is here empty will be replaced in GCC repository. We cannot include GCC version directly here because it has no sense for a standalone libffi. Co-authored-by: Clement <clement.chigot@atos.net>
Anthony Green 1fa7d96c 2022-09-01T08:28:59 Don't use cached configure test result
Anthony Green bcb42e43 2022-09-01T08:05:01 Fix .cfi pseudo-ops test. The existing tests were failing because the GCC was wrapping the test asm in cfi directives, which gas doesn't like. So now we test if the compiler emits them first, and assume that the assembler will accept them. If that doesn't work, then we test if the assembler will accept them assuming the compiler doesn't emit them.
Xi Ruoyao 5a4774cd 2022-07-22T05:56:30 static trampoline for LoongArch (#723) For the benefit and technical details of static trampoline, see https://github.com/libffi/libffi/pull/624. As a new architecture, let's be "safer" from the start. The change survived libffi testsuite on loongarch64-linux-gnu.
Anthony Green 4a46f35b 2022-06-25T21:14:30 Update configury
Xi Ruoyao 280fe78d 2022-06-25T18:58:53 configure.ac: use grep -E instead of egrep if possible (#720) Upstream will start to emit a warning if egrep is invoked in the next grep release. Stop invoking it explicitly. Use AC_PROG_EGREP to try "grep -E" first, and fallback to egrep if "grep -E" does not work. We need this fallback for some non-GNU grep implementations (like Solaris). Url: https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a951562
Anthony Green f9ea4168 2021-06-28T21:10:49 Update version to 3.4.2
Anthony Green 2bdc8e52 2021-06-28T19:50:29 Version 3.4.1
Anthony Green c1d09bf0 2021-06-28T18:50:31 Update version to 3.4.0
Anthony Green 4557f232 2021-06-28T09:53:01 3.4.0 release candidate 2
Sergei Trofimovich 132699b9 2021-06-27T16:50:20 configure.ac: add --disable-exec-static-tramp flag (#647) Some projects like GHC (Glasgow Haskell Compiler) and gobject-introspection use `ffi_closure_alloc()` as a way to allocate executable memory. exec static tramp interferes with it (unclear how exactly yet). GHC symptom: ffi closure freeing cimplains about unexpected trampoline (GHC manually fills one): ``` $ ghci GHCi, version 8.10.5: https://www.haskell.org/ghc/ :? for help ghc: freeHaskellFunctionPtr: not for me, guv! 0x7f0417a1efe8 ghc: freeHaskellFunctionPtr: not for me, guv! 0x7f0417a1efc8 ``` gobject-introspection symptom: ``` $ meld Segmentation fault (core dumped) $ gdb --args /usr/bin/python3.9 /usr/bin/meld (gdb) run ... Thread 1 "python3.9" received signal SIGSEGV, Segmentation fault. 0x00007fffe9ac1ae8 in g_callable_info_free_closure ( callable_info=0x555555d45990, closure=0x7fffe9e70c20) at ../gobject-introspection-1.68.0/girepository/girffi.c:428 428 g_free (wrapper->ffi_closure.cif->arg_types); (gdb) bt callable_info=0x555555d45990, closure=0x7fffe9e70c20) at ../gobject-introspection-1.68.0/girepository/girffi.c:428 data=0x555555d252d0) at ../pygobject-3.40.1/gi/pygi-closure.c:635 ... ``` To ease downstreams narrowing down the actual problem let's provide a knob to disable exec static trampolines. The change for not affect current default. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Sergei Trofimovich f792adb6 2021-06-26T22:26:52 configure.ac: allow user to specify READELF (#646) Before the change with x86_64-pc-linux-gnu cross-compiler installed the configure was not able to find cross-readelf: ``` $ ./configure --host=x86_64-pc-linux-gnu ... checking whether .eh_frame section should be read-only... .././configure: line 19540: readelf: command not found yes ... ``` The change uses AC_CHECK_TOOL to automatically seatch for ${host}-readelf, readelf. And as a bonus it also allows user to override readelf with something like READELF=llvm-readelf. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Anthony Green 9cf15b3a 2021-06-26T12:12:06 Make 3.4 release candidate 1
Sergei Trofimovich 58dfdf6a 2021-03-24T23:19:54 testsuite: fix compiler vendor detection on dash as /bin/sh (#594) In https://bugs.gentoo.org/753299 Paolo Pedroni reported a single test failure out of all libffi. Here is the minimal reproducer: ``` $ ./autogen $ CONFIG_SHELL=/bin/dash ./configure --host=x86_64-pc-linux-gnu $ make check RUNTESTFLAGS='complex.exp' ... FAIL: libffi.complex/cls_align_complex_float.c (test for excess errors) ``` This happens because under 'dash' shell autoconf generates slightly different style of string quotation in `config.log`: - on bash: `ax_cv_c_compiler_vendor=gnu` - on dash: `ax_cv_c_compiler_vendor='gnu'` To avoid shell quotation parsing the change just embeds `compiler_vendor` into `local.exp` at configure time. Reported-by: Paolo Pedroni Bug: https://bugs.gentoo.org/753299 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Madhavan T. Venkataraman 9ba55921 2021-03-05T10:07:30 Static tramp v5 (#624) * Static Trampolines Closure Trampoline Security Issue ================================= Currently, the trampoline code used in libffi is not statically defined in a source file (except for MACH). The trampoline is either pre-defined machine code in a data buffer. Or, it is generated at runtime. In order to execute a trampoline, it needs to be placed in a page with executable permissions. Executable data pages are attack surfaces for attackers who may try to inject their own code into the page and contrive to have it executed. The security settings in a system may prevent various tricks used in user land to write code into a page and to have it executed somehow. On such systems, libffi trampolines would not be able to run. Static Trampoline ================= To solve this problem, the trampoline code needs to be defined statically in a source file, compiled and placed in the text segment so it can be mapped and executed naturally without any tricks. However, the trampoline needs to be able to access the closure pointer at runtime. PC-relative data referencing ============================ The solution implemented in this patch set uses PC-relative data references. The trampoline is mapped in a code page. Adjacent to the code page, a data page is mapped that contains the parameters of the trampoline: - the closure pointer - pointer to the ABI handler to jump to The trampoline code uses an offset relative to its current PC to access its data. Some architectures support PC-relative data references in the ISA itself. E.g., X64 supports RIP-relative references. For others, the PC has to somehow be loaded into a general purpose register to do PC-relative data referencing. To do this, we need to define a get_pc() kind of function and call it to load the PC in a desired register. There are two cases: 1. The call instruction pushes the return address on the stack. In this case, get_pc() will extract the return address from the stack and load it in the desired register and return. 2. The call instruction stores the return address in a designated register. In this case, get_pc() will copy the return address to the desired register and return. Either way, the PC next to the call instruction is obtained. Scratch register ================ In order to do its job, the trampoline code would need to use a scratch register. Depending on the ABI, there may not be a register available for scratch. This problem needs to be solved so that all ABIs will work. The trampoline will save two values on the stack: - the closure pointer - the original value of the scratch register This is what the stack will look like: sp before trampoline ------> -------------------- | closure pointer | -------------------- | scratch register | sp after trampoline -------> -------------------- The ABI handler can do the following as needed by the ABI: - the closure pointer can be loaded in a desired register - the scratch register can be restored to its original value - the stack pointer can be restored to its original value (the value when the trampoline was invoked) To do this, I have defined prolog code for each ABI handler. The legacy trampoline jumps to the ABI handler directly. But the static trampoline defined in this patch jumps tp the prolog code which performs the above actions before jumping to the ABI handler. Trampoline Table ================ In order to reduce the trampoline memory footprint, the trampoline code would be defined as a code array in the text segment. This array would be mapped into the address space of the caller. The mapping would, therefore, contain a trampoline table. Adjacent to the trampoline table mapping, there will be a data mapping that contains a parameter table, one parameter block for each trampoline. The parameter block will contain: - a pointer to the closure - a pointer to the ABI handler The static trampoline code would finally look like this: - Make space on the stack for the closure and the scratch register by moving the stack pointer down - Store the original value of the scratch register on the stack - Using PC-relative reference, get the closure pointer - Store the closure pointer on the stack - Using PC-relative reference, get the ABI handler pointer - Jump to the ABI handler Mapping size ============ The size of the code mapping that contains the trampoline table needs to be determined on a per architecture basis. If a particular architecture supports multiple base page sizes, then the largest supported base page size needs to be chosen. E.g., we choose 16K for ARM64. Trampoline allocation and free ============================== Static trampolines are allocated in ffi_closure_alloc() and freed in ffi_closure_free(). Normally, applications use these functions. But there are some cases out there where the user of libffi allocates and manages its own closure memory. In such cases, static trampolines cannot be used. These will fall back to using legacy trampolines. The user has to make sure that the memory is executable. ffi_closure structure ===================== I did not want to make any changes to the size of the closure structure for this feature to guarantee compatibility. But the opaque static trampoline handle needs to be stored in the closure. I have defined it as follows: - char tramp[FFI_TRAMPOLINE_SIZE]; + union { + char tramp[FFI_TRAMPOLINE_SIZE]; + void *ftramp; + }; If static trampolines are used, then tramp[] is not needed to store a dynamic trampoline. That space can be reused to store the handle. Hence, the union. Architecture Support ==================== Support has been added for x64, i386, aarch64 and arm. Support for other architectures can be added very easily in the future. OS Support ========== Support has been added for Linux. Support for other OSes can be added very easily. Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com> * x86: Support for Static Trampolines - Define the arch-specific initialization function ffi_tramp_arch () that returns trampoline size information to common code. - Define the trampoline code mapping and data mapping sizes. - Define the trampoline code table statically. Define two tables, actually, one with CET and one without. - Introduce a tiny prolog for each ABI handling function. The ABI handlers addressed are: - ffi_closure_unix64 - ffi_closure_unix64_sse - ffi_closure_win64 The prolog functions are called: - ffi_closure_unix64_alt - ffi_closure_unix64_sse_alt - ffi_closure_win64_alt The legacy trampoline jumps to the ABI handler. The static trampoline jumps to the prolog function. The prolog function uses the information provided by the static trampoline, sets things up for the ABI handler and then jumps to the ABI handler. - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to initialize static trampoline parameters. Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com> * i386: Support for Static Trampolines - Define the arch-specific initialization function ffi_tramp_arch () that returns trampoline size information to common code. - Define the trampoline code table statically. Define two tables, actually, one with CET and one without. - Define the trampoline code table statically. - Introduce a tiny prolog for each ABI handling function. The ABI handlers addressed are: - ffi_closure_i386 - ffi_closure_STDCALL - ffi_closure_REGISTER The prolog functions are called: - ffi_closure_i386_alt - ffi_closure_STDCALL_alt - ffi_closure_REGISTER_alt The legacy trampoline jumps to the ABI handler. The static trampoline jumps to the prolog function. The prolog function uses the information provided by the static trampoline, sets things up for the ABI handler and then jumps to the ABI handler. - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to initialize static trampoline parameters. Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com> * arm64: Support for Static Trampolines - Define the arch-specific initialization function ffi_tramp_arch () that returns trampoline size information to common code. - Define the trampoline code mapping and data mapping sizes. - Define the trampoline code table statically. - Introduce a tiny prolog for each ABI handling function. The ABI handlers addressed are: - ffi_closure_SYSV - ffi_closure_SYSV_V The prolog functions are called: - ffi_closure_SYSV_alt - ffi_closure_SYSV_V_alt The legacy trampoline jumps to the ABI handler. The static trampoline jumps to the prolog function. The prolog function uses the information provided by the static trampoline, sets things up for the ABI handler and then jumps to the ABI handler. - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to initialize static trampoline parameters. Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com> * arm: Support for Static Trampolines - Define the arch-specific initialization function ffi_tramp_arch () that returns trampoline size information to common code. - Define the trampoline code mapping and data mapping sizes. - Define the trampoline code table statically. - Introduce a tiny prolog for each ABI handling function. The ABI handlers addressed are: - ffi_closure_SYSV - ffi_closure_VFP The prolog functions are called: - ffi_closure_SYSV_alt - ffi_closure_VFP_alt The legacy trampoline jumps to the ABI handler. The static trampoline jumps to the prolog function. The prolog function uses the information provided by the static trampoline, sets things up for the ABI handler and then jumps to the ABI handler. - Call ffi_tramp_set_parms () in ffi_prep_closure_loc () to initialize static trampoline parameters. Signed-off-by: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
DJ Delorie 5c63b463 2020-12-02T16:14:27 Use memfd_create() (#604) memfd_create creates a file in a memory-only filesystem that may bypass strict security protocols in filesystem-based temporary files.
jacobly0 2d86809d 2020-10-27T10:00:03 Fix read-only .eh_frame section test when CFLAGS contains -flto. (#590)
Fangrui Song 8c50837f 2020-03-10T04:36:09 Improve read-write .eh_frame check (#546) llvm-objdump -h does not print BFD SEC_* constants like "READONLY", so the check will consider .eh_frame writable. clang 11 (since https://reviews.llvm.org/D73999) will error for mismatching section flags. Use readelf -S and check "WA" instead.
Ole André Vadla Ravnås 4c7bde32 2020-03-10T02:05:42 Port to iOS/arm64e (#548)
Anthony Green d996cb28 2019-11-23T09:00:14 Version 3.3
Anthony Green 88a76477 2019-11-03T06:28:51 rc2. hack as per: https://github.com/travis-ci/travis-ci/issues/6934
Anthony Green 52b066f0 2019-10-24T07:03:43 Update versions to 3.3-rc1
Martin Bektchiev 2c5b1642 2018-12-19T18:33:08 fix(configure): Correctly detect visibility("hidden") support on Darwin
Jeremy Huddleston Sequoia ba73a671 2018-07-20T09:37:43 Update FFI_HIDDEN() to use .private_extern on Apple platforms and use the macro where appropriate Fix issue #439 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
Yousong Zhou b69f95d6 2018-04-26T19:27:54 build: fix subst toolexecdir, toolexeclibdir On CentOS 7.4, configure script generated by autogen.sh will output the following values when compiling GCC source code toolexecdir='NONE/$(target_alias)' toolexeclibdir='NONE/$(target_alias)/lib' and cause build error ... -o libffi.la -rpath NONE/riscv64-bs-linux-gnu/lib ... checking for shl_load in -ldld... libtool: link: only absolute run-paths are allowed
Anthony Green 8660e693 2018-04-02T08:30:17 3.3 release candidate 0
Anthony Green d3693b46 2018-03-27T08:05:42 Copy - don't symlink - to support msvc builds
Anthony Green 9aefbb10 2018-03-13T07:51:02 Update version number to next pre-release
Anthony Green 93d8e7dd 2017-09-27T21:51:34 Fix #265
Moritz Angermann 19ab448d 2017-05-16T08:32:06 Support -ios triple Autoconf hasn’t had an update since 2014, and it doesn’t look like it will soon[1] This updates config.{guess,sub} It adds support for e.g. `-ios`, which allows to have targets like `aarch64-apple-ios`. It basically does exactly what the config.guess script says: > It is advised that you download the most up to date version of the config scripts from The configure.ac script has been updated to relax `*-apple-darwin*` to `*-apple-*`. Similarly the `.gitignore` and `autogen.sh` needed to be updated to respect the newer `config.{sub,guess}` — [1]: http://lists.gnu.org/archive/html/autoconf/2016-07/msg00017.html
Iain Sandoe 30b3440c 2016-05-26T08:55:04 [Darwin, configure] Allow configure to work for <arch>-*-darwin. The exec configury is appropriate for all current targets (including using older tools on them).
Richard Henderson 9edaa695 2016-05-18T10:56:19 Merge pull request #230 from rth7680/symver Use ELF symbol versioning
Berker Peksag 1b4f5ee6 2016-05-18T11:12:58 Update project URLs to use libffi/libffi
Richard Henderson c02c3414 2016-03-03T13:51:44 Use ELF symbol versioning At the same time, we must bump the (major) ABI version. This needed to be done anyway due to ABI breakage in the AArch64 port (see 12cf89ee and the corresponding GCC PR70024).
Tom Tromey 6dd5fd5a 2016-02-22T15:34:39 fix documentation building An earlier patch added --disable-docs, but went too far, making it impossible to build the docs. It turns out that Automake seemingly has a bug preventing the conditional build of an info file. So, this patch works around the bug by putting the info_TEXINFOS rule into a new doc/Makefile.am. Tested by building with and without --disable-docs and looking for the existence of doc/libffi.info.
Anthony Green f2f234ae 2016-02-20T06:50:29 Merge pull request #190 from havardgraff/master Add configure-option to disable building docs
Carl Perry 877ea9bf 2015-10-29T22:50:42 Add configure flag to disable multi-os-directory support In some environments, installing the library to GCC's multi-os-directory is not perferable. This patch adds a switch to configure "--disable-multi-os-directory" which will disable that check, typically falling back to ${libdir} unless cross-compiling. Original patch was written by Stewart Brodie, and was found at https://sourceware.org/ml/libffi-discuss/2013/msg00144.html I've just updated it to work with the current version.
Havard Graff fa7a2571 2015-05-12T10:45:13 Add configure-option to disable building docs
Richard Henderson b0e97963 2015-01-27T22:10:12 configure: Run HAVE_AS_X86_PCREL for all X86 targets
Yavor Georgiev 53636634 2015-01-16T15:19:38 aarch64: implement the trampoline table workaround for ffi closures on Apple systems This is a direct copy/paste port of the ARM code, with changes because of Aarch64 pc-relative addressing restrictions.
Mișu Moldovan e1a5ddb3 2015-01-07T17:51:07 Fix expr error in Solaris 10 when using gcc.
Richard Henderson f69ec6f3 2014-12-18T16:21:07 s390: Use pc-relative insns in 31-bit mode It's silly to stick to esa/390 features when the compiler won't. Detect when brasl and larl are used by the compiler and then use them in the assembly.
Richard Henderson 5d69d57a 2014-11-13T13:50:39 configure: Move target source selection into configure.host This eliminates the AM_CONDITIONAL ugliness, which eliminates just a bit of extra boilerplate for a new target. At the same time, properly categorize the EXTRA_DIST files into SOURCES and HEADERS, for the generation of ctags.
Richard Henderson 57f52484 2014-11-13T12:42:54 configure: Split out configure.host Split out the host case statement to a separate file, so that we don't have to regenerate configure.in for changes therein.
Anthony Green 8d5debc7 2014-11-12T08:04:51 Update in preparation for next release
Anthony Green 20562ac0 2014-11-12T07:00:59 Fix for AArch64. Release as 3.2.1.
Sebastian Macke 0f316ab7 2014-09-27T00:19:15 Add OpenRISC support This patch adds support for the OpenRISC architecture. (http://opencores.org/or1k/Main_Page) This patch has been tested under Linux with QEMU-user emulation support. - 32 Bit - big endian - delayed instructions This is the only available configuration under Linux. The description of the ABI can be found on the official website. Is passes the testsuite except of the unwindtest_ffi_call.cc testcase, which seems to be a problem of gcc and not libffi. Some testcases of the gcc testsuite still fail. Signed-off-by: Sebastian Macke <sebastian@macke.de>
Anthony Green ae8d2554 2014-09-20T07:08:37 Update version to 3.2
Samuli Suominen ad0d1d23 2014-06-12T06:30:21 Fix paths in libffi.pc.in
Anthony Green 69289c10 2014-05-31T08:54:08 Prepare for libffi 3.1.1
Mickaël Salaün c1166d4f 2014-05-12T19:44:08 closures: Check for mkostemp(3)
Anthony Green 57465744 2014-05-11T10:30:22 Update to version 3.1
Dominik Vogt 7ba4c5d7 2014-05-11T09:52:47 Use to get correct dir
Josh Triplett 7d698125 2014-03-26T23:17:56 Use the proper C++ compiler to run C++ tests Running the C compiler with -shared-libgcc -lstdc++ does not work on non-GCC compilers.
Josh Triplett 0c382470 2014-03-26T14:51:32 Always set CC_FOR_TARGET for dejagnu, to make the testsuite respect $CC This fixes cross-compilation and compilation with CC="gcc -m32".
Anthony Green c860a992 2014-03-25T17:02:51 Upgrade version to 3.1-rc1
Josh Triplett be50b87a 2014-03-24T21:44:13 Always use configure to detect whether global symbols need underscores 64-bit Windows already used this check; make it universal, and use it in place of an ifdef on X86_WIN32, to handle non-Windows platforms that use the underscore, such as Darwin.
Josh Triplett b2d610e0 2014-03-21T11:10:13 Compile win32.S on 32-bit Darwin as well
Anthony Green d948d0a7 2014-03-16T10:53:48 Merge pull request #98 from joshtriplett/unconfigure.host Merge configure.host into configure.ac
Josh Triplett a86bd318 2014-03-16T06:58:59 Merge configure.host into configure.ac configure.host only has a single entry, and shows no signs of needing more added.
Anthony Green b61b472b 2014-03-16T09:45:55 Update version to 3.1-rc0. Clean up README.
Anthony Green 76d19d00 2014-03-14T16:54:31 Ensure the linker supports @unwind sections in libffi.
Ryan VanderMeulen a1a6f71b 2014-03-10T15:12:47 Remove stray hunk that shouldn't have been included in this patch.
Ryan VanderMeulen dfa37387 2014-03-10T14:53:48 Ensure the linker supports @unwind sections in libffi. From Mozilla bug 756740. https://bugzilla.mozilla.org/show_bug.cgi?id=778414 Also tracked as issue #42. https://github.com/atgreen/libffi/issues/42
Ryan VanderMeulen 18eb81d0 2014-03-10T14:43:37 Allow building for mipsel with Android NDK r8. From Mozilla bug 756740. https://bugzilla.mozilla.org/show_bug.cgi?id=756740
Anthony Green 5a88c85f 2014-02-28T00:23:04 Fix spelling errors
Anthony Green cc82051c 2014-02-28T00:23:04 Fix spelling errors
Alan Modra ab79d6e2 2013-11-21T06:12:35 This separates the 32-bit sysv/linux/bsd code from the 64-bit linux code, and makes it possible to link code compiled with different options to those used to compile libffi. For example, a -mlong-double-128 libffi can be used with -mlong-double-64 code. Using the return value area as a place to pass parameters wasn't such a good idea, causing a failure of cls_ulonglong.c. I didn't see this when running the mainline gcc libffi testsuite because that version of the test is inferior to the upstreamm libffi test. Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant that a parameter save area could be allocated before it was strictly necessary. Wrong but harmless. Found when splitting apart ffi.c into 32-bit and 64-bit support.
Alan Modra ac753688 2013-11-21T06:12:35 This separates the 32-bit sysv/linux/bsd code from the 64-bit linux code, and makes it possible to link code compiled with different options to those used to compile libffi. For example, a -mlong-double-128 libffi can be used with -mlong-double-64 code. Using the return value area as a place to pass parameters wasn't such a good idea, causing a failure of cls_ulonglong.c. I didn't see this when running the mainline gcc libffi testsuite because that version of the test is inferior to the upstreamm libffi test. Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant that a parameter save area could be allocated before it was strictly necessary. Wrong but harmless. Found when splitting apart ffi.c into 32-bit and 64-bit support.
Sandra Loosemore 16b93a21 2013-10-15T15:33:59 Add nios2 port.
Anthony Green d2fcbcdf 2013-10-08T06:27:46 Add m88k and VAX support. Update some configury bits.
Anthony Green f88118b3 2013-07-02T15:51:27 Revert "Merge pull request #36 from abergmeier/emscripten_fix" This reverts commit 6a4d901dde7b3f87984c563505717cde3113d16e, reversing changes made to b50a13b9c07ec09af4b9697e482acdad571e6961.
Anthony Green 6a4d901d 2013-07-02T12:12:34 Merge pull request #36 from abergmeier/emscripten_fix Fixes for building with Emscripten
Mischa Jonker b082e150 2013-06-10T16:19:33 Add ARC support This adds support for the ARC architecture to libffi. DesignWare ARC is a family of processors from Synopsys, Inc. This patch has been tested on a little-endian system and passes the testsuite. Signed-off-by: Mischa Jonker <mjonker@synopsys.com>
Andreas Bergmeier 587002c0 2013-04-19T17:12:24 Enable disabling of libtool on platforms where it does not work (e.g. LLVM). Build libraries normally then.
Anthony Green f22ab3c6 2013-03-17T18:34:54 Merge branch 'master' of github.com:/atgreen/libffi
Anthony Green cb32c812 2013-03-17T09:27:55 Fix lib install dir
Anthony Green efd7866a 2013-03-16T08:35:57 2.0.13rc1
Anthony Green 215763d0 2013-03-16T07:57:35 Update configury.
Anthony Green 2fb527a0 2013-03-16T07:46:38 Add Meta processor support
Anthony Green f308faf1 2013-02-11T14:25:13 Add moxie support. Release 3.0.12.
Anthony Green cb03ea8f 2013-02-08T12:25:18 sparc v9 fixes for sun tools
Anthony Green 9db7e1a9 2013-02-07T21:06:08 Fix botched sparc patch. Update version.
Anthony Green ce0138e6 2013-02-07T18:04:01 Update bug report address. rc2.
Anthony Green ed6ae950 2013-02-07T16:43:36 Add libtool-ldflags. Define toolexeclibdir for non-GCC builds.
Anthony Green ffef2e04 2013-02-07T15:47:01 x32 and libtool fixes
Anthony Green 176aa9d2 2013-02-07T15:29:22 Fix GCC usage test and update README
Anthony Green f62bd63f 2013-02-06T17:38:32 Release candidate 1
John Ralls bcc0c280 2013-01-26T15:21:14 Reorder x86_64 tests So that darwin and cygwin/mingw are tested before the generic check -- which allows them to actually be set.
Anthony Green aeb8719a 2013-01-21T07:37:30 New microblaze support
Anthony Green 40860245 2013-01-21T07:37:30 New microblaze support
Anthony Green 20cae32b 2013-01-21T07:07:38 Xtensa support
Anthony Green bff052d9 2013-01-11T10:24:32 32-bit x86 fix and more