summaryrefslogtreecommitdiff
path: root/src/objdump.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-02-01 18:18:55 -0800
committerUlrich Drepper <drepper@redhat.com>2009-02-01 18:18:55 -0800
commitcbb422eb102660d97209ec632e3b6572f0b0c7a6 (patch)
treef1f49c71e538f59754335107295bd7690b9ae2ac /src/objdump.c
parentd11522f075d98f6ae6a6c822dd73f4299c1a5b8a (diff)
downloadelfutils-cbb422eb102660d97209ec632e3b6572f0b0c7a6.tar.gz
Print symbol offsets in relation list output from objdump as signed values.
Diffstat (limited to 'src/objdump.c')
-rw-r--r--src/objdump.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/objdump.c b/src/objdump.c
index 1a62a022..8419f25f 100644
--- a/src/objdump.c
+++ b/src/objdump.c
@@ -500,7 +500,15 @@ show_relocs_rela (Ebl *ebl, GElf_Shdr *shdr, Elf_Data *data,
}
if (rel->r_addend != 0)
- printf ("+%#" PRIx64, rel->r_addend);
+ {
+ char sign = '+';
+ if (rel->r_addend < 0)
+ {
+ sign = '-';
+ rel->r_addend = -rel->r_addend;
+ }
+ printf ("%c%#" PRIx64, sign, rel->r_addend);
+ }
putchar ('\n');
}
}
@@ -561,7 +569,7 @@ show_relocs (Ebl *ebl, const char *fname, uint32_t shstrndx)
shdr->sh_info),
&destshdr_mem);
- printf (gettext ("RELOCATION RECORDS FOR [%s]:\n"
+ printf (gettext ("\n\nRELOCATION RECORDS FOR [%s]:\n"
"%-*s TYPE VALUE\n"),
elf_strptr (ebl->elf, shstrndx, destshdr->sh_name),
elfclass == ELFCLASS32 ? 8 : 16, gettext ("OFFSET"));