| From b731f3119de57144e16c19fd593b8daeb637843e Mon Sep 17 00:00:00 2001 |
| From: Josh Triplett <josh@joshtriplett.org> |
| Date: Tue, 20 Aug 2013 17:20:12 -0700 |
| Subject: turbostat: Don't put unprocessed uapi headers in the include path |
| |
| From: Josh Triplett <josh@joshtriplett.org> |
| |
| commit b731f3119de57144e16c19fd593b8daeb637843e upstream. |
| |
| turbostat's Makefile puts arch/x86/include/uapi/ in the include path, so |
| that it can include <asm/msr.h> from it. It isn't in general safe to |
| include even uapi headers directly from the kernel tree without |
| processing them through scripts/headers_install.sh, but asm/msr.h |
| happens to work. |
| |
| However, that include path can break with some versions of system |
| headers, by overriding some system headers with the unprocessed versions |
| directly from the kernel source. For instance: |
| |
| In file included from /build/x86-generic/usr/include/bits/sigcontext.h:28:0, |
| from /build/x86-generic/usr/include/signal.h:339, |
| from /build/x86-generic/usr/include/sys/wait.h:31, |
| from turbostat.c:27: |
| ../../../../arch/x86/include/uapi/asm/sigcontext.h:4:28: fatal error: linux/compiler.h: No such file or directory |
| |
| This occurs because the system bits/sigcontext.h on that build system |
| includes <asm/sigcontext.h>, and asm/sigcontext.h in the kernel source |
| includes <linux/compiler.h>, which scripts/headers_install.sh would have |
| filtered out. |
| |
| Since turbostat really only wants a single header, just include that one |
| header rather than putting an entire directory of kernel headers on the |
| include path. |
| |
| In the process, switch from msr.h to msr-index.h, since turbostat just |
| wants the MSR numbers. |
| |
| Signed-off-by: Josh Triplett <josh@joshtriplett.org> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| tools/power/x86/turbostat/Makefile | 2 +- |
| tools/power/x86/turbostat/turbostat.c | 2 +- |
| 2 files changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/tools/power/x86/turbostat/Makefile |
| +++ b/tools/power/x86/turbostat/Makefile |
| @@ -5,7 +5,7 @@ DESTDIR := |
| |
| turbostat : turbostat.c |
| CFLAGS += -Wall |
| -CFLAGS += -I../../../../arch/x86/include/uapi/ |
| +CFLAGS += -DMSRHEADER='"../../../../arch/x86/include/uapi/asm/msr-index.h"' |
| |
| %: %.c |
| @mkdir -p $(BUILD_OUTPUT) |
| --- a/tools/power/x86/turbostat/turbostat.c |
| +++ b/tools/power/x86/turbostat/turbostat.c |
| @@ -20,7 +20,7 @@ |
| */ |
| |
| #define _GNU_SOURCE |
| -#include <asm/msr.h> |
| +#include MSRHEADER |
| #include <stdio.h> |
| #include <unistd.h> |
| #include <sys/types.h> |