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 <9fda57fc1b1ba6ad9bd6f7df3fb12674d0f4f940.camel@physik.fu-berlin.de>
Hi Kees,

On Fri, 2024-02-02 at 02:32 -0800, Kees Cook wrote:
> On Wed, Jan 31, 2024 at 12:19:22PM +0100, John Paul Adrian Glaubitz wrote:
> > Hi Kees,
> > 
> > On Wed, 2024-01-31 at 12:03 +0100, John Paul Adrian Glaubitz wrote:
> > > Hi Kees,
> > > 
> > > On Tue, 2024-01-30 at 15:27 -0800, Kees Cook wrote:
> > > > The early boot stub for sh had UBSan instrumentation present where it is
> > > > not supported. Disable it for this part of the build.
> > > > 
> > > >   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'
> > > > 
> > > > Reported-by: kernel test robot <[email protected]>
> > > > Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> > > > Cc: Yoshinori Sato <[email protected]>
> > > > Cc: Rich Felker <[email protected]>
> > > > Cc: John Paul Adrian Glaubitz <[email protected]>
> > > > Cc: Masahiro Yamada <[email protected]>
> > > > Cc: Nicolas Schier <[email protected]>
> > > > Cc: [email protected]
> > > > Signed-off-by: Kees Cook <[email protected]>
> > > > ---
> > > >  arch/sh/boot/compressed/Makefile | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > > 
> > > > diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
> > > > index b5e29f99c02c..6c6c791a1d06 100644
> > > > --- a/arch/sh/boot/compressed/Makefile
> > > > +++ b/arch/sh/boot/compressed/Makefile
> > > > @@ -12,6 +12,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \
> > > >             vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo $(OBJECTS)
> > > >  
> > > >  GCOV_PROFILE := n
> > > > +UBSAN_SANITIZE := n
> > > >  
> > > >  #
> > > >  # IMAGE_OFFSET is the load offset of the compression loader
> > > 
> > > Thanks for the patch. I'm looking into this now and will provide the review later.
> > 
> > I tried to reproduce the error using your tree and the branch devel/overflow/ubsan-only
> > minus the above patch and using the provided config but I'm unable to reproduce the
> > error above.
> > 
> > Am I missing anything?
> 
> When I use GCC 13.2 (I'm specifically on Ubuntu 23.10) and the randconfig
> linked from the report:
> https://download.01.org/0day-ci/archive/20240131/[email protected]/config
> (which is notably enabling CONFIG_UBSAN=y and CONFIG_UBSAN_SHIFT=y) then I
> see at the final link stage:
> 
> /usr/bin/sh4-linux-gnu-ld: arch/sh/boot/compressed/misc.o: in function `zlib_inflate_table':
> misc.c:(.text+0x650): undefined reference to `__ubsan_handle_shift_out_of_bounds'
> ...
> 
> After the patch, it's solved.

OK, let me test with gcc 13.x. My build host is currently running openSUSE Leap 15.5.

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.