diff --git a/package/libffi/0002-arc-Fix-warnings.patch b/package/libffi/0002-arc-Fix-warnings.patch deleted file mode 100644 index 45a2c9dbd7..0000000000 --- a/package/libffi/0002-arc-Fix-warnings.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 4f25e5be1a8a429b6925527c1cb94b6acd05642b Mon Sep 17 00:00:00 2001 -From: Yuriy Kolerov -Date: Wed, 17 Jul 2024 18:56:52 +0300 -Subject: [PATCH] arc: Fix warnings - -These warnings are fixed: - -1. A series of "unused variables". -2. Implicit conversion from a pointer to uint32_t. - -Signed-off-by: Yuriy Kolerov -Upstream: https://github.com/libffi/libffi/pull/844 -Signed-off-by: Thomas Petazzoni ---- - src/arc/ffi.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/arc/ffi.c b/src/arc/ffi.c -index d729274..0632319 100644 ---- a/src/arc/ffi.c -+++ b/src/arc/ffi.c -@@ -192,9 +192,10 @@ static void unmarshal_atom(call_builder *cb, int type, void *data) { - /* for arguments passed by reference returns the pointer, otherwise the arg is copied (up to MAXCOPYARG bytes) */ - static void *unmarshal(call_builder *cb, ffi_type *type, int var, void *data) { - size_t realign[2]; -- void *pointer; - - #if defined(__ARC64_ARCH64__) -+ void *pointer; -+ - if (type->size > 2 * __SIZEOF_POINTER__) { - /* pass by reference */ - unmarshal_atom(cb, FFI_TYPE_POINTER, (char*)&pointer); -@@ -348,7 +349,10 @@ ffi_prep_closure_loc (ffi_closure * closure, ffi_cif * cif, - void *user_data, void *codeloc) - { - uint32_t *tramp = (uint32_t *) & (closure->tramp[0]); -+ -+#if defined(__ARC64_ARCH64__) - size_t address_ffi_closure = (size_t) ffi_closure_asm; -+#endif - - switch (cif->abi) - { -@@ -367,7 +371,7 @@ ffi_prep_closure_loc (ffi_closure * closure, ffi_cif * cif, - FFI_ASSERT (tramp == codeloc); - tramp[0] = CODE_ENDIAN (0x200a1fc0); /* mov r8, pcl */ - tramp[1] = CODE_ENDIAN (0x20200f80); /* j [long imm] */ -- tramp[2] = CODE_ENDIAN (ffi_closure_asm); -+ tramp[2] = CODE_ENDIAN ((uint32_t) ffi_closure_asm); - break; - #endif - --- -2.46.0 - diff --git a/package/libffi/0003-arc-Do-not-use-mov_s-and-movl_s-instructions.patch b/package/libffi/0003-arc-Do-not-use-mov_s-and-movl_s-instructions.patch deleted file mode 100644 index 3577ddf19d..0000000000 --- a/package/libffi/0003-arc-Do-not-use-mov_s-and-movl_s-instructions.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 97c273519e41a7ef2841cb7531c6eda01fc69dc2 Mon Sep 17 00:00:00 2001 -From: Yuriy Kolerov -Date: Wed, 17 Jul 2024 19:19:30 +0300 -Subject: [PATCH] arc: Do not use mov_s and movl_s instructions - -mov_s and movl_s instructions use a restricted set of registers. -However, a list of available registers for such instructions for -one ARC target may not match a list for another ARC targets. For -example, it is applicable to ARC700 and ARC HS3x/4x - build -fails because mov_s formats may be incompatible in some cases. - -The easiest and the most straightforward way to fix this issue -is to use mov and movl instead of mov_s and movl_s. - -Signed-off-by: Yuriy Kolerov -Upstream: https://github.com/libffi/libffi/pull/844 -Signed-off-by: Thomas Petazzoni ---- - src/arc/arcompact.S | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/arc/arcompact.S b/src/arc/arcompact.S -index 1d7f1a1..e749341 100644 ---- a/src/arc/arcompact.S -+++ b/src/arc/arcompact.S -@@ -39,14 +39,14 @@ - #define LARG ldl - #define SARG stl - #define ADDPTR addl --#define MOVPTR movl_s -+#define MOVPTR movl - #else - #define PTRS 4 - #define FLTS 4 - #define LARG ld - #define SARG st - #define ADDPTR add --#define MOVPTR mov_s -+#define MOVPTR mov - #endif - - #define FRAME_LEN (8 * PTRS + 16) --- -2.46.0 - diff --git a/package/libffi/0004-src-or1k-ffi.c-fix-prototype-of-ffi_call_SYSV.patch b/package/libffi/0004-src-or1k-ffi.c-fix-prototype-of-ffi_call_SYSV.patch deleted file mode 100644 index f3a7b29e3b..0000000000 --- a/package/libffi/0004-src-or1k-ffi.c-fix-prototype-of-ffi_call_SYSV.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 4506e943289ed1363f3921bc201d5da76f750229 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sat, 17 Aug 2024 12:56:22 +0200 -Subject: [PATCH] src/or1k/ffi.c: fix prototype of ffi_call_SYSV() - -The current code base of libffi on OpenRISC (or1k) fails to build with -GCC 14.x with the following error: - -../src/or1k/ffi.c: In function 'ffi_call': -../src/or1k/ffi.c:167:34: error: passing argument 3 of 'ffi_call_SYSV' from incompatible pointer type [-Wincompatible-pointer-types] - 167 | ffi_call_SYSV(size, &ecif, ffi_prep_args, rvalue, fn, cif->flags); - | ^~~~~~~~~~~~~ - | | - | void * (*)(char *, extended_cif *) -../src/or1k/ffi.c:113:27: note: expected 'void * (*)(int *, extended_cif *)' but argument is of type 'void * (*)(char *, extended_cif *)' - 113 | void *(*)(int *, extended_cif *), - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This is due to the fact that ffi_prep_args() is in fact defined as: - - void* ffi_prep_args(char *stack, extended_cif *ecif) - -so, let's fix the prototype of the function pointer, which anyway gets -passed to assembly code, so the typing gets lost. - -Upstream: https://github.com/libffi/libffi/pull/854 -Signed-off-by: Thomas Petazzoni ---- - src/or1k/ffi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/or1k/ffi.c b/src/or1k/ffi.c -index 9451d4e..157388e 100644 ---- a/src/or1k/ffi.c -+++ b/src/or1k/ffi.c -@@ -110,7 +110,7 @@ void* ffi_prep_args(char *stack, extended_cif *ecif) - - extern void ffi_call_SYSV(unsigned, - extended_cif *, -- void *(*)(int *, extended_cif *), -+ void *(*)(char *, extended_cif *), - unsigned *, - void (*fn)(void), - unsigned); --- -2.46.0 - diff --git a/package/libffi/0005-src-or1k-ffi.c-fix-incompatible-pointer-type.patch b/package/libffi/0005-src-or1k-ffi.c-fix-incompatible-pointer-type.patch deleted file mode 100644 index e1ff003500..0000000000 --- a/package/libffi/0005-src-or1k-ffi.c-fix-incompatible-pointer-type.patch +++ /dev/null @@ -1,50 +0,0 @@ -From ec39b03d891a77552ad7729ff79bf21bf3591842 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Sat, 17 Aug 2024 13:52:45 +0200 -Subject: [PATCH] src/or1k/ffi.c: fix incompatible pointer type - -The current code base of libffi on OpenRISC (or1k) fails to build with -GCC 14.x with the following error: - -../src/or1k/ffi.c: In function 'ffi_closure_SYSV': -../src/or1k/ffi.c:183:22: error: initialization of 'char *' from incompatible pointer type 'int *' [-Wincompatible-pointer-types] - 183 | char *stack_args = sp; - | ^~ - -Indeed: - - register int *sp __asm__ ("r17"); - [..] - char *stack_args = sp; - -Adopt the same logic used for: - - char *ptr = (char *) register_args; - -which consists in casting to the desired pointer type. Indeed, later -in the code stack_args is assigned to ptr (so they need to be the same -pointer type), and some arithmetic is done on ptr, so changing its -pointer type would change the behavior. - -Upstream: https://github.com/libffi/libffi/pull/854 -Signed-off-by: Thomas Petazzoni ---- - src/or1k/ffi.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/or1k/ffi.c b/src/or1k/ffi.c -index 157388e..7a6d28c 100644 ---- a/src/or1k/ffi.c -+++ b/src/or1k/ffi.c -@@ -180,7 +180,7 @@ void ffi_closure_SYSV(unsigned long r3, unsigned long r4, unsigned long r5, - register int *r13 __asm__ ("r13"); - - ffi_closure* closure = (ffi_closure*) r13; -- char *stack_args = sp; -+ char *stack_args = (char*) sp; - - /* Lay the register arguments down in a continuous chunk of memory. */ - unsigned register_args[6] = --- -2.46.0 - diff --git a/package/libffi/libffi.hash b/package/libffi/libffi.hash index c2ef588f6b..75be5bbcef 100644 --- a/package/libffi/libffi.hash +++ b/package/libffi/libffi.hash @@ -1,4 +1,4 @@ # Locally calculated -sha256 b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e libffi-3.4.6.tar.gz +sha256 bc9842a18898bfacb0ed1252c4febcc7e78fa139fd27fdc7a3e30d9d9356119b libffi-3.4.8.tar.gz # License files, locally calculated sha256 67894089811f93fca47a76f85e017da6f8582d4ba0905963c6e0f1ad6df7a195 LICENSE diff --git a/package/libffi/libffi.mk b/package/libffi/libffi.mk index 9c47cf3973..7ea61dac1e 100644 --- a/package/libffi/libffi.mk +++ b/package/libffi/libffi.mk @@ -4,7 +4,7 @@ # ################################################################################ -LIBFFI_VERSION = 3.4.6 +LIBFFI_VERSION = 3.4.8 LIBFFI_SITE = \ https://github.com/libffi/libffi/releases/download/v$(LIBFFI_VERSION) LIBFFI_LICENSE = MIT