summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2017-03-27 13:28:33 +0300
committerEfraim Flashner <efraim@flashner.co.il>2017-03-28 09:34:44 +0300
commit26f38d313bd4ccece05610f762612daa0746dd44 (patch)
treeb9a4c5519b393885c6cf2e6b625b53655dd61c2e
parentb4f67b7ebb44fa0a6c8abeb4d6fc3bb2ac2de329 (diff)
downloadguix-26f38d313bd4ccece05610f762612daa0746dd44.tar.gz
gnu: mozjs@24: Add aarch64-support.
* gnu/packages/gnuzilla.scm (mozjs@24)[source]: Add patch.
[arguments]: Add flag for building on aarch64-linux, delete failing test.
* gnu/packages/patches/mozjs24-aarch64-support.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnuzilla.scm12
-rw-r--r--gnu/packages/patches/mozjs24-aarch64-support.patch21
3 files changed, 32 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index f69946ba14..9231870a94 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -767,6 +767,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mpc123-initialize-ao.patch		\
   %D%/packages/patches/mplayer2-theora-fix.patch		\
   %D%/packages/patches/module-init-tools-moduledir.patch	\
+  %D%/packages/patches/mozjs24-aarch64-support.patch		\
   %D%/packages/patches/multiqc-fix-git-subprocess-error.patch	\
   %D%/packages/patches/mumps-build-parallelism.patch		\
   %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch	\
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 97fddc2a84..5c892f197a 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -117,16 +117,20 @@ in C/C++.")
                (base32
                 "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6"))
               (modules '((guix build utils)))
+              (patches (search-patches "mozjs24-aarch64-support.patch"))
               (snippet
                ;; Fix incompatibility with Perl 5.22+.
                '(substitute* '("js/src/config/milestone.pl")
                   (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE")))))
     (arguments
-     '(;; XXX: parallel build fails, lacking:
+     `(;; XXX: parallel build fails, lacking:
        ;;   mkdir -p "system_wrapper_js/"
        #:parallel-build? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'delete-timedout-test
+           ;; This test times out on slower hardware
+           (lambda _ (delete-file "js/src/jit-test/tests/basic/bug698584.js")))
          (replace
           'configure
           (lambda* (#:key outputs #:allow-other-keys)
@@ -139,7 +143,11 @@ in C/C++.")
                               (string-append "--prefix=" out)
                               "--with-system-nspr"
                               "--enable-system-ffi"
-                              "--enable-threadsafe"))))))))
+                              "--enable-threadsafe"
+                              ,@(if (string=? "aarch64-linux"
+                                              (%current-system))
+                                  '("--host=aarch64-unknown-linux-gnu")
+                                  '())))))))))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)
diff --git a/gnu/packages/patches/mozjs24-aarch64-support.patch b/gnu/packages/patches/mozjs24-aarch64-support.patch
new file mode 100644
index 0000000000..9dca8e500c
--- /dev/null
+++ b/gnu/packages/patches/mozjs24-aarch64-support.patch
@@ -0,0 +1,21 @@
+This patch is sourced from Debian's mozjs24 patch set.
+
+Description: Add arm64 support
+Author: Andreas Schwab <schwab@suse.de>
+Origin: vendor, https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch
+Forwarded: no
+Last-Update: 2014-01-03
+
+Index: b/mfbt/double-conversion/utils.h
+===================================================================
+--- a/mfbt/double-conversion/utils.h
++++ b/mfbt/double-conversion/utils.h
+@@ -58,7 +58,7 @@
+     defined(__mips__) || defined(__powerpc__) || \
+     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
+     defined(__SH4__) || defined(__alpha__) || \
+-    defined(_MIPS_ARCH_MIPS32R2)
++    defined(_MIPS_ARCH_MIPS32R2) || defined(__aarch64__)
+ #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
+ #if defined(_WIN32)