Subject: bug#63365: 30.0.50; GCC 13.1 breaks building Emacs with native-compilation

From: Eli Zaretskii <[email-masked]>
Date: Fri, 23 Jun 2023 08:32:26 +0300

> From: Arash Esbati <[email-masked]>
> Cc: "[email-masked]" <[email-masked]>,  "[email-masked]"
>  <[email-masked]>,  " [email-masked]" <[email-masked]>,
>   András Svraka
>  <[email-masked]>
> Date: Thu, 22 Jun 2023 22:34:48 +0200
> 
> Many thanks for digging into this.  I can confirm that Emacs builds with
> -fno-optimize-sibling-calls in CFLAGS.  I have a script which (now)
> does:
> 
>   CFLAGS='-O3 -g0 -pipe -fno-optimize-sibling-calls' \
>   ./configure ...
> 
> and it works again.
> 
> Now the question is: Is this considered a GCC bug and we should close
> this report as notabug?

AFAIR, last Andrea looked into this he was surprised by this finding
and didn't understand how -foptimize-sibling-calls could cause such
problems.  I hope Andrea will come up with some tests for you guys to
provide more information, so he does eventually understand the
cause(s).  I don't think we can in good faith claim this is a GCC bug
before we understand the problem better.

Meanwhile, I'd like to consider a PROBLEMS entry about this, if that's
needed.  Do I understand correctly that -fno-optimize-sibling-calls is
needed for successful building of Emacs 29.0.92 using MinGW64 GCC 13.1?
If so, I think we should have this in PROBLEMS.

Also, why are you using -O3?  That is not recommended when building
Emacs.  (But I understand that -foptimize-sibling-calls is in -O2, not
just in -O3, and so -fno-optimize-sibling-calls is needed even if
using -O2, right?)