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.10-359-gbc5e846


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  bc5e8462188bdd9919e804fbba44e4b983b7724a (commit)
      from  b7805d0ba8948fcf5e406bf52530d9aba99f5954 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bc5e8462188bdd9919e804fbba44e4b983b7724a

commit bc5e8462188bdd9919e804fbba44e4b983b7724a
Author: Andreas Schwab <schwab@redhat.com>
Date:   Wed Oct 21 06:23:42 2009 -0700

    Handle IFUNC symbols in dlsym.

diff --git a/ChangeLog b/ChangeLog
index 2857d88..ccbb625 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-21  Andreas Schwab  <schwab@redhat.com>
+
+	* elf/dl-sym.c (do_sym): Resolve STT_GNU_IFUNC symbols.
+
 2009-10-19  Andreas Schwab  <schwab@redhat.com>
 
 	* include/math.h: Add hidden protos for __exp/__expf/__expl.
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index 740bb9a..459729f 100644
--- a/elf/dl-sym.c
+++ b/elf/dl-sym.c
@@ -191,6 +191,11 @@ RTLD_NEXT used in code not dynamically loaded"));
 #endif
 	value = DL_SYMBOL_ADDRESS (result, ref);
 
+      /* Resolve indirect function address.  */
+      if (__builtin_expect (ELFW(ST_TYPE) (ref->st_info) == STT_GNU_IFUNC, 0))
+	value
+	  = ((DL_FIXUP_VALUE_TYPE (*) (void)) DL_FIXUP_VALUE_ADDR (value)) ();
+
 #ifdef SHARED
       /* Auditing checkpoint: we have a new binding.  Provide the
 	 auditing libraries the possibility to change the value and

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

Summary of changes:
 ChangeLog    |    4 ++++
 elf/dl-sym.c |    5 +++++
 2 files changed, 9 insertions(+), 0 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]