mirror of
https://github.com/python/cpython.git
synced 2026-06-04 16:50:51 +00:00
gh-149202: Don't use -fno-omit-frame-pointer on ppc64le (#149485)
The power ABI specification requires that compilers maintain a back chain by default, so unwinding already works without a dedicated frame pointer. Don't use -fno-omit-frame-pointer on ppc64le.
This commit is contained in:
parent
612140e7dd
commit
b3cfd36ba4
4 changed files with 19 additions and 0 deletions
|
|
@ -792,6 +792,8 @@ also be used to improve performance.
|
|||
- ``-marm`` and/or ``-mno-thumb`` is added on 32-bit ARM when supported,
|
||||
- on s390x platforms, when supported, ``-mbackchain`` is added *instead*.
|
||||
of the above frame pointer flags.
|
||||
- on ppc64le platforms, no compiler flags is needed since the power ABI
|
||||
requires that compilers maintain a back chain by default.
|
||||
|
||||
Frame pointers enable profilers, debuggers, and system tracing tools
|
||||
(``perf``, ``eBPF``, ``dtrace``, ``gdb``) to walk the C call stack
|
||||
|
|
|
|||
|
|
@ -56,6 +56,12 @@ def _frame_pointers_expected(machine):
|
|||
if sys.maxsize < 2**32:
|
||||
return None
|
||||
return True
|
||||
if machine == "ppc64le":
|
||||
# The power ABI specification requires that compilers maintain a
|
||||
# back chain by default, so unwinding already works without a
|
||||
# dedicated frame pointer.
|
||||
# https://openpowerfoundation.org/specifications/64bitelfabi/
|
||||
return True
|
||||
if machine == "x86_64":
|
||||
final_opt = ""
|
||||
for opt in cflags.split():
|
||||
|
|
|
|||
8
configure
generated
vendored
8
configure
generated
vendored
|
|
@ -10435,6 +10435,14 @@ fi
|
|||
;; #(
|
||||
*) :
|
||||
;;
|
||||
esac
|
||||
case $host_cpu in #(
|
||||
powerpc64le) :
|
||||
|
||||
frame_pointer_cflags=""
|
||||
;; #(
|
||||
*) :
|
||||
;;
|
||||
esac
|
||||
case $host_cpu in #(
|
||||
s390*) :
|
||||
|
|
|
|||
|
|
@ -2557,6 +2557,9 @@ AS_VAR_IF([ac_cv_gcc_compat], [yes], [
|
|||
frame_pointer_cflags="$frame_pointer_cflags -mno-thumb"
|
||||
], [], [-Werror])
|
||||
])
|
||||
AS_CASE([$host_cpu], [powerpc64le], [
|
||||
frame_pointer_cflags=""
|
||||
])
|
||||
AS_CASE([$host_cpu], [s390*], [
|
||||
AX_CHECK_COMPILE_FLAG([-mbackchain], [
|
||||
dnl Do not use no-omit-frame-pointer; see gh-149362
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue