Em Fri, Sep 04, 2015 at 03:45:03PM -0700, Petri Gynther escreveu: > This commit breaks the perf tool MIPS build because MIPS doesn't have > CONFIG_PERF_REGS=y in .config-detected: > > commit bcc84ec65ad1bd9f777a1fade6f8e5e0c5808fa5 > Author: Stephane Eranian <eran...@google.com> > Date: Mon Aug 31 18:41:12 2015 +0200 > > perf record: Add ability to name registers to record
There was a fix for another arch that came after this one.. here it is, already upstream, can you take a look? commit af4aeadd8c04303c0aa2d112145c3627e2ebd026 Author: Stephane Eranian <eran...@google.com> Date: Tue Sep 1 11:30:14 2015 +0200 perf tools: Fix link time error with sample_reg_masks on non x86 This patch makes perf compile on non x86 platforms by defining a weak symbol for sample_reg_masks[] in util/perf_regs.c. The patch also moves the REG() and REG_END() macros into the util/per_regs.h header file. The macros are renamed to SMPL_REG/SMPL_REG_END to avoid clashes with other header files. > On Fri, Sep 4, 2015 at 3:19 PM, Petri Gynther <pgynt...@google.com> wrote: > > I see that this patch is now in upstream. However, something else has > > now broken the perf tool MIPS build: > > > > linux/tools$ git describe > > v4.2-7656-g51e771c > > > > linux/tools$ make ARCH=mips CROSS_COMPILE=mipsel-linux- perf > > mkdir -p . > > make --no-print-directory -C perf O= subdir= > > BUILD: Doing 'make -j12' parallel build > > > > Auto-detecting system features: > > ... dwarf: [ OFF ] > > ... glibc: [ on ] > > ... gtk2: [ OFF ] > > ... libaudit: [ OFF ] > > ... libbfd: [ OFF ] > > ... libelf: [ OFF ] > > ... libnuma: [ OFF ] > > ... libperl: [ OFF ] > > ... libpython: [ OFF ] > > ... libslang: [ OFF ] > > ... libunwind: [ OFF ] > > ... libdw-dwarf-unwind: [ OFF ] > > ... zlib: [ OFF ] > > ... lzma: [ OFF ] > > > > ... > > > > AR libperf.a > > LINK perf > > libperf.a(libperf-in.o): In function `parse_regs': > > (.text+0x9f5b4): undefined reference to `sample_reg_masks' > > libperf.a(libperf-in.o): In function `parse_regs': > > (.text+0x9f604): undefined reference to `sample_reg_masks' > > libperf.a(libperf-in.o): In function `parse_regs': > > (.text+0x9f708): undefined reference to `sample_reg_masks' > > collect2: error: ld returned 1 exit status > > make[2]: *** [perf] Error 1 > > make[1]: *** [all] Error 2 > > make: *** [perf] Error 2 > > > > On Tue, Aug 4, 2015 at 5:38 PM, Petri Gynther <pgynt...@google.com> wrote: > >> linux/tools$ make ARCH=mips CROSS_COMPILE=mipsel-linux- perf > >> ... > >> config/Makefile:256: *** No gnu/libc-version.h found, please install > >> glibc-dev[el]. Stop. > >> make[1]: *** [all] Error 2 > >> make: *** [perf] Error 2 > >> > >> ... > >> In file included from builtin-sched.c:13:0: > >> util/cloexec.h:8:12: error: redundant redeclaration of ‘sched_getcpu’ > >> [-Werror=redundant-decls] > >> extern int sched_getcpu(void) __THROW; > >> > >> mipsel-buildroot-linux-uclibc/sysroot/usr/include/bits/sched.h:88:12: > >> note: previous declaration of ‘sched_getcpu’ was here > >> extern int sched_getcpu (void) __THROW; > >> > >> uclibc info: > >> sysroot/usr/include/bits/uClibc_config.h > >> __UCLIBC_MAJOR__ 0 > >> __UCLIBC_MINOR__ 9 > >> __UCLIBC_SUBLEVEL__ 33 > >> > >> sysroot/usr/include/features.h > >> __UCLIBC__ 1 > >> __GLIBC__ 2 > >> __GLIBC_MINOR__ 2 > >> > >> Signed-off-by: Petri Gynther <pgynt...@google.com> > >> --- > >> tools/build/feature/test-glibc.c | 11 +++++++++++ > >> tools/perf/util/cloexec.h | 2 +- > >> 2 files changed, 12 insertions(+), 1 deletion(-) > >> > >> diff --git a/tools/build/feature/test-glibc.c > >> b/tools/build/feature/test-glibc.c > >> index b082034..9367f75 100644 > >> --- a/tools/build/feature/test-glibc.c > >> +++ b/tools/build/feature/test-glibc.c > >> @@ -1,8 +1,19 @@ > >> +#include <stdlib.h> > >> + > >> +#if !defined(__UCLIBC__) > >> #include <gnu/libc-version.h> > >> +#else > >> +#define XSTR(s) STR(s) > >> +#define STR(s) #s > >> +#endif > >> > >> int main(void) > >> { > >> +#if !defined(__UCLIBC__) > >> const char *version = gnu_get_libc_version(); > >> +#else > >> + const char *version = XSTR(__GLIBC__) "." XSTR(__GLIBC_MINOR__); > >> +#endif > >> > >> return (long)version; > >> } > >> diff --git a/tools/perf/util/cloexec.h b/tools/perf/util/cloexec.h > >> index 68888c2..3bee677 100644 > >> --- a/tools/perf/util/cloexec.h > >> +++ b/tools/perf/util/cloexec.h > >> @@ -4,7 +4,7 @@ > >> unsigned long perf_event_open_cloexec_flag(void); > >> > >> #ifdef __GLIBC_PREREQ > >> -#if !__GLIBC_PREREQ(2, 6) > >> +#if !__GLIBC_PREREQ(2, 6) && !defined(__UCLIBC__) > >> extern int sched_getcpu(void) __THROW; > >> #endif > >> #endif > >> -- > >> 2.5.0.rc2.392.g76e840b > >> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/