diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/systems/default.nix | 15 | ||||
-rw-r--r-- | lib/systems/doubles.nix | 2 | ||||
-rw-r--r-- | lib/systems/examples.nix | 15 | ||||
-rw-r--r-- | lib/systems/platforms.nix | 12 |
4 files changed, 41 insertions, 3 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 21b00374da4..70ec98b03c1 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -41,6 +41,19 @@ rec { else if final.isNetBSD then "nblibc" # TODO(@Ericson2314) think more about other operating systems else "native/impure"; + # Choose what linker we wish to use by default. Someday we might also + # choose the C compiler, runtime library, C++ standard library, etc. in + # this way, nice and orthogonally, and deprecate `useLLVM`. But due to + # the monolithic GCC build we cannot actually make those choices + # independently, so we are just doing `linker` and keeping `useLLVM` for + # now. + linker = + /**/ if final.useLLVM or false then "lld" + else if final.isDarwin then "cctools" + # "bfd" and "gold" both come from GNU binutils. The existance of Gold + # is why we use the more obscure "bfd" and not "binutils" for this + # choice. + else "bfd"; extensions = { sharedLibrary = /**/ if final.isDarwin then ".dylib" @@ -118,7 +131,7 @@ rec { else null; # The canonical name for this attribute is darwinSdkVersion, but some # platforms define the old name "sdkVer". - darwinSdkVersion = final.sdkVer or "10.12"; + darwinSdkVersion = final.sdkVer or (if final.isAarch64 then "11.0" else "10.12"); darwinMinVersion = final.darwinSdkVersion; darwinMinVersionVariable = if final.isMacOS then "MACOSX_DEPLOYMENT_TARGET" diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 6f638be585b..c6d90ba9850 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -96,5 +96,5 @@ in { embedded = filterDoubles predicates.isNone; - mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux"]; + mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux" "aarch64-darwin"]; } diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 9c0013c3977..6a8f4e091aa 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -70,6 +70,15 @@ rec { useAndroidPrebuilt = true; }; + aarch64-android = { + config = "aarch64-unknown-linux-android"; + sdkVer = "30"; + ndkVer = "21"; + libc = "bionic"; + useAndroidPrebuilt = false; + useLLVM = true; + }; + scaleway-c1 = armv7l-hf-multiplatform // platforms.scaleway-c1; pogoplug4 = { @@ -231,6 +240,12 @@ rec { useiOSPrebuilt = true; }; + aarch64-darwin = { + config = "aarch64-apple-darwin"; + xcodePlatform = "MacOSX"; + platform = {}; + }; + # # Windows # diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix index f46e9c826a5..445144439ca 100644 --- a/lib/systems/platforms.nix +++ b/lib/systems/platforms.nix @@ -375,6 +375,13 @@ rec { }; }; + apple-m1 = { + gcc = { + arch = "armv8.3-a+crypto+sha2+aes+crc+fp16+lse+simd+ras+rdm+rcpc"; + cpu = "apple-a13"; + }; + }; + ## ## MIPS ## @@ -495,7 +502,10 @@ rec { else if lib.versionOlder version "6" then sheevaplug else if lib.versionOlder version "7" then raspberrypi else armv7l-hf-multiplatform - else if platform.isAarch64 then aarch64-multiplatform + + else if platform.isAarch64 then + if platform.isDarwin then apple-m1 + else aarch64-multiplatform else if platform.isRiscV then riscv-multiplatform |