3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/lib/systems
Adam Joseph eabc6d2902 lib/systems/platforms.nix: fix broken mips32 detection
Prior to this commit, nixpkgs would assume that every little-endian
mips32 system was a "fuloong2f_n32".

Not only are there plenty of mips32 chips other than the fuloong, but
the fuloong is actually a mips64 chip!  Note that the "n32" ABI is
(confusingly) an ABI for 64-bit mips chips (like the "x32" ABI for
amd64 chips -- both are ABIs which use 32-bit pointers on an
otherwise-64-bit system).

This error causes far-ranging problems.  One of them was particularly
difficult to track down: it caused GCC to select 128-bit `long double`
types, which is invalid for the mips32 ABI.  This isn't noticed until
you try to build musl-libc, which is careful to check for these things.

Prior to this commit,

  nix-build . -A pkgsCross.mipsel-linux-gnu.pkgsStatic.hello

would fail.  With this commit and #170736, it succeeds.
2022-04-27 23:49:09 -07:00
..
architectures.nix
default.nix lib/systems: add mips64el definitions 2022-03-10 20:30:16 -08:00
doubles.nix lib/systems: add mips64el definitions 2022-03-10 20:30:16 -08:00
examples.nix Ericson2314's suggestion here: https://github.com/NixOS/nixpkgs/pull/161158#discussion_r822295406 2022-03-10 20:30:19 -08:00
inspect.nix lib/systems/inspect.nix: add isPower64 2022-04-10 01:56:28 -07:00
parse.nix lib/systems: add mips64el definitions 2022-03-10 20:30:16 -08:00
platforms.nix lib/systems/platforms.nix: fix broken mips32 detection 2022-04-27 23:49:09 -07:00
supported.nix lib.systems.supported: remove aarch64-darwin from Tier 3 list 2021-12-16 17:51:21 +01:00