• Josh Poimboeuf's avatar
    objtool: Support CROSS_COMPILE · c1d45c3a
    Josh Poimboeuf authored
    When building with CONFIG_STACK_VALIDATION on a ppc64le host with an x86
    cross-compiler, Stephen Rothwell saw the following objtool build errors:
    
        DESCEND  objtool
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/builtin-check.o
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/special.o
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/elf.o
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/objtool.o
        MKDIR    /home/sfr/next/x86_64_allmodconfig/tools/objtool/arch/x86/insn/
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/libstring.o
      elf.c:22:23: fatal error: sys/types.h: No such file or directory
      compilation terminated.
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/exec-cmd.o
        CC       /home/sfr/next/x86_64_allmodconfig/tools/objtool/help.o
      builtin-check.c:28:20: fatal error: string.h: No such file or directory
      compilation terminated.
      objtool.c:28:19: fatal error: stdio.h: No such file or directory
      compilation terminated.
    
    It fails to build because it tries to compile objtool with the
    cross-compiler instead of the host compiler.
    
    Ensure that it always uses the host compiler by ignoring CROSS_COMPILE.
    
    In order to do that properly, the libsubcmd.a library needs to be built
    in tools/objtool/ rather than tools/lib/subcmd/.  The latter directory
    contains the cross-compiled version which is needed for perf and
    possibly other tools.
    
    Note that cross-compiling for x86 on a _big_ endian system would result
    in a bunch of false positive objtool warnings during the kernel build
    because it isn't endian-aware.  But that's generally a rare edge case
    and there haven't been any reports of anybody needing that.
    Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/55b63eefc347f1bb28573f972d8d1adbf1f1c31d.1456962210.git.jpoimboe@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    c1d45c3a
Makefile 1.22 KB