6 Commits

Author SHA256 Message Date
e7cb77a447 Accepting request 1313804 from devel:libraries:c_c++
- Add upstream patch to fix GCS on aarch64:
  * 943.patch (forwarded request 1313715 from Guillaume_G)

OBS-URL: https://build.opensuse.org/request/show/1313804
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libffi?expand=0&rev=19
2025-10-28 13:45:40 +00:00
722c5cb033 Accepting request 1313715 from devel:ARM:Factory:ARMv9
- Add upstream patch to fix GCS on aarch64:
  * 943.patch

OBS-URL: https://build.opensuse.org/request/show/1313715
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libffi?expand=0&rev=40
2025-10-27 09:43:42 +00:00
1a56ef9392 Accepting request 1302688 from devel:libraries:c_c++
3.5.2 (forwarded request 1302677 from fstrba)

OBS-URL: https://build.opensuse.org/request/show/1302688
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libffi?expand=0&rev=18
2025-09-08 07:56:32 +00:00
d6df705948 Accepting request 1302677 from Java:bootstrap
3.5.2

OBS-URL: https://build.opensuse.org/request/show/1302677
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libffi?expand=0&rev=38
2025-09-04 07:49:46 +00:00
fbfd4ebdc4 Accepting request 1255515 from devel:libraries:c_c++
- Update to 3.4.7:
- Drop upstreamed patch:
  * 830.patch

OBS-URL: https://build.opensuse.org/request/show/1255515
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libffi?expand=0&rev=17
2025-03-27 21:31:29 +00:00
7e7a4a7427 - Update to 3.4.7:
- Drop upstreamed patch:
  * 830.patch

OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libffi?expand=0&rev=36
2025-03-19 17:46:48 +00:00
6 changed files with 100 additions and 96 deletions

View File

