lkml.org 
[lkml]   [2014]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.11 144/233] turbostat: Don't put unprocessed uapi headers in the include path
    Date
    3.11.10.4 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    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: Luis Henriques <luis.henriques@canonical.com>
    ---
    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.3.2


    \
     
     \ /
      Last update: 2014-02-07 14:41    [W:3.093 / U:0.792 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site