diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-11-12 23:58:01 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-11-13 00:23:43 +0100 |
commit | 25608d640a97c64a6e1f493ca3e46d9168866249 (patch) | |
tree | afb4e8e732647b25c1dd1da319f346dcffcfa7ad /distro/packages/patches | |
parent | 0db342a590691c8a681e528ebc1664148b5f8579 (diff) |
distro: Patch libc to avoid accessing /etc/ld.so.cache and friends.
* distro/packages/base.scm (glibc): Apply `glibc-no-ld-so-cache.patch'.
(glibc-final): Inherit GLIBC's inputs.
* distro/packages/patches/glibc-no-ld-so-cache.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
Diffstat (limited to 'distro/packages/patches')
-rw-r--r-- | distro/packages/patches/glibc-no-ld-so-cache.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/distro/packages/patches/glibc-no-ld-so-cache.patch b/distro/packages/patches/glibc-no-ld-so-cache.patch new file mode 100644 index 0000000000..75fff50b47 --- /dev/null +++ b/distro/packages/patches/glibc-no-ld-so-cache.patch @@ -0,0 +1,53 @@ +Disable attempts to use the system-wide /etc/ld.so.cache. This is +required on LFS distros to avoid loading the distro's libc.so instead +of ours. + +Patch from Nixpkgs. Idea by Eelco Dolstra, initial patch by Jack +Cummings, minor fixups by Shea Levy. + +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. */ + +--- glibc-2.16.0/elf/Makefile 2012-06-30 21:12:34.000000000 +0200 ++++ glibc-2.16.0/elf/Makefile 2012-11-12 23:52:21.000000000 +0100 +@@ -415,12 +415,12 @@ $(objpfx)ldconfig: $(ldconfig-modules:%= + + $(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o) + +-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' +-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \ ++PREFIX-FLAGS := -D'PREFIX="$(sysconfdir)"' ++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-rtld.c = $(SYSCONF-FLAGS) ++CFLAGS-dl-cache.c = $(PREFIX-FLAGS) ++CFLAGS-cache.c = $(PREFIX-FLAGS) ++CFLAGS-rtld.c = $(PREFIX-FLAGS) + + CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ + -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) + +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 |