| From d4d20ea553a18bc6e8ebef830c91a150d20d23b8 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 11 Dec 2023 23:05:44 -0800 |
| Subject: perf genelf: Set ELF program header addresses properly |
| |
| From: Namhyung Kim <namhyung@kernel.org> |
| |
| [ Upstream commit 1af478903fc48c1409a8dd6b698383b62387adf1 ] |
| |
| The text section starts after the ELF headers so PHDR.p_vaddr and |
| others should have the correct addresses. |
| |
| Fixes: babd04386b1df8c3 ("perf jit: Include program header in ELF files") |
| Reviewed-by: Ian Rogers <irogers@google.com> |
| Signed-off-by: Namhyung Kim <namhyung@kernel.org> |
| Cc: Adrian Hunter <adrian.hunter@intel.com> |
| Cc: Fangrui Song <maskray@google.com> |
| Cc: Ingo Molnar <mingo@kernel.org> |
| Cc: Jiri Olsa <jolsa@kernel.org> |
| Cc: Lieven Hey <lieven.hey@kdab.com> |
| Cc: Milian Wolff <milian.wolff@kdab.com> |
| Cc: Pablo Galindo <pablogsal@gmail.com> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Link: https://lore.kernel.org/r/20231212070547.612536-2-namhyung@kernel.org |
| Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/perf/util/genelf.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/tools/perf/util/genelf.c b/tools/perf/util/genelf.c |
| index fefc72066c4e..ac17a3cb59dc 100644 |
| --- a/tools/perf/util/genelf.c |
| +++ b/tools/perf/util/genelf.c |
| @@ -293,9 +293,9 @@ jit_write_elf(int fd, uint64_t load_addr, const char *sym, |
| */ |
| phdr = elf_newphdr(e, 1); |
| phdr[0].p_type = PT_LOAD; |
| - phdr[0].p_offset = 0; |
| - phdr[0].p_vaddr = 0; |
| - phdr[0].p_paddr = 0; |
| + phdr[0].p_offset = GEN_ELF_TEXT_OFFSET; |
| + phdr[0].p_vaddr = GEN_ELF_TEXT_OFFSET; |
| + phdr[0].p_paddr = GEN_ELF_TEXT_OFFSET; |
| phdr[0].p_filesz = csize; |
| phdr[0].p_memsz = csize; |
| phdr[0].p_flags = PF_X | PF_R; |
| -- |
| 2.43.0 |
| |