On Tue, Nov 23, 2021 at 2:24 PM Chen Yu <yu.c.chen@xxxxxxxxx> wrote: > > Compiling the tool when output directory parameter is specified would > trigger the following error: > > make O=/data/test/tmp/ -C tools/power/acpi/ > > make: Entering directory '/data/src/kernel/linux/tools/power/acpi' > DESCEND tools/acpidbg > make[1]: Entering directory '/data/src/kernel/linux/tools/power/acpi/tools/acpidbg' > MKDIR include > CP include > CC tools/acpidbg/acpidbg.o > Assembler messages: > Fatal error: can't create /data/test/tmp/tools/power/acpi/tools/acpidbg/acpidbg.o: No such file or directory > make[1]: *** [../../Makefile.rules:24: /data/test/tmp/tools/power/acpi/tools/acpidbg/acpidbg.o] Error 1 > make[1]: Leaving directory '/data/src/kernel/linux/tools/power/acpi/tools/acpidbg' > make: *** [Makefile:18: acpidbg] Error 2 > make: Leaving directory '/data/src/kernel/linux/tools/power/acpi' > > This is because the output directory has not been created yet. Fix this issue by > creating the output directory before compiling. > > Reported-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> > Signed-off-by: Chen Yu <yu.c.chen@xxxxxxxxx> > --- > tools/power/acpi/Makefile.config | 1 + > tools/power/acpi/Makefile.rules | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/tools/power/acpi/Makefile.config b/tools/power/acpi/Makefile.config > index 331f6d30f472..cd7106876a5f 100644 > --- a/tools/power/acpi/Makefile.config > +++ b/tools/power/acpi/Makefile.config > @@ -69,6 +69,7 @@ KERNEL_INCLUDE := $(OUTPUT)include > ACPICA_INCLUDE := $(srctree)/../../../drivers/acpi/acpica > CFLAGS += -D_LINUX -I$(KERNEL_INCLUDE) -I$(ACPICA_INCLUDE) > CFLAGS += $(WARNINGS) > +MKDIR = mkdir > > ifeq ($(strip $(V)),false) > QUIET=@ > diff --git a/tools/power/acpi/Makefile.rules b/tools/power/acpi/Makefile.rules > index 2a6c170b57cd..1d7616f5d0ae 100644 > --- a/tools/power/acpi/Makefile.rules > +++ b/tools/power/acpi/Makefile.rules > @@ -21,6 +21,7 @@ $(KERNEL_INCLUDE): > > $(objdir)%.o: %.c $(KERNEL_INCLUDE) > $(ECHO) " CC " $(subst $(OUTPUT),,$@) > + $(QUIET) $(MKDIR) -p $(objdir) 2>/dev/null > $(QUIET) $(CC) -c $(CFLAGS) -o $@ $< > > all: $(OUTPUT)$(TOOL) > -- Applied (with some edits in the subject and changelog) as 5.16-rc material. Thanks!