Patch "perf jit: Enable jitdump support without dwarf" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
perf jit: Enable jitdump support without dwarf
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
perf-jit-enable-jitdump-support-without-dwarf.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
621cb4e7837e39d25a5af5a785ad282cdd2b4ce8Mon Sep 17 00:00:00 2001
From: Maciej Debski <[email protected]>
Date: Thu, 13 Oct 2016 03:59:36 -0700
Subject: perf jit: Enable jitdump support without dwarf
From: Maciej Debski <[email protected]>
commit 621cb4e7837e39d25a5af5a785ad282cdd2b4ce8 upstream.
This patch modifies the build dependencies on the jitdump support in perf. As it stands jitdump was wrongfully made dependent 100% on using DWARF. However, the dwarf dependency, only exist if generating the source line table in genelf_debug.c. The rest of the support does not need DWARF.
This patch removes the dependency on DWARF for the entire jitdump support. It keeps it only for the genelf_debug.c support.
--- tools/perf/Makefile.config | 2 +- tools/perf/util/Build | 2 +- tools/perf/util/genelf.c | 9 +++++++-- tools/perf/util/genelf.h | 2 ++ 4 files changed, 11 insertions(+), 4 deletions(-)
tools/perf/Makefile.config +1 -1
@@ -366,7 +366,7 @@ ifndef NO_SDT endif ifdef PERF_HAVE_JITDUMP - ifndef NO_DWARF + ifndef NO_LIBELF $(call detected,CONFIG_JITDUMP) CFLAGS += -DHAVE_JITDUMP endif
tools/perf/util/Build +1 -1
@@ -120,7 +120,7 @@ libperf-y += demangle-rust.o ifdef CONFIG_JITDUMP libperf-$(CONFIG_LIBELF) += jitdump.o libperf-$(CONFIG_LIBELF) += genelf.o -libperf-$(CONFIG_LIBELF) += genelf_debug.o +libperf-$(CONFIG_DWARF) += genelf_debug.o endif CFLAGS_config.o += -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
tools/perf/util/genelf.c +7 -2
@@ -19,7 +19,9 @@#include <limits.h> #include <fcntl.h> #include <err.h> +#ifdef HAVE_DWARF_SUPPORT #include <dwarf.h> +#endif #include "perf.h" #include "genelf.h"
@@ -157,7 +159,7 @@ gen_build_id(struct buildid_note *note,int jit_write_elf (int fd,uint64_t load_addr,const char *sym,const void *code,int csize, -void *debug,int nr_debug_entries) +void *debug__maybe_unused ,int nr_debug_entries__maybe_unused ) {Elf *e;Elf_Data *d;
@@ -386,11 +388,14 @@ jit_write_elf(int fd, uint64_t load_addr shdr->sh_size =sizeof (bnote); shdr->sh_entsize =0 ; +#ifdef HAVE_DWARF_SUPPORT if (debug && nr_debug_entries) { retval =jit_add_debug_info (e, load_addr, debug, nr_debug_entries);if (retval) goto error; - }else { + } else +#endif + {if (elf_update (e,ELF_C_WRITE ) <0 ) {warnx ("elf_update 4 failed" ); goto error;
tools/perf/util/genelf.h +2 -0
@@ -4,8 +4,10 @@/* genelf.c */ int jit_write_elf (int fd,uint64_t code_addr,const char *sym,const void *code,int csize,void *debug,int nr_debug_entries); +#ifdef HAVE_DWARF_SUPPORT /* genelf_debug.c */ int jit_add_debug_info (Elf *e,uint64_t code_addr,void *debug,int nr_debug_entries); +#endif #if defined(__arm__)#define GEN_ELF_ARCH EM_ARM
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/perf-jit-enable-jitdump-support-without-dwarf.patch