Source: mozjs52 Severity: normal Tags: patch User: debian-i...@lists.debian.org Usertags: ia64
Dear Maintainer, Attached please find patches to let mozjs52 build on ia64, and (mostly) pass the test suite. ia64 currently requires -G0 for linking, but crashes if the current *MAINT_APPEND strings are used. Also, the memory allocation fails because the address space randomizer does not take into account ia64 memory allocation. -- System Information: Debian Release: buster/sid APT prefers unreleased APT policy: (500, 'unreleased'), (500, 'unstable') Architecture: ia64 Kernel: Linux 3.14-0.bpo.2-mckinley (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
--- debian/test.sh.orig 2018-04-29 08:55:47.958055376 -0400 +++ debian/test.sh 2018-04-29 08:59:29.181143034 -0400 @@ -28,6 +28,9 @@ (s390x|ppc64) echo "Ignoring test failure, https://bugs.debian.org/878286" ;; + (ia64) + echo "Ignoring test failure, https://bugs.debian.org/897117" + ;; (*) echo "Test failure is considered serious, causing FTBFS" exit 1 --- debian/rules.orig 2018-04-29 09:00:41.632848488 -0400 +++ debian/rules 2018-04-29 09:02:53.504307305 -0400 @@ -17,8 +17,15 @@ SRCDIR = $(CURDIR)/js/src CONFIGURE_FLAGS = -DEB_CFLAGS_MAINT_APPEND += -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks -DEB_CXXFLAGS_MAINT_APPEND += -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks +# ia64 currently has toolchain issues, so relax the link optimization +# -fno-schedule-insns2 breaks gcc on ia64, so leave it enabled +ifneq (,$(findstring $(DEB_BUILD_ARCH),ia64)) + DEB_CFLAGS_MAINT_APPEND += -G0 + DEB_CXXFLAGS_MAINT_APPEND += -G0 +else + DEB_CFLAGS_MAINT_APPEND += -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks + DEB_CXXFLAGS_MAINT_APPEND += -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks +endif ifneq (,$(findstring $(DEB_BUILD_ARCH),armel armhf)) DEB_CFLAGS_MAINT_APPEND += -fno-schedule-insns DEB_CXXFLAGS_MAINT_APPEND += -fno-schedule-insns
--- mozjs52-52.3.1/js/src/jit/ProcessExecutableMemory.cpp 2017-08-08 06:25:50.000000000 -0400 +++ mozjs52.fixed/js/src/jit/ProcessExecutableMemory.cpp 2018-04-27 09:30:47.390494330 -0400 @@ -290,8 +290,13 @@ void* randomAddr = ComputeRandomAllocationAddress(); void* p = MozTaggedAnonymousMmap(randomAddr, bytes, PROT_NONE, MAP_PRIVATE | MAP_ANON, -1, 0, "js-executable-memory"); - if (p == MAP_FAILED) - return nullptr; + if (p == MAP_FAILED) { + // the comment above appears to be incorrect, so retry without the hint + p = MozTaggedAnonymousMmap(NULL, bytes, PROT_NONE, MAP_PRIVATE | MAP_ANON, + -1, 0, "js-executable-memory"); + if (p == MAP_FAILED) + return nullptr; + } return p; }