Unverified Commit c3ef726e authored by Jonas Chevalier's avatar Jonas Chevalier Committed by GitHub
Browse files

nixos/ldso: avoid instance of nixpkgs (#288509)

Follow-up to #269551

Avoid creating a new instance of nixpkgs to access two variables.
`pkgs.pkgsi686Linux` was being accessed whenever the feature is being
used or not.

A second instance of nixpkgs is being created in
`nixos/modules/config/stub-ld.nix` and can be disabled by setting
`environment.ldso32 = null` or `environment.stub-ld.enable = false`.

Both combined fixes this error:

    error: attribute 'i686-linux' missing
parent 446a9051
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -6,9 +6,9 @@ let
  libDir = pkgs.stdenv.hostPlatform.libDir;
  ldsoBasename = builtins.unsafeDiscardStringContext (last (splitString "/" pkgs.stdenv.cc.bintools.dynamicLinker));

  pkgs32 = pkgs.pkgsi686Linux;
  libDir32 = pkgs32.stdenv.hostPlatform.libDir;
  ldsoBasename32 = builtins.unsafeDiscardStringContext (last (splitString "/" pkgs32.stdenv.cc.bintools.dynamicLinker));
  # Hard-code to avoid creating another instance of nixpkgs. Also avoids eval errors in some cases.
  libDir32 = "lib"; # pkgs.pkgsi686Linux.stdenv.hostPlatform.libDir
  ldsoBasename32 = "ld-linux.so.2"; # last (splitString "/" pkgs.pkgsi686Linux.stdenv.cc.bintools.dynamicLinker)
in {
  options = {
    environment.ldso = mkOption {