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.

authored by

Karel Kočí and committed by
Alyssa Ross
adfac122 8c15b21b

+5 -1
+5 -1
pkgs/top-level/all-packages.nix
··· 20722 20722 glibcInfo = callPackage ../development/libraries/glibc/info.nix { }; 20723 20723 20724 20724 glibc_multi = callPackage ../development/libraries/glibc/multi.nix { 20725 - glibc32 = pkgsi686Linux.glibc; 20725 + # The buildPackages is required for cross-compilation. The pkgsi686Linux set 20726 + # has target and host always set to the same value based on target platform 20727 + # of the current set. We need host to be same as build to correctly get i686 20728 + # variant of glibc. 20729 + glibc32 = pkgsi686Linux.buildPackages.glibc; 20726 20730 }; 20727 20731 20728 20732 glm = callPackage ../development/libraries/glm { };