summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/prelink
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-devtools/prelink')
-rw-r--r--poky/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch51
-rw-r--r--poky/meta/recipes-devtools/prelink/prelink_git.bb8
2 files changed, 56 insertions, 3 deletions
diff --git a/poky/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch b/poky/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch
new file mode 100644
index 000000000..b1688243a
--- /dev/null
+++ b/poky/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch
@@ -0,0 +1,51 @@
+From 2136969e3e196b9cf7f4788340efa4b1d9b39565 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 11 Oct 2018 10:05:52 +0800
+Subject: [PATCH] src/arch-mips.c: check info->resolvetls before use its member
+
+The info->resolvetls might be NULL according to src/prelink.c:
+[snip]
+ /* Dynamic linker does not depend on any other library,
+ all symbols resolve to themselves with the exception
+ of SHN_UNDEF symbols which resolve to 0. */
+if (info->symtab[r_sym].st_shndx == SHN_UNDEF)
+ {
+ info->resolveent = NULL;
+ info->resolvetls = NULL;
+[snip]
+
+So we must check it before use its members, otherwise, there might be
+Segmentation fault error.
+
+Fixed:
+MACHINE = "qemumips"
+IMAGE_INSTALL_append = " qemu"
+$ bitbake core-image-minimal
+[snip]
+| /path/to/qemumips-poky-linux/core-image-minimal/1.0-r0/temp/run.prelink_image.1000: line 111: 1010 Segmentation fault (core dumped)
+[snip]
+
+Upstream-Status: Submitted [https://lists.yoctoproject.org/pipermail/yocto/2018-October/042812.html]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/arch-mips.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/arch-mips.c b/src/arch-mips.c
+index ccb1834..02c608f 100644
+--- a/src/arch-mips.c
++++ b/src/arch-mips.c
+@@ -567,7 +567,8 @@ mips_prelink_reloc (struct prelink_info *info, GElf_Addr r_offset,
+ if (dso->ehdr.e_type == ET_EXEC)
+ {
+ value = info->resolve (info, r_sym, r_type);
+- value += info->resolvetls->offset - TLS_TP_OFFSET;
++ if (info->resolvetls != NULL)
++ value += info->resolvetls->offset - TLS_TP_OFFSET;
+ if (r_type == R_MIPS_TLS_TPREL32)
+ mips_prelink_32bit_reloc (dso, rela, value);
+ else
+--
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/prelink/prelink_git.bb b/poky/meta/recipes-devtools/prelink/prelink_git.bb
index 0f6d16e00..b1261d594 100644
--- a/poky/meta/recipes-devtools/prelink/prelink_git.bb
+++ b/poky/meta/recipes-devtools/prelink/prelink_git.bb
@@ -9,7 +9,7 @@ and executables, so that far fewer relocations need to be resolved at \
runtime and thus programs come up faster."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-SRCREV = "05aeafd053e56356ec8c62f4bb8f7b95bae192f3"
+SRCREV = "a853a5d715d84eec93aa68e8f2df26b7d860f5b2"
PV = "1.0+git${SRCPV}"
#
@@ -27,11 +27,13 @@ FILES_${PN}-cron = "${sysconfdir}/cron.daily ${sysconfdir}/default"
PACKAGES =+ "${PN}-cron"
-SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink \
+SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink_staging \
file://prelink.conf \
file://prelink.cron.daily \
file://prelink.default \
- file://macros.prelink"
+ file://macros.prelink \
+ file://0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch \
+"
UPSTREAM_CHECK_COMMITS = "1"
TARGET_OS_ORIG := "${TARGET_OS}"