Re: [PATCH] compiler-gcc.h: Remove ancient workaround for gcc PR 58670

From: Christophe Leroy
Date: Fri Aug 26 2022 - 03:03:05 EST




Le 25/08/2022 à 20:08, Segher Boessenkool a écrit :
> Hi!
>
> On Thu, Aug 25, 2022 at 04:00:52PM +0530, Naveen N. Rao wrote:
>> This is causing a build issue on ppc64le with a new patch replacing use
>> of unreachable() with __builtin_unreachable() in __WARN_FLAGS():
>> https://lore.kernel.org/linuxppc-dev/20220808114908.240813-2-sv@xxxxxxxxxxxxx/
>
> What is the compiler version? If this is a GCC version that is still
> supported, could you please open a PR? <https://gcc.gnu.org/bugs.html>
>
>> during RTL pass: combine
>> In file included from /linux/kernel/locking/rtmutex_api.c:9:
>> /linux/kernel/locking/rtmutex.c: In function
>> '__rt_mutex_slowlock.constprop':
>> /linux/kernel/locking/rtmutex.c:1612:1: internal compiler error: in
>> purge_dead_edges, at cfgrtl.c:3369
>> 1612 | }
>> | ^
>> 0x142817c internal_error(char const*, ...)
>> ???:0
>> 0x5c8a1b fancy_abort(char const*, int, char const*)
>> ???:0
>> 0x72017f purge_all_dead_edges()
>> ???:0
>> Please submit a full bug report,
>> with preprocessed source if appropriate.
>> Please include the complete backtrace with any bug report.
>> See <file:///usr/share/doc/gcc-11/README.Bugs> for instructions.
>
> (For some reason your compiler does not show compiler source code file
> names or line numbers.)
>
> So it is GCC 11... is it 11.3? If not, please try with that.

With gcc 11.3 I get:

CC kernel/locking/rtmutex_api.o
during RTL pass: combine
In file included from kernel/locking/rtmutex_api.c:9:
kernel/locking/rtmutex.c: In function '__rt_mutex_slowlock.constprop':
kernel/locking/rtmutex.c:1612:1: internal compiler error: in
purge_dead_edges, at cfgrtl.c:3369
1612 | }
| ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
make[2]: *** [scripts/Makefile.build:249 : kernel/locking/rtmutex_api.o]
Erreur 1
make[1]: *** [scripts/Makefile.build:465 : kernel/locking] Erreur 2
make: *** [Makefile:1857 : kernel] Erreur 2


With gcc 12.2 I get:

CC kernel/locking/rtmutex_api.o
during RTL pass: combine
In file included from kernel/locking/rtmutex_api.c:9:
kernel/locking/rtmutex.c: In function '__rt_mutex_slowlock.constprop':
kernel/locking/rtmutex.c:1612:1: internal compiler error: in
purge_dead_edges, at cfgrtl.cc:3347
1612 | }
| ^
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://gcc.gnu.org/bugs/> for instructions.
make[2]: *** [scripts/Makefile.build:249 : kernel/locking/rtmutex_api.o]
Erreur 1
make[1]: *** [scripts/Makefile.build:465 : kernel/locking] Erreur 2
make: *** [Makefile:1857 : kernel] Erreur 2


>
>> So, it looks like gcc still has issues with certain uses of asm goto.
>
> Could be. Please attach preprocessed code (or reduced code that shows
> the same problem if you have that / can make that). Thanks!
>
>
> Segher