Re: [PATCH bpf-next] tools/resolve_btfids: Compile resolve_btfids as host program

Nathan Chancellor
2023-02-02T17:21:32Z

On Thu, Feb 02, 2023 at 12:28:39PM +0100, Jiri Olsa wrote:
> Making resolve_btfids to be compiled as host program so
> we can avoid cross compile issues as reported by Nathan.
>
> Also we no longer need HOST_OVERRIDES for BINARY target,
> just for 'prepare' targets.
>
> Cc: Ian Rogers <irogers@google.com>
> Fixes: 13e07691a16f ("tools/resolve_btfids: Alter how HOSTCC is forced")
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>

Tested-by: Nathan Chancellor <nathan@kernel.org>

> ---
> tools/bpf/resolve_btfids/Build | 4 +++-
> tools/bpf/resolve_btfids/Makefile | 9 ++++++---
> 2 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/tools/bpf/resolve_btfids/Build b/tools/bpf/resolve_btfids/Build
> index ae82da03f9bf..077de3829c72 100644
> --- a/tools/bpf/resolve_btfids/Build
> +++ b/tools/bpf/resolve_btfids/Build
> @@ -1,3 +1,5 @@
> +hostprogs := resolve_btfids
> +
> resolve_btfids-y += main.o
> resolve_btfids-y += rbtree.o
> resolve_btfids-y += zalloc.o
> @@ -7,4 +9,4 @@ resolve_btfids-y += str_error_r.o
>
> $(OUTPUT)%.o: ../../lib/%.c FORCE
> $(call rule_mkdir)
> - $(call if_changed_dep,cc_o_c)
> + $(call if_changed_dep,host_cc_o_c)
> diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile
> index daed388aa5d7..abdd68ac08f4 100644
> --- a/tools/bpf/resolve_btfids/Makefile
> +++ b/tools/bpf/resolve_btfids/Makefile
> @@ -22,6 +22,9 @@ HOST_OVERRIDES := AR="$(HOSTAR)" CC="$(HOSTCC)" LD="$(HOSTLD)" ARCH="$(HOSTARCH)
> EXTRA_CFLAGS="$(HOSTCFLAGS) $(KBUILD_HOSTCFLAGS)"
>
> RM ?= rm
> +HOSTCC ?= gcc
> +HOSTLD ?= ld
> +HOSTAR ?= ar
> CROSS_COMPILE =
>
> OUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/
> @@ -64,7 +67,7 @@ $(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
> LIBELF_FLAGS := $(shell $(HOSTPKG_CONFIG) libelf --cflags 2>/dev/null)
> LIBELF_LIBS := $(shell $(HOSTPKG_CONFIG) libelf --libs 2>/dev/null || echo -lelf)
>
> -CFLAGS += -g \
> +HOSTCFLAGS += -g \
> -I$(srctree)/tools/include \
> -I$(srctree)/tools/include/uapi \
> -I$(LIBBPF_INCLUDE) \
> @@ -73,11 +76,11 @@ CFLAGS += -g \
>
> LIBS = $(LIBELF_LIBS) -lz
>
> -export srctree OUTPUT CFLAGS Q
> +export srctree OUTPUT HOSTCFLAGS Q HOSTCC HOSTLD HOSTAR
> include $(srctree)/tools/build/Makefile.include
>
> $(BINARY_IN): fixdep FORCE prepare | $(OUTPUT)
> - $(Q)$(MAKE) $(build)=resolve_btfids $(HOST_OVERRIDES)
> + $(Q)$(MAKE) $(build)=resolve_btfids
>
> $(BINARY): $(BPFOBJ) $(SUBCMDOBJ) $(BINARY_IN)
> $(call msg,LINK,$@)
> --
> 2.39.1
>