]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
turbostat: Don't put unprocessed uapi headers in the include path
authorJosh Triplett <josh@joshtriplett.org>
Wed, 21 Aug 2013 00:20:12 +0000 (17:20 -0700)
committerLen Brown <len.brown@intel.com>
Sun, 19 Jan 2014 03:34:07 +0000 (22:34 -0500)
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>
Cc: stable@vger.kernel.org
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/Makefile
tools/power/x86/turbostat/turbostat.c

index f09641da40d4fd61c820b959e17c842ef3a9e27f..d1b3a361e526d83d1ce011819d917e6f9c256f81 100644 (file)
@@ -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)
index 9d77f13c2d2548934293662e314828a817d16144..93cbef56e876c153ef376a92e590327f3b5c5b78 100644 (file)
@@ -20,7 +20,7 @@
  */
 
 #define _GNU_SOURCE
-#include <asm/msr.h>
+#include MSRHEADER
 #include <stdio.h>
 #include <unistd.h>
 #include <sys/types.h>