All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y
@ 2021-01-17 11:16 Masahiro Yamada
  2021-01-17 11:16 ` [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/ Masahiro Yamada
  2021-01-18 17:27 ` [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y John Paul Adrian Glaubitz
  0 siblings, 2 replies; 7+ messages in thread
From: Masahiro Yamada @ 2021-01-17 11:16 UTC (permalink / raw)
  To: Yoshinori Sato, Rich Felker, linux-sh; +Cc: Masahiro Yamada, linux-kernel

You do not need to build all of vmlinux.bin*

They are built on demand as prerequsites of uImage.bin*, hence should
be added to targets instead of extra-y.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 arch/sh/boot/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile
index 58592dfa5cb6..dded61296c9a 100644
--- a/arch/sh/boot/Makefile
+++ b/arch/sh/boot/Makefile
@@ -27,8 +27,8 @@ suffix-$(CONFIG_KERNEL_XZ)	:= xz
 suffix-$(CONFIG_KERNEL_LZO)	:= lzo
 
 targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz \
-	   uImage.bz2 uImage.lzma uImage.xz uImage.lzo uImage.bin
-extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
+	   uImage.bz2 uImage.lzma uImage.xz uImage.lzo uImage.bin \
+	   vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
 	   vmlinux.bin.xz vmlinux.bin.lzo
 subdir- := compressed romimage
 
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
  2021-01-17 11:16 [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y Masahiro Yamada
@ 2021-01-17 11:16 ` Masahiro Yamada
  2021-01-17 13:34   ` John Paul Adrian Glaubitz
  2021-01-18 17:27   ` John Paul Adrian Glaubitz
  2021-01-18 17:27 ` [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y John Paul Adrian Glaubitz
  1 sibling, 2 replies; 7+ messages in thread
From: Masahiro Yamada @ 2021-01-17 11:16 UTC (permalink / raw)
  To: Yoshinori Sato, Rich Felker, linux-sh
  Cc: Masahiro Yamada, Arnd Bergmann, Brendan Higgins,
	Greg Kroah-Hartman, Russell King, Steven Rostedt (VMware),
	linux-kernel

Even if none of source code is updated, the following are every time
rebuilt:

  CC      arch/sh/boot/compressed/cache.o
  SHIPPED arch/sh/boot/compressed/ashiftrt.S
  AS      arch/sh/boot/compressed/ashiftrt.o
  SHIPPED arch/sh/boot/compressed/ashldi3.c
  CC      arch/sh/boot/compressed/ashldi3.o
  SHIPPED arch/sh/boot/compressed/ashrsi3.S
  AS      arch/sh/boot/compressed/ashrsi3.o
  SHIPPED arch/sh/boot/compressed/ashlsi3.S
  AS      arch/sh/boot/compressed/ashlsi3.o
  SHIPPED arch/sh/boot/compressed/lshrsi3.S
  AS      arch/sh/boot/compressed/lshrsi3.o
  LD      arch/sh/boot/compressed/vmlinux
  OBJCOPY arch/sh/boot/zImage

Add build artifacts to 'targets' as needed.

I turned the library files to check-in files. It is simpler than
copying from arch/sh/lib/ at build-time.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 arch/sh/boot/compressed/.gitignore |  5 -----
 arch/sh/boot/compressed/Makefile   | 32 ++++++++++++------------------
 arch/sh/boot/compressed/ashiftrt.S |  2 ++
 arch/sh/boot/compressed/ashldi3.c  |  2 ++
 arch/sh/boot/compressed/ashlsi3.S  |  2 ++
 arch/sh/boot/compressed/ashrsi3.S  |  2 ++
 arch/sh/boot/compressed/lshrsi3.S  |  2 ++
 7 files changed, 23 insertions(+), 24 deletions(-)
 create mode 100644 arch/sh/boot/compressed/ashiftrt.S
 create mode 100644 arch/sh/boot/compressed/ashldi3.c
 create mode 100644 arch/sh/boot/compressed/ashlsi3.S
 create mode 100644 arch/sh/boot/compressed/ashrsi3.S
 create mode 100644 arch/sh/boot/compressed/lshrsi3.S

diff --git a/arch/sh/boot/compressed/.gitignore b/arch/sh/boot/compressed/.gitignore
index 37aa53057369..cd16663bc7c8 100644
--- a/arch/sh/boot/compressed/.gitignore
+++ b/arch/sh/boot/compressed/.gitignore
@@ -1,7 +1,2 @@
 # SPDX-License-Identifier: GPL-2.0-only
-ashiftrt.S
-ashldi3.c
-ashlsi3.S
-ashrsi3.S
-lshrsi3.S
 vmlinux.bin.*
diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
index 589d2d8a573d..cf3174df7859 100644
--- a/arch/sh/boot/compressed/Makefile
+++ b/arch/sh/boot/compressed/Makefile
@@ -5,12 +5,18 @@
 # create a compressed vmlinux image from the original vmlinux
 #
 
-targets		:= vmlinux vmlinux.bin vmlinux.bin.gz \
-		   vmlinux.bin.bz2 vmlinux.bin.lzma \
-		   vmlinux.bin.xz vmlinux.bin.lzo \
-		   head_32.o misc.o piggy.o
+OBJECTS := head_32.o misc.o cache.o piggy.o \
+           ashiftrt.o ashldi3.o ashrsi3.o ashlsi3.o lshrsi3.o
+
+# These were previously generated files. When you are building the kernel
+# with O=, make sure to remove the stale files in the output tree. Otherwise,
+# the build system wrongly compiles the stale ones.
+ifdef building_out_of_srctree
+$(shell rm -f $(addprefix $(obj)/, ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S))
+endif
 
-OBJECTS = $(obj)/head_32.o $(obj)/misc.o $(obj)/cache.o
+targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \
+           vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo $(OBJECTS)
 
 GCOV_PROFILE := n
 
@@ -33,21 +39,9 @@ ccflags-remove-$(CONFIG_MCOUNT) += -pg
 LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
 		   -T $(obj)/../../kernel/vmlinux.lds
 
-#
-# Pull in the necessary libgcc bits from the in-kernel implementation.
-#
-lib1funcs-y	:= ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S
-lib1funcs-obj   := \
-	$(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y))))
-
-lib1funcs-dir		:= $(srctree)/arch/$(SRCARCH)/lib
-
-KBUILD_CFLAGS += -I$(lib1funcs-dir) -DDISABLE_BRANCH_PROFILING
-
-$(addprefix $(obj)/,$(lib1funcs-y)): $(obj)/%: $(lib1funcs-dir)/% FORCE
-	$(call cmd,shipped)
+KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 
-$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(lib1funcs-obj) FORCE
+$(obj)/vmlinux: $(addprefix $(obj)/, $(OBJECTS)) FORCE
 	$(call if_changed,ld)
 
 $(obj)/vmlinux.bin: vmlinux FORCE
