lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4cf5e50b-0623-8033-77a5-c6973725f9aa@physik.fu-berlin.de>
Date:   Mon, 18 Jan 2021 18:27:53 +0100
From:   John Paul Adrian Glaubitz <glaubitz@...sik.fu-berlin.de>
To:     Masahiro Yamada <masahiroy@...nel.org>,
        Yoshinori Sato <ysato@...rs.sourceforge.jp>,
        Rich Felker <dalias@...c.org>, linux-sh@...r.kernel.org
Cc:     Arnd Bergmann <arnd@...db.de>,
        Brendan Higgins <brendanhiggins@...gle.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Russell King <rmk+kernel@...linux.org.uk>,
        "Steven Rostedt (VMware)" <rostedt@...dmis.org>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] sh: boot: avoid unneeded rebuilds under
 arch/sh/boot/compressed/

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@...nel.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@...sik.fu-berlin.de>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