diff --git a/debian/patches/perf-fix-build-on-architectures-without-config_perf_.patch b/debian/patches/perf-fix-build-on-architectures-without-config_perf_.patch deleted file mode 100644 index 6f867f6ff..000000000 --- a/debian/patches/perf-fix-build-on-architectures-without-config_perf_.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Ben Hutchings -Date: Thu, 8 Oct 2015 17:38:22 +0100 -Subject: perf: Fix build on architectures without CONFIG_PERF_REGS -Forwarded: http://mid.gmane.org/1444323185.2956.260.camel@decadent.org.uk - -perf currently fails to link on all architectures other than arm, -arm64 and x86: - -tools/perf/libperf.a(libperf-in.o): In function `parse_regs': -tools/perf/util/parse-regs-options.c:28: undefined reference to `sample_reg_masks' -tools/perf/util/parse-regs-options.c:28: undefined reference to `sample_reg_masks' -tools/perf/util/parse-regs-options.c:45: undefined reference to `sample_reg_masks' -tools/perf/util/parse-regs-options.c:38: undefined reference to `sample_reg_masks' - -Fixes: bcc84ec65ad1 ("perf record: Add ability to name registers to record") -Signed-off-by: Ben Hutchings -Cc: Stephane Eranian ---- - tools/perf/builtin-record.c | 2 ++ - tools/perf/util/Build | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c -index 142eeb3..34dd749c 100644 ---- a/tools/perf/builtin-record.c -+++ b/tools/perf/builtin-record.c -@@ -1082,9 +1082,11 @@ struct option __record_options[] = { - "sample transaction flags (special events only)"), - OPT_BOOLEAN(0, "per-thread", &record.opts.target.per_thread, - "use per-thread mmaps"), -+#ifdef CONFIG_PERF_REGS - OPT_CALLBACK_OPTARG('I', "intr-regs", &record.opts.sample_intr_regs, NULL, "any register", - "sample selected machine registers on interrupt," - " use -I ? to list register names", parse_regs), -+#endif - OPT_BOOLEAN(0, "running-time", &record.opts.running_time, - "Record running/enabled time of read (:S) events"), - OPT_CALLBACK('k', "clockid", &record.opts, -diff --git a/tools/perf/util/Build b/tools/perf/util/Build -index 349bc96..333b08d 100644 ---- a/tools/perf/util/Build -+++ b/tools/perf/util/Build -@@ -83,7 +83,7 @@ libperf-$(CONFIG_AUXTRACE) += intel-pt-decoder/ - libperf-$(CONFIG_AUXTRACE) += intel-pt.o - libperf-$(CONFIG_AUXTRACE) += intel-bts.o - libperf-y += parse-branch-options.o --libperf-y += parse-regs-options.o -+libperf-$(CONFIG_PERF_REGS) += parse-regs-options.o - - libperf-$(CONFIG_LIBELF) += symbol-elf.o - libperf-$(CONFIG_LIBELF) += probe-file.o diff --git a/debian/patches/perf-tools-fix-build-break-on-powerpc-due-to-sample_.patch b/debian/patches/perf-tools-fix-build-break-on-powerpc-due-to-sample_.patch new file mode 100644 index 000000000..f660de82b --- /dev/null +++ b/debian/patches/perf-tools-fix-build-break-on-powerpc-due-to-sample_.patch @@ -0,0 +1,75 @@ +From: Sukadev Bhattiprolu +Date: Thu, 24 Sep 2015 17:53:49 -0400 +Subject: perf tools: Fix build break on powerpc due to sample_reg_masks +Origin: https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit?id=9fb4765451f22c5e782c1590747717550bff34b2 + +perf_regs.c does not get built on Powerpc as CONFIG_PERF_REGS is false. +So the weak definition for 'sample_regs_masks' doesn't get picked up. + +Adding perf_regs.o to util/Build unconditionally, exposes a redefinition +error for 'perf_reg_value()' function (due to the static inline version +in util/perf_regs.h). So use #ifdef HAVE_PERF_REGS_SUPPORT' around that +function. + +Signed-off-by: Sukadev Bhattiprolu +Acked-by: Jiri Olsa +Cc: Naveen N. Rao +Cc: Stephane Eranian +Cc: linuxppc-dev@ozlabs.org +Link: http://lkml.kernel.org/r/20150930182836.GA27858@us.ibm.com +Signed-off-by: Arnaldo Carvalho de Melo +--- + tools/perf/util/Build | 2 +- + tools/perf/util/perf_regs.c | 2 ++ + tools/perf/util/perf_regs.h | 1 + + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/tools/perf/util/Build b/tools/perf/util/Build +index 349bc96..e5f18a2 100644 +--- a/tools/perf/util/Build ++++ b/tools/perf/util/Build +@@ -17,6 +17,7 @@ libperf-y += levenshtein.o + libperf-y += llvm-utils.o + libperf-y += parse-options.o + libperf-y += parse-events.o ++libperf-y += perf_regs.o + libperf-y += path.o + libperf-y += rbtree.o + libperf-y += bitmap.o +@@ -103,7 +104,6 @@ libperf-$(CONFIG_LIBBABELTRACE) += data-convert-bt.o + + libperf-y += scripting-engines/ + +-libperf-$(CONFIG_PERF_REGS) += perf_regs.o + libperf-$(CONFIG_ZLIB) += zlib.o + libperf-$(CONFIG_LZMA) += lzma.o + +diff --git a/tools/perf/util/perf_regs.c b/tools/perf/util/perf_regs.c +index 885e8ac..6b8eb13 100644 +--- a/tools/perf/util/perf_regs.c ++++ b/tools/perf/util/perf_regs.c +@@ -6,6 +6,7 @@ const struct sample_reg __weak sample_reg_masks[] = { + SMPL_REG_END + }; + ++#ifdef HAVE_PERF_REGS_SUPPORT + int perf_reg_value(u64 *valp, struct regs_dump *regs, int id) + { + int i, idx = 0; +@@ -29,3 +30,4 @@ out: + *valp = regs->cache_regs[id]; + return 0; + } ++#endif +diff --git a/tools/perf/util/perf_regs.h b/tools/perf/util/perf_regs.h +index 2984dcc..679d6e4 100644 +--- a/tools/perf/util/perf_regs.h ++++ b/tools/perf/util/perf_regs.h +@@ -2,6 +2,7 @@ + #define __PERF_REGS_H + + #include ++#include + + struct regs_dump; + diff --git a/debian/patches/series b/debian/patches/series index e333479a8..0ef4a447a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -15,4 +15,4 @@ tools-lib-lockdep-use-ldflags.patch tools-hv-fix-fortify-format-warning.patch revert-perf-build-fix-libunwind-feature-detection-on.patch alpha-uapi-add-support-for-__sane_userspace_types__.patch -perf-fix-build-on-architectures-without-config_perf_.patch +perf-tools-fix-build-break-on-powerpc-due-to-sample_.patch