diff --git a/flake.nix b/flake.nix index 1e20fcd40ebe5..a049de51b6603 100644 --- a/flake.nix +++ b/flake.nix @@ -11,7 +11,7 @@ lib = import ./lib; - systems = lib.systems.supported.hydra; + systems = lib.platforms.all; forAllSystems = f: lib.genAttrs systems (system: f system); diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 8af3377fb5bfc..debfbad7dde6f 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -13,7 +13,10 @@ let "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" # FreeBSD - "i686-freebsd" "x86_64-freebsd" + "aarch64-freebsd" "armv5tel-freebsd" "armv6l-freebsd" + "armv7l-freebsd" "i686-freebsd" "mipsel-freebsd" + "powerpc64-freebsd" "riscv64-freebsd" "sparc64-freebsd" + "x86_64-freebsd" # Genode "aarch64-genode" "i686-genode" "x86_64-genode" @@ -28,7 +31,8 @@ let "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "m68k-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" - "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux" + "riscv64-linux" "s390-linux" "s390x-linux" "sparc64-linux" + "x86_64-linux" # MMIXware "mmix-mmixware" @@ -36,16 +40,17 @@ let # NetBSD "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" - "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" + "riscv32-netbsd" "riscv64-netbsd" "sparc64-netbsd" "x86_64-netbsd" # none "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" "msp430-none" "or1k-none" "m68k-none" "powerpc-none" - "riscv32-none" "riscv64-none" "s390-none" "s390x-none" "vc4-none" - "x86_64-none" + "riscv32-none" "riscv64-none" "s390-none" "s390x-none" "sparc64-none" + "vc4-none" "x86_64-none" # OpenBSD - "i686-openbsd" "x86_64-openbsd" + "aarch64-openbsd" "armv7l-openbsd" "i686-openbsd" "powerpc64-openbsd" + "riscv64-openbsd" "sparc64-openbsd" "x86_64-openbsd" # Redox "x86_64-redox" @@ -54,7 +59,7 @@ let "wasm64-wasi" "wasm32-wasi" # Windows - "x86_64-windows" "i686-windows" + "x86_64-windows" "i686-windows" "aarch64-windows" ]; allParsed = map parse.mkSystemFromString all; @@ -78,6 +83,8 @@ in { or1k = filterDoubles predicates.isOr1k; m68k = filterDoubles predicates.isM68k; s390 = filterDoubles predicates.isS390; + sparc = filterDoubles predicates.isSparc; + sparc64 = filterDoubles predicates.isSparc64; js = filterDoubles predicates.isJavaScript; bigEndian = filterDoubles predicates.isBigEndian; diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 8dfa22ac787e6..fea4f36204f95 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -156,6 +156,10 @@ rec { config = "s390x-unknown-linux-gnu"; }; + sparc64-linux = { + config = "sparc64-unknown-linux-gnu"; + }; + arm-embedded = { config = "arm-none-eabi"; libc = "newlib"; diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 718954e0839a1..0bc914d8731e2 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -20,6 +20,7 @@ rec { isMmix = { cpu = { family = "mmix"; }; }; isRiscV = { cpu = { family = "riscv"; }; }; isSparc = { cpu = { family = "sparc"; }; }; + isSparc64 = { cpu = { family = "sparc"; bits = 64; }; }; isWasm = { cpu = { family = "wasm"; }; }; isMsp430 = { cpu = { family = "msp430"; }; }; isVc4 = { cpu = { family = "vc4"; }; }; diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index 2646e792682ba..07b03f5298ef3 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -15,22 +15,22 @@ in with lib.systems.doubles; lib.runTests { testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ mmix ++ js ++ genode ++ redox); - testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ]; - testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ]; - testmips = mseteq mips [ "mipsel-linux" "mipsel-netbsd" ]; + testarm = mseteq arm [ "armv7a-darwin" "armv5tel-freebsd" "armv6l-freebsd" "armv7l-freebsd" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "arm-none" "armv6l-none" "armv7l-openbsd" ]; + testi686 = mseteq i686 [ "i686-cygwin" "i686-darwin" "i686-freebsd" "i686-genode" "i686-linux" "i686-netbsd" "i686-none" "i686-openbsd" "i686-windows" ]; + testmips = mseteq mips [ "mipsel-freebsd" "mipsel-linux" "mipsel-netbsd" ]; testmmix = mseteq mmix [ "mmix-mmixware" ]; - testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ]; + testx86_64 = mseteq x86_64 [ "x86_64-cygwin" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-solaris" "x86_64-linux" "x86_64-netbsd" "x86_64-none" "x86_64-openbsd" "x86_64-redox" "x86_64-windows" ]; testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]; testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ]; - testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]; + testfreebsd = mseteq freebsd [ "aarch64-freebsd" "armv5tel-freebsd" "armv6l-freebsd" "armv7l-freebsd" "i686-freebsd" "mipsel-freebsd" "powerpc64-freebsd" "riscv64-freebsd" "sparc64-freebsd" "x86_64-freebsd" ]; testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ]; testredox = mseteq redox [ "x86_64-redox" ]; testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */); testillumos = mseteq illumos [ "x86_64-solaris" ]; - testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" ]; - testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ]; - testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]; - testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ]; + testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "m68k-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux" "s390x-linux" "sparc64-linux" "x86_64-linux" ]; + testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "sparc64-netbsd" "x86_64-netbsd" ]; + testopenbsd = mseteq openbsd [ "aarch64-openbsd" "armv7l-openbsd" "i686-openbsd" "powerpc64-openbsd" "riscv64-openbsd" "sparc64-openbsd" "x86_64-openbsd" ]; + testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "x86_64-windows" "i686-windows" "aarch64-windows" ]; testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox); } diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index c91d4e2bd0c29..2f650e2a297c0 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -24,7 +24,7 @@ in stdenv.mkDerivation { outputs = [ "bin" "dev" "out" "doc" "man" ]; # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51 - configureFlags = optional (!stdenv.hostPlatform.isRiscV && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit" ++ [ + configureFlags = optional (!stdenv.hostPlatform.isRiscV && !stdenv.hostPlatform.isSparc && !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit" ++ [ "--enable-unicode-properties" "--disable-cpp" ] diff --git a/pkgs/os-specific/linux/busybox/sandbox-shell.nix b/pkgs/os-specific/linux/busybox/sandbox-shell.nix index fa70e5f91d80c..488fd6aa77f45 100644 --- a/pkgs/os-specific/linux/busybox/sandbox-shell.nix +++ b/pkgs/os-specific/linux/busybox/sandbox-shell.nix @@ -1,4 +1,4 @@ -{ busybox}: +{ busybox }: # Minimal shell for use as basic /bin/sh in sandbox builds busybox.override { diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix index d8ab96952b7f2..fb9926eb36b35 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix @@ -21,4 +21,5 @@ in lib.mapAttrs (n: make) (with lib.systems.examples; { powerpc64-musl = ppc64-musl; powerpc64le = powernv; powerpc64le-musl = musl-power; + sparc64 = sparc64; }) diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix index 0eee6e692fd3f..cff09ea518c74 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix @@ -19,7 +19,7 @@ in with pkgs; rec { tarMinimal = gnutar.override { acl = null; }; busyboxMinimal = busybox.override { - useMusl = !stdenv.targetPlatform.isRiscV; + useMusl = !stdenv.targetPlatform.isSparc; enableStatic = true; enableMinimal = true; extraConfig = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0609364b3c4bb..eb05a49c65e11 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21451,8 +21451,7 @@ with pkgs; busybox = callPackage ../os-specific/linux/busybox { }; busybox-sandbox-shell = callPackage ../os-specific/linux/busybox/sandbox-shell.nix { - # musl roadmap has RISC-V support projected for 1.1.20 - busybox = if !stdenv.hostPlatform.isRiscV && stdenv.hostPlatform.libc != "bionic" + busybox = if !stdenv.hostPlatform.isSparc && stdenv.hostPlatform.libc != "bionic" then pkgsStatic.busybox else busybox; };