Hi Masahiro, Thanks for looking into this! Much better than my attempt :P On Tue, Feb 11, 2025 at 09:29:06AM +0900, Masahiro Yamada wrote: > When CONFIG_OBJTOOL=y or CONFIG_DEBUG_INFO_BTF=y, parallel builds > show awkward "mkdir -p ..." logs. > > $ make -j16 > [ snip ] > mkdir -p /home/masahiro/ref/linux/tools/objtool && make O=/home/masahiro/ref/linux subdir=tools/objtool --no-print-directory -C objtool > mkdir -p /home/masahiro/ref/linux/tools/bpf/resolve_btfids && make O=/home/masahiro/ref/linux subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids > > Defining MAKEFLAGS=<value> on the command line wipes out command line > switches from the resultant MAKEFLAGS definition, even though the command > line switches are active. [1] > > The first word of $(MAKEFLAGS) is a possibly empty group of characters > representing single-letter options that take no argument. However, this > breaks if MAKEFLAGS=<value> is given on the command line. > > The tools/ and tools/% targets set MAKEFLAGS=<value> on the command > line, which breaks the following code in tools/scripts/Makefile.include: > > short-opts := $(firstword -$(MAKEFLAGS)) > > If MAKEFLAGS really needs modification, it should be done through the > environment variable, as follows: > > MAKEFLAGS=<value> $(MAKE) ... > > That said, I question whether modifying MAKEFLAGS is necessary here. > The only flag we might want to exclude is --no-print-directory, as the > tools build system changes the working directory. However, people might > find the "Entering/Leaving directory" logs annoying. > > I simply removed the offending MAKEFLAGS=. > > [1]: https://savannah.gnu.org/bugs/?62469 > > Fixes: a50e43332756 ("perf tools: Honor parallel jobs") > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> Tested-by: Daniel Xu <dxu@xxxxxxxxx>