]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
Print symbol offsets in relation list output from objdump as signed values.
authorUlrich Drepper <drepper@redhat.com>
Mon, 2 Feb 2009 02:18:55 +0000 (18:18 -0800)
committerUlrich Drepper <drepper@redhat.com>
Mon, 2 Feb 2009 02:18:55 +0000 (18:18 -0800)
src/ChangeLog
src/objdump.c

index 3e960021bdfa0a3674f3c567f34437d0fd3575a1..ecc9bda765a39791f1c7dc4411462c8a4bc91162 100644 (file)
@@ -1,5 +1,7 @@
 2009-02-01  Ulrich Drepper  <drepper@redhat.com>
 
+       * 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.
index 1a62a0222af9e2ef5c5800e7ead1bcb26623e07b..8419f25fd6f61870aab3299d553c983361d14a00 100644 (file)
@@ -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"));