On Wed, 7 Nov 2018 17:45:16 +0300 Andrey Ryabinin <[email protected]> wrote:
> From: Arnd Bergmann <[email protected]> > > gcc-8 complains about the prototype for this function: > > lib/ubsan.c:432:1: error: ignoring attribute 'noreturn' in declaration of a > built-in function '__ubsan_handle_builtin_unreachable' because it conflicts > with attribute 'const' [-Werror=attributes] > > This is actually a GCC's bug. In GCC internals > __ubsan_handle_builtin_unreachable() declared with both 'noreturn' and > 'const' attributes instead of only 'noreturn': > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84210 > > Workaround this by removing the noreturn attribute. > > ... > > --- a/lib/ubsan.c > +++ b/lib/ubsan.c > @@ -427,8 +427,7 @@ void __ubsan_handle_shift_out_of_bounds(struct > shift_out_of_bounds_data *data, > EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds); > > > -void __noreturn > -__ubsan_handle_builtin_unreachable(struct unreachable_data *data) > +void __ubsan_handle_builtin_unreachable(struct unreachable_data *data) > { > unsigned long flags; This code has been here since 2016 and presumably people will want to build older kernels with newer gcc's. So I'll add cc:stable, OK?

