https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97431
Bug ID: 97431 Summary: [SH] Python crashes with 'Segmentation fault with -finline-small-functions Product: gcc Version: 10.2.0 URL: https://buildd.debian.org/status/fetch.php?pkg=python3 .9&arch=sh4&ver=3.9.0-1&stamp=1601938112&raw=0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: glaubitz at physik dot fu-berlin.de CC: bugdal at aerifal dot cx, kkojima at gcc dot gnu.org, olegendo at gcc dot gnu.org, ysato at users dot sourceforge.jp Target Milestone: --- Target: sh*-*-* Building Python 3.9 on Debian/sh4 unstable with -finline-small-functions causes the Python interpreter to segfault during build. Backtrace: Program received signal SIGSEGV, Segmentation fault. long_richcompare (self=0x2a15f490, other=0x2a15f4a0, op=<optimized out>) at ../Objects/longobject.c:3031 3031 long_richcompare(PyObject *self, PyObject *other, int op) (gdb) bt #0 long_richcompare (self=0x2a15f490, other=0x2a15f4a0, op=<optimized out>) at ../Objects/longobject.c:3031 #1 0x2964f740 in do_richcompare (op=5, w=0x2a15f4a0, v=0x2a15f490, tstate=0x4154e8) at ../Objects/object.c:673 #2 PyObject_RichCompare (v=0x2a15f490, w=0x2a15f4a0, op=5) at ../Objects/object.c:723 #3 0x295cde98 in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:2978 #4 0x296d689c in _PyEval_EvalFrame (throwflag=0, f=0x2a19f448, tstate=0x4154e8) at ../Include/internal/pycore_ceval.h:40 #5 _PyEval_EvalCode (tstate=0x4154e8, _co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=0x2a1b5458, argcount=3, kwnames=0x0, kwargs=0x2a1b5464, kwcount=0, kwstep=1, defs=0x0, defcount=0, kwdefs=0x2a1a3d70, closure=0x0, name=0x2a198470, qualname=0x2a198470) at ../Python/ceval.c:4299 #6 0x2960d8ac in _PyFunction_Vectorcall (func=<optimized out>, stack=0x2a1b5458, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:395 #7 0x295d1ae0 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x2a170e80, tstate=<optimized out>) at ../Include/cpython/abstract.h:118 #8 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x2a170e80) at ../Include/cpython/abstract.h:127 #9 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x4154e8) at ../Python/ceval.c:5044 #10 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3490 #11 0x295cac90 in _PyEval_EvalFrame (throwflag=0, f=0x2a1b5318, tstate=0x4154e8) at ../Include/internal/pycore_ceval.h:40 #12 function_code_fastcall (tstate=0x4154e8, co=<optimized out>, args=0x2a1b1574, nargs=1, globals=0x2a1a3ca8) at ../Objects/call.c:329 #13 0x2960d990 in _PyFunction_Vectorcall (func=<optimized out>, stack=0x2a1b1570, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:366 #14 0x295d1ae0 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x2a1af460, tstate=<optimized out>) at ../Include/cpython/abstract.h:118 #15 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=0x2a1af460) at ../Include/cpython/abstract.h:127 Disassembly: (gdb) x/-10i $pc 0x296318d4 <long_richcompare+132>: rts 0x296318d6 <long_richcompare+134>: mov.l @r15+,r8 0x296318d8 <long_richcompare+136>: mov.l 0x296318f4 <long_richcompare+164>,r0 ! 0x8b8 0x296318da <long_richcompare+138>: mov.l @(r0,r12),r0 0x296318dc <long_richcompare+140>: mov.l @r0,r1 0x296318de <long_richcompare+142>: add #1,r1 0x296318e0 <long_richcompare+144>: mov.l r1,@r0 0x296318e2 <long_richcompare+146>: mov.l @r15+,r12 0x296318e4 <long_richcompare+148>: rts 0x296318e6 <long_richcompare+150>: mov.l @r15+,r8 (gdb) x/10i $pc => 0x296318e8 <long_richcompare+152>: mov.l r9,@(16,r13) 0x296318ea <long_richcompare+154>: mov.b @(r0,r3),r0 0x296318ec <long_richcompare+156>: .word 0x0000 0x296318ee <long_richcompare+158>: .word 0x0100 0x296318f0 <long_richcompare+160>: .word 0x0a70 0x296318f2 <long_richcompare+162>: .word 0x0000 0x296318f4 <long_richcompare+164>: .word 0x08b8 0x296318f6 <long_richcompare+166>: .word 0x0000 0x296318f8 <long_richcompare+168>: mova 0x29631904 <long_richcompare+180>,r0 0x296318fa <long_richcompare+170>: add r6,r6 (gdb) Full build log in: https://buildd.debian.org/status/fetch.php?pkg=python3.9&arch=sh4&ver=3.9.0-1&stamp=1601938112&raw=0 Let me know where to dig next.