3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/stdenv/default.nix
Daniel Barlow 9c50ae6898 lib, treewide: Add missing MIPS arches, and fix existing usage
Existing "mips64el" should be "mipsel".

This is just the barest minimum so that nixpkgs can recognize them as
systems - although required for building individual derivations onto
MIPS boards, it is not sufficient if you want to actually build nixos on
those targets
2018-02-23 20:43:42 -05:00

56 lines
1.9 KiB
Nix

# This file chooses a sane default stdenv given the system, platform, etc.
#
# Rather than returning a stdenv, this returns a list of functions---one per
# each bootstrapping stage. See `./booter.nix` for exactly what this list should
# contain.
{ # Args just for stdenvs' usage
lib
# Args to pass on to the pkgset builder, too
, localSystem, crossSystem, config, overlays
} @ args:
let
# The native (i.e., impure) build environment. This one uses the
# tools installed on the system outside of the Nix environment,
# i.e., the stuff in /bin, /usr/bin, etc. This environment should
# be used with care, since many Nix packages will not build properly
# with it (e.g., because they require GNU Make).
stagesNative = import ./native args;
# The Nix build environment.
stagesNix = import ./nix (args // { bootStages = stagesNative; });
stagesFreeBSD = import ./freebsd args;
# On Linux systems, the standard build environment consists of Nix-built
# instances glibc and the `standard' Unix tools, i.e., the Posix utilities,
# the GNU C compiler, and so on.
stagesLinux = import ./linux args;
inherit (import ./darwin args) stagesDarwin;
stagesCross = import ./cross args;
stagesCustom = import ./custom args;
# Select the appropriate stages for the platform `system'.
in
if crossSystem != null then stagesCross
else if config ? replaceStdenv then stagesCustom
else { # switch
"i686-linux" = stagesLinux;
"x86_64-linux" = stagesLinux;
"armv5tel-linux" = stagesLinux;
"armv6l-linux" = stagesLinux;
"armv7l-linux" = stagesLinux;
"aarch64-linux" = stagesLinux;
"mipsel-linux" = stagesLinux;
"powerpc-linux" = /* stagesLinux */ stagesNative;
"x86_64-darwin" = stagesDarwin;
"x86_64-solaris" = stagesNix;
"i686-cygwin" = stagesNative;
"x86_64-cygwin" = stagesNative;
"x86_64-freebsd" = stagesFreeBSD;
}.${localSystem.system} or stagesNative