On 5/15/2019 4:10 AM, Nathan Chancellor wrote:
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).

Link: https://github.com/ClangBuiltLinux/linux/issues/481
Signed-off-by: Nathan Chancellor <natechancel...@gmail.com>


Nice catch.
Reviewed-by: Mukesh Ojha <mo...@codeaurora.org>

Cheers,
-Mukesh

---
  tools/objtool/Makefile | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
index 53f8be0f4a1f..88158239622b 100644
--- 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)))

Reply via email to