@@ -1,89 +0,0 @@
From 38d1c9d783b2c3b2b271e66a712962ffbbf7b9a5 Mon Sep 17 00:00:00 2001
From: Bill Roberts <bill.roberts@arm.com>
Date: Thu, 7 Mar 2024 13:07:29 -0600
Subject: [PATCH 1/3] bti: add identifier to ffi_closure_SYSV_V_alt
This was missing BTI_C identifier.
Old Code:
ffi_closure_SYSV_V_alt:
0000fffff7f70500: ldr x17, [sp, #8]
Signed-off-by: Bill Roberts <bill.roberts@arm.com>
---
src/aarch64/sysv.S | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
index fdd0e8b7..ba49aa13 100644
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -527,6 +527,7 @@ L(do_closure):
#if defined(FFI_EXEC_STATIC_TRAMP)
.align 4
CNAME(ffi_closure_SYSV_V_alt):
+ BTI_C
/* See the comments above trampoline_code_table. */
ldr x17, [sp, #8] /* Load closure in x17 */
add sp, sp, #16 /* Restore the stack */
@@ -541,6 +542,7 @@ CNAME(ffi_closure_SYSV_V_alt):
.align 4
CNAME(ffi_closure_SYSV_alt):
+ BTI_C
/* See the comments above trampoline_code_table. */
ldr x17, [sp, #8] /* Load closure in x17 */
add sp, sp, #16 /* Restore the stack */
From da2376df7618356e9ab792a8a3cc17ba02a3108a Mon Sep 17 00:00:00 2001
From: Bill Roberts <bill.roberts@arm.com>
Date: Thu, 7 Mar 2024 13:07:34 -0600
Subject: [PATCH 2/3] testsuite: fix whitespace in Makefile.am
Signed-off-by: Bill Roberts <bill.roberts@arm.com>
---
testsuite/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index d286cf7f..6ba98e12 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -8,7 +8,7 @@ CLEANFILES = *.exe core* *.log *.sum
EXTRA_DIST = config/default.exp emscripten/build.sh emscripten/conftest.py \
emscripten/node-tests.sh emscripten/test.html emscripten/test_libffi.py \
- emscripten/build-tests.sh lib/libffi.exp lib/target-libpath.exp \
+ emscripten/build-tests.sh lib/libffi.exp lib/target-libpath.exp \
lib/wrapper.exp libffi.bhaible/Makefile libffi.bhaible/README \
libffi.bhaible/alignof.h libffi.bhaible/bhaible.exp libffi.bhaible/test-call.c \
libffi.bhaible/test-callback.c libffi.bhaible/testcases.c libffi.call/align_mixed.c \
From 243fc9e2a1ebcf60a90652ac1e0bc82a945760a5 Mon Sep 17 00:00:00 2001
From: Bill Roberts <bill.roberts@arm.com>
Date: Thu, 7 Mar 2024 13:03:13 -0600
Subject: [PATCH 3/3] aarch64: correct comment describing BTI
The comment is incorrect, BTI is enabled per mapping via mprotect with
PROT_BTI flag set, not per-process. When the loader loads the library,
if the GNU Notes section is missing this, PROT_BTI will not be enabled
for that mapping, but is independent of other mappings.
Signed-off-by: Bill Roberts <bill.roberts@arm.com>
---
src/aarch64/sysv.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
index ba49aa13..60cfa505 100644
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -68,7 +68,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#define BTI_J hint #36
/*
* The ELF Notes section needs to indicate if BTI is supported, as the first ELF loaded that doesn't
- * declare this support disables it for the whole process.
+ * declare this support disables it for memory region containing the loaded library.
*/
# define GNU_PROPERTY_AARCH64_BTI (1 << 0) /* Has Branch Target Identification */
.text

36
943.patch Normal file
View File

@@ -0,0 +1,36 @@
From 50a7de2cb7c4a7f272f7ce7f8f00c7e06550a8c5 Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
Date: Thu, 23 Oct 2025 17:27:18 +0200
Subject: [PATCH] aarch64: support GCS in assembly
Signed-off-by: Guillaume Gardet <guillaume.gardet@arm.com>
---
src/aarch64/sysv.S | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/aarch64/sysv.S b/src/aarch64/sysv.S
index 81d33f2ef..ab85ddd46 100644
--- a/src/aarch64/sysv.S
+++ b/src/aarch64/sysv.S
@@ -74,6 +74,12 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
.text
.align 4
+#if defined(__ARM_FEATURE_GCS_DEFAULT) && __ARM_FEATURE_GCS_DEFAULT == 1
+#define GNU_PROPERTY_AARCH64_GCS (1<<2)
+#else
+#define GNU_PROPERTY_AARCH64_GCS 0 /* No GCS */
+#endif
+
/* ffi_call_SYSV
extern void ffi_call_SYSV (void *stack, void *frame,
void (*fn)(void), void *rvalue,
@@ -692,7 +698,7 @@ CNAME(ffi_go_closure_SYSV):
.asciz "GNU";
.long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */
.long 4;
- .long GNU_PROPERTY_AARCH64_BTI | GNU_PROPERTY_AARCH64_POINTER_AUTH;
+ .long GNU_PROPERTY_AARCH64_BTI | GNU_PROPERTY_AARCH64_POINTER_AUTH | GNU_PROPERTY_AARCH64_GCS;
.long 0;
.popsection;
#endif

Binary file not shown.

BIN
libffi-3.5.2.tar.gz LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,57 @@
-------------------------------------------------------------------
Sun Oct 26 09:18:40 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Add upstream patch to fix GCS on aarch64:
* 943.patch
-------------------------------------------------------------------
Thu Sep 4 07:14:03 UTC 2025 - Fridrich Strba <fstrba@suse.com>
- Update to 3.5.2
* Changes
+ fix: enable FFI_MMAP_EXEC_WRIT for DragonFly BSD
+ Emscripten: Add wasm64 target
+ fix: Ensure trampoline file descriptors are closed on exec.
-------------------------------------------------------------------
Thu Sep 4 07:12:20 UTC 2025 - Fridrich Strba <fstrba@suse.com>
- Update to 3.5.1
* Changes
+ Downgrade Autoconf requirement to version 2.68
+ Fix symbol versioning error.
-------------------------------------------------------------------
Thu Sep 4 07:10:42 UTC 2025 - Fridrich Strba <fstrba@suse.com>
- Update to 3.5.0
* Changes
+ Add FFI_VERSION_STRING and FFI_VERSION_NUMBER macros, as well
as ffi_get_version() and ffi_get_version_number() functions.
+ Add ffi_get_default_abi() and ffi_get_closure_size() functions.
+ Fix closures on powerpc64-linux when statically linking.
+ Mark the PA stack as non-executable.
-------------------------------------------------------------------
Wed Sep 3 11:40:13 UTC 2025 - Fridrich Strba <fstrba@suse.com>
- Update to 3.4.8
* Changes
+ aarch64: add PAC to GNU Notes
+ MIPS: Dont import asm/sgidefs.h on linux
+ Update the Simple Example from the Docs to fix a compile error
+ Fix bugs in the x86-64 and x32 target (#887)
+ Add the "ABI_ATTR" attribute to called functions (#891)
+ powerpc: Add static trampoline support (#894)
+ testsuite: add two tests to Makefile.am
-------------------------------------------------------------------
Wed Mar 19 17:40:33 UTC 2025 - Richard Biener <rguenther@suse.com>
- Update to 3.4.7:
- Drop upstreamed patch:
* 830.patch
-------------------------------------------------------------------
Tue Mar 19 15:22:24 UTC 2024 - Guillaume GARDET <guillaume.gardet@opensuse.org>

View File

@@ -1,7 +1,7 @@
#
# spec file for package libffi
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,12 @@
#
%ifarch %ix86
%define _lto_cflags %{nil}
%endif
%define libffi_sover 8
Name: libffi
Version: 3.4.6
Version: 3.5.2
Release: 0
Summary: Foreign Function Interface Library
License: MIT
@@ -26,8 +29,8 @@ Group: Development/Languages/C and C++
URL: https://sourceware.org/libffi/
Source: https://github.com/libffi/libffi/releases/download/v%{version}/libffi-%{version}.tar.gz
Source99: baselibs.conf
# Fix BTI for aarch64 with PR 830
Patch1: https://github.com/libffi/libffi/pull/830.patch
# PATCH-FIX-UPSTREAM - https://github.com/libffi/libffi/pull/943
Patch0: 943.patch
# for make check
BuildRequires: dejagnu
BuildRequires: expect