Bug#995987: python3.10: Please build with -DWITH_PYMALLOC_RADIX_TREE=0 on ia64
Source: python3.10
Severity: normal
User: debian-ia64@lists.debian.org
Usertags: ia64
X-Debbugs-Cc: debian-ia64@lists.debian.org
Hi!
Python 3.10 introduced a new memory allocator which is not compatible with
64-bit systems with large virtual address spaces at the moment because it
assumes address spaces to be limited to 48 bits [1].
This causes the Python interpretor to segfault on ia64. This problem can
be avoided by building with -DWITH_PYMALLOC_RADIX_TREE=0. For me, the following
change to debian/rules was sufficient:
--- debian/rules.orig 2021-10-08 12:10:19.000000000 +0000
+++ debian/rules 2021-10-09 12:04:40.362349542 +0000
@@ -179,6 +179,7 @@
# on ia64, disable -O3 until gcc bug #85412 is fixed
ifeq ($(DEB_HOST_ARCH),ia64)
EXTRA_OPT_CFLAGS += -O2
+ DPKG_CPPFLAGS += -DWITH_PYMALLOC_RADIX_TREE=0
endif
# see #972202, and https://gcc.gnu.org/PR97431
ifneq (,$(filter $(DEB_HOST_ARCH), hppa sh4))
FWIW, I think we can even drop the "EXTRA_OPT_CFLAGS += -O2" again as I could
build cpython from git without overriding the optimization level on the ia64
porterbox.
Thanks,
Adrian
> [1] https://github.com/python/cpython/pull/14474
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@debian.org
`. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
--- debian/rules.orig 2021-10-08 12:10:19.000000000 +0000
+++ debian/rules 2021-10-09 12:04:40.362349542 +0000
@@ -179,6 +179,7 @@
# on ia64, disable -O3 until gcc bug #85412 is fixed
ifeq ($(DEB_HOST_ARCH),ia64)
EXTRA_OPT_CFLAGS += -O2
+ DPKG_CPPFLAGS += -DWITH_PYMALLOC_RADIX_TREE=0
endif
# see #972202, and https://gcc.gnu.org/PR97431
ifneq (,$(filter $(DEB_HOST_ARCH), hppa sh4))
Reply to: