diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 517a7296afd2..5cd203efc4a5 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -35,6 +35,7 @@ let "msp430-none" "riscv64-none" "riscv32-none" "vc4-none" + "or1k-none" "js-ghcjs" @@ -58,6 +59,7 @@ in { mips = filterDoubles predicates.isMips; riscv = filterDoubles predicates.isRiscV; vc4 = filterDoubles predicates.isVc4; + or1k = filterDoubles predicates.isOr1k; js = filterDoubles predicates.isJavaScript; bigEndian = filterDoubles predicates.isBigEndian; diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 87c05a0b0524..9a813b14cc20 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -124,6 +124,12 @@ rec { platform = {}; }; + or1k = { + config = "or1k-elf"; + libc = "newlib"; + platform = {}; + }; + arm-embedded = { config = "arm-none-eabi"; libc = "newlib"; diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 8fa630572509..ac483941dd2e 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -24,6 +24,7 @@ rec { isVc4 = { cpu = { family = "vc4"; }; }; isAvr = { cpu = { family = "avr"; }; }; isAlpha = { cpu = { family = "alpha"; }; }; + isOr1k = { cpu = { family = "or1k"; }; }; isJavaScript = { cpu = cpuTypes.js; }; is32bit = { cpu = { bits = 32; }; }; diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 6bd44a007466..eadeb38c7237 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -114,6 +114,8 @@ rec { vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; }; + or1k = { bits = 32; significantByte = bigEndian; family = "or1k"; }; + js = { bits = 32; significantByte = littleEndian; family = "js"; }; }; diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index 786f0f9c5983..b9cdd0b1b2e2 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -185,6 +185,7 @@ stdenv.mkDerivation { else if targetPlatform.isAvr then "avr" else if targetPlatform.isAlpha then "alpha" else if targetPlatform.isVc4 then "vc4" + else if targetPlatform.isOr1k then "or1k" else throw "unknown emulation for platform: ${targetPlatform.config}"; in if targetPlatform.useLLVM or false then "" else targetPlatform.platform.bfdEmulation or (fmt + sep + arch);