You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
That's a different architecture. If you care, you should open a separated issue for i586. You pass explicitly -fomit-frame-pointer which goes against PEP 831 (approved in Python 3.15).
Yes, we have -fomit-frame-pointer specifically for i586 architecture.
if"no-omit-frame-pointer"incflags:
# For example, configure adds -fno-omit-frame-pointer by default on# supported GCC-compatible builds.returnTrueif"omit-frame-pointer"incflags:
returnFalse
It checks for -fno-omit-frame-pointer first, even if -fomit-frame-pointer is defined after. Instead, we should check for flags in order and remembers the last option. See for example:
defpython_is_optimized():
"""Find if Python was built with optimizations."""cflags=sysconfig.get_config_var('PY_CFLAGS') or''final_opt=""foroptincflags.split():
ifopt.startswith('-O'):
final_opt=optifsysconfig.get_config_var("CC") =="gcc":
non_opts= ('', '-O0', '-Og')
else:
non_opts= ('', '-O0')
returnfinal_optnotinnon_opts
Our GCC people persuaded me that we omit frame pointers only on archs like i586 for a reason, so in the end I added to ./configure command for 3.15 only
%ifarch&ix86--without-frame-pointers \
%endif
I don’t think we care that much about the maximum performance and profiling on those architectures. We’ll see how it ends up working.
Perhaps what this ticket can stand for in the end is that in this situation a user would get some better error/warning message, but &ix86 architectures are probably so inconsequential that it doesn’t matter that much.
Activity
vstinner commentedon Jun 17, 2026
The test checks:
It checks for
-fno-omit-frame-pointerfirst, even if-fomit-frame-pointeris defined after. Instead, we should check for flags in order and remembers the last option. See for example:vstinner commentedon Jun 17, 2026
You don't want to implement PEP 831? Is there a reason to not implement it?
mcepl commentedon Jun 17, 2026
Our GCC people persuaded me that we omit frame pointers only on archs like i586 for a reason, so in the end I added to
./configurecommand for 3.15 onlyI don’t think we care that much about the maximum performance and profiling on those architectures. We’ll see how it ends up working.
Perhaps what this ticket can stand for in the end is that in this situation a user would get some better error/warning message, but
&ix86architectures are probably so inconsequential that it doesn’t matter that much.vstinner commentedon Jun 18, 2026
Oh. I forgot that
_Py_WITH_FRAME_POINTERSmacro was added recently topyconfig.h. It's set to 1 by default.Can you test setting _Py_WITH_FRAME_POINTERS to
0in pyconfig.h to see if it does fix test_c_stack_unwind?