summary refs log tree commit diff
path: root/lib/systems/parse.nix
diff options
context:
space:
mode:
authorEmery Hemingway <ehmry@posteo.net>2020-03-24 13:32:18 +0530
committerEmery Hemingway <ehmry@posteo.net>2020-03-24 20:41:21 +0530
commit9f91fa02a6a3e6800dff5f80f061410e83aaeb28 (patch)
tree177b918c4f47906fa66cb7436b724ac386e1b9a3 /lib/systems/parse.nix
parent5ee77aa47c320b725086b001cad8afb1997ad62b (diff)
downloadnixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.tar
nixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.tar.gz
nixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.tar.bz2
nixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.tar.lz
nixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.tar.xz
nixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.tar.zst
nixpkgs-9f91fa02a6a3e6800dff5f80f061410e83aaeb28.zip
lib/systems: Add Genode platform definitions
Add platform definitions for 64-bit ARM and x86. This is sufficient for
for building Genode where a toolchain is provided as an overlay.

Toolchain: git+https://git.sr.ht/~ehmry/genodepkgs?rev=14fc773ac9ecd2cbb30cb4612b284eee83d83546
Diffstat (limited to 'lib/systems/parse.nix')
-rw-r--r--lib/systems/parse.nix3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 6a02dbb5152..648e7c27024 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -279,6 +279,7 @@ rec {
     wasi    = { execFormat = wasm;    families = { }; };
     windows = { execFormat = pe;      families = { }; };
     ghcjs   = { execFormat = unknown; families = { }; };
+    genode  = { execFormat = elf;     families = { }; };
   } // { # aliases
     # 'darwin' is the kernel for all of them. We choose macOS by default.
     darwin = kernels.macos;
@@ -395,6 +396,8 @@ rec {
         then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 1; abi = elemAt l 2; }
       else if (elemAt l 2 == "ghcjs")
         then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 2; }
+      else if hasPrefix "genode" (elemAt l 2)
+        then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; }
       else throw "Target specification with 3 components is ambiguous";
     "4" =    { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; };
   }.${toString (length l)}