]> git.itanic.dy.fi Git - linux-stable/commitdiff
perf genelf: Set ELF program header addresses properly
authorNamhyung Kim <namhyung@kernel.org>
Tue, 12 Dec 2023 07:05:44 +0000 (23:05 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 14 Dec 2023 21:56:34 +0000 (18:56 -0300)
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>
tools/perf/util/genelf.c

index fefc72066c4e8ee1e85068180a752c12cfb15d23..ac17a3cb59dc0d08621015506b48188ea4a74d03 100644 (file)
@@ -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;