diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-10 00:18:51 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-05-10 00:18:51 -0400 |
commit | b3ef3227704080b6058ae10ed2fcb739ec31ff78 (patch) | |
tree | 2f6e8ca0339800a9a3831a2759828bb466e9f346 /lib/systems | |
parent | a31984ecdaf7b011163c3c71679eb285d951d735 (diff) | |
parent | 70963b382f3f820ba6d3bc3b3aaf50a2957ec1ff (diff) | |
download | nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.tar nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.tar.gz nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.tar.bz2 nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.tar.lz nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.tar.xz nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.tar.zst nixpkgs-b3ef3227704080b6058ae10ed2fcb739ec31ff78.zip |
Merge commit '70963b382f3f820ba6d3bc3b3aaf50a2957ec1ff' into uclibc
Diffstat (limited to 'lib/systems')
-rw-r--r-- | lib/systems/default.nix | 2 | ||||
-rw-r--r-- | lib/systems/examples.nix | 32 | ||||
-rw-r--r-- | lib/systems/for-meta.nix | 8 | ||||
-rw-r--r-- | lib/systems/inspect.nix | 8 | ||||
-rw-r--r-- | lib/systems/parse.nix | 26 |
5 files changed, 54 insertions, 22 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 9b930824609..0e1a10c1f64 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -45,6 +45,8 @@ rec { }; # Misc boolean options useAndroidPrebuilt = false; + useiOSPrebuilt = false; + isiPhoneSimulator = false; } // mapAttrs (n: v: v final.parsed) inspect.predicates // args; in assert final.useAndroidPrebuilt -> final.isAndroid; diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index f3abfe2c621..06e7624967b 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -102,16 +102,36 @@ rec { # iphone64 = { - config = "aarch64-apple-darwin14"; - arch = "arm64"; - libc = "libSystem"; + config = "aarch64-apple-ios"; + # config = "aarch64-apple-darwin14"; + sdkVer = "10.2"; + useiOSPrebuilt = true; platform = {}; }; iphone32 = { - config = "arm-apple-darwin10"; - arch = "armv7-a"; - libc = "libSystem"; + config = "armv7a-apple-ios"; + # config = "arm-apple-darwin10"; + sdkVer = "10.2"; + useiOSPrebuilt = true; + platform = {}; + }; + + iphone64-simulator = { + config = "x86_64-apple-ios"; + # config = "x86_64-apple-darwin14"; + sdkVer = "10.2"; + useiOSPrebuilt = true; + isiPhoneSimulator = true; + platform = {}; + }; + + iphone32-simulator = { + config = "i686-apple-ios"; + # config = "i386-apple-darwin11"; + sdkVer = "10.2"; + useiOSPrebuilt = true; + isiPhoneSimulator = true; platform = {}; }; diff --git a/lib/systems/for-meta.nix b/lib/systems/for-meta.nix index 68c68c2cd36..9e85cea3ad1 100644 --- a/lib/systems/for-meta.nix +++ b/lib/systems/for-meta.nix @@ -4,8 +4,8 @@ let inherit (lib.systems.inspect) patterns; in rec { - inherit (lib.systems.doubles) all mesaPlatforms; - none = []; + all = [ {} ]; # `{}` matches anything + none = []; arm = [ patterns.isAarch32 ]; aarch64 = [ patterns.isAarch64 ]; @@ -13,6 +13,7 @@ in rec { i686 = [ patterns.isi686 ]; x86_64 = [ patterns.isx86_64 ]; mips = [ patterns.isMips ]; + riscv = [ patterns.isRiscV ]; cygwin = [ patterns.isCygwin ]; darwin = [ patterns.isDarwin ]; @@ -24,4 +25,7 @@ in rec { netbsd = [ patterns.isNetBSD ]; openbsd = [ patterns.isOpenBSD ]; unix = patterns.isUnix; # Actually a list + windows = [ patterns.isWindows ]; + + inherit (lib.systems.doubles) mesaPlatforms; } diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 6738ae3d441..9960954e464 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -21,9 +21,11 @@ rec { isLittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; }; isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; }; + isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; }; isUnix = [ isBSD isDarwin isLinux isSunOS isHurd isCygwin ]; - isDarwin = { kernel = kernels.darwin; }; + isMacOS = { kernel = kernels.macos; }; + isiOS = { kernel = kernels.ios; }; isLinux = { kernel = kernels.linux; }; isSunOS = { kernel = kernels.solaris; }; isFreeBSD = { kernel = kernels.freebsd; }; @@ -38,12 +40,8 @@ rec { isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ]; isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ]; - isKexecable = map (family: { kernel = kernels.linux; cpu.family = family; }) - [ "x86" "arm" "aarch64" "mips" ]; isEfi = map (family: { cpu.family = family; }) [ "x86" "arm" "aarch64" ]; - isSeccomputable = map (family: { kernel = kernels.linux; cpu.family = family; }) - [ "x86" "arm" "aarch64" "mips" ]; # Deprecated after 18.03 isArm = isAarch32; diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 7ba06f129db..16d657a5435 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -34,7 +34,7 @@ rec { ################################################################################ - types.openSignifiantByte = mkOptionType { + types.openSignificantByte = mkOptionType { name = "significant-byte"; description = "Endianness"; merge = mergeOneOption; @@ -42,7 +42,7 @@ rec { types.significantByte = enum (attrValues significantBytes); - significantBytes = setTypes types.openSignifiantByte { + significantBytes = setTypes types.openSignificantByte { bigEndian = {}; littleEndian = {}; }; @@ -140,6 +140,7 @@ rec { kernelFamilies = setTypes types.openKernelFamily { bsd = {}; + darwin = {}; }; ################################################################################ @@ -155,7 +156,10 @@ rec { types.kernel = enum (attrValues kernels); kernels = with execFormats; with kernelFamilies; setTypes types.openKernel { - darwin = { execFormat = macho; families = { }; }; + # TODO(@Ericson2314): Don't want to mass-rebuild yet to keeping 'darwin' as + # the nnormalized name for macOS. + macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; }; + ios = { execFormat = macho; families = { inherit darwin; }; }; freebsd = { execFormat = elf; families = { inherit bsd; }; }; hurd = { execFormat = elf; families = { }; }; linux = { execFormat = elf; families = { }; }; @@ -165,9 +169,13 @@ rec { solaris = { execFormat = elf; families = { }; }; windows = { execFormat = pe; families = { }; }; } // { # aliases + # 'darwin' is the kernel for all of them. We choose macOS by default. + darwin = kernels.macos; # TODO(@Ericson2314): Handle these Darwin version suffixes more generally. - darwin10 = kernels.darwin; - darwin14 = kernels.darwin; + darwin10 = kernels.macos; + darwin14 = kernels.macos; + watchos = kernels.ios; + tvos = kernels.ios; win32 = kernels.windows; }; @@ -202,7 +210,7 @@ rec { ################################################################################ - types.system = mkOptionType { + types.parsedPlatform = mkOptionType { name = "system"; description = "fully parsed representation of llvm- or nix-style platform tuple"; merge = mergeOneOption; @@ -216,7 +224,7 @@ rec { isSystem = isType "system"; mkSystem = components: - assert types.system.check components; + assert types.parsedPlatform.check components; setType "system" components; mkSkeletonFromList = l: { @@ -272,8 +280,8 @@ rec { mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s)); doubleFromSystem = { cpu, vendor, kernel, abi, ... }: - if abi == abis.cygnus - then "${cpu.name}-cygwin" + /**/ if abi == abis.cygnus then "${cpu.name}-cygwin" + else if kernel.families ? darwin then "${cpu.name}-darwin" else "${cpu.name}-${kernel.name}"; tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let |