summaryrefslogtreecommitdiff
path: root/lib/systems (follow)
Commit message (Expand)AuthorAgeFilesLines
* nixpkgs/systems: Add ucrt64 as MinGW libc•••The Minimalist Gnu for Windows distribution comes with support for the traditional msvcrt libc, as well as ucrt64 libc. The latter being the newer universal compiler runtime. We follow the msys2 environment naming convention[1]: | name | toolchain | arch | libc | libc++ | |------------|-----------|---------|--------|-----------| | mingw32 | gcc | i686 | msvcrt | libstdc++ | | mingw64 | gcc | x86_64 | msvcrt | libstdc++ | | ucrt64 | gcc | x86_64 | ucrt | libstdc++ | | clang32 | llvm | i686 | ucrt | libc++ | | clang64 | llvm | x86_64 | ucrt | libc++ | | clangarm64 | llvm | aarch64 | ucrt | libc++ | For now nixpkgs only supports the first three with this commit. -- [1]: https://www.msys2.org/docs/environments/ Moritz Angermann2023-09-081-0/+5
* lib/systems: disable pipewireSupport in qemu-user•••Option added in 5b0ed68c106c1cbe3b573f3d1ca8c73eb203e346 it causes infinite recursion in cross builds There's a another inf rec that needs 6946977de0de845e69a805f179b96a87d17640fa which is in staging Artturin2023-09-081-0/+1
* Merge pull request #238509 from amjoseph-nixpkgs/pr/knuth/respect•••lib/systems/parse.nix: show respect where deservedJohn Ericson2023-08-161-0/+2
|\
| * lib/systems/parse.nix: show respect where deserved•••The eminent Donald E. Knuth should be recognized as having equal standing with such entities as IBM, Apple, and the Personal Computer. We should acknowledge this by including him as a "vendor". Also, `gnu-config` recognizes `mmix-knuth-*` triples (and in fact requires `vendor="knuth"` when `cpu="mmix"`) -- so we sort of have to. But we should do it anyways. Adam Joseph2023-06-181-0/+2
* | Merge pull request #244330 from thillux/bluefield2-remove-cpu•••lib.systems.bluefield2: remove cpu profileAdam Joseph2023-07-241-1/+0
|\ \
| * | lib.systems.bluefield2: remove cpu profile•••Some software, e.g. systemd, failed to build with set cpu profile. Signed-off-by: Markus Theil <theil.markus@gmail.com> Markus Theil2023-07-191-1/+0
* | | lib.systems.extensions.sharedLibrary: do not `throw`•••Because downstream code expects to use `==` on platform attrsets, we are unfortunately not able to throw a useful error message when the `sharedLibrary` attribute is accessed. When users do a comparison like: stdenv.hostPlatform == pkgsStatic.stdenv.hostPlatform ... in a situation where `stdenv.hostPlatform.hasSharedLibraries`, they expect this to return `false`. Unfortunately Nix does a deep equality comparison here, and ends up forcing the `pkgsStatic.stdenv.hostPlatform.extensions.sharedLibrary` attribute, which throws the error. Rather than returning `null`, this commit instead simply omits the `extensions.sharedLibrary` attribute. This provides the user with a more-useful error message: instead of waiting until the `null` is used (and hoping that produces an error), the user will get an error about the `extensions.sharedLibrary` attribute being missing, at the position where it was referenced. Big thanks to @trofi for his PR to add `NIX_VALIDATE_EVAL_NONDETERMINISM` to Nix, which I am now using. It made tracking this down really easy! Fixes #244045 Adam Joseph2023-07-041-5/+6
|/ /
* | lib.systems.bluefield2: init•••Add support for Nvidia's Bluefield 2 plattform as a compilation target. There exists a version with and without crypto support, while the crypto supported version is the most common one. Support for the non-crypto version can be easily added in the future, if needed. For a datasheet of the hardware, see: https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/documents/datasheet-nvidia-bluefield-2-dpu.pdf Signed-off-by: Markus Theil <theil.markus@gmail.com> Markus Theil2023-07-142-0/+12
* | Merge pull request #238154 from amjoseph-nixpkgs/pr/gcc/crossStageStatic•••gccCrossStageStatic: enable dynamic libraries, rename itAdam Joseph2023-07-121-1/+20
|\ \
| * | lib.systems: introduce hasSharedLibraries•••This commit adds `hasSharedLibraries` to `lib.systems`. We need `plat.hasSharedLibraries` in order to know whether or not to expect `gcc` (and many other tools) to emit shared libraries (like `libgcc_s.so`). Many of the GNU build scripts are smart enough that if you configure them with `--enable-shared` on a platform (such as `arm-none-eabi`) that doesn't support dynamic linking, they will simply skip the shared libraries instead of aborting the `configurePhase`. Unfortunately the missing shared libraries in the final build product cause very hard-to-troubleshoot problems later on. The alternative to introducing `hasSharedLibraries` would be to set `isStatic` in these situations. However doing so causes `make-derivation.nix` to insert `-static` between the `pname` and `hostPlatform` suffix, which is undesirable. If at some point in the future we eliminate the `-static` suffix, then `hasSharedLibraries` can be made equal to `!isStatic`. Adam Joseph2023-07-011-1/+20
* | | Merge pull request #240825 from r-burns/mips-embedded•••lib.platforms.mips{,64}-embedded: initRyan Burns2023-07-052-1/+11
|\ \ \
| * | | lib.platforms.mips{,64}-embedded: initRyan Burns2023-06-302-1/+11
| |/ /
* | | Merge pull request #239120 from LibreCybernetics/arch-stuffArtturi2023-07-051-11/+28
|\ \ \ | |/ / |/| |
| * | lib.systems.architectures: add microarchitecture levels•••Variation on: - https://github.com/NixOS/nixpkgs/pull/208398 - https://github.com/NixOS/nixpkgs/pull/224978 Co-authored-by: Sandro Jäckel <sandro.jaeckel@gmail.com> Co-authored-by: Shawn8901 <shawn8901@googlemail.com> Co-authored-by: AveryanAlex <alex@averyan.ru> Fabián Heredia Montiel2023-06-241-11/+28
* | | lib.systems: add gnuabin32 to isGnu•••The `isGnu` predicate was missing `gnuabin32`. This commit corrects that by adding it. Adam Joseph2023-06-291-1/+1
|/ /
* | lib/system: move toLosslessStringMaybe into lib/tests•••toLosslessStringMaybe is not used by anything other than lib/tests, so it can be private to that file. I don't think this function was terribly well thought-through. If people start using it, we will become permanently dependent on the ability to test platforms for equality. It also makes the elaboration process more fragile, because it encourages code outside of nixpkgs to become sensitive to the minute details of how elaboration happens. Adam Joseph2023-06-221-15/+0
* | Merge pull request #237167 from CHN-beta/masterSandro2023-06-191-0/+3
|\ \ | |/ |/|
| * stdenv: add alderlake support•••Signed-off-by: Haonan Chen <chn@chn.moe> chn2023-06-111-0/+3
* | lib/systems: remove redundant test from selectEmulator•••Commit eef4bbd82f4c2 changed the conditional in selectEmulator from `isCompatible` (which examines only the CPU, rather than the entire platform) to `canExecute`. This made the first conjunct redundant. Let's drop the redundant part. https://github.com/NixOS/nixpkgs/pull/238331#discussion_r1233277119 Adam Joseph2023-06-181-2/+1
* | lib.systems: add znver4 architectureFabián Heredia Montiel2023-06-161-0/+2
* | lib.systems.equals: Ignore all function attributes reflectively•••Co-authored-by: Artturi <Artturin@artturin.com> Robert Hensing2023-06-131-2/+2
* | lib.systems.{equals,toLosslessStringMaybe}: initRobert Hensing2023-06-131-0/+33
|/
* lib.systems.doubles: add big-endian MIPS linux doubles•••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. Alyssa Ross2023-06-011-3/+3
* lib.systems: remove mipsisa(32|64)r6 triples•••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. Alyssa Ross2023-06-012-20/+10
* lib.systems: remove (accidental?) rust/rustc alias•••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. Alyssa Ross2023-05-091-1/+1
* Merge pull request #228013 from amjoseph-nixpkgs/pr/qemuArch/mips•••lib/systems: add mips64[el] entries to qemuArchAdam Joseph2023-05-091-0/+1
|\
| * lib/systems: add mips64[el] entries to qemuArch•••This commit adds `mips64el` to the `qemuArch` table. Adam Joseph2023-04-241-0/+1
* | Merge master into staging-nextgithub-actions[bot]2023-05-041-4/+4
|\ \
| * | lib/systems: move loongarch64-linux out of mips blockWeijia Wang2023-05-041-4/+4
* | | Merge staging-next into staginggithub-actions[bot]2023-04-285-1/+10
|\| |
| * | Merge pull request #227560 from jackyliu16/loongnix-commit•••lib.platforms.loongarch64: initWeijia Wang2023-04-285-1/+10
| |\ \ | | |/ | |/|
| | * lib.platforms.loongarch64: initjackyliu162023-04-275-1/+10
* | | lib.systems: allow specifying libc = null•••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. Alyssa Ross2023-04-281-0/+1
|/ /
* | Merge pull request #191995 from amjoseph-nixpkgs/lib/systems/inspect/comment•••lib/systems/inspect.nix: explanatory commentAdam Joseph2023-04-241-0/+8
|\ \
| * | lib/systems/inspect.nix: explanatory commentAdam Joseph2022-09-191-0/+8
* | | lib/systems: disable docs in qemu-user•••45M -> 31M Artturin2023-04-221-0/+1
| |/ |/|
* | Merge master into haskell-updatesgithub-actions[bot]2023-03-101-1/+2
|\ \
| * | lib.systems: don't try to emulate s390-linux•••We don't have an emulator that can do this. Alyssa Ross2023-03-091-1/+2
* | | haskell.compiler.ghcHEAD: 9.7.20221224 -> 9.7.20230217•••- 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 sternenseemann2023-03-084-4/+7
|/ /
* | Merge pull request #211950 from Atemu/armv8-no-more-armv7•••lib/systems/parse: stop considering armv8a able to execute armv7lAtemu2023-03-071-13/+2
|\ \
| * | lib/systems/parse: stop considering armv8a able to execute armv7l•••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. Atemu2023-01-211-13/+2
* | | Merge pull request #203539 from SuperSandro2000/architectures-expand-inferiors•••lib/systems/architectures: expand inferiorsSandro2023-02-151-6/+13
|\ \ \
| * | | lib/systems/architectures: expand inferiorsSandro Jäckel2022-11-291-6/+13
* | | | Merge master into staging-nextgithub-actions[bot]2023-01-311-0/+10
|\ \ \ \
| * \ \ \ Merge pull request #212939 from amjoseph-nixpkgs/pr/isStatic•••meta: replace predicates with pattern over elaborated platformFlorian Klink2023-01-301-0/+10
| |\ \ \ \
| | * | | | Update lib/systems/inspect.nix•••Co-authored-by: Naïm Favier <n@monade.li>Adam Joseph2023-01-271-2/+2
| | * | | | Update lib/systems/inspect.nix•••Co-authored-by: Naïm Favier <n@monade.li>Adam Joseph2023-01-271-1/+1
| | * | | | lib/systems/inspect.nix: add platformPatterns.isStaticAdam Joseph2023-01-271-0/+10
| | | |/ / | | |/| |
* | / | | lib.systems.inspect.patterns.isEfi: drop ARMv5•••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. Alyssa Ross2023-01-301-2/+7
|/ / / /
* / / / lib.systems.inspect.patterns.isEfi: remove "aarch64"•••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. Alyssa Ross2023-01-291-1/+1
|/ / /