2020-07-21 09:38:25

by Max Filippov

[permalink] [raw]
Subject: [PATCH v2] xtensa: add boot subdirectories targets to extra-y

The commit 8fe87a92f262 ("kbuild: always create directories of targets")
exposed an issue in the xtensa makefiles that results in the following
build error in a clean directory:
scripts/Makefile.build:374: arch/xtensa/boot/boot-elf/boot.lds] Error 1
arch/xtensa/boot/boot-elf/bootstrap.S:21: fatal error:
opening dependency file arch/xtensa/boot/boot-elf/.bootstrap.o.d:
No such file or directory

Intermediate targets in arch/xtensa/boot/boot-elf don't get into
'targets' and build directory is not created for them.
Add boot.lds and bootstrap.o to extra-y in subdirectories of
arch/xtensa/boot.

Cc: Masahiro Yamada <[email protected]>
Signed-off-by: Max Filippov <[email protected]>
---
Changes v1->v2:
- update boot-redboot/Makefile in the same manner as boot-elf/Makefile.

arch/xtensa/boot/boot-elf/Makefile | 1 +
arch/xtensa/boot/boot-redboot/Makefile | 1 +
2 files changed, 2 insertions(+)

diff --git a/arch/xtensa/boot/boot-elf/Makefile b/arch/xtensa/boot/boot-elf/Makefile
index 12ae1e91cb75..ad341c0fff15 100644
--- a/arch/xtensa/boot/boot-elf/Makefile
+++ b/arch/xtensa/boot/boot-elf/Makefile
@@ -15,6 +15,7 @@ export CPPFLAGS_boot.lds += -P -C
export KBUILD_AFLAGS += -mtext-section-literals

boot-y := bootstrap.o
+extra-y := boot.lds $(boot-y)

OBJS := $(addprefix $(obj)/,$(boot-y))

diff --git a/arch/xtensa/boot/boot-redboot/Makefile b/arch/xtensa/boot/boot-redboot/Makefile
index 8632473ad319..022a76a2282a 100644
--- a/arch/xtensa/boot/boot-redboot/Makefile
+++ b/arch/xtensa/boot/boot-redboot/Makefile
@@ -13,6 +13,7 @@ endif
LD_ARGS = -T $(srctree)/$(obj)/boot.ld

boot-y := bootstrap.o
+extra-y := $(boot-y)

OBJS := $(addprefix $(obj)/,$(boot-y))
LIBS := arch/xtensa/boot/lib/lib.a arch/xtensa/lib/lib.a
--
2.20.1


2020-07-22 00:54:10

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2] xtensa: add boot subdirectories targets to extra-y

On Tue, Jul 21, 2020 at 6:37 PM Max Filippov <[email protected]> wrote:
>
> The commit 8fe87a92f262 ("kbuild: always create directories of targets")
> exposed an issue in the xtensa makefiles that results in the following
> build error in a clean directory:
> scripts/Makefile.build:374: arch/xtensa/boot/boot-elf/boot.lds] Error 1
> arch/xtensa/boot/boot-elf/bootstrap.S:21: fatal error:
> opening dependency file arch/xtensa/boot/boot-elf/.bootstrap.o.d:
> No such file or directory
>
> Intermediate targets in arch/xtensa/boot/boot-elf don't get into
> 'targets' and build directory is not created for them.
> Add boot.lds and bootstrap.o to extra-y in subdirectories of
> arch/xtensa/boot.
>
> Cc: Masahiro Yamada <[email protected]>
> Signed-off-by: Max Filippov <[email protected]>
> ---
> Changes v1->v2:
> - update boot-redboot/Makefile in the same manner as boot-elf/Makefile.


Oops, sorry and thanks.

But, we need to fix this in the kbuild tree
to retain the bisectability.


I will insert the following before the offending commit.
https://patchwork.kernel.org/patch/11676883/


I used 'targets' instead of 'extra-y'
because they are built on demand
while building the final boot image.




> arch/xtensa/boot/boot-elf/Makefile | 1 +
> arch/xtensa/boot/boot-redboot/Makefile | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/xtensa/boot/boot-elf/Makefile b/arch/xtensa/boot/boot-elf/Makefile
> index 12ae1e91cb75..ad341c0fff15 100644
> --- a/arch/xtensa/boot/boot-elf/Makefile
> +++ b/arch/xtensa/boot/boot-elf/Makefile
> @@ -15,6 +15,7 @@ export CPPFLAGS_boot.lds += -P -C
> export KBUILD_AFLAGS += -mtext-section-literals
>
> boot-y := bootstrap.o
> +extra-y := boot.lds $(boot-y)
>
> OBJS := $(addprefix $(obj)/,$(boot-y))
>
> diff --git a/arch/xtensa/boot/boot-redboot/Makefile b/arch/xtensa/boot/boot-redboot/Makefile
> index 8632473ad319..022a76a2282a 100644
> --- a/arch/xtensa/boot/boot-redboot/Makefile
> +++ b/arch/xtensa/boot/boot-redboot/Makefile
> @@ -13,6 +13,7 @@ endif
> LD_ARGS = -T $(srctree)/$(obj)/boot.ld
>
> boot-y := bootstrap.o
> +extra-y := $(boot-y)
>
> OBJS := $(addprefix $(obj)/,$(boot-y))
> LIBS := arch/xtensa/boot/lib/lib.a arch/xtensa/lib/lib.a
> --
> 2.20.1
>


--
Best Regards
Masahiro Yamada

2020-07-22 04:01:21

by Max Filippov

[permalink] [raw]
Subject: Re: [PATCH v2] xtensa: add boot subdirectories targets to extra-y

On Tue, Jul 21, 2020 at 5:53 PM Masahiro Yamada <[email protected]> wrote:
> On Tue, Jul 21, 2020 at 6:37 PM Max Filippov <[email protected]> wrote:
> > The commit 8fe87a92f262 ("kbuild: always create directories of targets")
> > exposed an issue in the xtensa makefiles that results in the following
> > build error in a clean directory:
>
> But, we need to fix this in the kbuild tree
> to retain the bisectability.
>
> I will insert the following before the offending commit.
> https://patchwork.kernel.org/patch/11676883/
>
> I used 'targets' instead of 'extra-y'
> because they are built on demand
> while building the final boot image.

Sure, please go ahead with your version.
Thank you for taking care of it.

-- Max