python / cpython

The Python programming language
https://www.python.org
Other
63.49k stars 30.41k forks source link

_decimal fails to build with --with-pydebug --with-lto on GCC #94847

Closed tiran closed 2 years ago

tiran commented 2 years ago

Bug report

GH-94474 caused several buildbots with GCC to fail to compile _decimal module with --with-pydebug --with-lto option. The problem did not show up when I was testing my PR on the build bot farm. I can reproduce the issue locally with GCC 12.1.1. Build does not fail with non-debug builds. Only the combination of LTO and debug fails for me

../Modules/_decimal/libmpdec/mpdecimal.c: In function ‘exp_to_string’:
../Modules/_decimal/libmpdec/mpdecimal.c:143:1: error: inlining failed in call to ‘always_inline’ ‘mpd_word_digits’: function not considered for inlining
  143 | mpd_word_digits(mpd_uint_t word)
      | ^
tiran commented 2 years ago

_decimal has been broken on LTO + pydebug builds for a while. We just didn't notice because build failure was not fatal and did not cause the buildbot to break. Here is an older build run from two days ago, https://buildbot.python.org/all/#/builders/285/builds/2550