diff --git a/arch/sh/boot/compressed/ashiftrt.S b/arch/sh/boot/compressed/ashiftrt.S
new file mode 100644
index 000000000000..0f3b291a3f4b
--- /dev/null
+++ b/arch/sh/boot/compressed/ashiftrt.S
@@ -0,0 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "../../lib/ashiftrt.S"
diff --git a/arch/sh/boot/compressed/ashldi3.c b/arch/sh/boot/compressed/ashldi3.c
new file mode 100644
index 000000000000..7cebd646df83
--- /dev/null
+++ b/arch/sh/boot/compressed/ashldi3.c
@@ -0,0 +1,2 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include "../../lib/ashldi3.c"
diff --git a/arch/sh/boot/compressed/ashlsi3.S b/arch/sh/boot/compressed/ashlsi3.S
new file mode 100644
index 000000000000..e354262b275f
--- /dev/null
+++ b/arch/sh/boot/compressed/ashlsi3.S
@@ -0,0 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "../../lib/ashlsi3.S"
diff --git a/arch/sh/boot/compressed/ashrsi3.S b/arch/sh/boot/compressed/ashrsi3.S
new file mode 100644
index 000000000000..e564be9a4dcd
--- /dev/null
+++ b/arch/sh/boot/compressed/ashrsi3.S
@@ -0,0 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "../../lib/ashrsi3.S"
diff --git a/arch/sh/boot/compressed/lshrsi3.S b/arch/sh/boot/compressed/lshrsi3.S
new file mode 100644
index 000000000000..5a8281b7e516
--- /dev/null
+++ b/arch/sh/boot/compressed/lshrsi3.S
@@ -0,0 +1,2 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include "../../lib/lshrsi3.S"
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
  2021-01-17 11:16 ` [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/ Masahiro Yamada
@ 2021-01-17 13:34   ` John Paul Adrian Glaubitz
  2021-01-17 16:21     ` Masahiro Yamada
  2021-01-18 17:27   ` John Paul Adrian Glaubitz
  1 sibling, 1 reply; 7+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-17 13:34 UTC (permalink / raw)
  To: Masahiro Yamada, Yoshinori Sato, Rich Felker, linux-sh
  Cc: Arnd Bergmann, Brendan Higgins, Greg Kroah-Hartman, Russell King,
	Steven Rostedt (VMware),
	linux-kernel

Hi Masahiro!

