* [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
@ 2018-02-02 15:47 Arnd Bergmann
2018-02-05 9:02 ` Andrey Ryabinin
0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2018-02-02 15:47 UTC (permalink / raw)
To: Andrew Morton, Stephen Rothwell
Cc: Nicolas Pitre, Andi Kleen, Arnd Bergmann, Andrey Ryabinin, linux-kernel
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 removes the noreturn attribute.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
lib/ubsan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/ubsan.c b/lib/ubsan.c
index 59fee96c29a0..aa817d79c47c 100644
--- a/lib/ubsan.c
+++ b/lib/ubsan.c
@@ -427,7 +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
+void
__ubsan_handle_builtin_unreachable(struct unreachable_data *data)
{
unsigned long flags;
--
2.9.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-02-02 15:47 [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn Arnd Bergmann
@ 2018-02-05 9:02 ` Andrey Ryabinin
2018-02-05 10:15 ` Arnd Bergmann
0 siblings, 1 reply; 10+ messages in thread
From: Andrey Ryabinin @ 2018-02-05 9:02 UTC (permalink / raw)
To: Arnd Bergmann, Andrew Morton, Stephen Rothwell
Cc: Nicolas Pitre, Andi Kleen, linux-kernel
On 02/02/2018 06:47 PM, Arnd Bergmann wrote:
> 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]
>
That's actually a bug in GCC. In GCC __ubsan_handle_builtin_unreachable declared
with 'noreturn' and 'const' attributes:
DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE,
"__ubsan_handle_builtin_unreachable",
BT_FN_VOID_PTR,
ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST)
But const attribute doesn't make any sense for function that returns void or doesn't return at all.
Given that gcc-8 has not released yet, it would be better to fix this bug there.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-02-05 9:02 ` Andrey Ryabinin
@ 2018-02-05 10:15 ` Arnd Bergmann
2018-02-05 10:31 ` Andrey Ryabinin
0 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2018-02-05 10:15 UTC (permalink / raw)
To: Andrey Ryabinin
Cc: Andrew Morton, Stephen Rothwell, Nicolas Pitre, Andi Kleen,
Linux Kernel Mailing List
On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin
<aryabinin@virtuozzo.com> wrote:
>
>
> On 02/02/2018 06:47 PM, Arnd Bergmann wrote:
>> 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]
>>
>
> That's actually a bug in GCC. In GCC __ubsan_handle_builtin_unreachable declared
> with 'noreturn' and 'const' attributes:
>
> DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE,
> "__ubsan_handle_builtin_unreachable",
> BT_FN_VOID_PTR,
> ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST)
>
>
> But const attribute doesn't make any sense for function that returns void or doesn't return at all.
> Given that gcc-8 has not released yet, it would be better to fix this bug there.
Ok. Should I open a gcc bug, or will you take care of it?
Arnd
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-02-05 10:15 ` Arnd Bergmann
@ 2018-02-05 10:31 ` Andrey Ryabinin
2018-11-02 21:27 ` Olof Johansson
0 siblings, 1 reply; 10+ messages in thread
From: Andrey Ryabinin @ 2018-02-05 10:31 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Andrew Morton, Stephen Rothwell, Nicolas Pitre, Andi Kleen,
Linux Kernel Mailing List
On 02/05/2018 01:15 PM, Arnd Bergmann wrote:
> On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin
> <aryabinin@virtuozzo.com> wrote:
>>
>>
>> On 02/02/2018 06:47 PM, Arnd Bergmann wrote:
>>> 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]
>>>
>>
>> That's actually a bug in GCC. In GCC __ubsan_handle_builtin_unreachable declared
>> with 'noreturn' and 'const' attributes:
>>
>> DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE,
>> "__ubsan_handle_builtin_unreachable",
>> BT_FN_VOID_PTR,
>> ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST)
>>
>>
>> But const attribute doesn't make any sense for function that returns void or doesn't return at all.
>> Given that gcc-8 has not released yet, it would be better to fix this bug there.
>
> Ok. Should I open a gcc bug, or will you take care of it?
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84210
> Arnd
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-02-05 10:31 ` Andrey Ryabinin
@ 2018-11-02 21:27 ` Olof Johansson
2018-11-07 14:44 ` Andrey Ryabinin
2018-11-07 14:45 ` [PATCH v2] " Andrey Ryabinin
0 siblings, 2 replies; 10+ messages in thread
From: Olof Johansson @ 2018-11-02 21:27 UTC (permalink / raw)
To: aryabinin
Cc: Arnd Bergmann, Andrew Morton, Stephen Rothwell, Nicolas Pitre,
Andi Kleen, Linux Kernel Mailing List
On Mon, Feb 5, 2018 at 2:31 AM Andrey Ryabinin <aryabinin@virtuozzo.com> wrote:
>
> On 02/05/2018 01:15 PM, Arnd Bergmann wrote:
> > On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin
> > <aryabinin@virtuozzo.com> wrote:
> >>
> >>
> >> On 02/02/2018 06:47 PM, Arnd Bergmann wrote:
> >>> 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]
> >>>
> >>
> >> That's actually a bug in GCC. In GCC __ubsan_handle_builtin_unreachable declared
> >> with 'noreturn' and 'const' attributes:
> >>
> >> DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE,
> >> "__ubsan_handle_builtin_unreachable",
> >> BT_FN_VOID_PTR,
> >> ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST)
> >>
> >>
> >> But const attribute doesn't make any sense for function that returns void or doesn't return at all.
> >> Given that gcc-8 has not released yet, it would be better to fix this bug there.
> >
> > Ok. Should I open a gcc bug, or will you take care of it?
> >
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84210
8.2.0 still shows this, and there's been no movement on that bug. How
about we pick up this patch until it's been resolved?
-Olof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-11-02 21:27 ` Olof Johansson
@ 2018-11-07 14:44 ` Andrey Ryabinin
2018-11-07 14:45 ` [PATCH v2] " Andrey Ryabinin
1 sibling, 0 replies; 10+ messages in thread
From: Andrey Ryabinin @ 2018-11-07 14:44 UTC (permalink / raw)
To: Olof Johansson
Cc: Arnd Bergmann, Andrew Morton, Stephen Rothwell, Nicolas Pitre,
Andi Kleen, Linux Kernel Mailing List
On 11/03/2018 12:27 AM, Olof Johansson wrote:
> On Mon, Feb 5, 2018 at 2:31 AM Andrey Ryabinin <aryabinin@virtuozzo.com> wrote:
>>
>> On 02/05/2018 01:15 PM, Arnd Bergmann wrote:
>>> On Mon, Feb 5, 2018 at 10:02 AM, Andrey Ryabinin
>>> <aryabinin@virtuozzo.com> wrote:
>>>>
>>>>
>>>> On 02/02/2018 06:47 PM, Arnd Bergmann wrote:
>>>>> 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]
>>>>>
>>>>
>>>> That's actually a bug in GCC. In GCC __ubsan_handle_builtin_unreachable declared
>>>> with 'noreturn' and 'const' attributes:
>>>>
>>>> DEF_SANITIZER_BUILTIN(BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE,
>>>> "__ubsan_handle_builtin_unreachable",
>>>> BT_FN_VOID_PTR,
>>>> ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST)
>>>>
>>>>
>>>> But const attribute doesn't make any sense for function that returns void or doesn't return at all.
>>>> Given that gcc-8 has not released yet, it would be better to fix this bug there.
>>>
>>> Ok. Should I open a gcc bug, or will you take care of it?
>>>
>>
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84210
>
> 8.2.0 still shows this, and there's been no movement on that bug. How
> about we pick up this patch until it's been resolved?
>
Sure, I'll add info about GCC bug in changelog and resend the patch.
>
> -Olof
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-11-02 21:27 ` Olof Johansson
2018-11-07 14:44 ` Andrey Ryabinin
@ 2018-11-07 14:45 ` Andrey Ryabinin
2018-11-07 16:23 ` Olof Johansson
2018-11-07 20:55 ` Andrew Morton
1 sibling, 2 replies; 10+ messages in thread
From: Andrey Ryabinin @ 2018-11-07 14:45 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-kernel, Olof Johansson, Arnd Bergmann, Andrey Ryabinin
From: Arnd Bergmann <arnd@arndb.de>
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.
[aryabinin: Add information about GCC bug in changelog]
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
---
lib/ubsan.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/ubsan.c b/lib/ubsan.c
index 59fee96c29a0..e4162f59a81c 100644
--- 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;
--
2.18.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-11-07 14:45 ` [PATCH v2] " Andrey Ryabinin
@ 2018-11-07 16:23 ` Olof Johansson
2018-11-07 20:55 ` Andrew Morton
1 sibling, 0 replies; 10+ messages in thread
From: Olof Johansson @ 2018-11-07 16:23 UTC (permalink / raw)
To: aryabinin; +Cc: Andrew Morton, Linux Kernel Mailing List, Arnd Bergmann
On Wed, Nov 7, 2018 at 6:45 AM Andrey Ryabinin <aryabinin@virtuozzo.com> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> 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.
>
> [aryabinin: Add information about GCC bug in changelog]
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Acked-by: Olof Johansson <olof@lixom.net>
While it's a GCC bug, it's there in official releases now and it makes
warnings noisy so we'd rather silence it.
-Olof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-11-07 14:45 ` [PATCH v2] " Andrey Ryabinin
2018-11-07 16:23 ` Olof Johansson
@ 2018-11-07 20:55 ` Andrew Morton
2018-11-07 21:44 ` Arnd Bergmann
1 sibling, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2018-11-07 20:55 UTC (permalink / raw)
To: Andrey Ryabinin; +Cc: linux-kernel, Olof Johansson, Arnd Bergmann
On Wed, 7 Nov 2018 17:45:16 +0300 Andrey Ryabinin <aryabinin@virtuozzo.com> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> 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?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn
2018-11-07 20:55 ` Andrew Morton
@ 2018-11-07 21:44 ` Arnd Bergmann
0 siblings, 0 replies; 10+ messages in thread
From: Arnd Bergmann @ 2018-11-07 21:44 UTC (permalink / raw)
To: Andrew Morton; +Cc: Andrey Ryabinin, Linux Kernel Mailing List, Olof Johansson
On Wed, Nov 7, 2018 at 9:55 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Wed, 7 Nov 2018 17:45:16 +0300 Andrey Ryabinin <aryabinin@virtuozzo.com> wrote:
>
> > From: Arnd Bergmann <arnd@arndb.de>
> > --- 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?
>
Yes, sounds good. Thanks,
arnd
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-11-07 21:45 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-02 15:47 [PATCH] ubsan: don't mark __ubsan_handle_builtin_unreachable as noreturn Arnd Bergmann
2018-02-05 9:02 ` Andrey Ryabinin
2018-02-05 10:15 ` Arnd Bergmann
2018-02-05 10:31 ` Andrey Ryabinin
2018-11-02 21:27 ` Olof Johansson
2018-11-07 14:44 ` Andrey Ryabinin
2018-11-07 14:45 ` [PATCH v2] " Andrey Ryabinin
2018-11-07 16:23 ` Olof Johansson
2018-11-07 20:55 ` Andrew Morton
2018-11-07 21:44 ` Arnd Bergmann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.