summary refs log tree commit diff
path: root/pkgs/development/libraries/glibc
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2012-04-11 04:42:23 +0000
committerShea Levy <shea@shealevy.com>2012-04-11 04:42:23 +0000
commit8f60696e06a3c714f83968f57cd6a230d92e7430 (patch)
tree9ea22ae806ded87181f954605bc88704ac2ee9f7 /pkgs/development/libraries/glibc
parent6e195330d6f54e42f625ff789920ba5c17149574 (diff)
downloadnixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.tar
nixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.tar.gz
nixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.tar.bz2
nixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.tar.lz
nixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.tar.xz
nixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.tar.zst
nixpkgs-8f60696e06a3c714f83968f57cd6a230d92e7430.zip
glibc: Don't check /etc/ld.so.cache
Idea by Eelco, initial patch by Jack Cummings, minor fixups by me

svn path=/nixpkgs/branches/stdenv-updates/; revision=33741
Diffstat (limited to 'pkgs/development/libraries/glibc')
-rw-r--r--pkgs/development/libraries/glibc/2.13/builder.sh7
-rw-r--r--pkgs/development/libraries/glibc/2.13/common.nix3
-rw-r--r--pkgs/development/libraries/glibc/2.13/dont_use_system_ld_so_cache.patch43
-rw-r--r--pkgs/development/libraries/glibc/2.14/builder.sh8
-rw-r--r--pkgs/development/libraries/glibc/2.14/common.nix3
-rw-r--r--pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch43
6 files changed, 92 insertions, 15 deletions
diff --git a/pkgs/development/libraries/glibc/2.13/builder.sh b/pkgs/development/libraries/glibc/2.13/builder.sh
index f979b91200d..e68e13f9bec 100644
--- a/pkgs/development/libraries/glibc/2.13/builder.sh
+++ b/pkgs/development/libraries/glibc/2.13/builder.sh
@@ -51,11 +51,4 @@ postInstall() {
     rm -f $out/lib/libgcc_s.so.1
 }
 
-postFixup() {
-    # libelf uses gencat, so we need to fix it's rpath so that it doesn't pick up the system rpath. 
-    patchelf --set-rpath $out/lib $out/bin/gencat
-    # librt (used by acl, used by coreutils) links against pthread, try *not* to pick up the system one. 
-    patchelf --set-rpath $out/lib $out/lib/librt-*.so
-}
-
 genericBuild
diff --git a/pkgs/development/libraries/glibc/2.13/common.nix b/pkgs/development/libraries/glibc/2.13/common.nix
index 6cb663d7f12..7d17f21a914 100644
--- a/pkgs/development/libraries/glibc/2.13/common.nix
+++ b/pkgs/development/libraries/glibc/2.13/common.nix
@@ -75,6 +75,9 @@ stdenv.mkDerivation ({
     /* Allow nixos and nix handle the locale-archive. */
     ./nix-locale-archive.patch
 
+    /* don't use /etc/ld.so.cache, for non-nixos systems */
+    ./dont_use_system_ld_so_cache.patch
+
     /* Without this patch many KDE binaries crash. */
     ./glibc-elf-localscope.patch
   ] ++ stdenv.lib.optional installLocales ./catalan-firstdays.patch;
diff --git a/pkgs/development/libraries/glibc/2.13/dont_use_system_ld_so_cache.patch b/pkgs/development/libraries/glibc/2.13/dont_use_system_ld_so_cache.patch
new file mode 100644
index 00000000000..444eb8251e4
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.13/dont_use_system_ld_so_cache.patch
@@ -0,0 +1,43 @@
+diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c
+--- glibc-2.13-orig/elf/ldconfig.c	2011-01-17 23:34:07.000000000 -0500
++++ glibc-2.13/elf/ldconfig.c	2012-04-10 23:28:45.957492340 -0400
+@@ -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.13-orig/elf/Makefile glibc-2.13/elf/Makefile
+--- glibc-2.13-orig/elf/Makefile	2011-01-17 23:34:07.000000000 -0500
++++ glibc-2.13/elf/Makefile	2012-04-10 23:27:05.666477442 -0400
+@@ -459,11 +459,11 @@
+ $(objpfx)sprof: $(libdl)
+ 
+ $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
+-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
+-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
++PREFIX-FLAGS := -D'PREFIX="$(prefix)"'
++CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
+ 		    -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
+-CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
+-CFLAGS-cache.c = $(SYSCONF-FLAGS)
++CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
++CFLAGS-cache.c = $(PREFIX-FLAGS)
+ 
+ CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
+ 
+diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h
+--- glibc-2.13-orig/sysdeps/generic/dl-cache.h	2011-01-17 23:34:07.000000000 -0500
++++ glibc-2.13/sysdeps/generic/dl-cache.h	2012-04-10 23:28:20.077488815 -0400
+@@ -29,7 +29,7 @@
+ #endif
+ 
+ #ifndef LD_SO_CACHE
+-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
++# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
+ #endif
+ 
+ #ifndef add_system_dir
diff --git a/pkgs/development/libraries/glibc/2.14/builder.sh b/pkgs/development/libraries/glibc/2.14/builder.sh
index 7d829816fb7..e68e13f9bec 100644
--- a/pkgs/development/libraries/glibc/2.14/builder.sh
+++ b/pkgs/development/libraries/glibc/2.14/builder.sh
@@ -51,12 +51,4 @@ postInstall() {
     rm -f $out/lib/libgcc_s.so.1
 }
 
-postFixup() {
-    # libelf uses gencat, so we need to fix it's rpath so that it doesn't pick up the system rpath.
-    patchelf --set-rpath $out/lib $out/bin/gencat
-    # librt (used by acl, used by coreutils) links against pthread, try *not* to pick up the system one.
-    patchelf --set-rpath $out/lib $out/lib/librt-*.so
-}
-
-
 genericBuild
diff --git a/pkgs/development/libraries/glibc/2.14/common.nix b/pkgs/development/libraries/glibc/2.14/common.nix
index 4ded6e4edd8..fcc07b71cf9 100644
--- a/pkgs/development/libraries/glibc/2.14/common.nix
+++ b/pkgs/development/libraries/glibc/2.14/common.nix
@@ -75,6 +75,9 @@ stdenv.mkDerivation ({
     /* Allow nixos and nix handle the locale-archive. */
     ./nix-locale-archive.patch
 
+    /* don't use /etc/ld.so.cache, for non-nixos systems */
+    ./dont_use_system_ld_so_cache.patch
+
     /* Without this patch many KDE binaries crash. */
     ./glibc-elf-localscope.patch
   ];
diff --git a/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch b/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch
new file mode 100644
index 00000000000..444eb8251e4
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.14/dont_use_system_ld_so_cache.patch
@@ -0,0 +1,43 @@
+diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c
+--- glibc-2.13-orig/elf/ldconfig.c	2011-01-17 23:34:07.000000000 -0500
++++ glibc-2.13/elf/ldconfig.c	2012-04-10 23:28:45.957492340 -0400
+@@ -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.13-orig/elf/Makefile glibc-2.13/elf/Makefile
+--- glibc-2.13-orig/elf/Makefile	2011-01-17 23:34:07.000000000 -0500
++++ glibc-2.13/elf/Makefile	2012-04-10 23:27:05.666477442 -0400
+@@ -459,11 +459,11 @@
+ $(objpfx)sprof: $(libdl)
+ 
+ $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o)
+-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
+-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
++PREFIX-FLAGS := -D'PREFIX="$(prefix)"'
++CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
+ 		    -D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
+-CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
+-CFLAGS-cache.c = $(SYSCONF-FLAGS)
++CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
++CFLAGS-cache.c = $(PREFIX-FLAGS)
+ 
+ CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
+ 
+diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h
+--- glibc-2.13-orig/sysdeps/generic/dl-cache.h	2011-01-17 23:34:07.000000000 -0500
++++ glibc-2.13/sysdeps/generic/dl-cache.h	2012-04-10 23:28:20.077488815 -0400
+@@ -29,7 +29,7 @@
+ #endif
+ 
+ #ifndef LD_SO_CACHE
+-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
++# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
+ #endif
+ 
+ #ifndef add_system_dir