1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-09 03:56:01 +01:00

Merge pull request #13562 from NixOS/mergify/bp/2.30-maintenance/pr-13558

meson: Fix `nix_system_cpu` for MIPS and 32 bit ARM systems (backport #13558)
This commit is contained in:
mergify[bot] 2025-07-27 00:12:12 +00:00 committed by GitHub
commit 7bd00d13b5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 10 deletions

View file

@ -215,14 +215,18 @@ nix build .#nix-everything-x86_64-w64-mingw32
For historic reasons and backward-compatibility, some CPU and OS identifiers are translated as follows: For historic reasons and backward-compatibility, some CPU and OS identifiers are translated as follows:
| `config.guess` | Nix | | `host_machine.cpu_family()` | `host_machine.endian()` | Nix |
|----------------------------|---------------------| |-----------------------------|-------------------------|---------------------|
| `amd64` | `x86_64` | | `x86` | | `i686` |
| `i*86` | `i686` | | `arm` | | `host_machine.cpu()`|
| `arm6` | `arm6l` | | `ppc` | `little` | `powerpcle` |
| `arm7` | `arm7l` | | `ppc64` | `little` | `powerpc64le` |
| `linux-gnu*` | `linux` | | `ppc` | `big` | `powerpc` |
| `linux-musl*` | `linux` | | `ppc64` | `big` | `powerpc64` |
| `mips` | `little` | `mipsel` |
| `mips64` | `little` | `mips64el` |
| `mips` | `big` | `mips` |
| `mips64` | `big` | `mips64` |
## Compilation environments ## Compilation environments

View file

@ -1,10 +1,19 @@
powerpc_system_cpus = [ 'ppc64', 'ppc' ] # This attempts to translate meson cpu_family and cpu_name specified via
# --cross-file [1] into a nix *system double*. Nixpkgs mostly respects ([2]) the
# conventions outlined in [1].
#
# [1]: https://mesonbuild.com/Reference-tables.html#cpu-families
# [2]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/lib/meson.nix
nix_system_cpu = {'ppc64' : 'powerpc64', 'ppc' : 'powerpc', 'x86' : 'i686'}.get( nix_system_cpu = {'ppc64' : 'powerpc64', 'ppc' : 'powerpc', 'x86' : 'i686'}.get(
host_machine.cpu_family(), host_machine.cpu_family(),
host_machine.cpu_family(), host_machine.cpu_family(),
) )
if powerpc_system_cpus.contains(host_machine.cpu_family()) and host_machine.endian() == 'little' if (host_machine.cpu_family() in [ 'ppc64', 'ppc' ]) and host_machine.endian() == 'little'
nix_system_cpu += 'le' nix_system_cpu += 'le'
elif host_machine.cpu_family() in [ 'mips64', 'mips' ] and host_machine.endian() == 'little'
nix_system_cpu += 'el'
elif host_machine.cpu_family() == 'arm'
nix_system_cpu = host_machine.cpu()
endif endif