|
41d0851f
|
2022-08-31T07:36:43
|
|
Update copyright year
|
|
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.
|
|
5264a7c5
|
2022-07-21T17:54:19
|
|
Move FFI_TYPE definitions above <ffitarget.h> include (#722)
For powerpc at least, these definitions are referenced in the
target-specific ffitarget.h. Discovered in the jffi project. Should
close https://github.com/libffi/libffi/issues/637. Downstream jffi bug
https://github.com/jnr/jffi/issues/107. Downstream distro bug
https://bugs.gentoo.org/827215.
Testing - both libffi and jffi test suites pass with this patch applied,
at least on ppc64le linux. I did not see any warnings about
redefinitions.
Tested versions - libffi 3.4.2, jffi 1.3.6 and 1.3.9.
|
|
ddc67643
|
2022-06-25T22:04:53
|
|
Add missing file
|
|
2b4728a2
|
2022-06-25T21:58:51
|
|
Fix path
|
|
37cc25bb
|
2022-06-25T21:56:40
|
|
Install and use autoconf from special dir
|
|
2f2eab95
|
2022-06-25T21:53:00
|
|
Fix autoconf version number
|
|
4b146549
|
2022-06-25T21:51:25
|
|
Fix wget
|
|
398b7534
|
2022-06-25T21:49:09
|
|
Fix wget
|
|
2c047eb7
|
2022-06-25T21:46:54
|
|
Fix untar
|
|
446c092f
|
2022-06-25T21:45:32
|
|
Install autoconf-2.71
|
|
5c76ac1f
|
2022-06-25T21:22:01
|
|
Update autoconf?
|
|
4a46f35b
|
2022-06-25T21:14:30
|
|
Update configury
|
|
fc8c8c1e
|
2022-06-25T11:06:00
|
|
Fix ILP32 for aarch64
|
|
b5abc4f6
|
2022-06-25T10:43:00
|
|
Remove duplicate macro definition.
|
|
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
|
|
1f14b3fa
|
2022-06-03T02:46:35
|
|
Ensure that VM_PROT_EXECUTE is set on the trampoline page. (#718)
|
|
000ecd01
|
2022-06-02T18:43:53
|
|
powerpc64: fix build on gcc-12 (assembly requires AltiVec) (#719)
Without the change build fails on powerpc64-gcc-12 as:
src/powerpc/linux64_closure.S: Assembler messages:
src/powerpc/linux64_closure.S:363: Error: unrecognized opcode: `lvx'
It's a 90205f67 "rs6000: Fix bootstrap (libffi)" patch by
Segher Boessenkool from gcc upstream repository. It's enough to get
libffi build on powerpc64.
|
|
c528d5b4
|
2022-05-29T11:22:38
|
|
Fix windows arg passing
|
|
aa2c4141
|
2022-05-29T10:28:10
|
|
64-bit cygwin: fix struct args. Document change.
|
|
36b265ae
|
2022-05-29T10:12:30
|
|
m32r: pass copies of large structs
|
|
c248764d
|
2022-05-29T07:27:32
|
|
Update testsuite Makefile
|
|
fd1fe195
|
2022-05-29T14:16:49
|
|
Fix building on aarch64 after e409225b41b60c490a094bb068e639a2364202fd (#716)
The ALIGN_DOWN macro was renamed in 2018 in
e6eac7863e2bf1a009ea863041b354bdb4af6b67.
|
|
c1e237b2
|
2022-05-28T20:46:14
|
|
Pass large structs by value on the stack
|
|
769b7366
|
2022-05-28T19:59:35
|
|
Fix for MS x64 ABI
|
|
faafcb9d
|
2022-05-28T17:24:43
|
|
Fix moxie struct passing
|
|
f55d7ff1
|
2022-05-28T14:30:13
|
|
moxie: structs > 8 go on stack
|
|
55f80b02
|
2022-05-28T14:17:53
|
|
New test cases
|
|
72c31927
|
2022-05-28T13:53:26
|
|
Pass copies of large structs on the stack
|
|
e409225b
|
2022-05-28T09:42:13
|
|
Pass large structs by value for Linux x86_64 and Aarch64.
Aarch patch by Andreas Schwab. https://github.com/libffi/libffi/commit/482b37f00467325e3389bab322525099860dd9aa
|
|
01d54435
|
2022-05-24T21:38:51
|
|
Mention loongson64
|
|
f259a6f6
|
2022-05-25T09:31:08
|
|
Support loongarch64 (#678)
* update config.{guess,sub}
* Support loongarch64
Co-Authored-By: Cheng Lulu <chenglulu@loongson.cn>
Co-Authored-By: Xi Ruoyao <xry111@mengyan1223.wang>
Co-Authored-By: Xu Hao
Co-Authored-By: Zhang Wenlong <zhangwenlong@loongson.cn>
Co-Authored-By: Pan Xuefeng <panxuefeng@loongson.cn>
Co-authored-by: panxuefeng <panxuefeng@loongson.cn>
Co-authored-by: Cheng Lulu <chenglulu@loongson.cn>
Co-authored-by: Xi Ruoyao <xry111@mengyan1223.wang>
|
|
d02d4660
|
2022-05-24T12:28:08
|
|
Debug cygwin builds
|
|
7e93ded9
|
2022-05-23T21:42:52
|
|
Revert "Don't dereference beyond the last array entry. (#667)" (#715)
This reverts commit 92d77d0e87a5f2a8c9c9b2431ffd264cb664e17a.
|
|
432384b6
|
2022-05-24T09:06:19
|
|
Add support for ARM64 as an Apple simulator platform. (#712)
|
|
9af445fd
|
2022-05-23T18:05:01
|
|
Upstream FreeBSD riscv patch (#708)
Like 8276f812a99b10d1f2c387dbd6ef2ca4f597c733 commit message:
> devel/libffi: Fix abort() on ARM related to __clear_cache()
>
> The current FreeBSD __clear_cache() implementation does nothing #if
> __i386__ || __x86_64__ #else abort();
>
> cognet@ advises this is an issue for anything !Apple that is using the
> libcompiler_rt provided by Clang on ARM, and requires upstreaming.
Co-authored-by: Kristof Provost <kp@FreeBSD.org>
|
|
de95947a
|
2022-05-24T03:04:43
|
|
Fix check for invalid varargs arguments. (#707)
|
|
92d77d0e
|
2022-05-23T21:03:00
|
|
Don't dereference beyond the last array entry. (#667)
|
|
e504f90f
|
2022-05-23T18:42:32
|
|
testsuite/libffi.closures: Fix PowerPC 64 (#709)
-mlong-double-128 is only supported on glibc.
This test still passes on glibc targets, and now passes on musl targets
as well (which uses 64-bit ldbl).
|
|
f3e61d49
|
2022-05-23T09:11:42
|
|
Remove debug code
|
|
a36880e7
|
2022-05-23T08:35:21
|
|
Remove stray export command
|
|
5f98afe8
|
2022-05-23T08:11:26
|
|
Debug cygwin builds
|
|
abaacbf8
|
2022-05-23T07:57:26
|
|
Debug cygwin tests
|
|
e770fb76
|
2022-05-22T20:43:41
|
|
Clean up types
|
|
2e825e21
|
2022-05-16T09:47:11
|
|
MIPS: fix some N32 test failure (#701)
Some go closure and pointer testcase fails.
These failures is not introduced by the complex support code.
|
|
1f1c3375
|
2022-05-16T09:45:27
|
|
MIPS: fix O32 softfloat support (#702)
|
|
3ac265d5
|
2022-05-15T18:43:56
|
|
x86-64: Always double jump table slot size for CET (#710) (#711)
When CET is enabled, double jump table slot size to add 4 bytes of ENDBR64
for CET. Since CET enabled clang doesn't have the LLVM assembler bug:
https://bugs.llvm.org/show_bug.cgi?id=21501
fixed by
commit 04d39260d64e08b8bfb3844109ad43d4055b2e8d
Author: Rafael Espindola <rafael.espindola@gmail.com>
Date: Wed Nov 4 23:50:29 2015 +0000
Simplify .org processing and make it a bit more powerful.
we can use .org to allocate jump table slot size to 16 bytes.
|
|
e67697c3
|
2022-03-31T20:44:49
|
|
MIPS: add Complex support (#698)
|
|
e3cf8b80
|
2022-03-31T14:42:03
|
|
Allow system to have overlapping mallopt defines (#700)
Which is the case on some OSes, such as QNX.
|
|
c086cacb
|
2022-03-31T14:40:59
|
|
Clean up the QNX ARM bits (#699)
- Add missing include.
- Use constants instead of magic values.
|
|
ab167710
|
2022-02-20T16:01:38
|
|
Xtensa cleanups and XEA3 support (#677)
* xtensa: clean up stack usage in ffi_trampoline call
Space for outgoing call arguments reserved in the stack frame of the
function ffi_trampoline overlaps register spill overflow area at the
top of the frame. In xtensa XEA2 exception architecture the layout of
overlapping areas is identical so that even if the ffi_trampoline
registers frame gets spilled the memory contents doesn't change.
This is not so with the xtensa XEA3 exception architecture, where
registers a0 - a7 of a different function are spilled in that location.
Reserve spill area for 8 registers to avoid overlapping of the spill
area with the outgoing call arguments area in the ffi_trampoline.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* xtensa: support xtensa XEA3 exception architecture
XEA3 requires that 32 bytes of register spill area is reserved in all
functions. Fix ffi_cacheflush entry instruction to satisfy this
requirement.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* xtensa: maintain stack alignment
xtensa ABI requires stack alignment on 16 byte boundary and passing
up to 6 arguments in registers. To simplify stack alignment maintenance
fixed amount of stack space is reserved for arguments passed in
registers and variable but correctly aligned amount is reserved for the
remaining arguments. After copying arguments to the stack and loading
registers the fixed part of the stack reservation is freed.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* xtensa: fix err_bad_abi tests
Check ffi_cif::abi value in the ffi_prep_closure_loc and return
FFI_BAD_ABI error if it's not one of the supported values.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
aa3fce08
|
2022-02-13T21:04:33
|
|
riscv: extend return types smaller than ffi_arg (#680)
Co-authored-by: Andreas Schwab <schwab@suse.de>
|
|
464b4b66
|
2022-01-31T14:08:09
|
|
powerpc64: fix handling of homogeneous float128 structs (#689)
If there is a homogeneous struct with float128 members, they should be
copied to vector register save area. The current code incorrectly copies
only the value of the first member, not increasing the pointer with each
iteration. Fix this.
|
|
b60d4fc7
|
2021-12-23T14:32:46
|
|
src/x86/win64.S: Use #define instead of .macro (#665) (#669)
The Solaris/x86 assembler doesn't support .macro/.endm, so use #define since
win64.S is passed through cpp anyway.
|
|
4fa6239f
|
2021-12-23T14:27:32
|
|
testsuite/libffi.call: fix mismatching return types (#679)
Co-authored-by: Andreas Schwab <schwab@suse.de>
|
|
0f2dd369
|
2021-09-22T21:39:56
|
|
Makefile: Add missing kvx/asm.h to dist headers (#660)
The header kvx/asm.h is required to build libffi and is missing from
the dist tarball.
Signed-off-by: Jules Maselbas <jmaselbas@kalray.eu>
|
|
ee1263f7
|
2021-07-29T17:46:17
|
|
Fix 'type'-o
|
|
86d5ecc5
|
2021-07-29T16:58:32
|
|
Fix struct arg passing
|
|
03596285
|
2021-07-29T10:16:42
|
|
No more xfail for alpha
|
|
4ac18f26
|
2021-07-29T10:01:40
|
|
Add alpha CPU
|
|
7643c6ee
|
2021-07-29T08:51:35
|
|
Try to fix ARM QEMU tests
|
|
a04f57bc
|
2021-07-29T08:47:53
|
|
Fix m32r testing
|
|
339acf3d
|
2021-07-29T08:38:18
|
|
Debug cross-in-containers builds
|
|
43e4ad4d
|
2021-07-29T07:55:59
|
|
Test passing structs by value
|
|
68485e33
|
2021-07-29T07:13:35
|
|
Mention x32 static tramponline fix
|
|
07f826fd
|
2021-07-25T02:39:37
|
|
Fix trampoline_code_table for x32. (#657)
x32's struct tramp_parm has 32-bit pointers. This change adjusts the
loads and offsets accordingly.
|
|
be0b3b6e
|
2021-07-16T21:51:03
|
|
Fix CHECK
|
|
7db17442
|
2021-07-16T11:30:01
|
|
Don't check the whole buffer, just what we printed.
|
|
8bcf5947
|
2021-07-16T11:26:02
|
|
Fix test case
|
|
c96b0577
|
2021-07-16T11:16:39
|
|
Fix test check
|
|
4ed23be8
|
2021-07-16T11:08:01
|
|
Fix test check
|
|
eb244724
|
2021-07-16T14:33:04
|
|
Use CHECK to assert more things in test suite (#654)
* Use CHECK to assert more things in test suite
* Use snprintf instead of sprintf
* Fix va_struct1 and va_struct3
|
|
a541fc60
|
2021-07-16T08:56:30
|
|
Update README for next release.
|
|
b4cf80ab
|
2021-07-16T08:55:02
|
|
Trigger actions on master branch
|
|
d1eef904
|
2021-07-16T08:29:08
|
|
Migrate from travis-ci to github actions.
|
|
f9ea4168
|
2021-06-28T21:10:49
|
|
Update version to 3.4.2
|
|
2bdc8e52
|
2021-06-28T19:50:29
|
|
Version 3.4.1
|
|
c1d09bf0
|
2021-06-28T18:50:31
|
|
Update version to 3.4.0
|
|
1ed0aa73
|
2021-06-28T18:45:11
|
|
Fix warnings
|
|
0a2cc2ec
|
2021-06-28T14:59:07
|
|
Add missing test cases to distribution
|
|
ee3ef737
|
2021-06-28T11:51:35
|
|
Add tests for single entry structs (#653)
|
|
f08c5ace
|
2021-06-28T07:24:19
|
|
Fix the assertions in cls-24byte (#652)
* Fix the assertions in cls-24byte
* Update print statement too
|
|
4557f232
|
2021-06-28T09:53:01
|
|
3.4.0 release candidate 2
|
|
cd442891
|
2021-06-28T04:56:30
|
|
Add missing FFI_HIDDEN to ffi_tramp_is_present declaration (#651)
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
|
9fa94c60
|
2021-06-27T11:02:33
|
|
Print more information when an assertion fails in test suite (#649)
|
|
91eaadfb
|
2021-06-27T09:49:31
|
|
Fix signature of function pointer in cls_dbls_struct (#648)
|
|
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>
|
|
4e07374c
|
2021-06-27T11:25:06
|
|
Remove caveat about varargs support
|
|
11f97138
|
2021-06-27T07:46:12
|
|
Update contact info
|
|
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>
|
|
9cf15b3a
|
2021-06-26T12:12:06
|
|
Make 3.4 release candidate 1
|
|
1e5dc8de
|
2021-06-26T12:08:35
|
|
Add missing file from make dist. Add missing license info.
|
|
c0b210c7
|
2021-06-26T10:55:57
|
|
Remove test case
|
|
87429ce7
|
2021-06-26T08:49:45
|
|
This test includes a closure and must live in the closures test directory. (#645)
Co-authored-by: Matthew Green <squidhacks@users.noreply.github.com>
|
|
8d83c7c1
|
2021-06-25T19:50:33
|
|
Make test methods static (#644)
|
|
becae739
|
2021-06-22T13:01:06
|
|
Switch from travis-ci.org to travis-ci.com.
|
|
fa1ef887
|
2021-06-22T08:48:24
|
|
Avoid undefined behaviour
|
|
84bb5691
|
2021-06-22T07:33:46
|
|
Remove libtool-ldflags file from .gitignore (#600)
This is correct. Thank you!
|
|
5651bea2
|
2021-06-15T15:19:26
|
|
2021-06-15 Jakub Jelinek <jakub@redhat.com>
* src/x86/ffi64.c (classify_argument): For FFI_TYPE_STRUCT set words
to number of words needed for type->size + byte_offset bytes rather
than just type->size bytes. Compute pos before the loop and check
total size of the structure.
* testsuite/libffi.call/nested_struct12.c: New test.
|
|
f56eb852
|
2021-06-15T08:50:20
|
|
Don't stop test on copy failure (#636)
* Don't stop test on copy failure
Static-library tests were failing only because there were
no DLLs to copy. This change makes a copy failure not stop
the build; if a failed copy would otherwise be relevent, the
later tests would fail anyway.
While there are more clever ways to solve this, a brute force
fix is sufficient.
* [TEST] Try cygwin64; install more packages explicitly
* use correct cygwin64 directory name
appveyor has cygwin64 pre-installed in /cygwin64, and 32-bit cygwin
in /cygwin
* More testing - revert VS change, bump travis timeout
* Add -g to update the rest of perl
* Skip execution tests on non-native platforms
Special site.exp that skips the unix_load() command for arm platforms.
Unset TERM to avoid cruft in stdout
Try harder to find the libffi libraries
|