glibc_multi: fix invalid 32bit glibc when cross compiling

The issue this fixes happens when cross compilation is used. The
pkgsCross.*.buildPackages.glibc_multi actually combined x86_64 with
target's. That is because pkgsi686Linux actually is package set where
target and host are the same and thus buildPackages.pkgsi686Linux
actually is the same as using directly pkgsi686Linux. To overcome that
we need packages that have cross platform target but host and build
platform has to be set to i686.

This change does not affect usage outside cross compilation because in
that case buildPackages set is the same as the current set.
This commit is contained in:
Karel Kočí 2023-03-08 19:31:14 +01:00 committed by Alyssa Ross
parent 8c15b21b27
commit adfac122cd

View File

@ -20722,7 +20722,11 @@ with pkgs;
glibcInfo = callPackage ../development/libraries/glibc/info.nix { };
glibc_multi = callPackage ../development/libraries/glibc/multi.nix {
glibc32 = pkgsi686Linux.glibc;
# The buildPackages is required for cross-compilation. The pkgsi686Linux set
# has target and host always set to the same value based on target platform
# of the current set. We need host to be same as build to correctly get i686
# variant of glibc.
glibc32 = pkgsi686Linux.buildPackages.glibc;
};
glm = callPackage ../development/libraries/glm { };