aboutsummaryrefslogtreecommitdiff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorVladimír Čunát <v@cunat.cz>2020-02-05 13:41:09 +0100
committerVladimír Čunát <v@cunat.cz>2020-02-05 13:41:09 +0100
commit48a997cd76c8f141938cf98f82a867d0cf88fec2 (patch)
tree78469b48c8ca2451134c411b689902ed4d046414 /pkgs/stdenv
parent15021db2fa441d7fa73538dd0e46e9d74731ace8 (diff)
parent5ca088f1cc4216fe4a11a769ec5d55343a3f978a (diff)
Merge #66528: glibc: 2.27 -> 2.30 (into staging)
Includes update of stdenv bootstap tools (for three main platforms) and many package fixes with new glibc.
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/aarch64.nix4
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/i686.nix4
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/x86_64.nix4
-rw-r--r--pkgs/stdenv/linux/default.nix30
4 files changed, 32 insertions, 10 deletions
diff --git a/pkgs/stdenv/linux/bootstrap-files/aarch64.nix b/pkgs/stdenv/linux/bootstrap-files/aarch64.nix
index ca7e84502ab3..72ded1be11a1 100644
--- a/pkgs/stdenv/linux/bootstrap-files/aarch64.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/aarch64.nix
@@ -5,7 +5,7 @@
executable = true;
};
bootstrapTools = import <nix/fetchurl.nix> {
- url = http://nixos-arm.dezgeg.me/bootstrap-aarch64-2017-03-11-bb3ef8/bootstrap-tools.tar.xz;
- sha256 = "1075d5n4yclbhgisi6ba50601mw3fhivlkjs462qlnq8hh0xc7nq";
+ url = http://tarballs.nixos.org/stdenv-linux/aarch64/c5aabb0d603e2c1ea05f5a93b3be82437f5ebf31/bootstrap-tools.tar.xz;
+ sha256 = "d3f1bf2a1495b97f45359d5623bdb1f8eb75db43d3bf2059fc127b210f059358";
};
}
diff --git a/pkgs/stdenv/linux/bootstrap-files/i686.nix b/pkgs/stdenv/linux/bootstrap-files/i686.nix
index cf484fd92533..81dede2c80eb 100644
--- a/pkgs/stdenv/linux/bootstrap-files/i686.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/i686.nix
@@ -6,7 +6,7 @@
};
bootstrapTools = import <nix/fetchurl.nix> {
- url = http://tarballs.nixos.org/stdenv-linux/i686/4907fc9e8d0d82b28b3c56e3a478a2882f1d700f/bootstrap-tools.tar.xz;
- sha256 = "cf920d26d94335f5cb46e247455d0e5389765d16a2b8fc233b792a655b5b58aa";
+ url = http://tarballs.nixos.org/stdenv-linux/i686/c5aabb0d603e2c1ea05f5a93b3be82437f5ebf31/bootstrap-tools.tar.xz;
+ sha256 = "b9bf20315f8c5c0411679c5326084420b522046057a0850367c67d9514794f1c";
};
}
diff --git a/pkgs/stdenv/linux/bootstrap-files/x86_64.nix b/pkgs/stdenv/linux/bootstrap-files/x86_64.nix
index 69d08c5e981a..2800d571c40f 100644
--- a/pkgs/stdenv/linux/bootstrap-files/x86_64.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/x86_64.nix
@@ -3,7 +3,7 @@
{
bootstrapTools = import <nix/fetchurl.nix> {
- url = http://tarballs.nixos.org/stdenv-linux/x86_64/4907fc9e8d0d82b28b3c56e3a478a2882f1d700f/bootstrap-tools.tar.xz;
- sha256 = "abe3f0727dd771a60b7922892d308da1bc7b082afc13440880862f0c8823c09f";
+ url = http://tarballs.nixos.org/stdenv-linux/x86_64/c5aabb0d603e2c1ea05f5a93b3be82437f5ebf31/bootstrap-tools.tar.xz;
+ sha256 = "a5ce9c155ed09397614646c9717fc7cd94b1023d7b76b618d409e4fefd6e9d39";
};
}
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 8344c9dfb2b8..60c0730dce1f 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -226,6 +226,28 @@ in
ccWrapperStdenv
gcc-unwrapped coreutils gnugrep
perl gnum4 bison;
+ dejagnu = super.dejagnu.overrideAttrs (a: { doCheck = false; } );
+
+ # We need libidn2 and its dependency libunistring as glibc dependency.
+ # To avoid the cycle, we build against bootstrap libc, nuke references,
+ # and use the result as input for our final glibc. We also pass this pair
+ # through, so the final package-set uses exactly the same builds.
+ libunistring = super.libunistring.overrideAttrs (attrs: {
+ postFixup = attrs.postFixup or "" + ''
+ ${self.nukeReferences}/bin/nuke-refs "$out"/lib/lib*.so.*.*
+ '';
+ # Apparently iconv won't work with bootstrap glibc, but it will be used
+ # with glibc built later where we keep *this* build of libunistring,
+ # so we need to trick it into supporting libiconv.
+ am_cv_func_iconv_works = "yes";
+ });
+ libidn2 = super.libidn2.overrideAttrs (attrs: {
+ postFixup = attrs.postFixup or "" + ''
+ ${self.nukeReferences}/bin/nuke-refs -e '${lib.getLib self.libunistring}' \
+ "$out"/lib/lib*.so.*.*
+ '';
+ });
+
# This also contains the full, dynamically linked, final Glibc.
binutils = prevStage.binutils.override {
# Rewrap the binutils with the new glibc, so both the next
@@ -246,7 +268,7 @@ in
inherit (prevStage)
ccWrapperStdenv
binutils coreutils gnugrep
- perl patchelf linuxHeaders gnum4 bison;
+ perl patchelf linuxHeaders gnum4 bison libidn2 libunistring;
${localSystem.libc} = getLibc prevStage;
# Link GCC statically against GMP etc. This makes sense because
# these builds of the libraries are only used by GCC, so it
@@ -276,7 +298,7 @@ in
# because gcc (since JAR support) already depends on zlib, and
# then if we already have a zlib we want to use that for the
# other purposes (binutils and top-level pkgs) too.
- inherit (prevStage) gettext gnum4 bison gmp perl texinfo zlib linuxHeaders;
+ inherit (prevStage) gettext gnum4 bison gmp perl texinfo zlib linuxHeaders libidn2 libunistring;
${localSystem.libc} = getLibc prevStage;
binutils = super.binutils.override {
# Don't use stdenv's shell but our own
@@ -362,7 +384,7 @@ in
]
# Library dependencies
++ map getLib (
- [ attr acl zlib pcre ]
+ [ attr acl zlib pcre libidn2 libunistring ]
++ lib.optional (gawk.libsigsegv != null) gawk.libsigsegv
)
# More complicated cases
@@ -377,7 +399,7 @@ in
inherit (prevStage)
gzip bzip2 xz bash coreutils diffutils findutils gawk
gnumake gnused gnutar gnugrep gnupatch patchelf
- attr acl zlib pcre;
+ attr acl zlib pcre libunistring libidn2;
${localSystem.libc} = getLibc prevStage;
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
# Need to get rid of these when cross-compiling.