From nobody Tue Sep 16 07:15:16 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7BE6C5479D for ; Thu, 5 Jan 2023 09:03:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231808AbjAEJCw (ORCPT ); Thu, 5 Jan 2023 04:02:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231766AbjAEJCQ (ORCPT ); Thu, 5 Jan 2023 04:02:16 -0500 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D990DCE5 for ; Thu, 5 Jan 2023 01:02:15 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id v13-20020a25ab8d000000b007b54623bf71so931467ybi.2 for ; Thu, 05 Jan 2023 01:02:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=DpWkZKk39/eacUAN3ZgYzWujc2fjIBkDhCf4XLMsvxE=; b=bq34XRJBjaA7mS5pbSs4ua8HLD37IrJe3Xy9FCGoPRS0ZbgdzN5KSoA0tuHSlcDaal tsCrnR3iyBORSY55MxAAO95DHfSPyguQjOYIk5w3Sqdt+EwEfQ++rlbMcxqOpxa5sCA8 HBwjlxzXXhjnxms8ZhbMObirCzEODalfNBde0pMtLWqdqrNPkN356SoQEu4Dh/d10voL 1J8DVmwIKTbpXOhiBVzOjNYM3x7Wt/tKmUtlOmaVtLqaBmPm+mhswD7saXwVtnbD8aOt t+QsSZWzOWGZDFIfwS4JSR0+sz4FZBy5NzTyoNGb/p4iNSHMFPcl9yRy2rqK7Ix4xyif wI/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DpWkZKk39/eacUAN3ZgYzWujc2fjIBkDhCf4XLMsvxE=; b=IxF3t+op87wERBTUhlLLqLMb9YZ++FbxaKc3Zysn9xlSvN/OuYz3Hf8t2A72QungsC z6JjAjUYXemFzonrXXp9y9jndiZrSGBPpEBeDDaowMmP822MZVIoR5ZXQGQqGrp8z9FN 00JBKHME2fYutvf0W3INBRklYzXXTWThQ6xSdLeWnYYAmSHqcksU7IYbSatMayf3P5OS q+aqdQBmojAbVk1OD3Ay9nkYU0sB10Kqtuix/PEM5j3sPqFXR5WiZGonhVDmZ+UFkz30 kNLanobso7cxcWtAmnQ2tMNEWfH32cpcMUNIfrlvtccBGkHRuuFUPXCTf9cxPYgtYDQf sUYg== X-Gm-Message-State: AFqh2krNtP4R2oa1iOgOwSSNDtgV5/B1OmBkT1wXm9G1z3CvNUqnhWX8 L1mtolDniaVKuVUd/3oItgCUEgNoOOWG X-Google-Smtp-Source: AMrXdXtApMqDcsv4OilzV3AXaN+Kg7gN0cxjchQ6nOCOq7RlDaA8NCq7Yr5hwLjAwpiS668psNAm1iQuWFuU X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:8775:c864:37e:2f9b]) (user=irogers job=sendgmr) by 2002:a25:550a:0:b0:708:522d:cd52 with SMTP id j10-20020a25550a000000b00708522dcd52mr5582240ybb.312.1672909335154; Thu, 05 Jan 2023 01:02:15 -0800 (PST) Date: Thu, 5 Jan 2023 01:01:53 -0800 In-Reply-To: <20230105090155.357604-1-irogers@google.com> Message-Id: <20230105090155.357604-2-irogers@google.com> Mime-Version: 1.0 References: <20230105090155.357604-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v3 1/3] objtool: Install libsubcmd in build From: Ian Rogers To: Josh Poimboeuf , Peter Zijlstra , Nathan Chancellor , Nick Desaulniers , Tom Rix , Masahiro Yamada , Nicolas Schier , linux-kernel@vger.kernel.org, llvm@lists.linux.dev Cc: Stephane Eranian , Andrii Nakryiko , Jiri Olsa , Arnaldo Carvalho de Melo , Namhyung Kim , Ian Rogers Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Including from tools/lib can create inadvertent dependencies. Install libsubcmd in the objtool build and then include the headers from there. Signed-off-by: Ian Rogers Reviewed-by: Nick Desaulniers Tested-by: Nick Desaulniers Reviewed-by: Nicolas Schier --- tools/objtool/Build | 2 -- tools/objtool/Makefile | 33 +++++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/tools/objtool/Build b/tools/objtool/Build index 33f2ee5a46d3..a3cdf8af6635 100644 --- a/tools/objtool/Build +++ b/tools/objtool/Build @@ -16,8 +16,6 @@ objtool-y +=3D libctype.o objtool-y +=3D str_error_r.o objtool-y +=3D librbtree.o =20 -CFLAGS +=3D -I$(srctree)/tools/lib - $(OUTPUT)libstring.o: ../lib/string.c FORCE $(call rule_mkdir) $(call if_changed_dep,cc_o_c) diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile index a3a9cc24e0e3..fd9b3e3113c6 100644 --- a/tools/objtool/Makefile +++ b/tools/objtool/Makefile @@ -12,9 +12,15 @@ srctree :=3D $(patsubst %/,%,$(dir $(CURDIR))) srctree :=3D $(patsubst %/,%,$(dir $(srctree))) endif =20 -SUBCMD_SRCDIR =3D $(srctree)/tools/lib/subcmd/ -LIBSUBCMD_OUTPUT =3D $(or $(OUTPUT),$(CURDIR)/) -LIBSUBCMD =3D $(LIBSUBCMD_OUTPUT)libsubcmd.a +LIBSUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ +ifneq ($(OUTPUT),) + LIBSUBCMD_OUTPUT =3D $(abspath $(OUTPUT))/libsubcmd +else + LIBSUBCMD_OUTPUT =3D $(CURDIR)/libsubcmd +endif +LIBSUBCMD_DESTDIR =3D $(LIBSUBCMD_OUTPUT) +LIBSUBCMD =3D $(LIBSUBCMD_OUTPUT)/libsubcmd.a +CFLAGS +=3D -I$(LIBSUBCMD_OUTPUT)/include =20 OBJTOOL :=3D $(OUTPUT)objtool OBJTOOL_IN :=3D $(OBJTOOL)-in.o @@ -28,7 +34,8 @@ INCLUDES :=3D -I$(srctree)/tools/include \ -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \ -I$(srctree)/tools/arch/$(SRCARCH)/include \ -I$(srctree)/tools/objtool/include \ - -I$(srctree)/tools/objtool/arch/$(SRCARCH)/include + -I$(srctree)/tools/objtool/arch/$(SRCARCH)/include \ + -I$(LIBSUBCMD_OUTPUT)/include WARNINGS :=3D $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-= packed -Wno-nested-externs CFLAGS :=3D -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES) $(LI= BELF_FLAGS) LDFLAGS +=3D $(LIBELF_LIBS) $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS) @@ -38,6 +45,7 @@ elfshdr :=3D $(shell echo '$(pound)include ' | = $(CC) $(CFLAGS) -x c -E - CFLAGS +=3D $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED) =20 AWK =3D awk +MKDIR =3D mkdir =20 BUILD_ORC :=3D n =20 @@ -57,13 +65,22 @@ $(OBJTOOL): $(LIBSUBCMD) $(OBJTOOL_IN) $(QUIET_LINK)$(CC) $(OBJTOOL_IN) $(LDFLAGS) -o $@ =20 =20 -$(LIBSUBCMD): fixdep FORCE - $(Q)$(MAKE) -C $(SUBCMD_SRCDIR) OUTPUT=3D$(LIBSUBCMD_OUTPUT) +$(LIBSUBCMD_OUTPUT): + @$(MKDIR) -p $@ + +$(LIBSUBCMD): fixdep FORCE $(LIBSUBCMD_OUTPUT) + @$(MAKE) -C $(LIBSUBCMD_DIR) O=3D$(LIBSUBCMD_OUTPUT) \ + DESTDIR=3D$(LIBSUBCMD_DESTDIR) prefix=3D subdir=3D \ + $@ install_headers + +$(LIBSUBCMD)-clean: + $(call QUIET_CLEAN, libsubcmd) + $(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT) =20 -clean: +clean: $(LIBSUBCMD)-clean $(call QUIET_CLEAN, objtool) $(RM) $(OBJTOOL) $(Q)find $(OUTPUT) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -nam= e '\.*.d' -delete - $(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep $(LIBSUBCMD) + $(Q)$(RM) $(OUTPUT)arch/x86/lib/inat-tables.c $(OUTPUT)fixdep =20 FORCE: =20 --=20 2.39.0.314.g84b9a713c41-goog From nobody Tue Sep 16 07:15:16 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 05303C54EBC for ; Thu, 5 Jan 2023 09:03:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231874AbjAEJDD (ORCPT ); Thu, 5 Jan 2023 04:03:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231866AbjAEJC2 (ORCPT ); Thu, 5 Jan 2023 04:02:28 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB8A150077 for ; Thu, 5 Jan 2023 01:02:23 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-4755eb8a57bso285854147b3.12 for ; Thu, 05 Jan 2023 01:02:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=v3C6oUUNqAe6SouB7tmV8ak/X52sdVelkHDk9iVtEts=; b=WPFw1OLNMuFxaskhsLx3FPzw7/x0/K4eifGQNNWYSlsuL1S+86v33juk06zYg+uPoE G1GVeLQbT0/duDibET5al+ECKeQ/qi6++s2naUGTlzTYW4fUZLBCq7/Lbrj4mxLMPkr2 cSl9uxxC9lnB7Vd18Wy98iI828Y3CeQTbpqa7JIgkjjRPv6sCn1Q59jnbsDYhC0wjXPh kHaZ2YxCpQt2q5rBpv8mSEQtDFoD08ulvxKb8NWz3gzWgw1hOJKkYHpi2604Yip70ewj DWE3sFX19lDfNmlqw0+n+c8UZzqKAXu+glEoKxTw5dxFTx27Hmrx8b4SFPVLpgO4jK9z M1Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=v3C6oUUNqAe6SouB7tmV8ak/X52sdVelkHDk9iVtEts=; b=xb4+F6JP/BDn6jpSdEZ4Uhly2wlOXBJP1a4pHAuhZoZyFyIiRfedC7EWt5yfIUmHfz E80UgAdhKNr6nQd8h0SVWpyg5Gt6ISC0vGATeyx/YWlzNQF2yyJ4IQ2fYulT5UW17jV9 uNQ1X2EVhhvzOLM+GGWndnCK5Y/7MecZZ2IK2UcxyMDt3z5IIwXb6CCBxOFXqNtwOPgD ftNuc1+KP52I7B0VrQumwGaWnCFmMOwc3/ec+TzhpIF7aeW9nfGIsYCTy8mcsSvWgeyz CA8LYUtYWr3Za6afFl3QZo7H+hQs7PisFyVMBtOfbmPNOcq+mCuK/+DQ+D/XiuT32v0R rTaA== X-Gm-Message-State: AFqh2kqtMxZB/or0/5bWK+DHB4i45/seu7DRnYpLyZfKwaYv2R9ESIeP /6+ls5G+d2csCePGt9rYs3+KRADmZAgP X-Google-Smtp-Source: AMrXdXtQ3oct9AuOg8tpYlHoVap9HA92AlqYosjKfxvMi1WZB5Yyg9L7G7FvwJCR6zISwzpntqalJV+Av0kk X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:8775:c864:37e:2f9b]) (user=irogers job=sendgmr) by 2002:a25:c03:0:b0:716:deb3:141b with SMTP id 3-20020a250c03000000b00716deb3141bmr5110692ybm.508.1672909343036; Thu, 05 Jan 2023 01:02:23 -0800 (PST) Date: Thu, 5 Jan 2023 01:01:54 -0800 In-Reply-To: <20230105090155.357604-1-irogers@google.com> Message-Id: <20230105090155.357604-3-irogers@google.com> Mime-Version: 1.0 References: <20230105090155.357604-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v3 2/3] objtool: Properly support make V=1 From: Ian Rogers To: Josh Poimboeuf , Peter Zijlstra , Nathan Chancellor , Nick Desaulniers , Tom Rix , Masahiro Yamada , Nicolas Schier , linux-kernel@vger.kernel.org, llvm@lists.linux.dev Cc: Stephane Eranian , Andrii Nakryiko , Jiri Olsa , Arnaldo Carvalho de Melo , Namhyung Kim , Ian Rogers Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Q variable was being used but never correctly set up. Add the setting up and use in place of @. Signed-off-by: Ian Rogers Reviewed-by: Nick Desaulniers Tested-by: Nick Desaulniers Reviewed-by: Nicolas Schier --- tools/objtool/Makefile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile index fd9b3e3113c6..61a00b7acae9 100644 --- a/tools/objtool/Makefile +++ b/tools/objtool/Makefile @@ -47,6 +47,12 @@ CFLAGS +=3D $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED) AWK =3D awk MKDIR =3D mkdir =20 +ifeq ($(V),1) + Q =3D +else + Q =3D @ +endif + BUILD_ORC :=3D n =20 ifeq ($(SRCARCH),x86) @@ -58,18 +64,18 @@ export srctree OUTPUT CFLAGS SRCARCH AWK include $(srctree)/tools/build/Makefile.include =20 $(OBJTOOL_IN): fixdep FORCE - @$(CONFIG_SHELL) ./sync-check.sh - @$(MAKE) $(build)=3Dobjtool + $(Q)$(CONFIG_SHELL) ./sync-check.sh + $(Q)$(MAKE) $(build)=3Dobjtool =20 $(OBJTOOL): $(LIBSUBCMD) $(OBJTOOL_IN) $(QUIET_LINK)$(CC) $(OBJTOOL_IN) $(LDFLAGS) -o $@ =20 =20 $(LIBSUBCMD_OUTPUT): - @$(MKDIR) -p $@ + $(Q)$(MKDIR) -p $@ =20 $(LIBSUBCMD): fixdep FORCE $(LIBSUBCMD_OUTPUT) - @$(MAKE) -C $(LIBSUBCMD_DIR) O=3D$(LIBSUBCMD_OUTPUT) \ + $(Q)$(MAKE) -C $(LIBSUBCMD_DIR) O=3D$(LIBSUBCMD_OUTPUT) \ DESTDIR=3D$(LIBSUBCMD_DESTDIR) prefix=3D subdir=3D \ $@ install_headers =20 --=20 2.39.0.314.g84b9a713c41-goog From nobody Tue Sep 16 07:15:16 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14C50C54EBE for ; Thu, 5 Jan 2023 09:03:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232009AbjAEJDM (ORCPT ); Thu, 5 Jan 2023 04:03:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231910AbjAEJCd (ORCPT ); Thu, 5 Jan 2023 04:02:33 -0500 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9593250066 for ; Thu, 5 Jan 2023 01:02:32 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id 195-20020a2505cc000000b0071163981d18so36469508ybf.13 for ; Thu, 05 Jan 2023 01:02:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=gVMnA3Yba2vBCG/rrA8tRkVdPMnJ5tlbhWykIgv9gDY=; b=cyUVgkg2LrWNWl0sdLVkr39/f4zMFUDi5twbEV0MjD8DMoZTIXLIJeh+o8WC/FcLfM OOF3VoiMBL/u+++aQU870Rb1fy+avLKjOnXakh+mWWaoJUWJN+ghT2bv+O3nNk4q5gEw HB2mSh8dMXbqWTL9plMEWe+z/gyL4dKQR406hAPac7K2Btu67B2qCP0HPja5AUjx/pPi dzF/2urVtfo/CQxRUrG7NTETNCka/FED1iOA2erccE5ljW7qgbi+sGSFzrFCm5m1cXui UvVhE58brTFs4adT5qGngtBGxG7zX7c+rG04jkGbZqrN1UaYAE7CFcb2KjT+oxMuwM7t 4ngA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gVMnA3Yba2vBCG/rrA8tRkVdPMnJ5tlbhWykIgv9gDY=; b=cbGirZtkR81aM8KuEWlUqKAw6wGI/LLJTGLgD5Hwh8UrnLxX1w2PNQX9SQkIdj3al9 tGZPAxlTUnGhBkoyIuwlvJU1oNOyCoZxLMoAih2MIaYuiXScQ3S/Loj9mxEYue2baJ6X B4vy0X7F1DEpObAt/XszgzHSxWbHuwiWTOpMZk8xbvC+z+M1wh5P7oKW6mH+iQF0PHrL QEtKaSmOCioTQFPU0AoDlQ8zBrCVoDBKmaPOJ3vjWe0hM2DagBc1j5B0OeZN8KSARb2N P59cQD4I5fIncDShZtzJVofULUTwnibjgvLE/IbqcaLV+wP/gFy6VDJzoGz7pZkDZT/h 2NUg== X-Gm-Message-State: AFqh2kpw3pAc8fwrU/sHsZB1r5O7ZF/aHNdcgsJvmA7zY9CgYdVjiHO/ juBsFIXhQH5xYY2fCThAht+cTaEBxeFd X-Google-Smtp-Source: AMrXdXu8hlr+rsXN67i0o8MgiT5jGdKE+g5eF7FEHXVVm0+3ulRvnaeBhKsam+0eLeUJMnomrNrPo/rz2FVv X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:8775:c864:37e:2f9b]) (user=irogers job=sendgmr) by 2002:a81:6954:0:b0:4b2:fa7c:8836 with SMTP id e81-20020a816954000000b004b2fa7c8836mr910044ywc.195.1672909351913; Thu, 05 Jan 2023 01:02:31 -0800 (PST) Date: Thu, 5 Jan 2023 01:01:55 -0800 In-Reply-To: <20230105090155.357604-1-irogers@google.com> Message-Id: <20230105090155.357604-4-irogers@google.com> Mime-Version: 1.0 References: <20230105090155.357604-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v3 3/3] objtool: Alter how HOSTCC is forced From: Ian Rogers To: Josh Poimboeuf , Peter Zijlstra , Nathan Chancellor , Nick Desaulniers , Tom Rix , Masahiro Yamada , Nicolas Schier , linux-kernel@vger.kernel.org, llvm@lists.linux.dev Cc: Stephane Eranian , Andrii Nakryiko , Jiri Olsa , Arnaldo Carvalho de Melo , Namhyung Kim , Ian Rogers Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" HOSTCC is always wanted when building objtool. Setting CC to HOSTCC happens after tools/scripts/Makefile.include is included, meaning flags are set assuming say CC is gcc, but then it can be later set to HOSTCC which may be clang. tools/scripts/Makefile.include is needed for host set up and common macros in objtool's Makefile. Rather than override CC to HOSTCC, just pass CC as HOSTCC to Makefile.build, the libsubcmd builds and the linkage step. This means the Makefiles don't see things like CC changing and tool flag determination, and similar, work properly. To avoid mixing CFLAGS from different compilers just the objtool CFLAGS are determined with the exception of EXTRA_WARNINGS. HOSTCFLAGS is added to these so that command line flags can add to the CFLAGS. Signed-off-by: Ian Rogers Reviewed-by: Nick Desaulniers Reviewed-by: Nicolas Schier Tested-by: Nick Desaulniers --- tools/objtool/Makefile | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile index 61a00b7acae9..49956f4f58b9 100644 --- a/tools/objtool/Makefile +++ b/tools/objtool/Makefile @@ -2,16 +2,12 @@ include ../scripts/Makefile.include include ../scripts/Makefile.arch =20 -# always use the host compiler -AR =3D $(HOSTAR) -CC =3D $(HOSTCC) -LD =3D $(HOSTLD) - ifeq ($(srctree),) srctree :=3D $(patsubst %/,%,$(dir $(CURDIR))) srctree :=3D $(patsubst %/,%,$(dir $(srctree))) endif =20 +MAKE =3D make -S LIBSUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ ifneq ($(OUTPUT),) LIBSUBCMD_OUTPUT =3D $(abspath $(OUTPUT))/libsubcmd @@ -37,12 +33,19 @@ INCLUDES :=3D -I$(srctree)/tools/include \ -I$(srctree)/tools/objtool/arch/$(SRCARCH)/include \ -I$(LIBSUBCMD_OUTPUT)/include WARNINGS :=3D $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-= packed -Wno-nested-externs -CFLAGS :=3D -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES) $(LI= BELF_FLAGS) -LDFLAGS +=3D $(LIBELF_LIBS) $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS) +OBJTOOL_CFLAGS :=3D -Werror $(WARNINGS) -g $(INCLUDES) $(LIBELF_FLAGS) $(H= OSTCFLAGS) +OBJTOOL_LDFLAGS :=3D $(LIBELF_LIBS) $(LIBSUBCMD) =20 # Allow old libelf to be used: elfshdr :=3D $(shell echo '$(pound)include ' | $(CC) $(CFLAGS) -= x c -E - | grep elf_getshdr) -CFLAGS +=3D $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED) +OBJTOOL_CFLAGS +=3D $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED) + +# Always want host compilation. +HOST_OVERRIDES :=3D CC=3D"$(HOSTCC)" EXTRA_CFLAGS=3D"$(OBJTOOL_CFLAGS)" \ + LD=3D"$(HOSTLD)" AR=3D"$(HOSTAR)" +BUILD_HOST_OVERRIDES :=3D CC=3D"$(HOSTCC)" CFLAGS=3D"$(OBJTOOL_CFLAGS)" \ + LD=3D"$(HOSTLD)" LDFLAGS=3D"$(OBJTOOL_LDFLAGS)" \ + AR=3D"$(HOSTAR)" =20 AWK =3D awk MKDIR =3D mkdir @@ -65,10 +68,11 @@ include $(srctree)/tools/build/Makefile.include =20 $(OBJTOOL_IN): fixdep FORCE $(Q)$(CONFIG_SHELL) ./sync-check.sh - $(Q)$(MAKE) $(build)=3Dobjtool + $(Q)$(MAKE) $(build)=3Dobjtool $(BUILD_HOST_OVERRIDES) + =20 $(OBJTOOL): $(LIBSUBCMD) $(OBJTOOL_IN) - $(QUIET_LINK)$(CC) $(OBJTOOL_IN) $(LDFLAGS) -o $@ + $(QUIET_LINK)$(HOSTCC) $(OBJTOOL_IN) $(KBUILD_HOSTLDFLAGS) $(OBJTOOL_LDFL= AGS) -o $@ =20 =20 $(LIBSUBCMD_OUTPUT): @@ -77,6 +81,7 @@ $(LIBSUBCMD_OUTPUT): $(LIBSUBCMD): fixdep FORCE $(LIBSUBCMD_OUTPUT) $(Q)$(MAKE) -C $(LIBSUBCMD_DIR) O=3D$(LIBSUBCMD_OUTPUT) \ DESTDIR=3D$(LIBSUBCMD_DESTDIR) prefix=3D subdir=3D \ + $(HOST_OVERRIDES) \ $@ install_headers =20 $(LIBSUBCMD)-clean: --=20 2.39.0.314.g84b9a713c41-goog