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 - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@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))