From: Ulrich Drepper Date: Mon, 2 Feb 2009 02:18:55 +0000 (-0800) Subject: Print symbol offsets in relation list output from objdump as signed values. X-Git-Tag: elfutils-0.140~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cbb422eb102660d97209ec632e3b6572f0b0c7a6;p=thirdparty%2Felfutils.git Print symbol offsets in relation list output from objdump as signed values. --- diff --git a/src/ChangeLog b/src/ChangeLog index 3e960021b..ecc9bda76 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2009-02-01 Ulrich Drepper + * objdump.c (show_relocs_rela): Show offsets as signed values. + * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers. Improve some error messages. Use program_invocation_short_name instead of AR macro. diff --git a/src/objdump.c b/src/objdump.c index 1a62a0222..8419f25fd 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"));