Re: [PATCH] sh: Fix build with CONFIG_UBSAN=y

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.linux.kernel
Message-ID <f8bef08f5acf6ea9f153a07351c5b06bcc64c763.camel@physik.fu-berlin.de>
Hi Yujie,

On Fri, 2024-03-01 at 05:46 +0000, Liu, Yujie wrote:
> On Wed, 2024-02-14 at 13:52 +0100, John Paul Adrian Glaubitz wrote:
> > Hi Kees,
> > 
> > On Mon, 2024-02-12 at 19:45 +0100, John Paul Adrian Glaubitz wrote:
> > > On Mon, 2024-02-12 at 10:26 -0800, Kees Cook wrote:
> > > > > I just wanted to try reproduce the problem again with the reproducer in [1] as well
> > > > > as with gcc-13.2.0, but your branch devel/overflow/ubsan-only no longer exists.
> > > > > 
> > > > > Can you tell me where to find the patches now?
> > > > 
> > > > Sure, they're in -next, but for an -rc2 based tree, see:
> > > > https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=for-next/kspp
> > > 
> > > OK, thanks. I will give it a try with gcc-13.
> > 
> > I'm still unable to reproduce the error that the kernel test robot reported.
> > 
> > I'm using gcc-13:
> > 
> > glaubitz@node54:/data/home/glaubitz/linux-kees> sh4-linux-gcc
> > sh4-linux-gcc: fatal error: no input files
> > compilation terminated.
> > glaubitz@node54:/data/home/glaubitz/linux-kees> sh4-linux-gcc --version
> > sh4-linux-gcc (GCC) 13.2.0
> > Copyright (C) 2023 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> > 
> > glaubitz@node54:/data/home/glaubitz/linux-kees>
> > 
> > I checked out your tree and the for-next/kspp branch.
> > 
> > Then fetched the config that triggered the bug like this:
> > 
> > $ wget https://download.01.org/0day-ci/archive/20240131/[email protected]/config -O .config
> > 
> > Building the kernel with "make -j32 uImage" works fine. No errors except for
> > some unreleated warnings that still need to be fixed.
> 
> Sorry for late reply. Seems like the warnings can be reproduced by
> "make zImage" which is the default make target, but cannot be
> reproduced by "make uImage".
> 
> HEAD is now at 918327e9b7ffb ubsan: Remove CONFIG_UBSAN_SANITIZE_ALL
> 
> $ wget https://download.01.org/0day-ci/archive/20240131/[email protected]/config -O .config
> $ sh4-linux-gcc --version
> sh4-linux-gcc (GCC) 13.2.0
> 
> $ make -j72 CROSS_COMPILE=sh4-linux- ARCH=sh olddefconfig
> $ make -j72 CROSS_COMPILE=sh4-linux- ARCH=sh
> ...
>   LD      arch/sh/boot/compressed/vmlinux
> sh4-linux-ld: arch/sh/boot/compressed/misc.o: in function `zlib_inflate_table':
> misc.c:(.text+0x670): undefined reference to `__ubsan_handle_shift_out_of_bounds'
> sh4-linux-ld: arch/sh/boot/compressed/misc.o: in function `inflate_fast':
> misc.c:(.text+0xc5c): undefined reference to `__ubsan_handle_shift_out_of_bounds'
> sh4-linux-ld: arch/sh/boot/compressed/misc.o: in function `zlib_inflateReset':
> misc.c:(.text+0xd00): undefined reference to `__ubsan_handle_shift_out_of_bounds'
> sh4-linux-ld: arch/sh/boot/compressed/misc.o: in function `zlib_inflate':
> misc.c:(.text+0x23fc): undefined reference to `__ubsan_handle_shift_out_of_bounds'
> sh4-linux-ld: arch/sh/boot/compressed/ashldi3.o: in function `__ashldi3':
> ashldi3.c:(.text+0xc8): undefined reference to `__ubsan_handle_shift_out_of_bounds'
> make[3]: *** [arch/sh/boot/compressed/Makefile:38: arch/sh/boot/compressed/vmlinux] Error 1
> make[2]: *** [arch/sh/boot/Makefile:40: arch/sh/boot/compressed/vmlinux] Error 2
> make[1]: *** [arch/sh/Makefile:170: zImage] Error 2
> make: *** [Makefile:240: __sub-make] Error 2
> 
> $ make -j72 CROSS_COMPILE=sh4-linux- ARCH=sh uImage
> ...
>   OBJCOPY arch/sh/boot/vmlinux.bin
>   GZIP    arch/sh/boot/vmlinux.bin.gz
>   UIMAGE  arch/sh/boot/uImage.gz
> Image Name:   Linux-6.8.0-rc2+
> Created:      Fri Mar  1 13:31:36 2024
> Image Type:   SuperH Linux Kernel Image (gzip compressed)
> Data Size:    9297141 Bytes = 9079.24 KiB = 8.87 MiB
> Load Address: 08001000
> Entry Point:  08002000
>   Image arch/sh/boot/uImage is ready

Thanks a lot for pointing this out. This explains the problem.

I will have another look over the weekend and acknowledge the patch if Kees wants
to pick it up through his own tree.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.