diff --git a/pkgs/os-specific/linux/uclibc/default.nix b/pkgs/os-specific/linux/uclibc/default.nix index b856a788348f..88cf59cf8b74 100644 --- a/pkgs/os-specific/linux/uclibc/default.nix +++ b/pkgs/os-specific/linux/uclibc/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, linuxHeaders, libiconv, cross ? null, gccCross ? null, +{stdenv, fetchurl, linuxHeaders, libiconvReal, cross ? null, gccCross ? null, extraConfig ? ""}: assert stdenv.isLinux; @@ -95,7 +95,7 @@ stdenv.mkDerivation { passthru = { # Derivations may check for the existance of this attribute, to know what to link to. - inherit libiconv; + libiconv = libiconvReal; }; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f0c98ce6c2ff..c7997f1d2637 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6285,11 +6285,16 @@ let 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.isGlibc then stdenv.cc.libc else callPackage ../development/libraries/libiconv { }; + libiconvReal = callPackage ../development/libraries/libiconv { }; + # On non-GNU systems we need GNU Gettext for libintl. libintlOrEmpty = stdenv.lib.optional (!stdenv.isLinux) gettext; @@ -9163,7 +9168,7 @@ let uclibc = callPackage ../os-specific/linux/uclibc { }; uclibcCross = lowPrio (callPackage ../os-specific/linux/uclibc { - inherit fetchurl stdenv libiconv; + inherit fetchurl stdenv libiconvReal; linuxHeaders = linuxHeadersCross; gccCross = gccCrossStageStatic; cross = assert crossSystem != null; crossSystem;