Re: [PATCH v3 1/3] objtool: Install libsubcmd in build
From: Josh Poimboeuf
Date: Wed Jan 25 2023 - 20:46:18 EST
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@xxxxxxxxxx>
> Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
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