2020-07-22 05:35:02

by Max Filippov

[permalink] [raw]
Subject: [PATCH 1/2] xtensa: move vmlinux.bin[.gz] to boot subdirectory

vmlinux.bin and vmlinux.bin.gz are always rebuilt in the kernel build
process. Add them to 'targets' and move them to the boot subdirectory
where their rules are. Update make rules that refer to them.

Signed-off-by: Max Filippov <[email protected]>
---
arch/xtensa/boot/Makefile | 11 ++++++-----
arch/xtensa/boot/boot-elf/Makefile | 4 ++--
arch/xtensa/boot/boot-redboot/Makefile | 4 ++--
3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/arch/xtensa/boot/Makefile b/arch/xtensa/boot/Makefile
index 1a14d38d9b33..801fe30b4dfe 100644
--- a/arch/xtensa/boot/Makefile
+++ b/arch/xtensa/boot/Makefile
@@ -17,6 +17,7 @@ BIG_ENDIAN := $(shell echo __XTENSA_EB__ | $(CC) -E - | grep -v "\#")
export BIG_ENDIAN

subdir-y := lib
+targets += vmlinux.bin vmlinux.bin.gz

# Subdirs for the boot loader(s)

@@ -35,19 +36,19 @@ boot-elf boot-redboot: $(addprefix $(obj)/,$(subdir-y))

OBJCOPYFLAGS = --strip-all -R .comment -R .notes -O binary

-vmlinux.bin: vmlinux FORCE
+$(obj)/vmlinux.bin: vmlinux FORCE
$(call if_changed,objcopy)

-vmlinux.bin.gz: vmlinux.bin FORCE
+$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
$(call if_changed,gzip)

-boot-elf: vmlinux.bin
-boot-redboot: vmlinux.bin.gz
+boot-elf: $(obj)/vmlinux.bin
+boot-redboot: $(obj)/vmlinux.bin.gz

UIMAGE_LOADADDR = $(CONFIG_KERNEL_LOAD_ADDRESS)
UIMAGE_COMPRESSION = gzip

-$(obj)/uImage: vmlinux.bin.gz FORCE
+$(obj)/uImage: $(obj)/vmlinux.bin.gz FORCE
$(call if_changed,uimage)
$(Q)$(kecho) ' Kernel: $@ is ready'

diff --git a/arch/xtensa/boot/boot-elf/Makefile b/arch/xtensa/boot/boot-elf/Makefile
index badee63dae27..0ebc9827f7e5 100644
--- a/arch/xtensa/boot/boot-elf/Makefile
+++ b/arch/xtensa/boot/boot-elf/Makefile
@@ -19,9 +19,9 @@ targets += $(boot-y) boot.lds

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

-$(obj)/Image.o: vmlinux.bin $(OBJS)
+$(obj)/Image.o: $(obj)/../vmlinux.bin $(OBJS)
$(Q)$(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
- --add-section image=vmlinux.bin \
+ --add-section image=$< \
--set-section-flags image=contents,alloc,load,load,data \
$(OBJS) $@

diff --git a/arch/xtensa/boot/boot-redboot/Makefile b/arch/xtensa/boot/boot-redboot/Makefile
index 1a277dd57b2a..07cb24afedc2 100644
--- a/arch/xtensa/boot/boot-redboot/Makefile
+++ b/arch/xtensa/boot/boot-redboot/Makefile
@@ -20,9 +20,9 @@ LIBS := arch/xtensa/boot/lib/lib.a arch/xtensa/lib/lib.a

LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)

-$(obj)/zImage.o: vmlinux.bin.gz $(OBJS)
+$(obj)/zImage.o: $(obj)/../vmlinux.bin.gz $(OBJS)
$(Q)$(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
- --add-section image=vmlinux.bin.gz \
+ --add-section image=$< \
--set-section-flags image=contents,alloc,load,load,data \
$(OBJS) $@

--
2.20.1


2020-07-24 17:26:13

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH 1/2] xtensa: move vmlinux.bin[.gz] to boot subdirectory

