about summary refs log tree commit diff
path: root/lib/systems
AgeCommit message (Collapse)AuthorFilesLines
2023-06-11stdenv: add alderlake supportchn1-0/+3
Signed-off-by: Haonan Chen <chn@chn.moe>
2023-06-01lib.systems.doubles: add big-endian MIPS linux doublesAlyssa Ross1-3/+3
We already have examples for these, but since we didn't actually recognise the doubles, it wasn't possible to build any packages for them without setting allowUnsupportedSystem.
2023-06-01lib.systems: remove mipsisa(32|64)r6 triplesAlyssa Ross2-20/+10
These arc the same as the normal triples apart for a difference in -march, so there's no need for them to be separate triples.
2023-05-09lib.systems: remove (accidental?) rust/rustc aliasAlyssa Ross1-1/+1
I imagine this was supposed to be rustc = args.rustc, like the other two lines. This meant that we accepted both rust and rustc attributes, with the same effect. I doubt anybody was using the undocumented, probably-accidental "rust" spelling, but we should remove it before somebody starts. In fact, we don't need to set rustc here at all, because no value platforms.select could return will ever include a rustc key (unlike the other two), so then rustc will be filled in later, when args is merged into final.
2023-05-09Merge pull request #228013 from amjoseph-nixpkgs/pr/qemuArch/mipsAdam Joseph1-0/+1
lib/systems: add mips64[el] entries to qemuArch
2023-05-04Merge master into staging-nextgithub-actions[bot]1-4/+4
2023-05-04lib/systems: move loongarch64-linux out of mips blockWeijia Wang1-4/+4
2023-04-28Merge staging-next into staginggithub-actions[bot]5-1/+10
2023-04-28Merge pull request #227560 from jackyliu16/loongnix-commitWeijia Wang5-1/+10
lib.platforms.loongarch64: init
2023-04-28lib.systems: allow specifying libc = nullAlyssa Ross1-0/+1
It makes sense to allow platform definitions to opt out of having libc at all. One use case would be targetting some obscure new Linux target that doesn't have a libc implementation yet, and another is UEFI, which is basically libc-less Windows. Not having libc is not commonly specified in (GNU) triples (even Linux's build system will just target either -gnu or -musl depending on the platform), so instead, we use a separate attribute for it.
2023-04-27lib.platforms.loongarch64: initjackyliu165-1/+10
2023-04-24lib/systems: add mips64[el] entries to qemuArchAdam Joseph1-0/+1
This commit adds `mips64el` to the `qemuArch` table.
2023-04-24Merge pull request #191995 from amjoseph-nixpkgs/lib/systems/inspect/commentAdam Joseph1-0/+8
lib/systems/inspect.nix: explanatory comment
2023-04-22lib/systems: disable docs in qemu-userArtturin1-0/+1
45M -> 31M
2023-03-10Merge master into haskell-updatesgithub-actions[bot]1-1/+2
2023-03-09lib.systems: don't try to emulate s390-linuxAlyssa Ross1-1/+2
We don't have an emulator that can do this.
2023-03-08haskell.compiler.ghcHEAD: 9.7.20221224 -> 9.7.20230217sternenseemann4-4/+7
- Christmas is over! - Upstream has changed the name of the target triplet used for the JS backend from js-unknown-ghcjs to javascript-unknown-ghcjs, since Cabal calls the architecture "javascript": https://gitlab.haskell.org/ghc/ghc/-/commit/6636b670233522f01d002c9b97827d00289dbf5c Since the triplet is made up anyways, i.e. autoconf does not support it and Rust uses different triplets for its emscripten backends, we'll just change it as well. - Upstream fixed the problem with ar(1) being invoked incorrectly by stage0: https://gitlab.haskell.org/ghc/ghc/-/commit/e987e345c807035e4637ca3eae227ae501e16c42
2023-03-07Merge pull request #211950 from Atemu/armv8-no-more-armv7Atemu1-13/+2
lib/systems/parse: stop considering armv8a able to execute armv7l
2023-02-15Merge pull request #203539 from SuperSandro2000/architectures-expand-inferiorsSandro1-6/+13
lib/systems/architectures: expand inferiors
2023-01-31Merge master into staging-nextgithub-actions[bot]1-0/+10
2023-01-30Merge pull request #212939 from amjoseph-nixpkgs/pr/isStaticFlorian Klink1-0/+10
meta: replace predicates with pattern over elaborated platform
2023-01-30lib.systems.inspect.patterns.isEfi: drop ARMv5Alyssa Ross1-2/+7
I'm not aware of any ARMv5 EFI implementation. gnu-efi doesn't support it, so the build of systemd for armv5tel-linux is broken if it's isEfi.
2023-01-29lib.systems.inspect.patterns.isEfi: remove "aarch64"Alyssa Ross1-1/+1
There is no "aarch64" CPU family — it counts as "arm", as can be seen from the definition of isAarch64 above. Checked that stdenv.hostPlatform.isEfi is still true on aarch64-linux.
2023-01-27Update lib/systems/inspect.nixAdam Joseph1-2/+2
Co-authored-by: Naïm Favier <n@monade.li>
2023-01-27Update lib/systems/inspect.nixAdam Joseph1-1/+1
Co-authored-by: Naïm Favier <n@monade.li>
2023-01-27lib/systems/inspect.nix: add platformPatterns.isStaticAdam Joseph1-0/+10
2023-01-21lib/systems/parse: stop considering armv8a able to execute armv7lAtemu1-13/+2
In the past, most (if not all) armv8 CPUs could also execute armv7. However, with the advent of Apple Silicon, aarch64 CPUs without any aarch32 capabilities are now wide-spread among users.
2023-01-19lib.platforms.s390x: initAlyssa Ross2-0/+2
2023-01-19lib.platforms.power: initAlyssa Ross1-0/+1
2023-01-19lib.platforms.armv7: initAlyssa Ross2-0/+4
2023-01-13Merge pull request #184521 from dramforever/riscv-isefiNick Cao1-1/+1
lib/systems/inspect.nix: Add riscv to isEfi
2023-01-09add mipsisa{32,64}r6[el], closes 209952Adam Joseph1-4/+8
2023-01-03Merge pull request #208698 from amjoseph-nixpkgs/pr/nss/ilp32Martin Weinelt1-0/+1
2023-01-01lib/systems/inspect.nix: add isILP32 predicateAdam Joseph1-0/+1
I've run into a few packages that need an extra flag on platforms where `int` has more bits than `void*` does. I know of three such platforms: * [aarch64ilp32], used on both Linux and also on the [Apple Watch] * [x32], the x86 ILP32 ABI * [mips64n32], used on [Longsoon] and Cavium Octeon routers. This PR introduces a predicate so the package flags can be added in a generic way. [Apple Watch]: https://gist.github.com/woachk/943828f37c14563a607a26116435bf27#watch [mips64n32]: https://en.wikipedia.org/wiki/MIPS_architecture#Calling_conventions [Longsoon]: https://en.wikipedia.org/wiki/Loongson [x32]: https://en.wikipedia.org/wiki/X32_ABI
2023-01-01lib/systems: fix uname.processor for powerpc{32,64}, mips64Adam Joseph1-7/+9
Cross-compilation of anything downstream of gtk3 requires qemu (due to gobject-introspection) with --target-list=*-linux-user. Without this commit, those qemu builds will fail on a powerpc64le host due to qemu being configured with --cpu=powerpc64le instead of --cpu=ppc64le. Unfortunately the build failure message from qemu in this situation is extremely cryptic. The root cause turns out not to be the qemu expression, but rather the fact that on powerpc64le hostPlatform.uname.processor returns the gnu-name (powerpc64le) for the cpu instead of the linux-name (ppc64le) for the cpu. uname.processor on mips64el also needs adjustment -- the Linux-name is "mips64" for both big and little endian (unlike powerpc64, where the Linux-name includes a "le" suffix): ``` nix@oak:/tmp$ uname -m; lscpu | head -n2 mips64 Architecture: mips64 Byte Order: Little Endian ``` uname.processor on powerpc32 has also been adjusted.
2022-12-17lib: fix typosfigsoda3-4/+4
2022-11-29lib/systems/architectures: expand inferiorsSandro Jäckel1-6/+13
2022-11-22Merge pull request #180964 from amjoseph-nixpkgs/pr/mkSkeletonFromList/simplifyJohn Ericson1-23/+23
lib/systems/parse.nix: mkSkeletonFromList: improve readability
2022-11-21Merge pull request #170737 from amjoseph-nixpkgs/fix-mips32-detectionArtturi1-1/+1
lib/systems/platforms.nix: fix broken mips32 detection
2022-11-13lib/systems/parse.nix: mkSkeletonFromList: improve readabilityAdam Joseph1-23/+23
The main purpose of this PR is to make the basis for `mkSkeletonFromList`'s decision between `cpu-kernel-libcabi` vs `cpu-vendor-os` clear, without changing its behavior. The existing code obscures this decision behind a sequence of prioritized matches (i.e. `if-then`) which jump around between different coordinates. Two side benefits of this PR: 1. It makes the root cause of #165836 obvious: we are missing a case for `cpu-vendor-libcabi`. This is why nixpkgs stumbles over `*-none-*`. 2. It illuminates some very weird corner cases in the existing logic, like `*-${vendor}-ghcjs` overriding the `vendor` field, and `mingw32` being transformed into `windows` in some cases. Co-authored-by: John Ericson <git@JohnEricson.me>
2022-11-13Merge pull request #82131 from Ericson2314/bsd-crossJohn Ericson5-8/+21
FreeBSD packages: Init at 13.1
2022-11-06cross/mingw: fix emulator for mingw32Jörg Thalheim1-3/+2
2022-11-04lib/systems: Support FreeBSDJohn Ericson5-6/+21
A tricky thing about FreeBSD is that there is no stable ABI across versions. That means that putting in the version as part of the config string is paramount. We have a parsed represenation that separates name versus version to accomplish this. We include FreeBSD versions 12 and 13 to demonstrate how it works.
2022-11-04lib/systems: Simplify NetBSD examplesJohn Ericson1-2/+0
The libc will be inferred.
2022-09-29lib/systems/default.nix: add efiArch suffixesIvan Nikolaenko1-0/+8
Move already implemented functionality to the upper level so it could be used in a more generic way. Signed-off-by: Ivan Nikolaenko <ivan.nikolaenko@unikie.com>
2022-09-19lib/systems/inspect.nix: explanatory commentAdam Joseph1-0/+8
2022-09-13Merge pull request #189314 from Artturin/addemulatoravailableArtturi1-30/+39
2022-09-11lib/systems: add emulatorAvailableArtturin1-30/+39
``` nix-repl> pkgsCross.arm-embedded.stdenv.hostPlatform.emulatorAvailable pkgsCross.arm-embedded.buildPackages false nix-repl> pkgsCross.aarch64-multiplatform.stdenv.hostPlatform.emulatorAvailable pkgsCross.aarch64-multiplatform.buildPackages true ``` will be useful for stuff like handling https://github.com/NixOS/nixpkgs/issues/187109
2022-09-06lib/systems: uname.processor is "uname -m", not "uname -p" (#189958)Adam Joseph1-1/+1
The comment in lib/systems/default.nix for uname.processor indicates that it should match `uname -p`. I tried that command and found that it reports `unknown` on all of these machines: - `x86_64-linux` - `aarch64-linux` - `mips64el-linux` - `powerpc64le-linux` The command `uname -m` reports the expected value on all of the above. I think the comment is wrong. So I fixed it.
2022-08-28lib/systems/doubles: add ELFvx GNU ABIsMinijackson1-1/+3