aboutsummaryrefslogtreecommitdiff
path: root/scripts/localplt.awk
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/localplt.awk')
-rw-r--r--scripts/localplt.awk10
1 files changed, 8 insertions, 2 deletions
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 }