Re: [PATCH v4 0/3] objtool build improvements

From: Josh Poimboeuf
Date: Thu Jan 26 2023 - 14:34:38 EST


On Thu, Jan 26, 2023 at 11:06:03AM -0800, Ian Rogers wrote:
> Install libsubcmd and then get headers from there, this avoids
> inadvertent dependencies on things in tools/lib. Fix V=1
> support. Clean up how HOSTCC is used to override CC to avoid CFLAGS
> being set for say gcc, and then CC being overridden to clang.
>
> v4. Rebase and look to address review comments from Josh Poimboeuf
> <jpoimboe@xxxxxxxxxx>. Removes the reviewed-by/tested-by given
> the scope of changes.
> v3. Is a rebase that removes the merged "tools lib subcmd: Add install
> target" patch. In:
> https://lore.kernel.org/lkml/CAKwvOd=kgXmpfbVa1wiEvwL0tX3gu+dDTGi-HEiRXSojwCLRrg@xxxxxxxxxxxxxx/
> Nick rightly points out that:
> WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed -Wno-nested-externs
> became:
> WARNINGS := -Wno-switch-default -Wno-switch-enum -Wno-packed -Wno-nested-externs
> losing the EXTRA_WARNINGS which v3 now adds back in. Previous
> testing had added the warnings to the end rather than the
> beginning, thereby causing unexpected build issues that aren't present in v3.
> v2. Include required "tools lib subcmd: Add install target" that is
> already in Arnaldo's tree:
> https://lore.kernel.org/lkml/20221109184914.1357295-3-irogers@xxxxxxxxxx/
> https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/commit/?h=perf/core&id=630ae80ea1dd253609cb50cff87f3248f901aca3
> When building libsubcmd.a from objtool's Makefile, clear the
> subdir to avoid it being appended onto OUTPUT and breaking the
> build.
>
> Ian Rogers (3):
> objtool: Install libsubcmd in build
> objtool: Properly support make V=1
> objtool: Alter how HOSTCC is forced

Thanks, this looks pretty good. I might tweak the patch subjects to
describe what's being fixed from a user's perspective.

I'll wait a few days for any more reviews before merging.

Independently from this patch set, I discovered that HOSTCFLAGS (and
KBUILD_HOSTCFLAGS which includes -O2 and some other flags) don't work
when building objtool directly from tools/objtool. But they do work
(for me at least) when building from the top-level Makefile. So I'm not
sure what Nick's issue is.

--
Josh