From patchwork Tue Jan 24 06:43:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13113568 X-Patchwork-Delegate: bpf@iogearbox.net 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 C36EBC25B4E for ; Tue, 24 Jan 2023 06:43:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232967AbjAXGni (ORCPT ); Tue, 24 Jan 2023 01:43:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231838AbjAXGnh (ORCPT ); Tue, 24 Jan 2023 01:43:37 -0500 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D71327D55 for ; Mon, 23 Jan 2023 22:43:36 -0800 (PST) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-4fa63c84621so143618377b3.20 for ; Mon, 23 Jan 2023 22:43:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=OrTgrRLylW19wsfnugIU2K6YrtxXGRZd048ZOU/pB04=; b=pGDB8zVceKFlAS71Zz2UIMzSTQ4gkNUHMXGEOOgIEFvWN0QfHGKR1EV33cVWAkWQjG woDMqzbLFCY1E6XDLMmnBI8JsnCKPKPe7xTszD9MYDJHzAQlYwSOrNHCHirqLCQ3XU8+ eCogsW/0aUEBQdO048bEyFvtiyWf589/HKoMeunnD/cqQOWpFkohB0DCWwvJcJn99SmB FKFQl98vRJxPkJ4BG/3UqE9ggBKNZXP44erXVR/8H6dmdGQYQn/61LsfLWhgnkyq5Dxn R3HWjl+s6baDiEDgWU0SJ6bqr41FZZ2rV8v+w1CV0kL1mSgTnWXbKHpwuAIu2xjbugpu wNbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=OrTgrRLylW19wsfnugIU2K6YrtxXGRZd048ZOU/pB04=; b=USWG2FJ2S89Zg0ZZ8iv7qLwmTqgSwdeo0FzSLJXynLwN6oICmcwbGCPMhH6L7G5Csq yvSFiTLwlO15qXbjr4gIQk1KVmtBsRm3REUsNnaKqMoJpr65j4OQqbh1xysLtlb8so4I R67idZs7grRpE3dug+up43Qxs29GgK/aIVrKgEItGqE7XDKCAjPhxCppm4QZ1PGdl8XQ 2d32uQ5K1/l6i+OpPC5SviIWfuQY+E8GbRfcQ3g5KiKMe2u222InoqGr6XTF3qic8omc k52jzgFnz6fDBXUAbiBrQiHN6PGZExvrmyjaieAXF5vr7z/6oA1MN546BTIpChTnas7T 1vpw== X-Gm-Message-State: AFqh2ko2Rq1il4/Lcz4s1UqamaZ0LIYWbNy4QLQVL5Ln1ZgIJWTHmziA EikSrf6/il/f+LLe59OoeJM09Di7Un7z X-Google-Smtp-Source: AMrXdXu7sfn5ygCbiyFGXP1ACqzBFw2leq+yHhsBrzUhl/zVPTuZ0/Vo0X3uKu3r8+1yk07nvO3wXfbK21H4 X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:460d:1b4a:acb8:ae9a]) (user=irogers job=sendgmr) by 2002:a81:7307:0:b0:464:4ea1:3baa with SMTP id o7-20020a817307000000b004644ea13baamr2791679ywc.302.1674542615810; Mon, 23 Jan 2023 22:43:35 -0800 (PST) Date: Mon, 23 Jan 2023 22:43:23 -0800 Message-Id: <20230124064324.672022-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.39.0.246.g2a6d74b583-goog Subject: [PATCH v4 1/2] tools/resolve_btfids: Install subcmd headers From: Ian Rogers To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Connor OBrien , Nathan Chancellor , Ian Rogers , Kumar Kartikeya Dwivedi , bpf@vger.kernel.org, linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org X-Patchwork-Delegate: bpf@iogearbox.net Previously tools/lib/subcmd was added to the include path, switch to installing the headers and then including from that directory. This avoids dependencies on headers internal to tools/lib/subcmd. Add the missing subcmd directory to the affected #include. Signed-off-by: Ian Rogers Acked-by: iri Olsa --- tools/bpf/resolve_btfids/Makefile | 19 ++++++++++++++----- tools/bpf/resolve_btfids/main.c | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile index f7375a119f54..1fe0082b2ecc 100644 --- a/tools/bpf/resolve_btfids/Makefile +++ b/tools/bpf/resolve_btfids/Makefile @@ -35,21 +35,29 @@ SUBCMD_SRC := $(srctree)/tools/lib/subcmd/ BPFOBJ := $(OUTPUT)/libbpf/libbpf.a LIBBPF_OUT := $(abspath $(dir $(BPFOBJ)))/ SUBCMDOBJ := $(OUTPUT)/libsubcmd/libsubcmd.a +SUBCMD_OUT := $(abspath $(dir $(SUBCMDOBJ)))/ LIBBPF_DESTDIR := $(LIBBPF_OUT) LIBBPF_INCLUDE := $(LIBBPF_DESTDIR)include +SUBCMD_DESTDIR := $(SUBCMD_OUT) +SUBCMD_INCLUDE := $(SUBCMD_DESTDIR)include + BINARY := $(OUTPUT)/resolve_btfids BINARY_IN := $(BINARY)-in.o all: $(BINARY) +prepare: $(BPFOBJ) $(SUBCMDOBJ) + $(OUTPUT) $(OUTPUT)/libsubcmd $(LIBBPF_OUT): $(call msg,MKDIR,,$@) $(Q)mkdir -p $(@) $(SUBCMDOBJ): fixdep FORCE | $(OUTPUT)/libsubcmd - $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(abspath $(dir $@))/ $(abspath $@) + $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(SUBCMD_OUT) \ + DESTDIR=$(SUBCMD_DESTDIR) prefix= \ + $(abspath $@) install_headers $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OUT) $(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC) OUTPUT=$(LIBBPF_OUT) \ @@ -63,7 +71,7 @@ CFLAGS += -g \ -I$(srctree)/tools/include \ -I$(srctree)/tools/include/uapi \ -I$(LIBBPF_INCLUDE) \ - -I$(SUBCMD_SRC) \ + -I$(SUBCMD_INCLUDE) \ $(LIBELF_FLAGS) LIBS = $(LIBELF_LIBS) -lz @@ -71,7 +79,7 @@ LIBS = $(LIBELF_LIBS) -lz export srctree OUTPUT CFLAGS Q include $(srctree)/tools/build/Makefile.include -$(BINARY_IN): $(BPFOBJ) fixdep FORCE | $(OUTPUT) +$(BINARY_IN): fixdep FORCE prepare | $(OUTPUT) $(Q)$(MAKE) $(build)=resolve_btfids $(BINARY): $(BPFOBJ) $(SUBCMDOBJ) $(BINARY_IN) @@ -83,7 +91,8 @@ clean_objects := $(wildcard $(OUTPUT)/*.o \ $(OUTPUT)/.*.o.d \ $(LIBBPF_OUT) \ $(LIBBPF_DESTDIR) \ - $(OUTPUT)/libsubcmd \ + $(SUBCMD_OUT) \ + $(SUBCMD_DESTDIR) \ $(OUTPUT)/resolve_btfids) ifneq ($(clean_objects),) @@ -100,4 +109,4 @@ tags: FORCE: -.PHONY: all FORCE clean tags +.PHONY: all FORCE clean tags prepare diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c index 80cd7843c677..77058174082d 100644 --- a/tools/bpf/resolve_btfids/main.c +++ b/tools/bpf/resolve_btfids/main.c @@ -75,7 +75,7 @@ #include #include #include -#include +#include #define BTF_IDS_SECTION ".BTF_ids" #define BTF_ID "__BTF_ID__" From patchwork Tue Jan 24 06:43:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13113569 X-Patchwork-Delegate: bpf@iogearbox.net 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 D0343C38142 for ; Tue, 24 Jan 2023 06:43:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232803AbjAXGnq (ORCPT ); Tue, 24 Jan 2023 01:43:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232620AbjAXGnp (ORCPT ); Tue, 24 Jan 2023 01:43:45 -0500 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8838C2BF1A for ; Mon, 23 Jan 2023 22:43:44 -0800 (PST) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-4cddba76f55so145548717b3.23 for ; Mon, 23 Jan 2023 22:43:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=JLiUgRxZdGZYiSZ165eOITlDJVlV/uBeiaL/Kxqq0V4=; b=h4r10sLT6WJizWZ+32PeDetMXPWTz99wn6R7iFGww0SiNm090G+NeKJDT8q5hS4+oa MBt+/GP91cHfBkeoC29TmUCY1S+dQw2uxBmTPExdWUqJZdO847By0DAel3BiIpnhzYIk jJjlZDQ4rRz1zPlm5xXLrv0Amrm9f3q3OpsZeMRxxOYp517q1cN7LTyZN+/Yuci5LOTI ENH9DsWcU29i2WQc1u0zrEsqZcULwV0WvWA/llAUjaM3xZemrt1qQQxjoF4OFYJtAcqy 4mhOXN35TujDOHNma1zSxlwKHK4zKwmb8+HIG1vIspDdLQsYdaKlloX20QO1AcbRWg2f 0sWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=JLiUgRxZdGZYiSZ165eOITlDJVlV/uBeiaL/Kxqq0V4=; b=A6vdh9lijfZGJlrE3DqYGz4d+tx5n8IhQz863E7S9aqpg62E/P4Ust0bQNgpwpwOsX foBofrhPAUpFlwZQzy8HnI5zDQ0gY0i633TADdlrMFxGGHjW32LUVipXZwH6G3PlEf4A ebIeL2JVUlE8k5wcOIAJ3ibbRtDC7y/IVR5fPy1dZ00Vg0DQnxs5YDVE7DlFKLkv/936 TARLYn4tKlFo6dVxMCOxAeUCd3lNhrLnDgI0WWKER0bVWf2/GVkIm4T3U/nAqQO3r+eM HqAwXhJ/YGyZYWJmogs3qmI58ojwOW84yQa5OL+BMtUYd2LeW61/DNFbmhFSfb0gn2YI YYsA== X-Gm-Message-State: AFqh2krJDxqNeTeo9UQhXYR5BHAjd6S3CD3n1c0GpqTQTOeMaLweI/6F 6m7uPow23Wi3XaBlB57IMPUP7rYsCLph X-Google-Smtp-Source: AMrXdXvtX2I4+lt/8rLhBMR4IekNQ+k1qyzSvt9aX0PsiKs7kYU3VK6P19HOMsLyI+M44ZMbHzXKc/FkMjXh X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:460d:1b4a:acb8:ae9a]) (user=irogers job=sendgmr) by 2002:a0d:ce07:0:b0:473:45b8:39d6 with SMTP id q7-20020a0dce07000000b0047345b839d6mr2850569ywd.181.1674542623811; Mon, 23 Jan 2023 22:43:43 -0800 (PST) Date: Mon, 23 Jan 2023 22:43:24 -0800 In-Reply-To: <20230124064324.672022-1-irogers@google.com> Message-Id: <20230124064324.672022-2-irogers@google.com> Mime-Version: 1.0 References: <20230124064324.672022-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.246.g2a6d74b583-goog Subject: [PATCH v4 2/2] tools/resolve_btfids: Alter how HOSTCC is forced From: Ian Rogers To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Connor OBrien , Nathan Chancellor , Ian Rogers , Kumar Kartikeya Dwivedi , bpf@vger.kernel.org, linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org X-Patchwork-Delegate: bpf@iogearbox.net HOSTCC is always wanted when building. 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. Also, clear the passed subdir as otherwise an outer build may break by inadvertently passing an inappropriate value. Signed-off-by: Ian Rogers Acked-by: Jiri Olsa --- tools/bpf/resolve_btfids/Makefile | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile index 1fe0082b2ecc..daed388aa5d7 100644 --- a/tools/bpf/resolve_btfids/Makefile +++ b/tools/bpf/resolve_btfids/Makefile @@ -18,14 +18,11 @@ else endif # always use the host compiler -AR = $(HOSTAR) -CC = $(HOSTCC) -LD = $(HOSTLD) -ARCH = $(HOSTARCH) +HOST_OVERRIDES := AR="$(HOSTAR)" CC="$(HOSTCC)" LD="$(HOSTLD)" ARCH="$(HOSTARCH)" \ + EXTRA_CFLAGS="$(HOSTCFLAGS) $(KBUILD_HOSTCFLAGS)" + RM ?= rm CROSS_COMPILE = -CFLAGS := $(KBUILD_HOSTCFLAGS) -LDFLAGS := $(KBUILD_HOSTLDFLAGS) OUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/ @@ -56,12 +53,12 @@ $(OUTPUT) $(OUTPUT)/libsubcmd $(LIBBPF_OUT): $(SUBCMDOBJ): fixdep FORCE | $(OUTPUT)/libsubcmd $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(SUBCMD_OUT) \ - DESTDIR=$(SUBCMD_DESTDIR) prefix= \ + DESTDIR=$(SUBCMD_DESTDIR) $(HOST_OVERRIDES) prefix= subdir= \ $(abspath $@) install_headers $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OUT) $(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC) OUTPUT=$(LIBBPF_OUT) \ - DESTDIR=$(LIBBPF_DESTDIR) prefix= EXTRA_CFLAGS="$(CFLAGS)" \ + DESTDIR=$(LIBBPF_DESTDIR) $(HOST_OVERRIDES) prefix= subdir= \ $(abspath $@) install_headers LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null) @@ -80,11 +77,11 @@ export srctree OUTPUT CFLAGS Q include $(srctree)/tools/build/Makefile.include $(BINARY_IN): fixdep FORCE prepare | $(OUTPUT) - $(Q)$(MAKE) $(build)=resolve_btfids + $(Q)$(MAKE) $(build)=resolve_btfids $(HOST_OVERRIDES) $(BINARY): $(BPFOBJ) $(SUBCMDOBJ) $(BINARY_IN) $(call msg,LINK,$@) - $(Q)$(CC) $(BINARY_IN) $(LDFLAGS) -o $@ $(BPFOBJ) $(SUBCMDOBJ) $(LIBS) + $(Q)$(HOSTCC) $(BINARY_IN) $(KBUILD_HOSTLDFLAGS) -o $@ $(BPFOBJ) $(SUBCMDOBJ) $(LIBS) clean_objects := $(wildcard $(OUTPUT)/*.o \ $(OUTPUT)/.*.o.cmd \