From a1ae03d0964df5ff7cc1c37c1f95eae60dd07800 Mon Sep 17 00:00:00 2001 From: wangmy Date: Thu, 13 May 2021 15:55:43 +0800 Subject: uftrace: Fix a plthook crash on aarch64 with binutils2.35.1 and later versions on aarch64 Signed-off-by: Wang Mingyu Signed-off-by: Khem Raj (cherry picked from commit 54feab11a1866435107df366005b50aba3b8d1cd) Signed-off-by: Armin Kuster --- ...-Fix-error-on-aarch64-with-binutils2.35.1.patch | 27 ------------- ...-a-plthook-crash-on-aarch64-with-binutils.patch | 47 ++++++++++++++++++++++ meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb | 2 +- 3 files changed, 48 insertions(+), 28 deletions(-) delete mode 100644 meta-oe/recipes-devtools/uftrace/uftrace/0001-Fix-error-on-aarch64-with-binutils2.35.1.patch create mode 100644 meta-oe/recipes-devtools/uftrace/uftrace/0001-aarch64-Fix-a-plthook-crash-on-aarch64-with-binutils.patch diff --git a/meta-oe/recipes-devtools/uftrace/uftrace/0001-Fix-error-on-aarch64-with-binutils2.35.1.patch b/meta-oe/recipes-devtools/uftrace/uftrace/0001-Fix-error-on-aarch64-with-binutils2.35.1.patch deleted file mode 100644 index ac17cf433f..0000000000 --- a/meta-oe/recipes-devtools/uftrace/uftrace/0001-Fix-error-on-aarch64-with-binutils2.35.1.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0bc502989822506af308a559ac1cd52af82cac03 Mon Sep 17 00:00:00 2001 -From: Lei Maohui -Date: Wed, 14 Apr 2021 09:35:35 +0900 -Subject: [PATCH] Fix error on aarch64 with binutils2.35.1. - -WARN: child terminated by signal: 11: Segmentation fault - -Upstream-status: Pending - -Signed-off-by: Lei Maohui ---- - arch/aarch64/mcount-arch.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/aarch64/mcount-arch.h b/arch/aarch64/mcount-arch.h -index 69efe521..60c2c1ba 100644 ---- a/arch/aarch64/mcount-arch.h -+++ b/arch/aarch64/mcount-arch.h -@@ -31,7 +31,7 @@ struct mcount_arch_context { - double d[ARCH_MAX_FLOAT_REGS]; - }; - --#define ARCH_PLT0_SIZE 32 -+#define ARCH_PLT0_SIZE 16 - #define ARCH_PLTHOOK_ADDR_OFFSET 0 - - struct mcount_disasm_engine; diff --git a/meta-oe/recipes-devtools/uftrace/uftrace/0001-aarch64-Fix-a-plthook-crash-on-aarch64-with-binutils.patch b/meta-oe/recipes-devtools/uftrace/uftrace/0001-aarch64-Fix-a-plthook-crash-on-aarch64-with-binutils.patch new file mode 100644 index 0000000000..bf997d6e4b --- /dev/null +++ b/meta-oe/recipes-devtools/uftrace/uftrace/0001-aarch64-Fix-a-plthook-crash-on-aarch64-with-binutils.patch @@ -0,0 +1,47 @@ +From 0851278471472c6be69a936cc3698aa50a646ffd Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 12 May 2021 17:06:31 +0900 +Subject: [PATCH] aarch64: Fix a plthook crash on aarch64 with binutils2.35.1 + and later versions + +plthook is always crashed in Ubuntu 20.10 aarch64, which uses binutils 2.35.1. +Since the `plt_entsize` is not automatically set in this version, we have to +explicitly set the value. + +This patch fixes the following problem. + + $ uname -m + aarch64 + + $ cat /etc/os-release | grep PRETTY_NAME + PRETTY_NAME="Ubuntu 20.10" + + $ gcc -pg tests/s-abc.c + + $ uftrace record a.out + WARN: child terminated by signal: 7: Bus error + +Fixed: #1254 + +Upstream-status: submitted [Sent to https://github.com/namhyung/uftrace/pull/1248] + +Signed-off-by: Lei Maohui +--- + utils/symbol.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/utils/symbol.c b/utils/symbol.c +index 29a1d295..01e52dab 100644 +--- a/utils/symbol.c ++++ b/utils/symbol.c +@@ -560,6 +560,7 @@ int load_elf_dynsymtab(struct symtab *dsymtab, struct uftrace_elf_data *elf, + } + else if (elf->ehdr.e_machine == EM_AARCH64) { + plt_addr += 16; /* AARCH64 PLT0 size is 32 */ ++ plt_entsize = 16; + } + else if (elf->ehdr.e_machine == EM_386) { + plt_entsize += 12; +-- +2.25.1 + diff --git a/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb index 4b4fc831c3..a04fccca75 100644 --- a/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb +++ b/meta-oe/recipes-devtools/uftrace/uftrace_0.9.4.bb @@ -13,7 +13,7 @@ inherit autotools PV .= "+git${SRCPV}" SRCREV = "d648bbffedef529220896283fb59e35531c13804" SRC_URI = "git://github.com/namhyung/${BPN} \ - file://0001-Fix-error-on-aarch64-with-binutils2.35.1.patch \ + file://0001-aarch64-Fix-a-plthook-crash-on-aarch64-with-binutils.patch \ " S = "${WORKDIR}/git" -- cgit 1.2.3-korg