diff options
Diffstat (limited to 'sys-libs/glibc/glibc-2.24-r4.ebuild')
-rw-r--r-- | sys-libs/glibc/glibc-2.24-r4.ebuild | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sys-libs/glibc/glibc-2.24-r4.ebuild b/sys-libs/glibc/glibc-2.24-r4.ebuild index b808611bd319..6e4b70cd46d0 100644 --- a/sys-libs/glibc/glibc-2.24-r4.ebuild +++ b/sys-libs/glibc/glibc-2.24-r4.ebuild @@ -52,6 +52,28 @@ if [[ ${CTARGET} == ${CHOST} ]] ; then fi fi +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we disable stripping +# entirely. +RESTRICT=strip + is_crosscompile() { [[ ${CHOST} != ${CTARGET} ]] } |