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 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/