On 1/17/21 12:16 PM, Masahiro Yamada wrote:
> Even if none of source code is updated, the following are every time
> rebuilt:
> 
>   CC      arch/sh/boot/compressed/cache.o
>   SHIPPED arch/sh/boot/compressed/ashiftrt.S
>   AS      arch/sh/boot/compressed/ashiftrt.o
>   SHIPPED arch/sh/boot/compressed/ashldi3.c
>   CC      arch/sh/boot/compressed/ashldi3.o
>   SHIPPED arch/sh/boot/compressed/ashrsi3.S
>   AS      arch/sh/boot/compressed/ashrsi3.o
>   SHIPPED arch/sh/boot/compressed/ashlsi3.S
>   AS      arch/sh/boot/compressed/ashlsi3.o
>   SHIPPED arch/sh/boot/compressed/lshrsi3.S
>   AS      arch/sh/boot/compressed/lshrsi3.o
>   LD      arch/sh/boot/compressed/vmlinux
>   OBJCOPY arch/sh/boot/zImage
> 
> Add build artifacts to 'targets' as needed.
> 
> I turned the library files to check-in files. It is simpler than
> copying from arch/sh/lib/ at build-time.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  arch/sh/boot/compressed/.gitignore |  5 -----
>  arch/sh/boot/compressed/Makefile   | 32 ++++++++++++------------------
>  arch/sh/boot/compressed/ashiftrt.S |  2 ++
>  arch/sh/boot/compressed/ashldi3.c  |  2 ++
>  arch/sh/boot/compressed/ashlsi3.S  |  2 ++
>  arch/sh/boot/compressed/ashrsi3.S  |  2 ++
>  arch/sh/boot/compressed/lshrsi3.S  |  2 ++
>  7 files changed, 23 insertions(+), 24 deletions(-)
>  create mode 100644 arch/sh/boot/compressed/ashiftrt.S
>  create mode 100644 arch/sh/boot/compressed/ashldi3.c
>  create mode 100644 arch/sh/boot/compressed/ashlsi3.S
>  create mode 100644 arch/sh/boot/compressed/ashrsi3.S
>  create mode 100644 arch/sh/boot/compressed/lshrsi3.S
> 
> diff --git a/arch/sh/boot/compressed/.gitignore b/arch/sh/boot/compressed/.gitignore
> index 37aa53057369..cd16663bc7c8 100644
> --- a/arch/sh/boot/compressed/.gitignore
> +++ b/arch/sh/boot/compressed/.gitignore
> @@ -1,7 +1,2 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> -ashiftrt.S
> -ashldi3.c
> -ashlsi3.S
> -ashrsi3.S
> -lshrsi3.S
>  vmlinux.bin.*
> diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
> index 589d2d8a573d..cf3174df7859 100644
> --- a/arch/sh/boot/compressed/Makefile
> +++ b/arch/sh/boot/compressed/Makefile
> @@ -5,12 +5,18 @@
>  # create a compressed vmlinux image from the original vmlinux
>  #
>  
> -targets		:= vmlinux vmlinux.bin vmlinux.bin.gz \
> -		   vmlinux.bin.bz2 vmlinux.bin.lzma \
> -		   vmlinux.bin.xz vmlinux.bin.lzo \
> -		   head_32.o misc.o piggy.o
> +OBJECTS := head_32.o misc.o cache.o piggy.o \
> +           ashiftrt.o ashldi3.o ashrsi3.o ashlsi3.o lshrsi3.o
> +
> +# These were previously generated files. When you are building the kernel
> +# with O=, make sure to remove the stale files in the output tree. Otherwise,
> +# the build system wrongly compiles the stale ones.
> +ifdef building_out_of_srctree
> +$(shell rm -f $(addprefix $(obj)/, ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S))
> +endif
>  
> -OBJECTS = $(obj)/head_32.o $(obj)/misc.o $(obj)/cache.o
> +targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \
> +           vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo $(OBJECTS)
>  
>  GCOV_PROFILE := n
>  
> @@ -33,21 +39,9 @@ ccflags-remove-$(CONFIG_MCOUNT) += -pg
>  LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
>  		   -T $(obj)/../../kernel/vmlinux.lds
>  
> -#
> -# Pull in the necessary libgcc bits from the in-kernel implementation.
> -#
> -lib1funcs-y	:= ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S
> -lib1funcs-obj   := \
> -	$(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y))))
> -
> -lib1funcs-dir		:= $(srctree)/arch/$(SRCARCH)/lib
> -
> -KBUILD_CFLAGS += -I$(lib1funcs-dir) -DDISABLE_BRANCH_PROFILING
> -
> -$(addprefix $(obj)/,$(lib1funcs-y)): $(obj)/%: $(lib1funcs-dir)/% FORCE
> -	$(call cmd,shipped)
> +KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
>  
> -$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(lib1funcs-obj) FORCE
> +$(obj)/vmlinux: $(addprefix $(obj)/, $(OBJECTS)) FORCE
>  	$(call if_changed,ld)
>  
>  $(obj)/vmlinux.bin: vmlinux FORCE
> diff --git a/arch/sh/boot/compressed/ashiftrt.S b/arch/sh/boot/compressed/ashiftrt.S
> new file mode 100644
> index 000000000000..0f3b291a3f4b
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashiftrt.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/ashiftrt.S"
> diff --git a/arch/sh/boot/compressed/ashldi3.c b/arch/sh/boot/compressed/ashldi3.c
> new file mode 100644
> index 000000000000..7cebd646df83
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashldi3.c
> @@ -0,0 +1,2 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +#include "../../lib/ashldi3.c"
> diff --git a/arch/sh/boot/compressed/ashlsi3.S b/arch/sh/boot/compressed/ashlsi3.S
> new file mode 100644
> index 000000000000..e354262b275f
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashlsi3.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/ashlsi3.S"
> diff --git a/arch/sh/boot/compressed/ashrsi3.S b/arch/sh/boot/compressed/ashrsi3.S
> new file mode 100644
> index 000000000000..e564be9a4dcd
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashrsi3.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/ashrsi3.S"
> diff --git a/arch/sh/boot/compressed/lshrsi3.S b/arch/sh/boot/compressed/lshrsi3.S
> new file mode 100644
> index 000000000000..5a8281b7e516
> --- /dev/null
> +++ b/arch/sh/boot/compressed/lshrsi3.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/lshrsi3.S"

