Message ID | 20211030175258.1716178-1-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: decompressor: do not copy source files while building | expand |
On Sun, Oct 31, 2021 at 02:52:58AM +0900, Masahiro Yamada wrote: > As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt > builds") stated, copying source files during the build time may not > end up with as clean code as expected. > > Do similar for the other library files for further cleanups of the > Makefile and .gitignore. > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Hi, I am now seeing the following every time I run a build: GEN Makefile CALL .../linux-rmk/scripts/atomic/check-atomics.sh CALL .../linux-rmk/scripts/checksyscalls.sh CHK include/generated/compile.h Kernel: arch/arm/boot/Image is ready AS arch/arm/boot/compressed/lib1funcs.o AS arch/arm/boot/compressed/ashldi3.o AS arch/arm/boot/compressed/bswapsdi2.o LD arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready In other words, those three objects are always rebuilt even though they haven't changed. I've tried removing the arch/arm/boot/compressed directory in the build tree, but that doesn't make any difference. Running with V=2 shows: AS arch/arm/boot/compressed/lib1funcs.o - due to lib1funcs.o not in $(tar gets) AS arch/arm/boot/compressed/ashldi3.o - due to ashldi3.o not in $(targets) AS arch/arm/boot/compressed/bswapsdi2.o - due to bswapsdi2.o not in $(targets) It looks to me like: OBJS += lib1funcs.o ashldi3.o bswapsdi2.o in your patch should have been added before: targets := vmlinux vmlinux.lds piggy_data piggy.o \ head.o $(OBJS) Please confirm.
On Fri, Mar 11, 2022 at 9:07 PM Russell King (Oracle) <linux@armlinux.org.uk> wrote: > > On Sun, Oct 31, 2021 at 02:52:58AM +0900, Masahiro Yamada wrote: > > As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt > > builds") stated, copying source files during the build time may not > > end up with as clean code as expected. > > > > Do similar for the other library files for further cleanups of the > > Makefile and .gitignore. > > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > Hi, > > I am now seeing the following every time I run a build: > > GEN Makefile > CALL .../linux-rmk/scripts/atomic/check-atomics.sh > CALL .../linux-rmk/scripts/checksyscalls.sh > CHK include/generated/compile.h > Kernel: arch/arm/boot/Image is ready > AS arch/arm/boot/compressed/lib1funcs.o > AS arch/arm/boot/compressed/ashldi3.o > AS arch/arm/boot/compressed/bswapsdi2.o > LD arch/arm/boot/compressed/vmlinux > OBJCOPY arch/arm/boot/zImage > Kernel: arch/arm/boot/zImage is ready > > In other words, those three objects are always rebuilt even though > they haven't changed. > > I've tried removing the arch/arm/boot/compressed directory in the > build tree, but that doesn't make any difference. > > Running with V=2 shows: > > AS arch/arm/boot/compressed/lib1funcs.o - due to lib1funcs.o not in $(tar > gets) > AS arch/arm/boot/compressed/ashldi3.o - due to ashldi3.o not in $(targets) > AS arch/arm/boot/compressed/bswapsdi2.o - due to bswapsdi2.o not in $(targets) > > It looks to me like: > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > in your patch should have been added before: > > targets := vmlinux vmlinux.lds piggy_data piggy.o \ > head.o $(OBJS) > > Please confirm. Sorry for my late reply. Yes, you are right. OBJS += lib1funcs.o ashldi3.o bswapsdi2.o should come before the 'targets' assignment.
Hi Russell, Was this issue fixed? (I see nothing happened in linux-next yet) I will not send a patch because I assume you will fix this by yourself. If there is something you want me, please let me know. Thanks. Masahiro Yamada On Mon, Mar 14, 2022 at 1:35 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Fri, Mar 11, 2022 at 9:07 PM Russell King (Oracle) > <linux@armlinux.org.uk> wrote: > > > > On Sun, Oct 31, 2021 at 02:52:58AM +0900, Masahiro Yamada wrote: > > > As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt > > > builds") stated, copying source files during the build time may not > > > end up with as clean code as expected. > > > > > > Do similar for the other library files for further cleanups of the > > > Makefile and .gitignore. > > > > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > > > Hi, > > > > I am now seeing the following every time I run a build: > > > > GEN Makefile > > CALL .../linux-rmk/scripts/atomic/check-atomics.sh > > CALL .../linux-rmk/scripts/checksyscalls.sh > > CHK include/generated/compile.h > > Kernel: arch/arm/boot/Image is ready > > AS arch/arm/boot/compressed/lib1funcs.o > > AS arch/arm/boot/compressed/ashldi3.o > > AS arch/arm/boot/compressed/bswapsdi2.o > > LD arch/arm/boot/compressed/vmlinux > > OBJCOPY arch/arm/boot/zImage > > Kernel: arch/arm/boot/zImage is ready > > > > In other words, those three objects are always rebuilt even though > > they haven't changed. > > > > I've tried removing the arch/arm/boot/compressed directory in the > > build tree, but that doesn't make any difference. > > > > Running with V=2 shows: > > > > AS arch/arm/boot/compressed/lib1funcs.o - due to lib1funcs.o not in $(tar > > gets) > > AS arch/arm/boot/compressed/ashldi3.o - due to ashldi3.o not in $(targets) > > AS arch/arm/boot/compressed/bswapsdi2.o - due to bswapsdi2.o not in $(targets) > > > > It looks to me like: > > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > > > in your patch should have been added before: > > > > targets := vmlinux vmlinux.lds piggy_data piggy.o \ > > head.o $(OBJS) > > > > Please confirm. > > > Sorry for my late reply. > > Yes, you are right. > > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > should come before the 'targets' assignment. > > > > > > -- > Best Regards > Masahiro Yamada
Hi, Your reply was too late for me, I've been away on vacation from 14th March until now... and now I've got a whole truck-load of catch-up, so it's likely I'll forget to sort this. Please send a patch to fix it, thanks. On Fri, Mar 25, 2022 at 11:54:07AM +0900, Masahiro Yamada wrote: > Hi Russell, > > > Was this issue fixed? > (I see nothing happened in linux-next yet) > > I will not send a patch because I assume you will > fix this by yourself. If there is something you want > me, please let me know. > > Thanks. > Masahiro Yamada > > > > > > > On Mon, Mar 14, 2022 at 1:35 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > On Fri, Mar 11, 2022 at 9:07 PM Russell King (Oracle) > > <linux@armlinux.org.uk> wrote: > > > > > > On Sun, Oct 31, 2021 at 02:52:58AM +0900, Masahiro Yamada wrote: > > > > As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt > > > > builds") stated, copying source files during the build time may not > > > > end up with as clean code as expected. > > > > > > > > Do similar for the other library files for further cleanups of the > > > > Makefile and .gitignore. > > > > > > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > > > > > Hi, > > > > > > I am now seeing the following every time I run a build: > > > > > > GEN Makefile > > > CALL .../linux-rmk/scripts/atomic/check-atomics.sh > > > CALL .../linux-rmk/scripts/checksyscalls.sh > > > CHK include/generated/compile.h > > > Kernel: arch/arm/boot/Image is ready > > > AS arch/arm/boot/compressed/lib1funcs.o > > > AS arch/arm/boot/compressed/ashldi3.o > > > AS arch/arm/boot/compressed/bswapsdi2.o > > > LD arch/arm/boot/compressed/vmlinux > > > OBJCOPY arch/arm/boot/zImage > > > Kernel: arch/arm/boot/zImage is ready > > > > > > In other words, those three objects are always rebuilt even though > > > they haven't changed. > > > > > > I've tried removing the arch/arm/boot/compressed directory in the > > > build tree, but that doesn't make any difference. > > > > > > Running with V=2 shows: > > > > > > AS arch/arm/boot/compressed/lib1funcs.o - due to lib1funcs.o not in $(tar > > > gets) > > > AS arch/arm/boot/compressed/ashldi3.o - due to ashldi3.o not in $(targets) > > > AS arch/arm/boot/compressed/bswapsdi2.o - due to bswapsdi2.o not in $(targets) > > > > > > It looks to me like: > > > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > > > > > in your patch should have been added before: > > > > > > targets := vmlinux vmlinux.lds piggy_data piggy.o \ > > > head.o $(OBJS) > > > > > > Please confirm. > > > > > > Sorry for my late reply. > > > > Yes, you are right. > > > > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > > > should come before the 'targets' assignment. > > > > > > > > > > > > -- > > Best Regards > > Masahiro Yamada > > > > -- > Best Regards > Masahiro Yamada >
On Thu, Mar 31, 2022 at 1:22 AM Russell King (Oracle) <linux@armlinux.org.uk> wrote: > > Hi, > > Your reply was too late for me, I've been away on vacation from 14th > March until now... and now I've got a whole truck-load of catch-up, so > it's likely I'll forget to sort this. Please send a patch to fix it, > thanks. Done. https://www.armlinux.org.uk/developer/patches/viewpatch.php?id=9189/1 Thanks. > > On Fri, Mar 25, 2022 at 11:54:07AM +0900, Masahiro Yamada wrote: > > Hi Russell, > > > > > > Was this issue fixed? > > (I see nothing happened in linux-next yet) > > > > I will not send a patch because I assume you will > > fix this by yourself. If there is something you want > > me, please let me know. > > > > Thanks. > > Masahiro Yamada > > > > > > > > > > > > > > On Mon, Mar 14, 2022 at 1:35 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > > > On Fri, Mar 11, 2022 at 9:07 PM Russell King (Oracle) > > > <linux@armlinux.org.uk> wrote: > > > > > > > > On Sun, Oct 31, 2021 at 02:52:58AM +0900, Masahiro Yamada wrote: > > > > > As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt > > > > > builds") stated, copying source files during the build time may not > > > > > end up with as clean code as expected. > > > > > > > > > > Do similar for the other library files for further cleanups of the > > > > > Makefile and .gitignore. > > > > > > > > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > > > > > > > Hi, > > > > > > > > I am now seeing the following every time I run a build: > > > > > > > > GEN Makefile > > > > CALL .../linux-rmk/scripts/atomic/check-atomics.sh > > > > CALL .../linux-rmk/scripts/checksyscalls.sh > > > > CHK include/generated/compile.h > > > > Kernel: arch/arm/boot/Image is ready > > > > AS arch/arm/boot/compressed/lib1funcs.o > > > > AS arch/arm/boot/compressed/ashldi3.o > > > > AS arch/arm/boot/compressed/bswapsdi2.o > > > > LD arch/arm/boot/compressed/vmlinux > > > > OBJCOPY arch/arm/boot/zImage > > > > Kernel: arch/arm/boot/zImage is ready > > > > > > > > In other words, those three objects are always rebuilt even though > > > > they haven't changed. > > > > > > > > I've tried removing the arch/arm/boot/compressed directory in the > > > > build tree, but that doesn't make any difference. > > > > > > > > Running with V=2 shows: > > > > > > > > AS arch/arm/boot/compressed/lib1funcs.o - due to lib1funcs.o not in $(tar > > > > gets) > > > > AS arch/arm/boot/compressed/ashldi3.o - due to ashldi3.o not in $(targets) > > > > AS arch/arm/boot/compressed/bswapsdi2.o - due to bswapsdi2.o not in $(targets) > > > > > > > > It looks to me like: > > > > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > > > > > > > in your patch should have been added before: > > > > > > > > targets := vmlinux vmlinux.lds piggy_data piggy.o \ > > > > head.o $(OBJS) > > > > > > > > Please confirm. > > > > > > > > > Sorry for my late reply. > > > > > > Yes, you are right. > > > > > > OBJS += lib1funcs.o ashldi3.o bswapsdi2.o > > > > > > should come before the 'targets' assignment. > > > > > > > > > > > > > > > > > > -- > > > Best Regards > > > Masahiro Yamada > > > > > > > > -- > > Best Regards > > Masahiro Yamada > > > > -- > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ > FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore index 60606b0f378d..d32f41778437 100644 --- a/arch/arm/boot/compressed/.gitignore +++ b/arch/arm/boot/compressed/.gitignore @@ -1,9 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only -ashldi3.S -bswapsdi2.S -font.c -lib1funcs.S -hyp-stub.S piggy_data vmlinux vmlinux.lds diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 91265e7ff672..74d2f1401acb 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -13,7 +13,6 @@ ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y) OBJS += debug.o AFLAGS_head.o += -DDEBUG endif -FONTC = $(srctree)/lib/fonts/font_acorn_8x8.c # string library code (-Os is enforced to keep it much smaller) OBJS += string.o @@ -99,11 +98,8 @@ $(foreach o, $(libfdt_objs) atags_to_fdt.o fdt_check_mem_start.o, \ $(eval CFLAGS_$(o) := -I $(srctree)/scripts/dtc/libfdt -fno-stack-protector)) targets := vmlinux vmlinux.lds piggy_data piggy.o \ - lib1funcs.o ashldi3.o bswapsdi2.o \ head.o $(OBJS) -clean-files += lib1funcs.S ashldi3.S bswapsdi2.S hyp-stub.S - KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \ @@ -134,23 +130,7 @@ endif # Next argument is a linker script LDFLAGS_vmlinux += -T -# For __aeabi_uidivmod -lib1funcs = $(obj)/lib1funcs.o - -$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S - $(call cmd,shipped) - -# For __aeabi_llsl -ashldi3 = $(obj)/ashldi3.o - -$(obj)/ashldi3.S: $(srctree)/arch/$(SRCARCH)/lib/ashldi3.S - $(call cmd,shipped) - -# For __bswapsi2, __bswapdi2 -bswapsdi2 = $(obj)/bswapsdi2.o - -$(obj)/bswapsdi2.S: $(srctree)/arch/$(SRCARCH)/lib/bswapsdi2.S - $(call cmd,shipped) +OBJS += lib1funcs.o ashldi3.o bswapsdi2.o # We need to prevent any GOTOFF relocs being used with references # to symbols in the .bss section since we cannot relocate them @@ -175,8 +155,8 @@ fi efi-obj-$(CONFIG_EFI_STUB) := $(objtree)/drivers/firmware/efi/libstub/lib.a $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o \ - $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) $(ashldi3) \ - $(bswapsdi2) $(efi-obj-y) FORCE + $(addprefix $(obj)/, $(OBJS)) \ + $(efi-obj-y) FORCE @$(check_for_multiple_zreladdr) $(call if_changed,ld) @$(check_for_bad_syms) @@ -187,11 +167,4 @@ $(obj)/piggy_data: $(obj)/../Image FORCE $(obj)/piggy.o: $(obj)/piggy_data CFLAGS_font.o := -Dstatic= - -$(obj)/font.c: $(FONTC) - $(call cmd,shipped) - AFLAGS_hyp-stub.o := -Wa,-march=armv7-a - -$(obj)/hyp-stub.S: $(srctree)/arch/$(SRCARCH)/kernel/hyp-stub.S - $(call cmd,shipped) diff --git a/arch/arm/boot/compressed/ashldi3.S b/arch/arm/boot/compressed/ashldi3.S new file mode 100644 index 000000000000..216f82eda609 --- /dev/null +++ b/arch/arm/boot/compressed/ashldi3.S @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* For __aeabi_llsl */ +#include "../../lib/ashldi3.S" diff --git a/arch/arm/boot/compressed/bswapsdi2.S b/arch/arm/boot/compressed/bswapsdi2.S new file mode 100644 index 000000000000..b2156b378c7b --- /dev/null +++ b/arch/arm/boot/compressed/bswapsdi2.S @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* For __bswapsi2, __bswapdi2 */ +#include "../../lib/bswapsdi2.S" diff --git a/arch/arm/boot/compressed/font.c b/arch/arm/boot/compressed/font.c new file mode 100644 index 000000000000..46a677649db4 --- /dev/null +++ b/arch/arm/boot/compressed/font.c @@ -0,0 +1,2 @@ +// SPDX-License-Identifier: GPL-2.0-only +#include "../../../../lib/fonts/font_acorn_8x8.c" diff --git a/arch/arm/boot/compressed/hyp-stub.S b/arch/arm/boot/compressed/hyp-stub.S new file mode 100644 index 000000000000..a703eaa86f10 --- /dev/null +++ b/arch/arm/boot/compressed/hyp-stub.S @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#include "../../kernel/hyp-stub.S" diff --git a/arch/arm/boot/compressed/lib1funcs.S b/arch/arm/boot/compressed/lib1funcs.S new file mode 100644 index 000000000000..815dec73ba4d --- /dev/null +++ b/arch/arm/boot/compressed/lib1funcs.S @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* For __aeabi_uidivmod */ +#include "../../lib/lib1funcs.S" diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files index c3eb81c3f7de..eb630ee287c3 100755 --- a/scripts/remove-stale-files +++ b/scripts/remove-stale-files @@ -24,7 +24,7 @@ set -e # with O=, make sure to remove the stale files in the output tree. Otherwise, # the build system wrongly compiles the stale ones. if [ -n "${building_out_of_srctree}" ]; then - for f in fdt_rw.c fdt_ro.c fdt_wip.c fdt.c + for f in fdt_rw.c fdt_ro.c fdt_wip.c fdt.c ashldi3.S bswapsdi2.S font.c lib1funcs.S hyp-stub.S do rm -f arch/arm/boot/compressed/${f} done
As commit 7ae4a78daacf ("ARM: 8969/1: decompressor: simplify libfdt builds") stated, copying source files during the build time may not end up with as clean code as expected. Do similar for the other library files for further cleanups of the Makefile and .gitignore. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- KernelVersion: v5.15-rc1 arch/arm/boot/compressed/.gitignore | 5 ----- arch/arm/boot/compressed/Makefile | 33 +++------------------------- arch/arm/boot/compressed/ashldi3.S | 3 +++ arch/arm/boot/compressed/bswapsdi2.S | 3 +++ arch/arm/boot/compressed/font.c | 2 ++ arch/arm/boot/compressed/hyp-stub.S | 2 ++ arch/arm/boot/compressed/lib1funcs.S | 3 +++ scripts/remove-stale-files | 2 +- 8 files changed, 17 insertions(+), 36 deletions(-) create mode 100644 arch/arm/boot/compressed/ashldi3.S create mode 100644 arch/arm/boot/compressed/bswapsdi2.S create mode 100644 arch/arm/boot/compressed/font.c create mode 100644 arch/arm/boot/compressed/hyp-stub.S create mode 100644 arch/arm/boot/compressed/lib1funcs.S