summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '9999/0002-Gentoo-support-running-tests-under-sandbox.patch')
-rw-r--r--9999/0002-Gentoo-support-running-tests-under-sandbox.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/9999/0002-Gentoo-support-running-tests-under-sandbox.patch b/9999/0002-Gentoo-support-running-tests-under-sandbox.patch
new file mode 100644
index 0000000..1bc7be2
--- /dev/null
+++ b/9999/0002-Gentoo-support-running-tests-under-sandbox.patch
@@ -0,0 +1,67 @@
+From a4ec232302f8b30f6fc7eb7a53aadf99b3fad312 Mon Sep 17 00:00:00 2001
+From: "Stephanie J. Lockwood-Childs" <wormo@gentoo.org>
+Date: Tue, 13 Mar 2007 01:57:21 -0400
+Subject: [PATCH 02/12] Gentoo: support running tests under sandbox
+
+when glibc runs its tests, it does so by invoking the local library loader.
+in Gentoo, we build/run inside of our "sandbox" which itself is linked against
+libdl (so that it can load libraries and pull out symbols). the trouble
+is that when you upgrade from an older glibc to the new one, often times
+internal symbols change name or abi. this is normally OK as you cannot use
+libc.so from say version 2.3.6 but libpthread.so from say version 2.5, so
+we always say "keep all of the glibc libraries from the same build". but
+when glibc runs its tests, it uses dynamic paths to point to its new local
+copies of libraries. if the test doesnt use libdl, then glibc doesnt add
+its path, and when sandbox triggers the loading of libdl, glibc does so
+from the host system system. this gets us into the case of all libraries
+are from the locally compiled version of glibc except for libdl.so.
+
+http://bugs.gentoo.org/56898
+---
+ Makeconfig | 2 +-
+ iconvdata/run-iconv-test.sh | 2 +-
+ nptl/tst-tls6.sh | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makeconfig b/Makeconfig
+index f252842979..5076902c87 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -728,7 +728,7 @@ comma = ,
+ sysdep-library-path = \
+ $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
+ $(filter -Wl$(comma)-rpath-link=%,\
+- $(sysdep-LDFLAGS)))))
++ $(sysdep-LDFLAGS)))) $(common-objpfx)/dlfcn)
+ # $(run-via-rtld-prefix) is a command that, when prepended to the name
+ # of a program built with the newly built library, produces a command
+ # that, executed on the host for which the library is built, runs that
+diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh
+index 56b6630a6d..be74dbf302 100755
+--- a/iconvdata/run-iconv-test.sh
++++ b/iconvdata/run-iconv-test.sh
+@@ -31,7 +31,7 @@ temp2=$codir/iconvdata/iconv-test.yyy
+ trap "rm -f $temp1 $temp2" 1 2 3 15
+
+ # We have to have some directories in the library path.
+-LIBPATH=$codir:$codir/iconvdata
++LIBPATH=$codir:$codir/iconvdata:$codir/dlfcn
+
+ # How the start the iconv(1) program.
+ ICONV='$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \
+diff --git a/nptl/tst-tls6.sh b/nptl/tst-tls6.sh
+index e6dc20572a..a25b167b2d 100755
+--- a/nptl/tst-tls6.sh
++++ b/nptl/tst-tls6.sh
+@@ -26,7 +26,7 @@ run_program_env=$1; shift
+ logfile=$common_objpfx/nptl/tst-tls6.out
+
+ # We have to find libc and nptl
+-library_path=${common_objpfx}:${common_objpfx}nptl
++library_path=${common_objpfx}:${common_objpfx}nptl:${common_objpfx}/dlfcn
+ tst_tls5="${test_via_rtld_prefix} ${common_objpfx}/nptl/tst-tls5"
+
+ > $logfile
+--
+2.26.2
+