On Sat, Nov 19, 2022 at 3:01 PM Ian Rogers wrote: > > On Fri, Nov 18, 2022 at 9:47 AM Nick Desaulniers > wrote: > > > > On Thu, Nov 17, 2022 at 2:03 PM 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. Support > > > HOSTCFLAGS as a make option. > > > > Hi Ian, > > Thanks for the patch set! I'm particularly interested in fixing the > > plumbing of HOSTCFLAGS into objtool properly. > > > > Does this patch series depend on recent work you were doing to perf > > and libsubcmd? When I apply it to mainline (84368d882b96) or > > linux-next (20221118), I observe build failures with it. > > > > ``` > > /bin/sh: line 1: cd: > > /android0/kernel-all/tools/objtool/libsubcmd/tools/objtool/: No such > > file or directory > > ../../scripts/Makefile.include:17: *** output directory > > "/android0/kernel-all/tools/objtool/libsubcmd/tools/objtool/" does not > > exist. Stop. > > make[3]: *** [Makefile:82: > > /android0/kernel-all/tools/objtool/libsubcmd/libsubcmd.a] Error 2 > > make[3]: *** Waiting for unfinished jobs.... > > builtin-check.c:6:10: fatal error: 'subcmd/parse-options.h' file not found > > #include > > ^~~~~~~~~~~~~~~~~~~~~~~~ > > ``` > > Which I also observe when just doing a regular kernel build and not > > just tools/objtool/. > > > > I tried to apply other recent series first, like > > https://lore.kernel.org/lkml/20221109184914.1357295-1-irogers@google.com/ > > https://lore.kernel.org/linux-perf-users/20221116072211.2837834-2-irogers@google.com/ > > but wasn't quite able to get the result to build. > > > > My plan to validate HOSTCFLAGS is: > > $ make LLVM=1 -j128 mrproper defconfig tools/objtool HOSTCFLAGS=-Os > > V=1 1> before.txt > > $ > > $ make LLVM=1 -j128 mrproper defconfig tools/objtool HOSTCFLAGS=-Os > > V=1 1> after.txt > > $ meld before.txt after.txt > > Thanks Nick! I think: > https://lore.kernel.org/lkml/20221109184914.1357295-3-irogers@google.com/ > is necessary and already in Arnaldo's tree: > https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/log/?h=perf%2Fcore > However, with that the output directory in libsubcmd is calculated > incorrectly and results in the error you see. I'll work on a v2 patch > set. > > Thanks, > Ian So clearing subdir when invoking the make for libsubcmd rectified the issue. v2 patch set is here: https://lore.kernel.org/lkml/20221122001125.765003-1-irogers@google.com/ I've attached the before.txt and after.txt, they show the -Os is being passed correctly in the after.txt case. Thanks, Ian > > > > > > Ian Rogers (3): > > > objtool: Install libsubcmd in build > > > objtool: Properly support make V=1 > > > objtool: Alter how HOSTCC is forced > > > > > > tools/objtool/Build | 2 -- > > > tools/objtool/Makefile | 68 +++++++++++++++++++++++++++++------------- > > > 2 files changed, 48 insertions(+), 22 deletions(-) > > > > > > -- > > > 2.38.1.584.g0f3c55d4c2-goog > > > > > > > > > -- > > Thanks, > > ~Nick Desaulniers