PR26349, FAIL: binutils-all/pr25543 on hpux
authorAlan Modra <amodra@gmail.com>
Wed, 19 Aug 2020 08:49:38 +0000 (18:19 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 19 Aug 2020 11:55:47 +0000 (21:25 +0930)
The 't' length modifier isn't in SUSv2, unsurprisingly %tx isn't
recognized by older printf implementations.  So even though 't' is
correct for ptrdiff_t we can't use it.  Also, _bfd_int64_high and
_bfd_int64_low disappeared in 2008.

PR 26349
* readelf.c (dump_relocations): Use BFD_VMA_FMT to print offset
and info fields.
(dump_section_as_strings): Don't use %tx to display offset.

binutils/ChangeLog
binutils/readelf.c

index 7a6479b008e1f7039077c25de8bb6a5a0d74249d..37558efc5e8a0957b2703a31893ffa75211b0cb4 100644 (file)
@@ -1,3 +1,10 @@
+2020-08-19  Alan Modra  <amodra@gmail.com>
+
+       PR 26349
+       * readelf.c (dump_relocations): Use BFD_VMA_FMT to print offset
+       and info fields.
+       (dump_section_as_strings): Don't use %tx to display offset.
+
 2020-08-14  Alan Modra  <amodra@gmail.com>
 
        PR 26388
index 17868e2ac9b3fe32bdcba5d92dd7c2b1119bd49a..c47a77ca8fdbbaa7317811e7bdbb0b81d859cf54 100644 (file)
@@ -1281,32 +1281,10 @@ dump_relocations (Filedata *          filedata,
        }
       else
        {
-#if BFD_HOST_64BIT_LONG
          printf (do_wide
-                 ? "%16.16lx  %16.16lx "
-                 : "%12.12lx  %12.12lx ",
+                 ? "%16.16" BFD_VMA_FMT "x  %16.16" BFD_VMA_FMT "x "
+                 : "%12.12" BFD_VMA_FMT "x  %12.12" BFD_VMA_FMT "x ",
                  offset, inf);
-#elif BFD_HOST_64BIT_LONG_LONG
-#ifndef __MSVCRT__
-         printf (do_wide
-                 ? "%16.16llx  %16.16llx "
-                 : "%12.12llx  %12.12llx ",
-                 offset, inf);
-#else
-         printf (do_wide
-                 ? "%16.16I64x  %16.16I64x "
-                 : "%12.12I64x  %12.12I64x ",
-                 offset, inf);
-#endif
-#else
-         printf (do_wide
-                 ? "%8.8lx%8.8lx  %8.8lx%8.8lx "
-                 : "%4.4lx%8.8lx  %4.4lx%8.8lx ",
-                 _bfd_int64_high (offset),
-                 _bfd_int64_low (offset),
-                 _bfd_int64_high (inf),
-                 _bfd_int64_low (inf));
-#endif
        }
 
       switch (filedata->file_header.e_machine)
@@ -13985,13 +13963,7 @@ dump_section_as_strings (Elf_Internal_Shdr * section, Filedata * filedata)
            }
          else
            {
-#ifndef __MSVCRT__
-             /* PR 11128: Use two separate invocations in order to work
-                around bugs in the Solaris 8 implementation of printf.  */
-             printf ("  [%6tx]  ", data - start);
-#else
-             printf ("  [%6Ix]  ", (size_t) (data - start));
-#endif
+             printf ("  [%6lx]  ", (unsigned long) (data - start));
            }
 
          if (maxlen > 0)