top-level, stdenv: Make system
and stdenv.system
describe the hostPlatform.
Intuitively, one cares mainly about the host platform: Platforms differ in meaningful ways but compilation is morally a pure process and probably doesn't care, or those difference are already abstracted away. @Dezgeg also empirically confirmed that > 95% of checks are indeed of the host platform. Yet these attributes in the old cross infrastructure were defined to be the build platform, for expediency. And this was never before changed. (For native builds build and host coincide, so it isn't clear what the intention was.) Fixing this doesn't affect native builds, since again they coincide. It also doesn't affect cross builds of anything in Nixpkgs, as these are no longer used. It could affect external cross builds, but I deem that unlikely as anyone thinking about cross would use more explicit attributes for clarity, all the more so because the rarity of inspecting the build platform.
This commit is contained in:
parent
e51f736076
commit
773233ca77
2 changed files with 4 additions and 1 deletions
|
@ -127,6 +127,9 @@ let
|
|||
"`stdenv.isArm` is deprecated after 18.03. Please use `stdenv.isAarch32` instead"
|
||||
hostPlatform.isAarch32;
|
||||
|
||||
# The derivation's `system` is `buildPlatform.system`.
|
||||
inherit (buildPlatform) system;
|
||||
|
||||
# Whether we should run paxctl to pax-mark binaries.
|
||||
needsPax = isLinux;
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ let
|
|||
targetPlatform = lib.warn
|
||||
"top-level `targetPlatform` is deprecated since 18.09. Please use `stdenv.targetPlatform`."
|
||||
super.stdenv.targetPlatform;
|
||||
inherit (super.stdenv.buildPlatform) system;
|
||||
inherit (super.stdenv.hostPlatform) system;
|
||||
};
|
||||
|
||||
splice = self: super: import ./splice.nix lib self (buildPackages != null);
|
||||
|
|
Loading…
Reference in a new issue