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.19-224-g7bc5a74


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  7bc5a74162d044cc227b38ebf24e2d1d4594ecb8 (commit)
      from  7578473bbeb61a1d3808104b551f9d0b12e42670 (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=7bc5a74162d044cc227b38ebf24e2d1d4594ecb8

commit 7bc5a74162d044cc227b38ebf24e2d1d4594ecb8
Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Date:   Wed Mar 19 15:30:18 2014 -0500

    Fix localplt check for GNU_IFUNC
    
    GNU_IFUNC are shown by readelf in 'Relocation section' value as
    "symbol()" instead of expected hexadecimal value. This causes the
    check-localplt script to ignore potential PLT stub begin generated
    by wrong IFUNC usage.  This patch changes the localplt script to
    emit such PLT cases.

diff --git a/ChangeLog b/ChangeLog
index e828cc2..a4aab10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2014-03-25 Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
+	* scripts/localplt.awk: Check for PLT generated by internal IFUNC
+	calls.
+
+2014-03-25 Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
+
 	* nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Revert
 	previous change.
 
diff --git a/scripts/localplt.awk b/scripts/localplt.awk
index 2265b02..f55c41a 100644
--- a/scripts/localplt.awk
+++ b/scripts/localplt.awk
@@ -32,9 +32,15 @@ $1 == "Offset" && $2 == "Info" { in_relocs = 1; next }
 NF == 0 { in_relocs = 0 }
 
 in_relocs && relocs_offset == jmprel_offset && NF >= 5 {
-  symval = strtonum("0x" $4);
-  if (symval != 0)
+  # Relocations against GNU_IFUNC symbols are not shown as an hexadecimal
+  # value, but rather as the resolver symbol followed by ().
+  if ($4 ~ /\(\)/) {
     print whatfile, $5
+  } else {
+    symval = strtonum("0x" $4);
+    if (symval != 0)
+      print whatfile, $5
+  }
 }
 
 in_relocs { next }

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

Summary of changes:
 ChangeLog            |    5 +++++
 scripts/localplt.awk |   10 ++++++++--
 2 files changed, 13 insertions(+), 2 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]