This patch doesn't apply for me while the first one applies without problems:

glaubitz@epyc:..glaubitz/linux-git> git am ../sh-patches-2021/\[PATCH\ 1_2\]\ sh\:\ boot\:\ add\ intermediate\ vmlinux.bin\*\ to\ targets\ instead\ of\ extra-y.eml
Applying: sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y
glaubitz@epyc:..glaubitz/linux-git> git am ../sh-patches-2021/\[PATCH\ 2_2\]\ sh\:\ boot\:\ avoid\ unneeded\ rebuilds\ under\ arch_sh_boot_compressed_.eml
Applying: sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
error: arch/sh/boot/compressed/ashiftrt.S: already exists in working directory
error: arch/sh/boot/compressed/ashldi3.c: already exists in working directory
error: arch/sh/boot/compressed/ashlsi3.S: already exists in working directory
error: arch/sh/boot/compressed/ashrsi3.S: already exists in working directory
error: arch/sh/boot/compressed/lshrsi3.S: already exists in working directory
Patch failed at 0001 sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
glaubitz@epyc:..glaubitz/linux-git>

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
  2021-01-17 13:34   ` John Paul Adrian Glaubitz
@ 2021-01-17 16:21     ` Masahiro Yamada
  2021-01-18 17:09       ` John Paul Adrian Glaubitz
  0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2021-01-17 16:21 UTC (permalink / raw)
  To: John Paul Adrian Glaubitz
  Cc: Yoshinori Sato, Rich Felker, Linux-sh list, Arnd Bergmann,
	Brendan Higgins, Greg Kroah-Hartman, Russell King,
	Steven Rostedt (VMware),
	Linux Kernel Mailing List

On Sun, Jan 17, 2021 at 10:35 PM John Paul Adrian Glaubitz
<glaubitz@physik.fu-berlin.de> wrote:
>
> Hi Masahiro!
>
> On 1/17/21 12:16 PM, Masahiro Yamada wrote:
> > Even if none of source code is updated, the following are every time
> > rebuilt:
> >
> >   CC      arch/sh/boot/compressed/cache.o
> >   SHIPPED arch/sh/boot/compressed/ashiftrt.S
> >   AS      arch/sh/boot/compressed/ashiftrt.o
> >   SHIPPED arch/sh/boot/compressed/ashldi3.c
> >   CC      arch/sh/boot/compressed/ashldi3.o
> >   SHIPPED arch/sh/boot/compressed/ashrsi3.S
> >   AS      arch/sh/boot/compressed/ashrsi3.o
> >   SHIPPED arch/sh/boot/compressed/ashlsi3.S
> >   AS      arch/sh/boot/compressed/ashlsi3.o
> >   SHIPPED arch/sh/boot/compressed/lshrsi3.S
> >   AS      arch/sh/boot/compressed/lshrsi3.o
> >   LD      arch/sh/boot/compressed/vmlinux
> >   OBJCOPY arch/sh/boot/zImage
> >
> > Add build artifacts to 'targets' as needed.
> >
> > I turned the library files to check-in files. It is simpler than
> > copying from arch/sh/lib/ at build-time.
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > ---
> >
> >  arch/sh/boot/compressed/.gitignore |  5 -----
> >  arch/sh/boot/compressed/Makefile   | 32 ++++++++++++------------------
> >  arch/sh/boot/compressed/ashiftrt.S |  2 ++
> >  arch/sh/boot/compressed/ashldi3.c  |  2 ++
> >  arch/sh/boot/compressed/ashlsi3.S  |  2 ++
> >  arch/sh/boot/compressed/ashrsi3.S  |  2 ++
> >  arch/sh/boot/compressed/lshrsi3.S  |  2 ++
> >  7 files changed, 23 insertions(+), 24 deletions(-)
> >  create mode 100644 arch/sh/boot/compressed/ashiftrt.S
> >  create mode 100644 arch/sh/boot/compressed/ashldi3.c
> >  create mode 100644 arch/sh/boot/compressed/ashlsi3.S
> >  create mode 100644 arch/sh/boot/compressed/ashrsi3.S
> >  create mode 100644 arch/sh/boot/compressed/lshrsi3.S
> >
> > diff --git a/arch/sh/boot/compressed/.gitignore b/arch/sh/boot/compressed/.gitignore
> > index 37aa53057369..cd16663bc7c8 100644
> > --- a/arch/sh/boot/compressed/.gitignore
> > +++ b/arch/sh/boot/compressed/.gitignore
> > @@ -1,7 +1,2 @@
> >  # SPDX-License-Identifier: GPL-2.0-only
> > -ashiftrt.S
> > -ashldi3.c
> > -ashlsi3.S
> > -ashrsi3.S
> > -lshrsi3.S
> >  vmlinux.bin.*
> > diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
> > index 589d2d8a573d..cf3174df7859 100644
> > --- a/arch/sh/boot/compressed/Makefile
> > +++ b/arch/sh/boot/compressed/Makefile
> > @@ -5,12 +5,18 @@
> >  # create a compressed vmlinux image from the original vmlinux
> >  #
> >
> > -targets              := vmlinux vmlinux.bin vmlinux.bin.gz \
> > -                vmlinux.bin.bz2 vmlinux.bin.lzma \
> > -                vmlinux.bin.xz vmlinux.bin.lzo \
> > -                head_32.o misc.o piggy.o
> > +OBJECTS := head_32.o misc.o cache.o piggy.o \
> > +           ashiftrt.o ashldi3.o ashrsi3.o ashlsi3.o lshrsi3.o
> > +
> > +# These were previously generated files. When you are building the kernel
> > +# with O=, make sure to remove the stale files in the output tree. Otherwise,
> > +# the build system wrongly compiles the stale ones.
> > +ifdef building_out_of_srctree
> > +$(shell rm -f $(addprefix $(obj)/, ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S))
> > +endif
> >
> > -OBJECTS = $(obj)/head_32.o $(obj)/misc.o $(obj)/cache.o
> > +targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \
> > +           vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo $(OBJECTS)
> >
> >  GCOV_PROFILE := n
> >
> > @@ -33,21 +39,9 @@ ccflags-remove-$(CONFIG_MCOUNT) += -pg
> >  LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
> >                  -T $(obj)/../../kernel/vmlinux.lds
> >
> > -#
> > -# Pull in the necessary libgcc bits from the in-kernel implementation.
> > -#
> > -lib1funcs-y  := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S
> > -lib1funcs-obj   := \
> > -     $(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y))))
> > -
> > -lib1funcs-dir                := $(srctree)/arch/$(SRCARCH)/lib
> > -
> > -KBUILD_CFLAGS += -I$(lib1funcs-dir) -DDISABLE_BRANCH_PROFILING
> > -
> > -$(addprefix $(obj)/,$(lib1funcs-y)): $(obj)/%: $(lib1funcs-dir)/% FORCE
> > -     $(call cmd,shipped)
> > +KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
> >
> > -$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(lib1funcs-obj) FORCE
> > +$(obj)/vmlinux: $(addprefix $(obj)/, $(OBJECTS)) FORCE
> >       $(call if_changed,ld)
> >
> >  $(obj)/vmlinux.bin: vmlinux FORCE
> > diff --git a/arch/sh/boot/compressed/ashiftrt.S b/arch/sh/boot/compressed/ashiftrt.S
> > new file mode 100644
> > index 000000000000..0f3b291a3f4b
> > --- /dev/null
> > +++ b/arch/sh/boot/compressed/ashiftrt.S
> > @@ -0,0 +1,2 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#include "../../lib/ashiftrt.S"
> > diff --git a/arch/sh/boot/compressed/ashldi3.c b/arch/sh/boot/compressed/ashldi3.c
> > new file mode 100644
> > index 000000000000..7cebd646df83
> > --- /dev/null
> > +++ b/arch/sh/boot/compressed/ashldi3.c
> > @@ -0,0 +1,2 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +#include "../../lib/ashldi3.c"
> > diff --git a/arch/sh/boot/compressed/ashlsi3.S b/arch/sh/boot/compressed/ashlsi3.S
> > new file mode 100644
> > index 000000000000..e354262b275f
> > --- /dev/null
> > +++ b/arch/sh/boot/compressed/ashlsi3.S
> > @@ -0,0 +1,2 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#include "../../lib/ashlsi3.S"
> > diff --git a/arch/sh/boot/compressed/ashrsi3.S b/arch/sh/boot/compressed/ashrsi3.S
> > new file mode 100644
> > index 000000000000..e564be9a4dcd
> > --- /dev/null
> > +++ b/arch/sh/boot/compressed/ashrsi3.S
> > @@ -0,0 +1,2 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#include "../../lib/ashrsi3.S"
> > diff --git a/arch/sh/boot/compressed/lshrsi3.S b/arch/sh/boot/compressed/lshrsi3.S
> > new file mode 100644
> > index 000000000000..5a8281b7e516
> > --- /dev/null
> > +++ b/arch/sh/boot/compressed/lshrsi3.S
> > @@ -0,0 +1,2 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#include "../../lib/lshrsi3.S"
>
> This patch doesn't apply for me while the first one applies without problems:
>
> glaubitz@epyc:..glaubitz/linux-git> git am ../sh-patches-2021/\[PATCH\ 1_2\]\ sh\:\ boot\:\ add\ intermediate\ vmlinux.bin\*\ to\ targets\ instead\ of\ extra-y.eml
> Applying: sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y
> glaubitz@epyc:..glaubitz/linux-git> git am ../sh-patches-2021/\[PATCH\ 2_2\]\ sh\:\ boot\:\ avoid\ unneeded\ rebuilds\ under\ arch_sh_boot_compressed_.eml
> Applying: sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
> error: arch/sh/boot/compressed/ashiftrt.S: already exists in working directory
> error: arch/sh/boot/compressed/ashldi3.c: already exists in working directory
> error: arch/sh/boot/compressed/ashlsi3.S: already exists in working directory
> error: arch/sh/boot/compressed/ashrsi3.S: already exists in working directory
> error: arch/sh/boot/compressed/lshrsi3.S: already exists in working directory

Adrian, these 5 files are currently generated files.

That is why git-am failed.

They are not cleaned up by 'make ARCH=sh clean'
(this is a bug too).


Please remove them manually, then try git am again.







> Patch failed at 0001 sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
> glaubitz@epyc:..glaubitz/linux-git>
>
> Adrian
>
> --
>  .''`.  John Paul Adrian Glaubitz
> : :' :  Debian Developer - glaubitz@debian.org
> `. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
>   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
>


--
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
  2021-01-17 16:21     ` Masahiro Yamada
