Bug#897178: mozjs52: more fixes for ia64
Jason Duerstock
jason.duerstock at gmail.com
Sun Apr 29 14:16:20 BST 2018
Source: mozjs52
Severity: normal
Tags: patch
User: debian-ia64 at 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)
-------------- next part --------------
--- 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
-------------- next part --------------
--- 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;
}
More information about the pkg-gnome-maintainers
mailing list