summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorzhengruoqin <zhengrq.fnst@fujitsu.com>2021-06-30 10:52:48 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-07-02 23:14:32 +0100
commitd2e5c350e9d9686862c163bbc2abc5c5b015414b (patch)
treed6b9e8e50332df7d8e11529832784e37ebdaf282 /meta
parentc1dcadb7f8fcc4633b42d13c5ccccbd3fe1cce02 (diff)
downloadpoky-d2e5c350e9d9686862c163bbc2abc5c5b015414b.tar.gz
libffi: upgrade 3.3 -> 3.4.2
0001-Address-platforms-with-no-__int128-part2.patch 0001-Address-platforms-with-no-__int128.patch 0001-Fixed-missed-ifndef-for-__mips_soft_float.patch 0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch 0001-powerpc-fix-build-failure-on-power7-and-older-532.patch removed since they're included in 3.4.2 refresh 0001-arm-sysv-reverted-clang-VFP-mitigation.patch License-Updage: Copyright year updated to 2021 (From OE-Core rev: 16cd4351d9e54140ea558229a93b1f89fcf7aa8c) Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch34
-rw-r--r--meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch27
-rw-r--r--meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch27
-rw-r--r--meta/recipes-support/libffi/libffi/0001-arm-sysv-reverted-clang-VFP-mitigation.patch34
-rw-r--r--meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch62
-rw-r--r--meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch38
-rw-r--r--meta/recipes-support/libffi/libffi_3.4.2.bb (renamed from meta/recipes-support/libffi/libffi_3.3.bb)10
7 files changed, 19 insertions, 213 deletions
diff --git a/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch b/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch
deleted file mode 100644
index 6b5b7d4747..0000000000
--- a/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1Address platforms with no __int128.
2
3Fixes remaining pieces from
4https://github.com/libffi/libffi/commit/6663047f56c2932a6b10a790f4ac6666dd181326
5
6Upstream-Status: Pending
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8
9--- a/src/powerpc/ffi_linux64.c.org 2019-12-05 14:48:33.140579431 -0800
10+++ a/src/powerpc/ffi_linux64.c 2019-12-05 14:53:58.827244495 -0800
11@@ -680,9 +680,9 @@ ffi_prep_args64 (extended_cif *ecif, uns
12 {
13 if (vecarg_count < NUM_VEC_ARG_REGISTERS64
14 && i < nfixedargs)
15- *vec_base.f128++ = *arg.f128++;
16+ memcpy (vec_base.f128++, arg.f128, sizeof (float128));
17 else
18- *next_arg.f128 = *arg.f128++;
19+ memcpy (next_arg.f128, arg.f128++, sizeof (float128));
20 if (++next_arg.f128 == gpr_end.f128)
21 next_arg.f128 = rest.f128;
22 vecarg_count++;
23@@ -986,9 +986,9 @@ ffi_closure_helper_LINUX64 (ffi_cif *cif
24 do
25 {
26 if (pvec < end_pvec && i < nfixedargs)
27- *to.f128 = *pvec++;
28+ memcpy (to.f128, pvec++, sizeof (float128));
29 else
30- *to.f128 = *from.f128;
31+ memcpy (to.f128, from.f128, sizeof (float128));
32 to.f128++;
33 from.f128++;
34 }
diff --git a/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch b/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch
deleted file mode 100644
index 2e32a50296..0000000000
--- a/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 68f45b9049dffb54f5a29a3a495ab3dfcf010634 Mon Sep 17 00:00:00 2001
2From: Anthony Green <green@moxielogic.com>
3Date: Fri, 29 Nov 2019 07:00:35 -0500
4Subject: [PATCH] Address platforms with no __int128.
5
6Upstream-Status: Backport [https://github.com/libffi/libffi/commit/6663047f56c2932a6b10a790f4ac6666dd181326]
7Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
8---
9 src/powerpc/ffi_linux64.c | 4 ++--
10 1 file changed, 2 insertions(+), 2 deletions(-)
11
12diff --git a/src/powerpc/ffi_linux64.c b/src/powerpc/ffi_linux64.c
13index de0d033..7364770 100644
14--- a/src/powerpc/ffi_linux64.c
15+++ b/src/powerpc/ffi_linux64.c
16@@ -547,9 +547,9 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
17 if (next_arg.ul == gpr_end.ul)
18 next_arg.ul = rest.ul;
19 if (vecarg_count < NUM_VEC_ARG_REGISTERS64 && i < nfixedargs)
20- *vec_base.f128++ = **p_argv.f128;
21+ memcpy (vec_base.f128++, *p_argv.f128, sizeof (float128));
22 else
23- *next_arg.f128 = **p_argv.f128;
24+ memcpy (next_arg.f128, *p_argv.f128, sizeof (float128));
25 if (++next_arg.f128 == gpr_end.f128)
26 next_arg.f128 = rest.f128;
27 vecarg_count++;
diff --git a/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch b/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch
deleted file mode 100644
index 397194bc93..0000000000
--- a/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 14e2e74682db3bfcf057688f738fdd842a02ff2d Mon Sep 17 00:00:00 2001
2From: Carl Hurd <carl@Carls-MacBook-Pro.local>
3Date: Wed, 18 Jul 2018 09:04:32 -0400
4Subject: [PATCH] Fixed missed #ifndef for __mips_soft_float
5
6Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
7Upstream-Status: Submitted [https://github.com/libffi/libffi/pull/442]
8---
9 src/mips/o32.S | 2 ++
10 1 file changed, 2 insertions(+)
11
12diff --git a/src/mips/o32.S b/src/mips/o32.S
13index 44e74cb..799139b 100644
14--- a/src/mips/o32.S
15+++ b/src/mips/o32.S
16@@ -282,9 +282,11 @@ $LCFI12:
17 li $13, 1 # FFI_O32
18 bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT
19
20+#ifndef __mips_soft_float
21 # Store all possible float/double registers.
22 s.d $f12, FA_0_0_OFF2($fp)
23 s.d $f14, FA_1_0_OFF2($fp)
24+#endif
25 1:
26 # prepare arguments for ffi_closure_mips_inner_O32
27 REG_L a0, 4($15) # cif
diff --git a/meta/recipes-support/libffi/libffi/0001-arm-sysv-reverted-clang-VFP-mitigation.patch b/meta/recipes-support/libffi/libffi/0001-arm-sysv-reverted-clang-VFP-mitigation.patch
index 782dce70d8..5e529d1ce7 100644
--- a/meta/recipes-support/libffi/libffi/0001-arm-sysv-reverted-clang-VFP-mitigation.patch
+++ b/meta/recipes-support/libffi/libffi/0001-arm-sysv-reverted-clang-VFP-mitigation.patch
@@ -4,9 +4,9 @@ Date: Fri, 27 Nov 2020 15:28:42 +0000
4Subject: [PATCH] arm/sysv: reverted clang VFP mitigation 4Subject: [PATCH] arm/sysv: reverted clang VFP mitigation
5 5
6Since commit e3d2812ce43940aacae5bab2d0e965278cb1e7ea, 6Since commit e3d2812ce43940aacae5bab2d0e965278cb1e7ea,
7seperate instructions were used when compiling under clang, 7seperate instructions were used when compiling under clang,
8as clang didn't allow the directives at the time. This mitigation 8as clang didn't allow the directives at the time. This mitigation
9now causes compilation to fail under clang 10, as described by 9now causes compilation to fail under clang 10, as described by
10https://github.com/libffi/libffi/issues/607. Now that 10https://github.com/libffi/libffi/issues/607. Now that
11clang supports the LDC and SDC instructions, this mitigation 11clang supports the LDC and SDC instructions, this mitigation
12has been reverted. 12has been reverted.
@@ -18,25 +18,25 @@ Signed-off-by: Brett Warren <brett.warren@arm.com>
18 1 file changed, 33 deletions(-) 18 1 file changed, 33 deletions(-)
19 19
20diff --git a/src/arm/sysv.S b/src/arm/sysv.S 20diff --git a/src/arm/sysv.S b/src/arm/sysv.S
21index 63180a4..e3ce526 100644 21index fb36213..e4272a1 100644
22--- a/src/arm/sysv.S 22--- a/src/arm/sysv.S
23+++ b/src/arm/sysv.S 23+++ b/src/arm/sysv.S
24@@ -128,13 +128,8 @@ ARM_FUNC_START(ffi_call_VFP) 24@@ -142,13 +142,8 @@ ARM_FUNC_START(ffi_call_VFP)
25 cfi_startproc
26 25
27 cmp r3, #3 @ load only d0 if possible 26 cmp r3, #3 @ load only d0 if possible
27 ite le
28-#ifdef __clang__ 28-#ifdef __clang__
29- vldrle d0, [sp] 29- vldrle d0, [r0]
30- vldmgt sp, {d0-d7} 30- vldmgt r0, {d0-d7}
31-#else 31-#else
32 ldcle p11, cr0, [r0] @ vldrle d0, [sp] 32 ldcle p11, cr0, [r0] @ vldrle d0, [r0]
33 ldcgt p11, cr0, [r0], {16} @ vldmgt sp, {d0-d7} 33 ldcgt p11, cr0, [r0], {16} @ vldmgt r0, {d0-d7}
34-#endif 34-#endif
35 add r0, r0, #64 @ discard the vfp register args 35 add r0, r0, #64 @ discard the vfp register args
36 /* FALLTHRU */ 36 /* FALLTHRU */
37 ARM_FUNC_END(ffi_call_VFP) 37 ARM_FUNC_END(ffi_call_VFP)
38@@ -172,25 +167,13 @@ ARM_FUNC_START(ffi_call_SYSV) 38@@ -193,25 +188,13 @@ ARM_FUNC_START(ffi_call_SYSV)
39 nop 39 #endif
40 0: 40 0:
41 E(ARM_TYPE_VFP_S) 41 E(ARM_TYPE_VFP_S)
42-#ifdef __clang__ 42-#ifdef __clang__
@@ -61,7 +61,7 @@ index 63180a4..e3ce526 100644
61 pop {fp,pc} 61 pop {fp,pc}
62 E(ARM_TYPE_INT64) 62 E(ARM_TYPE_INT64)
63 str r1, [r2, #4] 63 str r1, [r2, #4]
64@@ -287,11 +270,7 @@ ARM_FUNC_START(ffi_closure_VFP) 64@@ -320,11 +303,7 @@ ARM_FUNC_START(ffi_closure_VFP)
65 add ip, sp, #16 65 add ip, sp, #16
66 sub sp, sp, #64+32 @ allocate frame 66 sub sp, sp, #64+32 @ allocate frame
67 cfi_adjust_cfa_offset(64+32) 67 cfi_adjust_cfa_offset(64+32)
@@ -73,7 +73,7 @@ index 63180a4..e3ce526 100644
73 stmdb sp!, {ip,lr} 73 stmdb sp!, {ip,lr}
74 74
75 /* See above. */ 75 /* See above. */
76@@ -320,25 +299,13 @@ ARM_FUNC_START_LOCAL(ffi_closure_ret) 76@@ -358,25 +337,13 @@ ARM_FUNC_START_LOCAL(ffi_closure_ret)
77 cfi_rel_offset(lr, 4) 77 cfi_rel_offset(lr, 4)
78 0: 78 0:
79 E(ARM_TYPE_VFP_S) 79 E(ARM_TYPE_VFP_S)
@@ -82,23 +82,23 @@ index 63180a4..e3ce526 100644
82-#else 82-#else
83 ldc p10, cr0, [r2] @ vldr s0, [r2] 83 ldc p10, cr0, [r2] @ vldr s0, [r2]
84-#endif 84-#endif
85 ldm sp, {sp,pc} 85 b call_epilogue
86 E(ARM_TYPE_VFP_D) 86 E(ARM_TYPE_VFP_D)
87-#ifdef __clang__ 87-#ifdef __clang__
88- vldr d0, [r2] 88- vldr d0, [r2]
89-#else 89-#else
90 ldc p11, cr0, [r2] @ vldr d0, [r2] 90 ldc p11, cr0, [r2] @ vldr d0, [r2]
91-#endif 91-#endif
92 ldm sp, {sp,pc} 92 b call_epilogue
93 E(ARM_TYPE_VFP_N) 93 E(ARM_TYPE_VFP_N)
94-#ifdef __clang__ 94-#ifdef __clang__
95- vldm r2, {d0-d3} 95- vldm r2, {d0-d3}
96-#else 96-#else
97 ldc p11, cr0, [r2], {8} @ vldm r2, {d0-d3} 97 ldc p11, cr0, [r2], {8} @ vldm r2, {d0-d3}
98-#endif 98-#endif
99 ldm sp, {sp,pc} 99 b call_epilogue
100 E(ARM_TYPE_INT64) 100 E(ARM_TYPE_INT64)
101 ldr r1, [r2, #4] 101 ldr r1, [r2, #4]
102-- 102--
1032.17.1 1032.25.1
104 104
diff --git a/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch b/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
deleted file mode 100644
index 52e6e4536b..0000000000
--- a/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From de93adfb6f48100946bba2c3abad2a77a0cfde0b Mon Sep 17 00:00:00 2001
2From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3Date: Sun, 24 Nov 2019 09:52:01 +0100
4Subject: [PATCH] ffi_powerpc.h: fix build failure with powerpc7
5
6This is a patch pulled down from the following:
7https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
8
9This issue is being hit on OpenBMC code when pulling the latest
10libffi tag and building on a P8 ppc64le machine. I verified this
11patch fixes the issue we are seeing.
12
13Below is the original commit message:
14
15Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
16fails on:
17
18In file included from ../src/powerpc/ffi.c:33:0:
19../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
20 typedef _Float128 float128;
21 ^~~~~~~~~
22
23Fix this build failure by checking for __HAVE_FLOAT128 before using
24_Float128, as _Float128 is enabled only on specific conditions, see
25output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
26
27 /* Defined to 1 if the current compiler invocation provides a
28 floating-point type with the IEEE 754 binary128 format, and this glibc
29 includes corresponding *f128 interfaces for it. */
30 #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
31 && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
32 # define __HAVE_FLOAT128 1
33 #else
34 # define __HAVE_FLOAT128 0
35 #endif
36
37Fixes:
38 - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
39
40Upstream-Status: Submitted [https://github.com/libffi/libffi/pull/561]
41Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
42Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
43---
44 src/powerpc/ffi_powerpc.h | 2 +-
45 1 file changed, 1 insertion(+), 1 deletion(-)
46
47diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
48index 8e2f2f0..960a5c4 100644
49--- a/src/powerpc/ffi_powerpc.h
50+++ b/src/powerpc/ffi_powerpc.h
51@@ -57,7 +57,7 @@ typedef union
52 double d;
53 } ffi_dblfl;
54
55-#if defined(__FLOAT128_TYPE__)
56+#if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
57 typedef _Float128 float128;
58 #elif defined(__FLOAT128__)
59 typedef __float128 float128;
60--
612.21.0 (Apple Git-122)
62
diff --git a/meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch b/meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch
deleted file mode 100644
index 8a7aea4311..0000000000
--- a/meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1From 4dc6cc961300b9deffb648b1237390a5bea1c6d6 Mon Sep 17 00:00:00 2001
2From: Sergei Trofimovich <slyfox@gentoo.org>
3Date: Thu, 28 Nov 2019 12:42:41 +0000
4Subject: [PATCH] powerpc: fix build failure on power7 and older (#532)
5
6Build failure looks as:
7```
8libtool: compile: powerpc-unknown-linux-gnu-gcc \
9 -O2 -mcpu=powerpc -mtune=powerpc -pipe ... -c src/powerpc/ffi.c ...
10In file included from src/powerpc/ffi.c:33:
11src/powerpc/ffi_powerpc.h:65:9: error: '__int128' is not supported on this target
12 65 | typedef __int128 float128;
13 | ^~~~~~~~
14```
15
16The fix avoids using __int128 in favour of aligned char[16].
17
18Closes: https://github.com/libffi/libffi/issues/531
19Upstream-Status: Backport [https://github.com/libffi/libffi/commit/01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd]
20Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
21Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
22---
23 src/powerpc/ffi_powerpc.h | 2 +-
24 1 file changed, 1 insertion(+), 1 deletion(-)
25
26diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
27index 5ee2a70..8e2f2f0 100644
28--- a/src/powerpc/ffi_powerpc.h
29+++ b/src/powerpc/ffi_powerpc.h
30@@ -62,7 +62,7 @@ typedef _Float128 float128;
31 #elif defined(__FLOAT128__)
32 typedef __float128 float128;
33 #else
34-typedef __int128 float128;
35+typedef char float128[16] __attribute__((aligned(16)));
36 #endif
37
38 void FFI_HIDDEN ffi_closure_SYSV (void);
diff --git a/meta/recipes-support/libffi/libffi_3.3.bb b/meta/recipes-support/libffi/libffi_3.4.2.bb
index 10ef003242..47b230afa2 100644
--- a/meta/recipes-support/libffi/libffi_3.3.bb
+++ b/meta/recipes-support/libffi/libffi_3.4.2.bb
@@ -8,19 +8,13 @@ library really only provides the lowest, machine dependent layer of a fully feat
8A layer must exist above `libffi' that handles type conversions for values passed between the two languages." 8A layer must exist above `libffi' that handles type conversions for values passed between the two languages."
9 9
10LICENSE = "MIT" 10LICENSE = "MIT"
11LIC_FILES_CHKSUM = "file://LICENSE;md5=492385fe22195952f5b9b197868ba268" 11LIC_FILES_CHKSUM = "file://LICENSE;md5=679b5c9bdc79a2b93ee574e193e7a7bc"
12 12
13SRC_URI = "https://github.com/libffi/libffi/releases/download/v${PV}/${BPN}-${PV}.tar.gz \ 13SRC_URI = "https://github.com/libffi/libffi/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
14 file://not-win32.patch \ 14 file://not-win32.patch \
15 file://0001-Fixed-missed-ifndef-for-__mips_soft_float.patch \
16 file://0001-arm-sysv-reverted-clang-VFP-mitigation.patch \ 15 file://0001-arm-sysv-reverted-clang-VFP-mitigation.patch \
17 file://0001-powerpc-fix-build-failure-on-power7-and-older-532.patch \
18 file://0001-Address-platforms-with-no-__int128.patch \
19 file://0001-Address-platforms-with-no-__int128-part2.patch \
20 file://0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch \
21 " 16 "
22SRC_URI[md5sum] = "6313289e32f1d38a9df4770b014a2ca7" 17SRC_URI[sha256sum] = "540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620"
23SRC_URI[sha256sum] = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056"
24UPSTREAM_CHECK_URI = "https://github.com/libffi/libffi/releases/" 18UPSTREAM_CHECK_URI = "https://github.com/libffi/libffi/releases/"
25UPSTREAM_CHECK_REGEX = "libffi-(?P<pver>\d+(\.\d+)+)\.tar" 19UPSTREAM_CHECK_REGEX = "libffi-(?P<pver>\d+(\.\d+)+)\.tar"
26 20