gh-128472: Add `-skip-funcs` to BOLT options to fix computed goto errors (gh-128511)
* Add `-skip-funcs` to BOLT options to fix computed goto errors
* NEWS
---------
(cherry picked from commit
24b147a19b360c49cb1740aa46211d342aaa071f)
Co-authored-by: Zanie Blue <contact@zanie.dev>
Co-authored-by: Gregory Szorc <gregory.szorc@gmail.com>
--- /dev/null
+Skip BOLT optimization of functions using computed gotos, fixing errors on
+build with LLVM 19.
printf %s "checking BOLT_COMMON_FLAGS... " >&6; }
if test -z "${BOLT_COMMON_FLAGS}"
then
- BOLT_COMMON_FLAGS=-update-debug-sections
+ BOLT_COMMON_FLAGS=" -update-debug-sections -skip-funcs=_PyEval_EvalFrameDefault,sre_ucs1_match/1,sre_ucs2_match/1,sre_ucs4_match/1 "
fi
then
AS_VAR_SET(
[BOLT_COMMON_FLAGS],
- [-update-debug-sections]
+ [m4_normalize("
+ [-update-debug-sections]
+
+ dnl At least LLVM 19.x doesn't support computed gotos in PIC compiled code.
+ dnl Exclude functions containing computed gotos.
+ dnl TODO this may be fixed in LLVM 20.x via https://github.com/llvm/llvm-project/pull/120267.
+ [-skip-funcs=_PyEval_EvalFrameDefault,sre_ucs1_match/1,sre_ucs2_match/1,sre_ucs4_match/1]
+ ")]
)
fi