Re: [PATCH v3 1/3] objtool: Install libsubcmd in build

Josh Poimboeuf
2023-01-26T01:46:09Z

On Thu, Jan 05, 2023 at 01:01:53AM -0800, Ian Rogers wrote:
> 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 <irogers@google.com>
> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
> Tested-by: Nick Desaulniers <ndesaulniers@google.com>

After a make, "git status" shows:

Untracked files:
(use "git add <file>..." to include in what will be committed)
tools/objtool/libsubcmd/

So tools/objtool/.gitignore needs an update.

> --- a/tools/objtool/Makefile
> +++ b/tools/objtool/Makefile
> @@ -12,9 +12,15 @@ srctree := $(patsubst %/,%,$(dir $(CURDIR)))
> srctree := $(patsubst %/,%,$(dir $(srctree)))
> endif
>
> -SUBCMD_SRCDIR = $(srctree)/tools/lib/subcmd/
> -LIBSUBCMD_OUTPUT = $(or $(OUTPUT),$(CURDIR)/)
> -LIBSUBCMD = $(LIBSUBCMD_OUTPUT)libsubcmd.a
> +LIBSUBCMD_DIR = $(srctree)/tools/lib/subcmd/
> +ifneq ($(OUTPUT),)
> + LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmd
> +else
> + LIBSUBCMD_OUTPUT = $(CURDIR)/libsubcmd
> +endif
> +LIBSUBCMD_DESTDIR = $(LIBSUBCMD_OUTPUT)

Similar to Nicolas' comment, it's confusing to have two variables with
the same value. Please s/LIBSUBCMD_DESTDIR/LIBSUBCMD_OUTPUT/

> +LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a
> +CFLAGS += -I$(LIBSUBCMD_OUTPUT)/include

As far as I can tell, this CFLAGS addition is both ineffective (it's
overwritten later) and unnecessary (it's made redundant by the same
addition to the INCLUDES variable).

--
Josh