diff options
Diffstat (limited to 'pkgs/top-level/all-packages.nix')
-rw-r--r-- | pkgs/top-level/all-packages.nix | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 88f4bc04b9f5..a74fd79d6e74 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8653,15 +8653,19 @@ with pkgs; libgsf = callPackage ../development/libraries/libgsf { }; - # glibc provides libiconv so systems with glibc don't need to build libiconv - # separately, but we also provide libiconvReal, which will always be a - # standalone libiconv, just in case you want it - libiconv = if stdenv ? cross then - (if stdenv.cross.libc == "glibc" then libcCross - else if stdenv.cross.libc == "libSystem" then darwin.libiconv - else libiconvReal) - else if stdenv.isGlibc then glibcIconv stdenv.cc.libc - else if stdenv.isDarwin then darwin.libiconv + # GNU libc provides libiconv so systems with glibc don't need to build + # libiconv separately. Additionally, Apple forked/repackaged libiconv so we + # use that instead of the vanilla version on that OS. + # + # We also provide `libiconvReal`, which will always be a standalone libiconv, + # just in case you want it regardless of platform. + libiconv = + if hostPlatform.libc == "glibc" + then glibcIconv (if hostPlatform != buildPlatform + then libcCross + else stdenv.cc.libc) + else if hostPlatform.isDarwin + then darwin.libiconv else libiconvReal; glibcIconv = libc: let |