summary refs log tree commit diff
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2023-03-07 18:20:46 +0200
committerWeijia Wang <9713184+wegank@users.noreply.github.com>2023-03-07 18:20:46 +0200
commit3e5f408e735ad492319e72a158f5815523fc7adf (patch)
tree095925309a4cca4ae4697b5033009c5b932a632a
parentacdc303ed762696c1be266947a0c99bc4db4a9b9 (diff)
downloadnixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.tar
nixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.tar.gz
nixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.tar.bz2
nixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.tar.lz
nixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.tar.xz
nixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.tar.zst
nixpkgs-3e5f408e735ad492319e72a158f5815523fc7adf.zip
isabelle: add aarch64-linux support
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix20
1 files changed, 15 insertions, 5 deletions
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index d2326d2d4d0..2cb96bbc0a3 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -58,10 +58,16 @@ in stdenv.mkDerivation (finalAttrs: rec {
           url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
           sha256 = "0b84rx9b7b5y8m1sg7xdp17j6yngd2dkx6v5bkd8h7ly102lai18";
         }
-    else
+    else if stdenv.hostPlatform.isx86
+    then
       fetchurl {
         url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
         sha256 = "1ih4gykkp1an43qdgc5xzyvf30fhs0dah3y0a5ksbmvmjsfnxyp7";
+      }
+    else
+      fetchurl {
+        url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux_arm.tar.gz";
+        hash = "sha256-qI/BR/KZwLjnkO5q/yYeW4lN4xyUe78VOM2INC/Z/io=";
       };
 
   nativeBuildInputs = [ java ];
@@ -71,7 +77,7 @@ in stdenv.mkDerivation (finalAttrs: rec {
 
   sourceRoot = "${dirname}${lib.optionalString stdenv.isDarwin ".app"}";
 
-  doCheck = true;
+  doCheck = stdenv.hostPlatform.system != "aarch64-linux";
   checkPhase = "bin/isabelle build -v HOL-SMT_Examples";
 
   postUnpack = lib.optionalString stdenv.isDarwin ''
@@ -112,13 +118,15 @@ in stdenv.mkDerivation (finalAttrs: rec {
       ISABELLE_JDK_HOME=${java}
     EOF
 
+  '' + lib.optionalString stdenv.hostPlatform.isx86 ''
     rm contrib/naproche-*/x86*/Naproche-SAD
     ln -s ${naproche}/bin/Naproche-SAD contrib/naproche-*/x86*/
+  '' + ''
 
     echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
 
     for comp in contrib/jdk* contrib/polyml-* contrib/verit-* contrib/vampire-* contrib/e-*; do
-      rm -rf $comp/x86*
+      rm -rf $comp/${if stdenv.hostPlatform.isx86 then "x86" else "arm"}*
     done
 
     substituteInPlace lib/Tools/env \
@@ -137,9 +145,11 @@ in stdenv.mkDerivation (finalAttrs: rec {
     substituteInPlace lib/scripts/isabelle-platform \
       --replace 'ISABELLE_APPLE_PLATFORM64=arm64-darwin' ""
   '' + lib.optionalString stdenv.isLinux ''
-    arch=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux" else "x86-linux"}
+    arch=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux"
+           else if stdenv.hostPlatform.isx86 then "x86-linux"
+           else "arm64-linux"}
     for f in contrib/*/$arch/{z3,epclextract,nunchaku,SPASS,zipperposition}; do
-      patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f"
+      patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f"${lib.optionalString stdenv.isAarch64 " || true"}
     done
     patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) contrib/bash_process-*/platform_$arch/bash_process
     for d in contrib/kodkodi-*/jni/$arch; do