https://sourceware.org/bugzilla/show_bug.cgi?id=33314
Bug ID: 33314
Summary: CPython crashes when built on arm with
-mtls-dialect=gnu2 and linked with bfd
Product: binutils
Version: 2.46 (HEAD)
Status: NEW
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: sam at gentoo dot org
Target Milestone: ---
With mold, it builds fine and passes the CPython testsuite. I can't test it
with lld as it doesn't seem to support GNU2 TLS for arm.
I can reproduce it with:
```
export CFLAGS_NODIST="-Og -ggdb3 -mtls-dialect=gnu2" ; ../configure
--enable-shared --build=armv7a-unknown-linux-gnueabihf
--host=armv7a-unknown-linux-gnueabihf --target=armv7a-unknown-linux-gnueabihf
&& make -j$(nproc) CPPFLAGS= CFLAGS= LDFLAGS=
```
This works:
```
export CFLAGS_NODIST="-Og -ggdb3 -mtls-dialect=gnu2 -fuse-ld=mold" ;
../configure --enable-shared --build=armv7a-unknown-linux-gnueabihf
--host=armv7a-unknown-linux-gnueabihf --target=armv7a-unknown-linux-gnueabihf
&& make -j$(nproc) CPPFLAGS= CFLAGS= LDFLAGS="-fuse-ld=mold"
```
Backtrace:
```
Program received signal SIGSEGV, Segmentation fault.
_PyFreeList_PopNoStats (fl=0xf7e59fb8 <object_subclasshook_doc+136>) at
../Include/internal/pycore_freelist.h:79
79 fl->freelist = *(void **)obj;
(gdb) bt
#0 _PyFreeList_PopNoStats (fl=0xf7e59fb8 <object_subclasshook_doc+136>) at
../Include/internal/pycore_freelist.h:79
#1 _PyFreeList_Pop (fl=0xf7e59fb8 <object_subclasshook_doc+136>) at
../Include/internal/pycore_freelist.h:88
#2 0xf7bcda50 in new_dict (keys=0xf7f5444c <empty_keys_struct>,
values=values@entry=0x0, used=used@entry=0,
free_values_on_failure=free_values_on_failure@entry=0)
at ../Objects/dictobject.c:873
#3 0xf7bd1008 in PyDict_New () at ../Objects/dictobject.c:973
#4 0xf7c3a82c in init_interned_dict (interp=interp@entry=0xf7f787f0
<_PyRuntime+51952>) at ../Objects/unicodeobject.c:343
#5 0xf7c5c498 in _PyUnicode_InitGlobalObjects (interp=interp@entry=0xf7f787f0
<_PyRuntime+51952>) at ../Objects/unicodeobject.c:15844
#6 0xf7d3ffc4 in pycore_init_global_objects (interp=interp@entry=0xf7f787f0
<_PyRuntime+51952>) at ../Python/pylifecycle.c:689
#7 0xf7d4067c in pycore_interp_init (tstate=0xf7f94828 <_PyRuntime+166696>) at
../Python/pylifecycle.c:873
#8 0xf7d40978 in pyinit_config (runtime=runtime@entry=0xf7f6bd00 <_PyRuntime>,
tstate_p=tstate_p@entry=0xfffee798, config=config@entry=0xfffee63c) at
../Python/pylifecycle.c:954
#9 0xf7d444d4 in pyinit_core (runtime=0xf7f6bd00 <_PyRuntime>,
runtime@entry=0xf7d44614 <Py_InitializeFromConfig+260>, src_config=0xfffee7fc,
src_config@entry=0xfffee7f4,
tstate_p=0xfffee798, tstate_p@entry=0xfffee790) at
../Python/pylifecycle.c:1117
#10 0xf7d44614 in Py_InitializeFromConfig (config=config@entry=0xfffee7f4) at
../Python/pylifecycle.c:1437
#11 0xf7d7a5f0 in pymain_init (args=0xfffee95c, args@entry=0xfffee954) at
../Modules/main.c:68
#12 0xf7d7a774 in pymain_main (args=args@entry=0xfffee954) at
../Modules/main.c:793
#13 0xf7d7a8b8 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at
../Modules/main.c:826
#14 0x004006b8 in main (argc=<optimized out>, argv=<optimized out>) at
../Programs/python.c:15
```
--
You are receiving this mail because:
You are on the CC list for the bug.