Skip to content

Commit d59de4c

Browse files
committed
Add GCC's LTO-generated function clones, with computed gotos, to BOLT skip list
When building with --with-lto, --enable-bolt and --enable-shared, GCC creates optimized function clones with the suffix .lto_priv.0. The sre_ucs*_match functions use computed gotos, which BOLT cannot optimize, so their .lto_priv.0 clones must be skipped as well. Static builds and Clang's LTO implementation are not affected.
1 parent d2deb8f commit d59de4c

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

configure

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

configure.ac

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2162,7 +2162,8 @@ then
21622162
dnl At least LLVM 19.x doesn't support computed gotos in PIC compiled code.
21632163
dnl Exclude functions containing computed gotos.
21642164
dnl TODO this may be fixed in LLVM 20.x via https://github.com/llvm/llvm-project/pull/120267.
2165-
[-skip-funcs=_PyEval_EvalFrameDefault,sre_ucs1_match/1,sre_ucs2_match/1,sre_ucs4_match/1]
2165+
dnl GCC's LTO creates .lto_priv.0 clones of these functions.
2166+
[-skip-funcs=_PyEval_EvalFrameDefault,sre_ucs1_match/1,sre_ucs2_match/1,sre_ucs4_match/1,sre_ucs1_match.lto_priv.0/1,sre_ucs2_match.lto_priv.0/1,sre_ucs4_match.lto_priv.0/1]
21662167
")]
21672168
)
21682169
fi

0 commit comments

Comments
 (0)