PR26349, FAIL: binutils-all/pr25543 on hpux

Alan Modra amodra@gmail.com
Wed Aug 19 11:57:17 GMT 2020


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.

diff --git a/binutils/readelf.c b/binutils/readelf.c
index 17868e2ac9..c47a77ca8f 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -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)

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list