Re: [PATCH v1] tools: Fix compile error of pfrut/firewire
luriwen <[email protected]> Wed, 2 Apr 2025 10:36:29 +0800
| Newsgroups | gmane.linux.acpi.devel,gmane.linux.kernel.firewire.devel,gmane.linux.kernel |
|---|---|
| Message-ID | <TYBPR01MB5470E7F3F1E80FF9842AAF75B1AF2@TYBPR01MB5470.jpnprd01.prod.outlook.com> |
在 2025/4/1 14:56, Chen, Yu C 写道: > Hi Riwen, > > On 3/31/2025 7:52 PM, Rafael J. Wysocki wrote: >> On Mon, Mar 31, 2025 at 11:15 AM luriwen <[email protected]> wrote: >>> >>> 在 2025/3/29 09:07, Takashi Sakamoto 写道: >>>> Hi, >>>> >>>> On Fri, Mar 28, 2025 at 03:47:50PM +0800, Riwen Lu wrote: >>>>> The value -rR of MAKEFLAGS implicit do not use make's built-in >>>>> rules and >>>>> variables. Previous commit d1d096312176 ("tools: fix annoying >>>>> "mkdir -p >>>>> ..." logs when building tools in parallel") removed the MAKEFLAGS= >>>>> command for tools and caused the built-in rules for pfrut/firewire >>>>> failed to take effect. >>>>> >>>>> Reported-by: k2ci <[email protected]> >>>>> Signed-off-by: Riwen Lu <[email protected]> >> >> Yu, can you have a look at this please? >> >>>>> --- >>>>> tools/firewire/Makefile | 7 +++++++ >>>>> tools/power/acpi/tools/pfrut/Makefile | 2 +- >>>>> 2 files changed, 8 insertions(+), 1 deletion(-) >>>> >>>> As long as testing with v6.14 release, I can not find such failure. I >>>> guess that some one has fixed the issue between the commit and the >>>> release. >>>> >>>> Would you please recheck the issue? >>>> >>>> >>>> Thanks >>>> >>>> Takashi Sakamoto >>> >>> I have reconfirmed that this type of error does indeed exist when using >>> make tools/all or make tools/firewire at commit 4e82c87058f4 ("Merge tag >>> 'rust-6.15' of >>> git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux") in the 6.14 >>> kernel. >>> The relevant error messages are as follows: >>> $ make tools/all >>> ... >>> LD pfrut >>> /usr/bin/ld: >>> /home/luriwen/workspace/kernel/kernel.org/linux-git/linux/tools/power/acpi/tools/pfrut/pfrut.o: >>> in function `print_cap': >>> /home/luriwen/workspace/kernel/kernel.org/linux-git/linux/tools/power/acpi/tools/pfrut/pfrut.c:179: >>> undefined reference to `uuid_unparse' >>> /usr/bin/ld: >>> /home/luriwen/workspace/kernel/kernel.org/linux-git/linux/tools/power/acpi/tools/pfrut/pfrut.c:184: >>> undefined reference to `uuid_unparse' >>> /usr/bin/ld: >>> /home/luriwen/workspace/kernel/kernel.org/linux-git/linux/tools/power/acpi/tools/pfrut/pfrut.c:189: >>> undefined reference to `uuid_unparse' >>> /usr/bin/ld: >>> /home/luriwen/workspace/kernel/kernel.org/linux-git/linux/tools/power/acpi/tools/pfrut/pfrut.c:191: >>> undefined reference to `uuid_unparse' >>> collect2: error: ld returned 1 exit status >>> >>> $ make tools/firewire >>> SYNC include/config/auto.conf.cmd >>> HOSTCC scripts/basic/fixdep >>> HOSTCC scripts/kconfig/conf.o >>> HOSTCC scripts/kconfig/confdata.o >>> HOSTCC scripts/kconfig/expr.o >>> LEX scripts/kconfig/lexer.lex.c >>> YACC scripts/kconfig/parser.tab.[ch] >>> HOSTCC scripts/kconfig/lexer.lex.o >>> HOSTCC scripts/kconfig/menu.o >>> HOSTCC scripts/kconfig/parser.tab.o >>> HOSTCC scripts/kconfig/preprocess.o >>> HOSTCC scripts/kconfig/symbol.o >>> HOSTCC scripts/kconfig/util.o >>> HOSTLD scripts/kconfig/conf >>> DESCEND firewire >>> make[3]: *** No rule to make target 'nosy-dump.o', needed by >>> 'nosy-dump'. Stop. >>> make[2]: *** [Makefile:72: firewire] Error 2 >>> make[1]: *** >>> [/home/kylin/remote/kernel/kernel.org/linux-git/linux/Makefile:1438: >>> tools/firewire] Error 2 >>> make: *** [Makefile:251: __sub-make] Error 2 >>> > > Maybe add more background in the commit log that, the default > MAKEFLAGS in Makefile under Linux's root directory is with "-rR". > Before commit d1d096312176 is applied, the -rR is overwriten by > the subdirectory's MAKEFLAGS, so it will not cause problems when > compiling the sub-directory of tools. After commit d1d096312176, > the -rR takes effect, which prevents the tools from using the > built-in rules and variables. Maybe also added Fixed: tag. > OK. I'll enhance the commit message and add a Fixes tag. > Regarding the prfut Makefile, we have fixed the LDFLAGS issue, > but the CFLAGS += xxx will not take effect, right? > Correct. The CFLAGS += xxx is not take effect. > This reminds me that, is it possible to just remove -rR for the > sub-directories? In this way we don't have to change the code of > every tool one-by-one, pfrut, firewire... > Cced Masahiro for guidance. > > Something like below: > > diff --git a/Makefile b/Makefile > index d138b17b8840..853be42ca1a1 100644 > --- a/Makefile > +++ b/Makefile > @@ -1431,12 +1431,11 @@ endif > > tools/: FORCE > $(Q)mkdir -p $(objtree)/tools > - $(Q)$(MAKE) LDFLAGS= O=$(abspath $(objtree)) subdir=tools -C > $(srctree)/tools/ > + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(filter-out rR,$(MAKEFLAGS))" > O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ > > tools/%: FORCE > $(Q)mkdir -p $(objtree)/tools > - $(Q)$(MAKE) LDFLAGS= O=$(abspath $(objtree)) subdir=tools -C > $(srctree)/tools/ $* > - > + $(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(filter-out rR,$(MAKEFLAGS))" > O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ $* > # > --------------------------------------------------------------------------- > # Kernel selftest > > I believe this modification is more appropriate.