| From 8ea58f1e8b11cca3087b294779bf5959bf89cc10 Mon Sep 17 00:00:00 2001 |
| From: Nathan Chancellor <natechancellor@gmail.com> |
| Date: Thu, 16 May 2019 12:49:42 -0500 |
| Subject: objtool: Allow AR to be overridden with HOSTAR |
| |
| From: Nathan Chancellor <natechancellor@gmail.com> |
| |
| commit 8ea58f1e8b11cca3087b294779bf5959bf89cc10 upstream. |
| |
| Currently, this Makefile hardcodes GNU ar, meaning that if it is not |
| available, there is no way to supply a different one and the build will |
| fail. |
| |
| $ make AR=llvm-ar CC=clang LD=ld.lld HOSTAR=llvm-ar HOSTCC=clang \ |
| HOSTLD=ld.lld HOSTLDFLAGS=-fuse-ld=lld defconfig modules_prepare |
| ... |
| AR /out/tools/objtool/libsubcmd.a |
| /bin/sh: 1: ar: not found |
| ... |
| |
| Follow the logic of HOST{CC,LD} and allow the user to specify a |
| different ar tool via HOSTAR (which is used elsewhere in other |
| tools/ Makefiles). |
| |
| Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> |
| Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Reviewed-by: Mukesh Ojha <mojha@codeaurora.org> |
| Cc: <stable@vger.kernel.org> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Link: http://lkml.kernel.org/r/80822a9353926c38fd7a152991c6292491a9d0e8.1558028966.git.jpoimboe@redhat.com |
| Link: https://github.com/ClangBuiltLinux/linux/issues/481 |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| tools/objtool/Makefile | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/tools/objtool/Makefile |
| +++ b/tools/objtool/Makefile |
| @@ -7,11 +7,12 @@ ARCH := x86 |
| endif |
| |
| # always use the host compiler |
| +HOSTAR ?= ar |
| HOSTCC ?= gcc |
| HOSTLD ?= ld |
| +AR = $(HOSTAR) |
| CC = $(HOSTCC) |
| LD = $(HOSTLD) |
| -AR = ar |
| |
| ifeq ($(srctree),) |
| srctree := $(patsubst %/,%,$(dir $(CURDIR))) |