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