diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 458745694bc..a5a83b645ab 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -23,6 +23,7 @@ , linuxHeaders ? null , gd ? null, libpng ? null , bison +, python3 }: { name @@ -34,9 +35,9 @@ } @ args: let - version = "2.27"; + version = "2.30"; patchSuffix = ""; - sha256 = "0wpwq7gsm7sd6ysidv0z575ckqdg13cr2njyfgrbgh4f65adwwji"; + sha256 = "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72"; in assert withLinuxHeaders -> linuxHeaders != null; @@ -162,7 +163,7 @@ stdenv.mkDerivation ({ outputs = [ "out" "bin" "dev" "static" ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bison ]; + nativeBuildInputs = [ bison python3 ]; buildInputs = [ linuxHeaders ] ++ lib.optionals withGd [ gd libpng ]; # Needed to install share/zoneinfo/zone.tab. Set to impure /bin/sh to diff --git a/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch b/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch index f84b1049adf..f45e39525f5 100644 --- a/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch +++ b/pkgs/development/libraries/glibc/dont-use-system-ld-so-cache.patch @@ -1,19 +1,6 @@ -diff -Naur glibc-2.27-orig/elf/ldconfig.c glibc-2.27/elf/ldconfig.c ---- glibc-2.27-orig/elf/ldconfig.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/elf/ldconfig.c 2018-02-17 22:43:17.232175182 -0500 -@@ -51,7 +51,7 @@ - #endif - - #ifndef LD_SO_CONF --# define LD_SO_CONF SYSCONFDIR "/ld.so.conf" -+# define LD_SO_CONF PREFIX "/etc/ld.so.conf" - #endif - - /* Get libc version number. */ -diff -Naur glibc-2.27-orig/elf/Makefile glibc-2.27/elf/Makefile ---- glibc-2.27-orig/elf/Makefile 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/elf/Makefile 2018-02-17 22:44:50.334006750 -0500 -@@ -559,13 +559,13 @@ +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -589,13 +589,13 @@ $(objpfx)sln: $(sln-modules:%=$(objpfx)%.o) $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o) @@ -32,9 +19,19 @@ diff -Naur glibc-2.27-orig/elf/Makefile glibc-2.27/elf/Makefile cpp-srcs-left := $(all-rtld-routines:=.os) lib := rtld -diff -Naur glibc-2.27-orig/sysdeps/generic/dl-cache.h glibc-2.27/sysdeps/generic/dl-cache.h ---- glibc-2.27-orig/sysdeps/generic/dl-cache.h 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/sysdeps/generic/dl-cache.h 2018-02-17 22:45:20.471598816 -0500 +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -51,7 +51,7 @@ + #endif + + #ifndef LD_SO_CONF +-# define LD_SO_CONF SYSCONFDIR "/ld.so.conf" ++# define LD_SO_CONF PREFIX "/etc/ld.so.conf" + #endif + + /* Get libc version number. */ +--- a/sysdeps/generic/dl-cache.h ++++ b/sysdeps/generic/dl-cache.h @@ -28,7 +28,7 @@ #endif diff --git a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch b/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch index 894e2a11cf8..69b63a5bcfe 100644 --- a/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch +++ b/pkgs/development/libraries/glibc/dont-use-system-ld-so-preload.patch @@ -1,7 +1,6 @@ -diff -ru glibc-2.20-orig/elf/rtld.c glibc-2.20/elf/rtld.c ---- glibc-2.20-orig/elf/rtld.c 2014-09-07 10:09:09.000000000 +0200 -+++ glibc-2.20/elf/rtld.c 2014-10-27 11:32:25.203043157 +0100 -@@ -1513,7 +1513,7 @@ +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -1697,7 +1697,7 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]); open(). So we do this first. If it succeeds we do almost twice the work but this does not matter, since it is not for production use. */ diff --git a/pkgs/development/libraries/glibc/fix-x64-abi.patch b/pkgs/development/libraries/glibc/fix-x64-abi.patch index 1d60dcd7988..f5a6d603bf8 100644 --- a/pkgs/development/libraries/glibc/fix-x64-abi.patch +++ b/pkgs/development/libraries/glibc/fix-x64-abi.patch @@ -1,4 +1,4 @@ -From 3288c6da64add3b4561b8c10fff522027caea01c Mon Sep 17 00:00:00 2001 +From d9e6dd5631c8d97fd2d3128317c6352e34bf3ca7 Mon Sep 17 00:00:00 2001 From: Nicholas Miell Date: Sat, 17 Jun 2017 18:21:07 -0700 Subject: [PATCH] Align the stack on entry to __tls_get_addr() @@ -17,13 +17,13 @@ engine and available for purchase on Steam. 1 file changed, 4 insertions(+) diff --git a/elf/dl-tls.c b/elf/dl-tls.c -index 5aba33b3fa..3f3cb917de 100644 +index b425d661..b02c2afa 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c -@@ -827,6 +827,10 @@ rtld_hidden_proto (__tls_get_addr) +@@ -818,6 +818,10 @@ rtld_hidden_proto (__tls_get_addr) rtld_hidden_def (__tls_get_addr) #endif - + +#ifdef __x86_64__ +/* Old versions of gcc didn't align the stack. */ +__attribute__((force_align_arg_pointer)) @@ -31,5 +31,6 @@ index 5aba33b3fa..3f3cb917de 100644 /* The generic dynamic and local dynamic model cannot be used in statically linked applications. */ void * --- -2.13.0 +-- +2.17.1 + diff --git a/pkgs/development/libraries/glibc/fix_path_attribute_in_getconf.patch b/pkgs/development/libraries/glibc/fix_path_attribute_in_getconf.patch index 714e49db560..b13cea4dcb3 100644 --- a/pkgs/development/libraries/glibc/fix_path_attribute_in_getconf.patch +++ b/pkgs/development/libraries/glibc/fix_path_attribute_in_getconf.patch @@ -1,6 +1,5 @@ -diff -ubr glibc-2.17-orig/sysdeps/unix/confstr.h glibc-2.17/sysdeps/unix/confstr.h ---- glibc-2.17-orig/sysdeps/unix/confstr.h 2013-06-03 22:01:44.829726968 +0200 -+++ glibc-2.17/sysdeps/unix/confstr.h 2013-06-03 22:04:39.469376740 +0200 +--- a/sysdeps/unix/confstr.h ++++ b/sysdeps/unix/confstr.h @@ -1 +1 @@ -#define CS_PATH "/bin:/usr/bin" +#define CS_PATH "/run/current-system/sw/bin:/bin:/usr/bin" diff --git a/pkgs/development/libraries/glibc/nix-locale-archive.patch b/pkgs/development/libraries/glibc/nix-locale-archive.patch index 39312951fcf..f2feabc36ad 100644 --- a/pkgs/development/libraries/glibc/nix-locale-archive.patch +++ b/pkgs/development/libraries/glibc/nix-locale-archive.patch @@ -1,7 +1,6 @@ -diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c ---- glibc-2.27-orig/locale/loadarchive.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/loadarchive.c 2018-02-17 22:32:25.680169462 -0500 -@@ -123,6 +123,23 @@ +--- a/locale/loadarchive.c ++++ b/locale/loadarchive.c +@@ -123,6 +123,23 @@ calculate_head_size (const struct locarhead *h) return MAX (namehash_end, MAX (string_end, locrectab_end)); } @@ -25,7 +24,7 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c /* Find the locale *NAMEP in the locale archive, and return the internalized data structure for its CATEGORY data. If this locale has -@@ -202,7 +219,7 @@ +@@ -202,7 +219,7 @@ _nl_load_locale_from_archive (int category, const char **namep) archmapped = &headmap; /* The archive has never been opened. */ @@ -34,7 +33,7 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c if (fd < 0) /* Cannot open the archive, for whatever reason. */ return NULL; -@@ -397,8 +414,7 @@ +@@ -397,8 +414,7 @@ _nl_load_locale_from_archive (int category, const char **namep) if (fd == -1) { struct stat64 st; @@ -44,13 +43,13 @@ diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c if (fd == -1) /* Cannot open the archive, for whatever reason. */ return NULL; -diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/locale.c ---- glibc-2.27-orig/locale/programs/locale.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/programs/locale.c 2018-02-17 22:36:39.726293213 -0500 -@@ -633,6 +633,24 @@ +--- a/locale/programs/locale.c ++++ b/locale/programs/locale.c +@@ -633,6 +633,24 @@ nameentcmp (const void *a, const void *b) + } - static int ++static int +open_locale_archive (void) +{ + int fd = -1; @@ -68,11 +67,10 @@ diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/l +} + + -+static int + static int write_archive_locales (void **all_datap, char *linebuf) { - struct stat64 st; -@@ -644,7 +662,7 @@ +@@ -645,7 +663,7 @@ write_archive_locales (void **all_datap, char *linebuf) int fd, ret = 0; uint32_t cnt; @@ -81,10 +79,9 @@ diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/l if (fd < 0) return 0; -diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/programs/locarchive.c ---- glibc-2.27-orig/locale/programs/locarchive.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/programs/locarchive.c 2018-02-17 22:40:51.245293975 -0500 -@@ -117,6 +117,22 @@ +--- a/locale/programs/locarchive.c ++++ b/locale/programs/locarchive.c +@@ -117,6 +117,22 @@ prepare_address_space (int fd, size_t total, size_t *reserved, int *xflags, } @@ -107,7 +104,7 @@ diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/progra static void create_archive (const char *archivefname, struct locarhandle *ah) { -@@ -578,7 +594,7 @@ +@@ -578,7 +594,7 @@ open_archive (struct locarhandle *ah, bool readonly) while (1) { /* Open the archive. We must have exclusive write access. */ diff --git a/pkgs/development/libraries/glibc/rpcgen-path.patch b/pkgs/development/libraries/glibc/rpcgen-path.patch index 3349449d916..4f427879f24 100644 --- a/pkgs/development/libraries/glibc/rpcgen-path.patch +++ b/pkgs/development/libraries/glibc/rpcgen-path.patch @@ -1,7 +1,6 @@ -diff -ru glibc-2.18-orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c ---- glibc-2.18-orig/sunrpc/rpc_main.c 2013-08-11 00:52:55.000000000 +0200 -+++ glibc-2.18/sunrpc/rpc_main.c 2013-11-15 12:04:48.041006977 +0100 -@@ -78,7 +78,7 @@ +--- a/sunrpc/rpc_main.c ++++ b/sunrpc/rpc_main.c +@@ -78,7 +78,7 @@ static const char *cmdname; static const char *svcclosetime = "120"; static int cppDefined; /* explicit path for C preprocessor */ @@ -10,7 +9,7 @@ diff -ru glibc-2.18-orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c static const char CPPFLAGS[] = "-C"; static char *pathbuf; static int cpp_pid; -@@ -107,7 +107,6 @@ +@@ -107,7 +107,6 @@ static char *extendfile (const char *file, const char *ext); static void open_output (const char *infile, const char *outfile); static void add_warning (void); static void clear_args (void); @@ -18,7 +17,7 @@ diff -ru glibc-2.18-orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c static void open_input (const char *infile, const char *define); static int check_nettype (const char *name, const char *list_to_check[]); static void c_output (const char *infile, const char *define, -@@ -322,25 +321,6 @@ +@@ -322,25 +321,6 @@ clear_args (void) argcount = FIXEDARGS; } @@ -44,7 +43,7 @@ diff -ru glibc-2.18-orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c /* * Open input file with given define for C-preprocessor */ -@@ -359,7 +339,6 @@ +@@ -359,7 +339,6 @@ open_input (const char *infile, const char *define) switch (cpp_pid) { case 0: