From 05068ac554f92c2d588c39aa2df970abd0e765e8 Mon Sep 17 00:00:00 2001 From: Ian-Woo Kim Date: Wed, 19 Feb 2014 01:44:33 +0100 Subject: [PATCH] glibc: do not use system ld.so.preload (close #1788) Modified according to the PR comment. --- pkgs/development/libraries/glibc/2.19/common.nix | 3 +++ .../glibc/2.19/dont-use-system-ld-so-preload.patch | 12 ++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch diff --git a/pkgs/development/libraries/glibc/2.19/common.nix b/pkgs/development/libraries/glibc/2.19/common.nix index 07baefa9281..6823e4d9f66 100644 --- a/pkgs/development/libraries/glibc/2.19/common.nix +++ b/pkgs/development/libraries/glibc/2.19/common.nix @@ -44,6 +44,9 @@ stdenv.mkDerivation ({ /* Don't use /etc/ld.so.cache, for non-NixOS systems. */ ./dont-use-system-ld-so-cache.patch + /* Don't use /etc/ld.so.preload, but /etc/ld-nix.so.preload. */ + ./dont-use-system-ld-so-preload.patch + /* Add blowfish password hashing support. This is needed for compatibility with old NixOS installations (since NixOS used to default to blowfish). */ diff --git a/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch b/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch new file mode 100644 index 00000000000..fabb6c3ec5e --- /dev/null +++ b/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch @@ -0,0 +1,12 @@ +diff -rupN a/elf/rtld.c b/elf/rtld.c +--- a/elf/rtld.c 2013-08-11 00:52:55.000000001 +0200 ++++ b/elf/rtld.c 2014-02-18 13:56:19.000000001 +0100 +@@ -1639,7 +1639,7 @@ ERROR: ld.so: object '%s' cannot be load + 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. */ +- static const char preload_file[] = "/etc/ld.so.preload"; ++ static const char preload_file[] = "/etc/ld-nix.so.preload"; + if (__builtin_expect (__access (preload_file, R_OK) == 0, 0)) + { + /* Read the contents of the file. */