@ 2021-01-18 17:09       ` John Paul Adrian Glaubitz
  0 siblings, 0 replies; 7+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-18 17:09 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Yoshinori Sato, Rich Felker, Linux-sh list, Arnd Bergmann,
	Brendan Higgins, Greg Kroah-Hartman, Russell King,
	Steven Rostedt (VMware),
	Linux Kernel Mailing List

Hi Masahiro!

On 1/17/21 5:21 PM, Masahiro Yamada wrote:
>> This patch doesn't apply for me while the first one applies without problems:
>>
>> glaubitz@epyc:..glaubitz/linux-git> git am ../sh-patches-2021/\[PATCH\ 1_2\]\ sh\:\ boot\:\ add\ intermediate\ vmlinux.bin\*\ to\ targets\ instead\ of\ extra-y.eml
>> Applying: sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y
>> glaubitz@epyc:..glaubitz/linux-git> git am ../sh-patches-2021/\[PATCH\ 2_2\]\ sh\:\ boot\:\ avoid\ unneeded\ rebuilds\ under\ arch_sh_boot_compressed_.eml
>> Applying: sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
>> error: arch/sh/boot/compressed/ashiftrt.S: already exists in working directory
>> error: arch/sh/boot/compressed/ashldi3.c: already exists in working directory
>> error: arch/sh/boot/compressed/ashlsi3.S: already exists in working directory
>> error: arch/sh/boot/compressed/ashrsi3.S: already exists in working directory
>> error: arch/sh/boot/compressed/lshrsi3.S: already exists in working directory
> 
> Adrian, these 5 files are currently generated files.
> 
> That is why git-am failed.

I already guessed that. I removed them now and the patch applies cleanly.

Will test-boot on my SH-7785LCR in a minute.

> They are not cleaned up by 'make ARCH=sh clean'
> (this is a bug too).

That should be easy to fix I guess :-).

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y
  2021-01-17 11:16 [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y Masahiro Yamada
  2021-01-17 11:16 ` [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/ Masahiro Yamada
@ 2021-01-18 17:27 ` John Paul Adrian Glaubitz
  1 sibling, 0 replies; 7+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-18 17:27 UTC (permalink / raw)
  To: Masahiro Yamada, Yoshinori Sato, Rich Felker, linux-sh; +Cc: linux-kernel

On 1/17/21 12:16 PM, Masahiro Yamada wrote:
> You do not need to build all of vmlinux.bin*
> 
> They are built on demand as prerequsites of uImage.bin*, hence should
> be added to targets instead of extra-y.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  arch/sh/boot/Makefile | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile
> index 58592dfa5cb6..dded61296c9a 100644
> --- a/arch/sh/boot/Makefile
> +++ b/arch/sh/boot/Makefile
> @@ -27,8 +27,8 @@ suffix-$(CONFIG_KERNEL_XZ)	:= xz
>  suffix-$(CONFIG_KERNEL_LZO)	:= lzo
>  
>  targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz \
> -	   uImage.bz2 uImage.lzma uImage.xz uImage.lzo uImage.bin
> -extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
> +	   uImage.bz2 uImage.lzma uImage.xz uImage.lzo uImage.bin \
> +	   vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
>  	   vmlinux.bin.xz vmlinux.bin.lzo
>  subdir- := compressed romimage

Successfully boot-tested on my SH-7785LCR. No regressions.

Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/
  2021-01-17 11:16 ` [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/ Masahiro Yamada
  2021-01-17 13:34   ` John Paul Adrian Glaubitz
@ 2021-01-18 17:27   ` John Paul Adrian Glaubitz
  1 sibling, 0 replies; 7+ messages in thread
From: John Paul Adrian Glaubitz @ 2021-01-18 17:27 UTC (permalink / raw)
  To: Masahiro Yamada, Yoshinori Sato, Rich Felker, linux-sh
  Cc: Arnd Bergmann, Brendan Higgins, Greg Kroah-Hartman, Russell King,
	Steven Rostedt (VMware),
	linux-kernel

On 1/17/21 12:16 PM, Masahiro Yamada wrote:
> Even if none of source code is updated, the following are every time
> rebuilt:
> 
>   CC      arch/sh/boot/compressed/cache.o
>   SHIPPED arch/sh/boot/compressed/ashiftrt.S
>   AS      arch/sh/boot/compressed/ashiftrt.o
>   SHIPPED arch/sh/boot/compressed/ashldi3.c
>   CC      arch/sh/boot/compressed/ashldi3.o
>   SHIPPED arch/sh/boot/compressed/ashrsi3.S
>   AS      arch/sh/boot/compressed/ashrsi3.o
>   SHIPPED arch/sh/boot/compressed/ashlsi3.S
>   AS      arch/sh/boot/compressed/ashlsi3.o
>   SHIPPED arch/sh/boot/compressed/lshrsi3.S
>   AS      arch/sh/boot/compressed/lshrsi3.o
>   LD      arch/sh/boot/compressed/vmlinux
>   OBJCOPY arch/sh/boot/zImage
> 
> Add build artifacts to 'targets' as needed.
> 
> I turned the library files to check-in files. It is simpler than
> copying from arch/sh/lib/ at build-time.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  arch/sh/boot/compressed/.gitignore |  5 -----
>  arch/sh/boot/compressed/Makefile   | 32 ++++++++++++------------------
>  arch/sh/boot/compressed/ashiftrt.S |  2 ++
>  arch/sh/boot/compressed/ashldi3.c  |  2 ++
>  arch/sh/boot/compressed/ashlsi3.S  |  2 ++
>  arch/sh/boot/compressed/ashrsi3.S  |  2 ++
>  arch/sh/boot/compressed/lshrsi3.S  |  2 ++
>  7 files changed, 23 insertions(+), 24 deletions(-)
>  create mode 100644 arch/sh/boot/compressed/ashiftrt.S
>  create mode 100644 arch/sh/boot/compressed/ashldi3.c
>  create mode 100644 arch/sh/boot/compressed/ashlsi3.S
>  create mode 100644 arch/sh/boot/compressed/ashrsi3.S
>  create mode 100644 arch/sh/boot/compressed/lshrsi3.S
> 
> diff --git a/arch/sh/boot/compressed/.gitignore b/arch/sh/boot/compressed/.gitignore
> index 37aa53057369..cd16663bc7c8 100644
> --- a/arch/sh/boot/compressed/.gitignore
> +++ b/arch/sh/boot/compressed/.gitignore
> @@ -1,7 +1,2 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> -ashiftrt.S
> -ashldi3.c
> -ashlsi3.S
> -ashrsi3.S
> -lshrsi3.S
>  vmlinux.bin.*
> diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
> index 589d2d8a573d..cf3174df7859 100644
> --- a/arch/sh/boot/compressed/Makefile
> +++ b/arch/sh/boot/compressed/Makefile
> @@ -5,12 +5,18 @@
>  # create a compressed vmlinux image from the original vmlinux
>  #
>  
> -targets		:= vmlinux vmlinux.bin vmlinux.bin.gz \
> -		   vmlinux.bin.bz2 vmlinux.bin.lzma \
> -		   vmlinux.bin.xz vmlinux.bin.lzo \
> -		   head_32.o misc.o piggy.o
> +OBJECTS := head_32.o misc.o cache.o piggy.o \
> +           ashiftrt.o ashldi3.o ashrsi3.o ashlsi3.o lshrsi3.o
> +
> +# These were previously generated files. When you are building the kernel
> +# with O=, make sure to remove the stale files in the output tree. Otherwise,
> +# the build system wrongly compiles the stale ones.
> +ifdef building_out_of_srctree
> +$(shell rm -f $(addprefix $(obj)/, ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S))
> +endif
>  
> -OBJECTS = $(obj)/head_32.o $(obj)/misc.o $(obj)/cache.o
> +targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \
> +           vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo $(OBJECTS)
>  
>  GCOV_PROFILE := n
>  
> @@ -33,21 +39,9 @@ ccflags-remove-$(CONFIG_MCOUNT) += -pg
>  LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
>  		   -T $(obj)/../../kernel/vmlinux.lds
>  
> -#
> -# Pull in the necessary libgcc bits from the in-kernel implementation.
> -#
> -lib1funcs-y	:= ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S
> -lib1funcs-obj   := \
> -	$(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y))))
> -
> -lib1funcs-dir		:= $(srctree)/arch/$(SRCARCH)/lib
> -
> -KBUILD_CFLAGS += -I$(lib1funcs-dir) -DDISABLE_BRANCH_PROFILING
> -
> -$(addprefix $(obj)/,$(lib1funcs-y)): $(obj)/%: $(lib1funcs-dir)/% FORCE
> -	$(call cmd,shipped)
> +KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
>  
> -$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(lib1funcs-obj) FORCE
> +$(obj)/vmlinux: $(addprefix $(obj)/, $(OBJECTS)) FORCE
>  	$(call if_changed,ld)
>  
>  $(obj)/vmlinux.bin: vmlinux FORCE
> diff --git a/arch/sh/boot/compressed/ashiftrt.S b/arch/sh/boot/compressed/ashiftrt.S
> new file mode 100644
> index 000000000000..0f3b291a3f4b
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashiftrt.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/ashiftrt.S"
> diff --git a/arch/sh/boot/compressed/ashldi3.c b/arch/sh/boot/compressed/ashldi3.c
> new file mode 100644
> index 000000000000..7cebd646df83
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashldi3.c
> @@ -0,0 +1,2 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +#include "../../lib/ashldi3.c"
> diff --git a/arch/sh/boot/compressed/ashlsi3.S b/arch/sh/boot/compressed/ashlsi3.S
> new file mode 100644
> index 000000000000..e354262b275f
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashlsi3.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/ashlsi3.S"
> diff --git a/arch/sh/boot/compressed/ashrsi3.S b/arch/sh/boot/compressed/ashrsi3.S
> new file mode 100644
> index 000000000000..e564be9a4dcd
> --- /dev/null
> +++ b/arch/sh/boot/compressed/ashrsi3.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/ashrsi3.S"
> diff --git a/arch/sh/boot/compressed/lshrsi3.S b/arch/sh/boot/compressed/lshrsi3.S
> new file mode 100644
> index 000000000000..5a8281b7e516
> --- /dev/null
> +++ b/arch/sh/boot/compressed/lshrsi3.S
> @@ -0,0 +1,2 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include "../../lib/lshrsi3.S"


Successfully boot-tested on my SH-7785LCR. No regressions.



Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-18 17:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-17 11:16 [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y Masahiro Yamada
2021-01-17 11:16 ` [PATCH 2/2] sh: boot: avoid unneeded rebuilds under arch/sh/boot/compressed/ Masahiro Yamada
2021-01-17 13:34   ` John Paul Adrian Glaubitz
2021-01-17 16:21     ` Masahiro Yamada
2021-01-18 17:09       ` John Paul Adrian Glaubitz
2021-01-18 17:27   ` John Paul Adrian Glaubitz
2021-01-18 17:27 ` [PATCH 1/2] sh: boot: add intermediate vmlinux.bin* to targets instead of extra-y John Paul Adrian Glaubitz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.