aboutsummaryrefslogtreecommitdiff
path: root/nix
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-10-14 15:45:37 +0200
committerAlex Auvolat <alex@adnab.me>2022-10-14 18:10:24 +0200
commite89e047c5af33ac47dabbcfdc12305d544a13ade (patch)
tree411d204765054f4e57973facf20f4eea6c75d4c5 /nix
parent8d04ae7014991319e97d4280f0e9d7a70c89f10b (diff)
downloadgarage-e89e047c5af33ac47dabbcfdc12305d544a13ade.tar.gz
garage-e89e047c5af33ac47dabbcfdc12305d544a13ade.zip
Fix i386 build with custom toolchain (armv6 unknown state)
Diffstat (limited to 'nix')
-rw-r--r--nix/common.nix8
-rw-r--r--nix/compile.nix48
-rw-r--r--nix/toolchain.nix10
3 files changed, 30 insertions, 36 deletions
diff --git a/nix/common.nix b/nix/common.nix
index 031a75c0..2b9cc751 100644
--- a/nix/common.nix
+++ b/nix/common.nix
@@ -8,12 +8,12 @@ rec {
#sha256 = "1xy9zpypqfxs5gcq5dcla4bfkhxmh5nzn9dyqkr03lqycm9wg5cr";
# NixOS 22.05
- url = "https://github.com/NixOS/nixpkgs/archive/refs/tags/22.05.zip";
- sha256 = "0d643wp3l77hv2pmg2fi7vyxn4rwy0iyr8djcw1h5x72315ck9ik";
+ #url = "https://github.com/NixOS/nixpkgs/archive/refs/tags/22.05.zip";
+ #sha256 = "0d643wp3l77hv2pmg2fi7vyxn4rwy0iyr8djcw1h5x72315ck9ik";
# As of 2022-10-13
- #url = "https://github.com/NixOS/nixpkgs/archive/a3073c49bc0163fea6a121c276f526837672b555.zip";
- #sha256 = "1bz632psfbpmicyzjb8b4265y50shylccvfm6ry6mgnv5hvz324s";
+ url = "https://github.com/NixOS/nixpkgs/archive/a3073c49bc0163fea6a121c276f526837672b555.zip";
+ sha256 = "1bz632psfbpmicyzjb8b4265y50shylccvfm6ry6mgnv5hvz324s";
};
cargo2nixSrc = fetchGit {
# As of 2022-10-14: (TODO)
diff --git a/nix/compile.nix b/nix/compile.nix
index 62eb956a..9406bb44 100644
--- a/nix/compile.nix
+++ b/nix/compile.nix
@@ -13,9 +13,10 @@ let
log = v: builtins.trace v v;
pkgs = import pkgsSrc {
- inherit system;
+ inherit system;
crossSystem = {
config = target;
+ isStatic = true;
};
overlays = [ cargo2nixOverlay ];
};
@@ -30,26 +31,22 @@ let
we emulate the structure of the Rust object created by rustOverlay.
In practise, rustOverlay ships rustc+cargo in a single derivation while
NixOS ships them in separate ones. We reunite them with symlinkJoin.
- */
- /*
- rustToolchain = {
- rustc = pkgs.symlinkJoin {
- name = "rust-channel";
- paths = [
- pkgs.rustPlatform.rust.cargo
- pkgs.rustPlatform.rust.rustc
- ];
- };
- clippy = pkgs.symlinkJoin {
- name = "clippy-channel";
- paths = [
- pkgs.rustPlatform.rust.cargo
- pkgs.rustPlatform.rust.rustc
- pkgs.clippy
- ];
- };
- }.${compiler};
*/
+ toolchainOptions =
+ if target == "x86_64-unknown-linux-musl" || target == "aarch64-unknown-linux-musl" then {
+ rustVersion = "1.63.0";
+ extraRustComponents = [ "clippy" ];
+ } else {
+ rustToolchain = pkgs.symlinkJoin {
+ name = "rust-static-toolchain-${target}";
+ paths = [
+ pkgs.rustPlatform.rust.cargo
+ pkgs.rustPlatform.rust.rustc
+ # clippy not needed, it only runs on amd64
+ ];
+ };
+ };
+
buildEnv = (drv: {
rustc = drv.setBuildEnv;
@@ -57,7 +54,7 @@ let
${drv.setBuildEnv or "" }
echo
echo --- BUILDING WITH CLIPPY ---
- echo
+ echo
export NIX_RUST_BUILD_FLAGS="''${NIX_RUST_BUILD_FLAGS} --deny warnings"
export RUSTC="''${CLIPPY_DRIVER}"
@@ -215,12 +212,7 @@ let
else target;
in
- pkgs.rustBuilder.makePackageSet {
+ pkgs.rustBuilder.makePackageSet ({
inherit release packageFun packageOverrides codegenOpts rootFeatures;
-
- #inherit rustToolchain;
- rustVersion = "1.63.0";
-
target = rustTarget;
- extraRustComponents = [ "clippy" ];
- }
+ } // toolchainOptions)
diff --git a/nix/toolchain.nix b/nix/toolchain.nix
index d6fe295a..079fcf13 100644
--- a/nix/toolchain.nix
+++ b/nix/toolchain.nix
@@ -6,14 +6,17 @@ with import ./common.nix;
let
platforms = [
- "x86_64-unknown-linux-musl"
+ #"x86_64-unknown-linux-musl"
"i686-unknown-linux-musl"
- "aarch64-unknown-linux-musl"
+ #"aarch64-unknown-linux-musl"
"armv6l-unknown-linux-musleabihf"
];
pkgsList = builtins.map (target: import pkgsSrc {
inherit system;
- crossSystem = { config = target; };
+ crossSystem = {
+ config = target;
+ isStatic = true;
+ };
overlays = [ cargo2nixOverlay ];
}) platforms;
pkgsHost = import pkgsSrc {};
@@ -25,7 +28,6 @@ in
lib.flatten (builtins.map (pkgs: [
pkgs.rustPlatform.rust.rustc
pkgs.rustPlatform.rust.cargo
- pkgs.clippy
pkgs.buildPackages.stdenv.cc
]) pkgsList) ++ [
kaniko