On Wed, Jul 22, 2020 at 2:34 PM Max Filippov <[email protected]> wrote:
>
> vmlinux.bin and vmlinux.bin.gz are always rebuilt in the kernel build
> process. Add them to 'targets' and move them to the boot subdirectory
> where their rules are. Update make rules that refer to them.
>
> Signed-off-by: Max Filippov <[email protected]>
> ---

Reviewed-by: Masahiro Yamada <[email protected]>


> arch/xtensa/boot/Makefile | 11 ++++++-----
> arch/xtensa/boot/boot-elf/Makefile | 4 ++--
> arch/xtensa/boot/boot-redboot/Makefile | 4 ++--
> 3 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/arch/xtensa/boot/Makefile b/arch/xtensa/boot/Makefile
> index 1a14d38d9b33..801fe30b4dfe 100644
> --- a/arch/xtensa/boot/Makefile
> +++ b/arch/xtensa/boot/Makefile
> @@ -17,6 +17,7 @@ BIG_ENDIAN := $(shell echo __XTENSA_EB__ | $(CC) -E - | grep -v "\#")
> export BIG_ENDIAN
>
> subdir-y := lib
> +targets += vmlinux.bin vmlinux.bin.gz
>
> # Subdirs for the boot loader(s)
>
> @@ -35,19 +36,19 @@ boot-elf boot-redboot: $(addprefix $(obj)/,$(subdir-y))
>
> OBJCOPYFLAGS = --strip-all -R .comment -R .notes -O binary
>
> -vmlinux.bin: vmlinux FORCE
> +$(obj)/vmlinux.bin: vmlinux FORCE
> $(call if_changed,objcopy)
>
> -vmlinux.bin.gz: vmlinux.bin FORCE
> +$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
> $(call if_changed,gzip)
>
> -boot-elf: vmlinux.bin
> -boot-redboot: vmlinux.bin.gz
> +boot-elf: $(obj)/vmlinux.bin
> +boot-redboot: $(obj)/vmlinux.bin.gz
>
> UIMAGE_LOADADDR = $(CONFIG_KERNEL_LOAD_ADDRESS)
> UIMAGE_COMPRESSION = gzip
>
> -$(obj)/uImage: vmlinux.bin.gz FORCE
> +$(obj)/uImage: $(obj)/vmlinux.bin.gz FORCE
> $(call if_changed,uimage)
> $(Q)$(kecho) ' Kernel: $@ is ready'
>
> diff --git a/arch/xtensa/boot/boot-elf/Makefile b/arch/xtensa/boot/boot-elf/Makefile
> index badee63dae27..0ebc9827f7e5 100644
> --- a/arch/xtensa/boot/boot-elf/Makefile
> +++ b/arch/xtensa/boot/boot-elf/Makefile
> @@ -19,9 +19,9 @@ targets += $(boot-y) boot.lds
>
> OBJS := $(addprefix $(obj)/,$(boot-y))
>
> -$(obj)/Image.o: vmlinux.bin $(OBJS)
> +$(obj)/Image.o: $(obj)/../vmlinux.bin $(OBJS)
> $(Q)$(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
> - --add-section image=vmlinux.bin \
> + --add-section image=$< \
> --set-section-flags image=contents,alloc,load,load,data \
> $(OBJS) $@
>
> diff --git a/arch/xtensa/boot/boot-redboot/Makefile b/arch/xtensa/boot/boot-redboot/Makefile
> index 1a277dd57b2a..07cb24afedc2 100644
> --- a/arch/xtensa/boot/boot-redboot/Makefile
> +++ b/arch/xtensa/boot/boot-redboot/Makefile
> @@ -20,9 +20,9 @@ LIBS := arch/xtensa/boot/lib/lib.a arch/xtensa/lib/lib.a
>
> LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
>
> -$(obj)/zImage.o: vmlinux.bin.gz $(OBJS)
> +$(obj)/zImage.o: $(obj)/../vmlinux.bin.gz $(OBJS)
> $(Q)$(OBJCOPY) $(OBJCOPY_ARGS) -R .comment \
> - --add-section image=vmlinux.bin.gz \
> + --add-section image=$< \
> --set-section-flags image=contents,alloc,load,load,data \
> $(OBJS) $@
>
> --
> 2.20.1
>


--
Best Regards
Masahiro Yamada