[PATCH] turbostat: Don't put unprocessed uapi headers in the include path

2013-08-10 Thread Josh Triplett
turbostat's Makefile puts arch/x86/include/uapi/ in the include path, so
that it can include  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 , and asm/sigcontext.h in the kernel source
includes , 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 
Cc: sta...@vger.kernel.org
---

CCing this to stable because it fixes a broken build on some systems.
Applies as far back as 3.8.

 tools/power/x86/turbostat/Makefile| 2 +-
 tools/power/x86/turbostat/turbostat.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/power/x86/turbostat/Makefile 
b/tools/power/x86/turbostat/Makefile
index f09641d..d1b3a36 100644
--- 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)
diff --git a/tools/power/x86/turbostat/turbostat.c 
b/tools/power/x86/turbostat/turbostat.c
index fe70207..5bf4a67 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -20,7 +20,7 @@
  */
 
 #define _GNU_SOURCE
-#include 
+#include MSRHEADER
 #include 
 #include 
 #include 
-- 
1.8.4.rc1

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


[PATCH] turbostat: Don't put unprocessed uapi headers in the include path

2013-08-10 Thread Josh Triplett
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 j...@joshtriplett.org
Cc: sta...@vger.kernel.org
---

CCing this to stable because it fixes a broken build on some systems.
Applies as far back as 3.8.

 tools/power/x86/turbostat/Makefile| 2 +-
 tools/power/x86/turbostat/turbostat.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/power/x86/turbostat/Makefile 
b/tools/power/x86/turbostat/Makefile
index f09641d..d1b3a36 100644
--- 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)
diff --git a/tools/power/x86/turbostat/turbostat.c 
b/tools/power/x86/turbostat/turbostat.c
index fe70207..5bf4a67 100644
--- 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
-- 
1.8.4.rc1

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