This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.25-776-g64a1dae


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  64a1daed189ab6fff11b33dd8d493962460f0f6c (commit)
      from  1740441b49cd4fee21b0368108ab53fb788bba7b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=64a1daed189ab6fff11b33dd8d493962460f0f6c

commit 64a1daed189ab6fff11b33dd8d493962460f0f6c
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Sun Jul 23 12:50:44 2017 -0400

    [BZ 19170]
    Revise comment in sysdeps/hppa/dl-trampoline.S

diff --git a/ChangeLog b/ChangeLog
index a0f094b..1033f38 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-07-23  John David Anglin  <danglin@gcc.gnu.org>
+
+	[BZ 19170]
+	* sysdeps/hppa/dl-trampoline.S (_dl_runtime_resolve): Revise comment.
+
 2017-07-21  DJ Delorie  <dj@redhat.com>
 
 	* nss/tst-nss-test5.c: Correct test configuration.
diff --git a/sysdeps/hppa/dl-trampoline.S b/sysdeps/hppa/dl-trampoline.S
index f1294a9..3165c6f 100644
--- a/sysdeps/hppa/dl-trampoline.S
+++ b/sysdeps/hppa/dl-trampoline.S
@@ -82,9 +82,19 @@ _dl_runtime_resolve:
 	bl	_dl_fixup,%rp
 	copy	%r21,%r19		/* set fixup func ltp */
 
-	/* Sometimes a final executable may attempt to call an undefined
-	   weak function (e.g., __gmon_start__).  Return if the function
-	   was not resolved by _dl_fixup */
+	/* While the linker will set a function pointer to NULL when it
+	   encounters an undefined weak function, we need to dynamically
+	   detect removed weak functions.  The issue arises because a weak
+	   __gmon_start__ function was added to shared executables to work
+	   around issues in _init that are now resolved.  The presence of
+	   __gmon_start__ in every shared library breaks the linker
+	   `--as-needed' option.  This __gmon_start__ function does nothing
+	   but removal is tricky.  Depending on the binding, removal can
+	   cause an application using it to fault.  The call to _dl_fixup
+	   returns NULL when a function isn't resolved.  In order to help
+	   with __gmon_start__ removal, we return directly to the caller
+	   when _dl_fixup returns NULL.  This check could be removed when
+	   BZ 19170 is fixed.  */
 	comib,=	0,%r28,1f
 
 	/* Load up the returned func descriptor */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                    |    5 +++++
 sysdeps/hppa/dl-trampoline.S |   16 +++++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]