Re: [PATCH] ubsan: disable unsigned-integer-overflow sanitizer with clang

From: Arnd Bergmann
Date: Wed Jan 06 2021 - 17:13:32 EST


On Wed, Jan 6, 2021 at 10:57 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> On Wed, Dec 30, 2020 at 04:47:35PM +0100, Arnd Bergmann wrote:
> > diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
> > index 8b635fd75fe4..e23873282ba7 100644
> > --- a/lib/Kconfig.ubsan
> > +++ b/lib/Kconfig.ubsan
> > @@ -122,6 +122,8 @@ config UBSAN_SIGNED_OVERFLOW
> >
> > config UBSAN_UNSIGNED_OVERFLOW
> > bool "Perform checking for unsigned arithmetic overflow"
> > + # clang hugely expands stack usage with -fsanitize=object-size
> > + depends on !CC_IS_CLANG
> > depends on $(cc-option,-fsanitize=unsigned-integer-overflow)
>
> Because of Clang implementation issues (see commit c637693b20da), this is
> already "default n" (and not supported under GCC at all). IIUC, setting
> this to "depends on !COMPILE_TEST" won't work for randconfigs, yes?

Ah, I had not realized this is clang specific. Adding the !COMPILE_TEST
dependency would hide it for me, which may be good enough for me.

> Is there some better way to mark this as "known to have issues, please
> don't include in randconfig?"
>
> I'd like to keep it around so people can continue to work out the
> problems with it, but not have unexpecting folks trip over it. ;)

I've reverted that patch locally now and default-enabled for randconfigs.
Now that I have an otherwise clean build, this should provide me
with a full set of files that produce the warning. If the number is
small enough, I could try opening individual github issues.

Arnd