summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
authorYurii Rashkovskii <yrashk@gmail.com>2018-05-07 16:18:22 -0700
committerYurii Rashkovskii <yrashk@gmail.com>2018-05-07 16:18:22 -0700
commit480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102 (patch)
treeceaa34034f5de400fd12f60bcebc141d39b77e23 /pkgs/applications/version-management
parentec198337c4d50e4bd94e84db6bc886d375761564 (diff)
downloadnixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.tar
nixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.tar.gz
nixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.tar.bz2
nixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.tar.lz
nixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.tar.xz
nixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.tar.zst
nixlib-480d52ebed1c80e3eff8e8dc6ddb2a402bf3d102.zip
sit: better fix for aarch64 bug
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/sit/aarch64-eexist.patch17
-rw-r--r--pkgs/applications/version-management/sit/aarch64-isel.patch9
-rw-r--r--pkgs/applications/version-management/sit/default.nix2
3 files changed, 10 insertions, 18 deletions
diff --git a/pkgs/applications/version-management/sit/aarch64-eexist.patch b/pkgs/applications/version-management/sit/aarch64-eexist.patch
deleted file mode 100644
index 8b45e77d040d..000000000000
--- a/pkgs/applications/version-management/sit/aarch64-eexist.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/sit-core/src/repository.rs b/sit-core/src/repository.rs
-index ebd357d..074dcc9 100644
---- a/sit-core/src/repository.rs
-+++ b/sit-core/src/repository.rs
-@@ -305,6 +305,12 @@ impl Repository {
-         let id: String = name.into();
-         let mut path = self.items_path.clone();
-         path.push(&id);
-+        #[cfg(all(debug_assertions, target_arch = "aarch64"))] {
-+          use std::io;
-+          if path.is_dir() {
-+             return Err(io::Error::from_raw_os_error(17).into()); // 17 is EEXIST
-+          }
-+        }
-         fs::create_dir(path)?;
-         let id = OsString::from(id);
-         Ok(Item {
diff --git a/pkgs/applications/version-management/sit/aarch64-isel.patch b/pkgs/applications/version-management/sit/aarch64-isel.patch
new file mode 100644
index 000000000000..411922cfd8e7
--- /dev/null
+++ b/pkgs/applications/version-management/sit/aarch64-isel.patch
@@ -0,0 +1,9 @@
+diff --git a/.cargo/config b/.cargo/config
+new file mode 100644
+index 0000000..15e7649
+--- /dev/null
++++ b/.cargo/config
+@@ -0,0 +1,3 @@
++# https://github.com/rust-lang/rust/issues/50516
++[target.'cfg(all(debug_assertions, target_arch = "aarch64"))']
++rustflags = ["-C", "llvm-args=-fast-isel"]
diff --git a/pkgs/applications/version-management/sit/default.nix b/pkgs/applications/version-management/sit/default.nix
index ae84add283e6..e189241531d6 100644
--- a/pkgs/applications/version-management/sit/default.nix
+++ b/pkgs/applications/version-management/sit/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "102haqix13nwcncng1s8qkw68spn6fhh3vysk2nbahw6f78zczqg";
 
-  patches = [ ./aarch64-eexist.patch ];
+  patches = [ ./aarch64-isel.patch ];
 
   meta = with stdenv.lib; {
     description = "Serverless Information Tracker";