summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhongxu <hongxu.jia@windriver.com>2021-10-14 16:47:05 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-10-16 17:41:59 +0100
commit0e3c7871130ca33cca0a3f94bd26540d58691b19 (patch)
tree114f3a41b9850198ff1e744046e008f30956119b
parenta3d3c2d4ac421a0dde2a20825eab4434f16b2452 (diff)
downloadpoky-0e3c7871130ca33cca0a3f94bd26540d58691b19.tar.gz
libcap: fix nativesdk-libcap relocate failure
./lat-sdk-poky-intel-x86-64-1.0.sh -y -d sdk-3 ... Setting it up...ERROR: could not relocate /buildarea/raid5/hjia/community/lat_github_090816/build-3/tmp/deploy/sdk/sdk-3/sysroots/x86_64-pokysdk-linux/usr/lib/libpsx.so.2.54, interp size = 93 and 134 is needed. ... Since upstream libcap applied commit [ee3b25c Support simply executing the built shared libraries.][1], it manually append interp section to shared libraries. Refer the implement of Yocto glibc[2], allocated a 4096 byte .interp section for nativesdk [1] https://git.kernel.org/pub/scm/linux/kernel/git/morgan/libcap.git/commit/?id=ee3b25c0a877fa74d1aec88f325ac45b09963c82 [2] meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch (From OE-Core rev: 99c62d5d134bf69021a348d40b6aa21f4fc5f8a8) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch36
-rw-r--r--meta/recipes-support/libcap/libcap_2.54.bb3
2 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch
new file mode 100644
index 0000000000..c7bf1a8b8c
--- /dev/null
+++ b/meta/recipes-support/libcap/files/0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch
@@ -0,0 +1,36 @@
1From 794cebc5732908636f22a1d9843fed3ae664899a Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com>
3Date: Thu, 14 Oct 2021 15:57:36 +0800
4Subject: [PATCH] nativesdk-libcap: Raise the size of arrays containing dl
5 paths
6
7This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings
8and lengths as well as ld.so.cache path in the dynamic loader to specific
9sections in memory. The sections that contain paths have been allocated a 4096
10byte section, which is the maximum path length in linux. This will allow the
11relocating script to parse the ELF binary, detect the section and easily replace
12the strings in a certain path.
13
14Upstream-Status: Inappropriate [SDK specific]
15
16Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
17---
18 libcap/execable.h | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/libcap/execable.h b/libcap/execable.h
22index 0bcc5d4..6e2a080 100644
23--- a/libcap/execable.h
24+++ b/libcap/execable.h
25@@ -23,7 +23,7 @@
26 #endif
27 #define __EXECABLE_H
28
29-const char __execable_dl_loader[] __attribute((section(".interp"))) =
30+const char __execable_dl_loader[4096] __attribute((section(".interp"))) =
31 SHARED_LOADER ;
32
33 static void __execable_parse_args(int *argc_p, char ***argv_p)
34--
352.27.0
36
diff --git a/meta/recipes-support/libcap/libcap_2.54.bb b/meta/recipes-support/libcap/libcap_2.54.bb
index 04362e7032..fe29f05483 100644
--- a/meta/recipes-support/libcap/libcap_2.54.bb
+++ b/meta/recipes-support/libcap/libcap_2.54.bb
@@ -13,6 +13,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${
13 file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ 13 file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \
14 file://0002-tests-do-not-run-target-executables.patch \ 14 file://0002-tests-do-not-run-target-executables.patch \
15 " 15 "
16SRC_URI:append:class-nativesdk = " \
17 file://0001-nativesdk-libcap-Raise-the-size-of-arrays-containing.patch \
18 "
16SRC_URI[sha256sum] = "5091b24247999fd7a5e62bd9ac8bc761cda29f9baa0d1a2ca6a46f13891b4f0f" 19SRC_URI[sha256sum] = "5091b24247999fd7a5e62bd9ac8bc761cda29f9baa0d1a2ca6a46f13891b4f0f"
17 20
18UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" 21UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/"