]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
elfcmp.c: Print name and index of differing section.
authorUlrich Drepper <drepper@redhat.com>
Wed, 27 Jul 2005 10:13:23 +0000 (10:13 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 27 Jul 2005 10:13:23 +0000 (10:13 +0000)
src/ChangeLog
src/elfcmp.c

index 7ebdcc46320ad0275bfb4b6885dfcfdef8c2a5a3..51138c906ea78883c7839b17d48cbd724f64361d 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * elfcmp.c: Print name and index of differing section.
+
 2005-07-24  Ulrich Drepper  <drepper@redhat.com>
 
        * elfcmp.c: Implement comparing gaps between sections.
index 6bf7e749225e42c1cf43270b1240a687c6db9ccc..053a0d170f75e651718c3a8475438e993c951c21 100644 (file)
@@ -295,9 +295,19 @@ main (int argc, char *argv[])
                  || sym1->st_shndx != sym1->st_shndx)
                {
                  // XXX Do we want to allow reordered symbol tables?
+               symtab_mismatch:
                  if (! quiet)
-                   error (0, 0, gettext ("%s %s differ: symbol table"),
-                          fname1, fname2);
+                   {
+                     if (elf_ndxscn (scn1) == elf_ndxscn (scn2))
+                       error (0, 0,
+                              gettext ("%s %s differ: symbol table [%zu]"),
+                              fname1, fname2, elf_ndxscn (scn1));
+                     else
+                       error (0, 0, gettext ("\
+%s %s differ: symbol table [%zu,%zu]"),
+                              fname1, fname2, elf_ndxscn (scn1),
+                              elf_ndxscn (scn2));
+                   }
                  result = 1;
                  goto out;
                }
@@ -315,13 +325,7 @@ main (int argc, char *argv[])
                     symbol.  */
                  if (search_for_copy_reloc (ebl1, elf_ndxscn (scn1), ndx)
                      || search_for_copy_reloc (ebl2, elf_ndxscn (scn2), ndx))
-                   {
-                     if (! quiet)
-                       error (0, 0, gettext ("%s %s differ: symbol table"),
-                              fname1, fname2);
-                     result = 1;
-                     goto out;
-                   }
+                   goto symtab_mismatch;
                }
            }
          break;
@@ -338,8 +342,18 @@ main (int argc, char *argv[])
                  && memcmp (data1->d_buf, data2->d_buf, data1->d_size) != 0))
            {
              if (! quiet)
-               error (0, 0, gettext ("%s %s differ: section content"),
-                      fname1, fname2);
+               {
+                 if (elf_ndxscn (scn1) == elf_ndxscn (scn2))
+                   error (0, 0, gettext ("\
+%s %s differ: section [%zu] '%s' content"),
+                          fname1, fname2, elf_ndxscn (scn1), sname1);
+                 else
+                 if (elf_ndxscn (scn1) == elf_ndxscn (scn2))
+                   error (0, 0, gettext ("\
+%s %s differ: section [%zu,%zu] '%s' content"),
+                          fname1, fname2, elf_ndxscn (scn1),
+                          elf_ndxscn (scn2), sname1);
+               }
              result = 1;
              goto out;
            }