aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/dwarf.c14
-rw-r--r--binutils/dwarf.h10
-rw-r--r--binutils/elfcomm.c4
-rw-r--r--binutils/elfcomm.h26
-rw-r--r--binutils/readelf.c977
5 files changed, 532 insertions, 499 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 4bba8df..404a0bd 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -11082,7 +11082,7 @@ display_debug_not_supported (struct dwarf_section *section,
Note: does *not* initialise the allocated memory to zero. */
void *
-cmalloc (size_t nmemb, size_t size)
+cmalloc (uint64_t nmemb, size_t size)
{
/* Check for overflow. */
if (nmemb >= ~(size_t) 0 / size)
@@ -11096,13 +11096,13 @@ cmalloc (size_t nmemb, size_t size)
Note: does *not* initialise the allocated memory to zero. */
void *
-xcmalloc (size_t nmemb, size_t size)
+xcmalloc (uint64_t nmemb, size_t size)
{
/* Check for overflow. */
if (nmemb >= ~(size_t) 0 / size)
{
fprintf (stderr,
- _("Attempt to allocate an array with an excessive number of elements: %#zx\n"),
+ _("Attempt to allocate an array with an excessive number of elements: %#" PRIx64 "\n"),
nmemb);
xexit (1);
}
@@ -11115,12 +11115,12 @@ xcmalloc (size_t nmemb, size_t size)
Note: does *not* initialise any new memory to zero. */
void *
-xcrealloc (void *ptr, size_t nmemb, size_t size)
+xcrealloc (void *ptr, uint64_t nmemb, size_t size)
{
/* Check for overflow. */
if (nmemb >= ~(size_t) 0 / size)
{
- error (_("Attempt to re-allocate an array with an excessive number of elements: %#zx\n"),
+ error (_("Attempt to re-allocate an array with an excessive number of elements: %#" PRIx64 "\n"),
nmemb);
xexit (1);
}
@@ -11131,12 +11131,12 @@ xcrealloc (void *ptr, size_t nmemb, size_t size)
/* Like xcalloc, but verifies that the first parameter is not too large. */
void *
-xcalloc2 (size_t nmemb, size_t size)
+xcalloc2 (uint64_t nmemb, size_t size)
{
/* Check for overflow. */
if (nmemb >= ~(size_t) 0 / size)
{
- error (_("Attempt to allocate a zero'ed array with an excessive number of elements: %#zx\n"),
+ error (_("Attempt to allocate a zero'ed array with an excessive number of elements: %#" PRIx64 "\n"),
nmemb);
xexit (1);
}
diff --git a/binutils/dwarf.h b/binutils/dwarf.h
index bb6128e..9c00313 100644
--- a/binutils/dwarf.h
+++ b/binutils/dwarf.h
@@ -144,7 +144,7 @@ struct dwarf_section
enum dwarf_section_display_enum abbrev_sec;
/* Used by clients to help them implement the reloc_at callback. */
void * reloc_info;
- unsigned long num_relocs;
+ uint64_t num_relocs;
};
/* A structure containing the name of a debug section
@@ -256,10 +256,10 @@ extern void dwarf_select_sections_all (void);
extern unsigned int * find_cu_tu_set (void *, unsigned int);
-extern void * cmalloc (size_t, size_t);
-extern void * xcalloc2 (size_t, size_t);
-extern void * xcmalloc (size_t, size_t);
-extern void * xcrealloc (void *, size_t, size_t);
+extern void * cmalloc (uint64_t, size_t);
+extern void * xcalloc2 (uint64_t, size_t);
+extern void * xcmalloc (uint64_t, size_t);
+extern void * xcrealloc (void *, uint64_t, size_t);
/* A callback into the client. Returns TRUE if there is a
relocation against the given debug section at the given
diff --git a/binutils/elfcomm.c b/binutils/elfcomm.c
index 0e7d0b5..6070b6e 100644
--- a/binutils/elfcomm.c
+++ b/binutils/elfcomm.c
@@ -530,7 +530,7 @@ setup_archive (struct archive_info *arch, const char *file_name,
/* PR 17531: file: 01068045. */
if (arch->longnames_size < 8)
{
- error (_("%s: long name table is too small, (size = %ld)\n"),
+ error (_("%s: long name table is too small, (size = %" PRId64 ")\n"),
file_name, arch->longnames_size);
return 1;
}
@@ -538,7 +538,7 @@ setup_archive (struct archive_info *arch, const char *file_name,
if ((off_t) arch->longnames_size > file_size
|| (signed long) arch->longnames_size < 0)
{
- error (_("%s: long name table is too big, (size = 0x%lx)\n"),
+ error (_("%s: long name table is too big, (size = %#" PRIx64 ")\n"),
file_name, arch->longnames_size);
return 1;
}
diff --git a/binutils/elfcomm.h b/binutils/elfcomm.h
index bab46b0..54ac4b3 100644
--- a/binutils/elfcomm.h
+++ b/binutils/elfcomm.h
@@ -49,19 +49,19 @@ extern uint64_t byte_get_big_endian (const unsigned char *, unsigned int);
struct archive_info
{
- char * file_name; /* Archive file name. */
- FILE * file; /* Open file descriptor. */
- uint64_t index_num; /* Number of symbols in table. */
- uint64_t * index_array; /* The array of member offsets. */
- char * sym_table; /* The symbol table. */
- unsigned long sym_size; /* Size of the symbol table. */
- char * longnames; /* The long file names table. */
- unsigned long longnames_size; /* Size of the long file names table. */
- unsigned long nested_member_origin; /* Origin in the nested archive of the current member. */
- unsigned long next_arhdr_offset; /* Offset of the next archive header. */
- int is_thin_archive; /* 1 if this is a thin archive. */
- int uses_64bit_indices; /* 1 if the index table uses 64bit entries. */
- struct ar_hdr arhdr; /* Current archive header. */
+ char *file_name; /* Archive file name. */
+ FILE *file; /* Open file descriptor. */
+ uint64_t index_num; /* Number of symbols in table. */
+ uint64_t *index_array; /* The array of member offsets. */
+ char *sym_table; /* The symbol table. */
+ uint64_t sym_size; /* Size of the symbol table. */
+ char *longnames; /* The long file names table. */
+ uint64_t longnames_size; /* Size of the long file names table. */
+ uint64_t nested_member_origin; /* Origin in the nested archive of the current member. */
+ uint64_t next_arhdr_offset; /* Offset of the next archive header. */
+ int is_thin_archive; /* 1 if this is a thin archive. */
+ int uses_64bit_indices; /* 1 if the index table uses 64bit entries. */
+ struct ar_hdr arhdr; /* Current archive header. */
};
/* Return the path name for a proxy entry in a thin archive. */
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 291bc13..1bd6df9 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -272,27 +272,27 @@ typedef struct filedata
FILE * handle;
uint64_t file_size;
Elf_Internal_Ehdr file_header;
- unsigned long archive_file_offset;
- unsigned long archive_file_size;
+ uint64_t archive_file_offset;
+ uint64_t archive_file_size;
/* Everything below this point is cleared out by free_filedata. */
Elf_Internal_Shdr * section_headers;
Elf_Internal_Phdr * program_headers;
char * string_table;
- unsigned long string_table_length;
- unsigned long dynamic_addr;
+ uint64_t string_table_length;
+ uint64_t dynamic_addr;
uint64_t dynamic_size;
- size_t dynamic_nent;
+ uint64_t dynamic_nent;
Elf_Internal_Dyn * dynamic_section;
Elf_Internal_Shdr * dynamic_strtab_section;
char * dynamic_strings;
- unsigned long dynamic_strings_length;
+ uint64_t dynamic_strings_length;
Elf_Internal_Shdr * dynamic_symtab_section;
- unsigned long num_dynamic_syms;
+ uint64_t num_dynamic_syms;
Elf_Internal_Sym * dynamic_symbols;
- uint64_t version_info[16];
+ uint64_t version_info[16];
unsigned int dynamic_syminfo_nent;
Elf_Internal_Syminfo * dynamic_syminfo;
- unsigned long dynamic_syminfo_offset;
+ uint64_t dynamic_syminfo_offset;
uint64_t nbuckets;
uint64_t nchains;
uint64_t * buckets;
@@ -396,7 +396,7 @@ fseek64 (FILE *stream, int64_t offset, int whence)
}
static const char * get_symbol_version_string
- (Filedata *, bool, const char *, unsigned long, unsigned,
+ (Filedata *, bool, const char *, size_t, unsigned,
Elf_Internal_Sym *, enum versioned_symbol_info *, unsigned short *);
#define UNKNOWN -1
@@ -473,7 +473,7 @@ get_dynamic_name (const Filedata *filedata, size_t offset)
static void *
get_data (void *var,
Filedata *filedata,
- unsigned long offset,
+ uint64_t offset,
uint64_t size,
uint64_t nmemb,
const char *reason)
@@ -516,7 +516,7 @@ get_data (void *var,
SEEK_SET))
{
if (reason)
- error (_("Unable to seek to 0x%lx for %s\n"),
+ error (_("Unable to seek to %#" PRIx64 " for %s\n"),
filedata->archive_file_offset + offset, reason);
return NULL;
}
@@ -919,7 +919,7 @@ printable_section_name (Filedata * filedata, const Elf_Internal_Shdr * sec)
}
static const char *
-printable_section_name_from_index (Filedata * filedata, unsigned long ndx)
+printable_section_name_from_index (Filedata *filedata, size_t ndx)
{
if (ndx >= filedata->file_header.e_shnum)
return _("<corrupt>");
@@ -1162,14 +1162,14 @@ guess_is_rela (unsigned int e_machine)
responsibility to free the allocated buffer. */
static bool
-slurp_rela_relocs (Filedata * filedata,
- unsigned long rel_offset,
- unsigned long rel_size,
- Elf_Internal_Rela ** relasp,
- unsigned long * nrelasp)
+slurp_rela_relocs (Filedata *filedata,
+ uint64_t rel_offset,
+ uint64_t rel_size,
+ Elf_Internal_Rela **relasp,
+ uint64_t *nrelasp)
{
Elf_Internal_Rela * relas;
- size_t nrelas;
+ uint64_t nrelas;
unsigned int i;
if (is_32bit_elf)
@@ -1262,14 +1262,14 @@ slurp_rela_relocs (Filedata * filedata,
responsibility to free the allocated buffer. */
static bool
-slurp_rel_relocs (Filedata * filedata,
- unsigned long rel_offset,
- unsigned long rel_size,
- Elf_Internal_Rela ** relsp,
- unsigned long * nrelsp)
+slurp_rel_relocs (Filedata *filedata,
+ uint64_t rel_offset,
+ uint64_t rel_size,
+ Elf_Internal_Rela **relsp,
+ uint64_t *nrelsp)
{
Elf_Internal_Rela * rels;
- size_t nrels;
+ uint64_t nrels;
unsigned int i;
if (is_32bit_elf)
@@ -1354,11 +1354,11 @@ slurp_rel_relocs (Filedata * filedata,
}
static bool
-slurp_relr_relocs (Filedata * filedata,
- unsigned long relr_offset,
- unsigned long relr_size,
- uint64_t ** relrsp,
- unsigned long * nrelrsp)
+slurp_relr_relocs (Filedata *filedata,
+ uint64_t relr_offset,
+ uint64_t relr_size,
+ uint64_t **relrsp,
+ uint64_t *nrelrsp)
{
void *relrs;
size_t size = 0, nentries, i;
@@ -1468,17 +1468,17 @@ uses_msp430x_relocs (Filedata * filedata)
offset. */
static bool
-dump_relocations (Filedata * filedata,
- unsigned long rel_offset,
- unsigned long rel_size,
- Elf_Internal_Sym * symtab,
- unsigned long nsyms,
- char * strtab,
- unsigned long strtablen,
- relocation_type rel_type,
- bool is_dynsym)
-{
- unsigned long i;
+dump_relocations (Filedata *filedata,
+ uint64_t rel_offset,
+ uint64_t rel_size,
+ Elf_Internal_Sym *symtab,
+ uint64_t nsyms,
+ char *strtab,
+ uint64_t strtablen,
+ relocation_type rel_type,
+ bool is_dynsym)
+{
+ size_t i;
Elf_Internal_Rela * rels;
bool res = true;
@@ -1505,7 +1505,8 @@ dump_relocations (Filedata * filedata,
&rel_size))
return false;
- printf (ngettext (" %lu offset\n", " %lu offsets\n", rel_size),
+ printf (ngettext (" %" PRIu64 " offset\n",
+ " %" PRIu64 " offsets\n", rel_size),
rel_size);
for (i = 0; i < rel_size; i++)
printf (format, relrs[i]);
@@ -1944,8 +1945,8 @@ dump_relocations (Filedata * filedata,
else
{
putchar (' ');
- printf (_("<unknown addend: %lx>"),
- (unsigned long) rels[i].r_addend);
+ printf (_("<unknown addend: %" PRIx64 ">"),
+ rels[i].r_addend);
res = false;
}
}
@@ -2098,7 +2099,7 @@ dump_relocations (Filedata * filedata,
if (filedata->file_header.e_machine == EM_SPARCV9
&& rtype != NULL
&& streq (rtype, "R_SPARC_OLO10"))
- printf (" + %lx", (unsigned long) ELF64_R_TYPE_DATA (inf));
+ printf (" + %" PRIx64, ELF64_R_TYPE_DATA (inf));
putchar ('\n');
@@ -2624,7 +2625,7 @@ static bool get_dynamic_section (Filedata *);
static void
locate_dynamic_section (Filedata *filedata)
{
- unsigned long dynamic_addr = 0;
+ uint64_t dynamic_addr = 0;
uint64_t dynamic_size = 0;
if (filedata->file_header.e_phnum != 0
@@ -6126,7 +6127,7 @@ process_program_headers (Filedata * filedata)
}
}
- unsigned long dynamic_addr = 0;
+ uint64_t dynamic_addr = 0;
uint64_t dynamic_size = 0;
for (i = 0, segment = filedata->program_headers;
i < filedata->file_header.e_phnum;
@@ -6374,7 +6375,7 @@ the .dynamic section is not the same as the dynamic segment\n"));
/* Find the file offset corresponding to VMA by using the program headers. */
-static long
+static int64_t
offset_from_vma (Filedata * filedata, uint64_t vma, uint64_t size)
{
Elf_Internal_Phdr * seg;
@@ -6397,9 +6398,9 @@ offset_from_vma (Filedata * filedata, uint64_t vma, uint64_t size)
return vma - seg->p_vaddr + seg->p_offset;
}
- warn (_("Virtual address 0x%lx not located in any PT_LOAD segment.\n"),
- (unsigned long) vma);
- return (long) vma;
+ warn (_("Virtual address %#" PRIx64
+ " not located in any PT_LOAD segment.\n"), vma);
+ return vma;
}
@@ -6560,11 +6561,11 @@ get_section_headers (Filedata *filedata, bool probe)
}
static Elf_Internal_Sym *
-get_32bit_elf_symbols (Filedata * filedata,
- Elf_Internal_Shdr * section,
- unsigned long * num_syms_return)
+get_32bit_elf_symbols (Filedata *filedata,
+ Elf_Internal_Shdr *section,
+ uint64_t *num_syms_return)
{
- unsigned long number = 0;
+ uint64_t number = 0;
Elf32_External_Sym * esyms = NULL;
Elf_External_Sym_Shndx * shndx = NULL;
Elf_Internal_Sym * isyms = NULL;
@@ -6582,17 +6583,17 @@ get_32bit_elf_symbols (Filedata * filedata,
/* Run some sanity checks first. */
if (section->sh_entsize == 0 || section->sh_entsize > section->sh_size)
{
- error (_("Section %s has an invalid sh_entsize of 0x%lx\n"),
+ error (_("Section %s has an invalid sh_entsize of %#" PRIx64 "\n"),
printable_section_name (filedata, section),
- (unsigned long) section->sh_entsize);
+ section->sh_entsize);
goto exit_point;
}
if (section->sh_size > filedata->file_size)
{
- error (_("Section %s has an invalid sh_size of 0x%lx\n"),
+ error (_("Section %s has an invalid sh_size of %#" PRIx64 "\n"),
printable_section_name (filedata, section),
- (unsigned long) section->sh_size);
+ section->sh_size);
goto exit_point;
}
@@ -6600,10 +6601,11 @@ get_32bit_elf_symbols (Filedata * filedata,
if (number * sizeof (Elf32_External_Sym) > section->sh_size + 1)
{
- error (_("Size (0x%lx) of section %s is not a multiple of its sh_entsize (0x%lx)\n"),
- (unsigned long) section->sh_size,
+ error (_("Size (%#" PRIx64 ") of section %s "
+ "is not a multiple of its sh_entsize (%#" PRIx64 ")\n"),
+ section->sh_size,
printable_section_name (filedata, section),
- (unsigned long) section->sh_entsize);
+ section->sh_entsize);
goto exit_point;
}
@@ -6615,7 +6617,7 @@ get_32bit_elf_symbols (Filedata * filedata,
shndx = NULL;
for (entry = filedata->symtab_shndx_list; entry != NULL; entry = entry->next)
{
- if (entry->hdr->sh_link != (unsigned long) (section - filedata->section_headers))
+ if (entry->hdr->sh_link != (size_t) (section - filedata->section_headers))
continue;
if (shndx != NULL)
@@ -6634,10 +6636,10 @@ get_32bit_elf_symbols (Filedata * filedata,
/* PR17531: file: heap-buffer-overflow */
if (entry->hdr->sh_size / sizeof (Elf_External_Sym_Shndx) < number)
{
- error (_("Index section %s has an sh_size of 0x%lx - expected 0x%lx\n"),
+ error (_("Index section %s has an sh_size of %#" PRIx64 " - expected %#" PRIx64 "\n"),
printable_section_name (filedata, entry->hdr),
- (unsigned long) entry->hdr->sh_size,
- (unsigned long) section->sh_size);
+ entry->hdr->sh_size,
+ section->sh_size);
goto exit_point;
}
}
@@ -6646,8 +6648,7 @@ get_32bit_elf_symbols (Filedata * filedata,
if (isyms == NULL)
{
- error (_("Out of memory reading %lu symbols\n"),
- (unsigned long) number);
+ error (_("Out of memory reading %" PRIu64 " symbols\n"), number);
goto exit_point;
}
@@ -6677,11 +6678,11 @@ get_32bit_elf_symbols (Filedata * filedata,
}
static Elf_Internal_Sym *
-get_64bit_elf_symbols (Filedata * filedata,
- Elf_Internal_Shdr * section,
- unsigned long * num_syms_return)
+get_64bit_elf_symbols (Filedata *filedata,
+ Elf_Internal_Shdr *section,
+ uint64_t *num_syms_return)
{
- unsigned long number = 0;
+ uint64_t number = 0;
Elf64_External_Sym * esyms = NULL;
Elf_External_Sym_Shndx * shndx = NULL;
Elf_Internal_Sym * isyms = NULL;
@@ -6699,17 +6700,17 @@ get_64bit_elf_symbols (Filedata * filedata,
/* Run some sanity checks first. */
if (section->sh_entsize == 0 || section->sh_entsize > section->sh_size)
{
- error (_("Section %s has an invalid sh_entsize of 0x%lx\n"),
+ error (_("Section %s has an invalid sh_entsize of %#" PRIx64 "\n"),
printable_section_name (filedata, section),
- (unsigned long) section->sh_entsize);
+ section->sh_entsize);
goto exit_point;
}
if (section->sh_size > filedata->file_size)
{
- error (_("Section %s has an invalid sh_size of 0x%lx\n"),
+ error (_("Section %s has an invalid sh_size of %#" PRIx64 "\n"),
printable_section_name (filedata, section),
- (unsigned long) section->sh_size);
+ section->sh_size);
goto exit_point;
}
@@ -6717,10 +6718,11 @@ get_64bit_elf_symbols (Filedata * filedata,
if (number * sizeof (Elf64_External_Sym) > section->sh_size + 1)
{
- error (_("Size (0x%lx) of section %s is not a multiple of its sh_entsize (0x%lx)\n"),
- (unsigned long) section->sh_size,
+ error (_("Size (%#" PRIx64 ") of section %s "
+ "is not a multiple of its sh_entsize (%#" PRIx64 ")\n"),
+ section->sh_size,
printable_section_name (filedata, section),
- (unsigned long) section->sh_entsize);
+ section->sh_entsize);
goto exit_point;
}
@@ -6732,7 +6734,7 @@ get_64bit_elf_symbols (Filedata * filedata,
shndx = NULL;
for (entry = filedata->symtab_shndx_list; entry != NULL; entry = entry->next)
{
- if (entry->hdr->sh_link != (unsigned long) (section - filedata->section_headers))
+ if (entry->hdr->sh_link != (size_t) (section - filedata->section_headers))
continue;
if (shndx != NULL)
@@ -6751,10 +6753,10 @@ get_64bit_elf_symbols (Filedata * filedata,
/* PR17531: file: heap-buffer-overflow */
if (entry->hdr->sh_size / sizeof (Elf_External_Sym_Shndx) < number)
{
- error (_("Index section %s has an sh_size of 0x%lx - expected 0x%lx\n"),
+ error (_("Index section %s has an sh_size of %#" PRIx64 " - expected %#" PRIx64 "\n"),
printable_section_name (filedata, entry->hdr),
- (unsigned long) entry->hdr->sh_size,
- (unsigned long) section->sh_size);
+ entry->hdr->sh_size,
+ section->sh_size);
goto exit_point;
}
}
@@ -6763,8 +6765,7 @@ get_64bit_elf_symbols (Filedata * filedata,
if (isyms == NULL)
{
- error (_("Out of memory reading %lu symbols\n"),
- (unsigned long) number);
+ error (_("Out of memory reading %" PRIu64 " symbols\n"), number);
goto exit_point;
}
@@ -6798,7 +6799,7 @@ get_64bit_elf_symbols (Filedata * filedata,
static Elf_Internal_Sym *
get_elf_symbols (Filedata *filedata,
Elf_Internal_Shdr *section,
- unsigned long *num_syms_return)
+ uint64_t *num_syms_return)
{
if (is_32bit_elf)
return get_32bit_elf_symbols (filedata, section, num_syms_return);
@@ -7183,12 +7184,12 @@ process_section_headers (Filedata * filedata)
printf (_("In linked file '%s': "), filedata->file_name);
if (! filedata->is_separate || process_links)
printf (ngettext ("There is %d section header, "
- "starting at offset 0x%lx:\n",
+ "starting at offset %#" PRIx64 ":\n",
"There are %d section headers, "
- "starting at offset 0x%lx:\n",
+ "starting at offset %#" PRIx64 ":\n",
filedata->file_header.e_shnum),
filedata->file_header.e_shnum,
- (unsigned long) filedata->file_header.e_shoff);
+ filedata->file_header.e_shoff);
}
if (!get_section_headers (filedata, false))
@@ -7854,8 +7855,8 @@ process_section_headers (Filedata * filedata)
static bool
get_symtab (Filedata *filedata, Elf_Internal_Shdr *symsec,
- Elf_Internal_Sym **symtab, unsigned long *nsyms,
- char **strtab, unsigned long *strtablen)
+ Elf_Internal_Sym **symtab, uint64_t *nsyms,
+ char **strtab, uint64_t *strtablen)
{
*strtab = NULL;
*strtablen = 0;
@@ -7922,7 +7923,7 @@ process_section_groups (Filedata * filedata)
Elf_Internal_Shdr * symtab_sec;
Elf_Internal_Shdr * strtab_sec;
Elf_Internal_Sym * symtab;
- unsigned long num_syms;
+ uint64_t num_syms;
char * strtab;
size_t strtab_size;
@@ -7988,8 +7989,7 @@ process_section_groups (Filedata * filedata)
if (filedata->section_groups == NULL)
{
- error (_("Out of memory reading %lu groups\n"),
- (unsigned long) filedata->group_count);
+ error (_("Out of memory reading %zu groups\n"), filedata->group_count);
return false;
}
@@ -8092,10 +8092,11 @@ process_section_groups (Filedata * filedata)
/* PR 17531: file: loop. */
if (section->sh_entsize > section->sh_size)
{
- error (_("Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"),
+ error (_("Section %s has sh_entsize (%#" PRIx64 ")"
+ " which is larger than its size (%#" PRIx64 ")\n"),
printable_section_name (filedata, section),
- (unsigned long) section->sh_entsize,
- (unsigned long) section->sh_size);
+ section->sh_entsize,
+ section->sh_size);
continue;
}
@@ -8226,7 +8227,7 @@ dump_ia64_vms_dynamic_fixups (Filedata * filedata,
unsigned int strtab_sz)
{
Elf64_External_VMS_IMAGE_FIXUP * imfs;
- long i;
+ size_t i;
const char * lib_name;
imfs = get_data (NULL, filedata,
@@ -8240,17 +8241,18 @@ dump_ia64_vms_dynamic_fixups (Filedata * filedata,
lib_name = strtab + fixup->needed;
else
{
- warn (_("corrupt library name index of 0x%lx found in dynamic entry"),
- (unsigned long) fixup->needed);
+ warn (_("corrupt library name index of %#" PRIx64
+ " found in dynamic entry"), fixup->needed);
lib_name = "???";
}
- printf (_("\nImage fixups for needed library #%d: %s - ident: %lx\n"),
- (int) fixup->fixup_needed, lib_name, (long) fixup->needed_ident);
+ printf (_("\nImage fixups for needed library #%" PRId64
+ ": %s - ident: %" PRIx64 "\n"),
+ fixup->fixup_needed, lib_name, fixup->needed_ident);
printf
(_("Seg Offset Type SymVec DataType\n"));
- for (i = 0; i < (long) fixup->fixup_rela_cnt; i++)
+ for (i = 0; i < (size_t) fixup->fixup_rela_cnt; i++)
{
unsigned int type;
const char *rtype;
@@ -8277,7 +8279,7 @@ static bool
dump_ia64_vms_dynamic_relocs (Filedata * filedata, struct ia64_vms_dynimgrela *imgrela)
{
Elf64_External_VMS_IMAGE_RELA *imrs;
- long i;
+ size_t i;
imrs = get_data (NULL, filedata,
filedata->dynamic_addr + imgrela->img_rela_off,
@@ -8290,7 +8292,7 @@ dump_ia64_vms_dynamic_relocs (Filedata * filedata, struct ia64_vms_dynimgrela *i
printf
(_("Seg Offset Type Addend Seg Sym Off\n"));
- for (i = 0; i < (long) imgrela->img_rela_cnt; i++)
+ for (i = 0; i < (size_t) imgrela->img_rela_cnt; i++)
{
unsigned int type;
const char *rtype;
@@ -8404,8 +8406,8 @@ static struct
static bool
process_relocs (Filedata * filedata)
{
- unsigned long rel_size;
- unsigned long rel_offset;
+ uint64_t rel_size;
+ uint64_t rel_offset;
if (!do_reloc)
return true;
@@ -8447,11 +8449,13 @@ process_relocs (Filedata * filedata)
{
if (filedata->is_separate)
printf
- (_("\nIn linked file '%s' section '%s' at offset 0x%lx contains %ld bytes:\n"),
+ (_("\nIn linked file '%s' section '%s' at offset %#" PRIx64
+ " contains %" PRId64 " bytes:\n"),
filedata->file_name, name, rel_offset, rel_size);
else
printf
- (_("\n'%s' relocation section at offset 0x%lx contains %ld bytes:\n"),
+ (_("\n'%s' relocation section at offset %#" PRIx64
+ " contains %" PRId64 " bytes:\n"),
name, rel_offset, rel_size);
dump_relocations (filedata,
@@ -8481,7 +8485,7 @@ process_relocs (Filedata * filedata)
else
{
Elf_Internal_Shdr * section;
- unsigned long i;
+ size_t i;
bool found = false;
for (i = 0, section = filedata->section_headers;
@@ -8499,7 +8503,7 @@ process_relocs (Filedata * filedata)
if (rel_size)
{
relocation_type rel_type;
- unsigned long num_rela;
+ uint64_t num_rela;
if (filedata->is_separate)
printf (_("\nIn linked file '%s' relocation section "),
@@ -8513,8 +8517,10 @@ process_relocs (Filedata * filedata)
printf ("'%s'", printable_section_name (filedata, section));
num_rela = rel_size / section->sh_entsize;
- printf (ngettext (" at offset 0x%lx contains %lu entry:\n",
- " at offset 0x%lx contains %lu entries:\n",
+ printf (ngettext (" at offset %#" PRIx64
+ " contains %" PRIu64 " entry:\n",
+ " at offset %#" PRIx64
+ " contains %" PRId64 " entries:\n",
num_rela),
rel_offset, num_rela);
@@ -8524,11 +8530,11 @@ process_relocs (Filedata * filedata)
if (section->sh_link != 0
&& section->sh_link < filedata->file_header.e_shnum)
{
- Elf_Internal_Shdr * symsec;
- Elf_Internal_Sym * symtab;
- unsigned long nsyms;
- unsigned long strtablen = 0;
- char * strtab = NULL;
+ Elf_Internal_Shdr *symsec;
+ Elf_Internal_Sym *symtab;
+ uint64_t nsyms;
+ uint64_t strtablen = 0;
+ char *strtab = NULL;
symsec = filedata->section_headers + section->sh_link;
if (symsec->sh_type != SHT_SYMTAB
@@ -8599,14 +8605,14 @@ struct absaddr
name, if found, and the offset from the symbol to ADDR. */
static void
-find_symbol_for_address (Filedata * filedata,
- Elf_Internal_Sym * symtab,
- unsigned long nsyms,
- const char * strtab,
- unsigned long strtab_size,
- struct absaddr addr,
- const char ** symname,
- uint64_t * offset)
+find_symbol_for_address (Filedata *filedata,
+ Elf_Internal_Sym *symtab,
+ uint64_t nsyms,
+ const char *strtab,
+ uint64_t strtab_size,
+ struct absaddr addr,
+ const char **symname,
+ uint64_t *offset)
{
uint64_t dist = 0x100000;
Elf_Internal_Sym * sym;
@@ -8679,24 +8685,24 @@ struct ia64_unw_table_entry
struct ia64_unw_aux_info
{
struct ia64_unw_table_entry * table; /* Unwind table. */
- unsigned long table_len; /* Length of unwind table. */
+ uint64_t table_len; /* Length of unwind table. */
unsigned char * info; /* Unwind info. */
- unsigned long info_size; /* Size of unwind info. */
+ uint64_t info_size; /* Size of unwind info. */
uint64_t info_addr; /* Starting address of unwind info. */
uint64_t seg_base; /* Starting address of segment. */
Elf_Internal_Sym * symtab; /* The symbol table. */
- unsigned long nsyms; /* Number of symbols. */
+ uint64_t nsyms; /* Number of symbols. */
Elf_Internal_Sym * funtab; /* Sorted table of STT_FUNC symbols. */
- unsigned long nfuns; /* Number of entries in funtab. */
+ uint64_t nfuns; /* Number of entries in funtab. */
char * strtab; /* The string table. */
- unsigned long strtab_size; /* Size of string table. */
+ uint64_t strtab_size; /* Size of string table. */
};
static bool
dump_ia64_unwind (Filedata * filedata, struct ia64_unw_aux_info * aux)
{
struct ia64_unw_table_entry * tp;
- unsigned long j, nfuns;
+ size_t j, nfuns;
int in_body;
bool res = true;
@@ -8726,15 +8732,15 @@ dump_ia64_unwind (Filedata * filedata, struct ia64_unw_aux_info * aux)
fputs (procname, stdout);
if (offset)
- printf ("+%lx", (unsigned long) offset);
+ printf ("+%" PRIx64, offset);
}
fputs (">: [", stdout);
print_vma (tp->start.offset, PREFIX_HEX);
fputc ('-', stdout);
print_vma (tp->end.offset, PREFIX_HEX);
- printf ("], info at +0x%lx\n",
- (unsigned long) (tp->info.offset - aux->seg_base));
+ printf ("], info at +0x%" PRIx64 "\n",
+ tp->info.offset - aux->seg_base);
/* PR 17531: file: 86232b32. */
if (aux->info == NULL)
@@ -8745,8 +8751,8 @@ dump_ia64_unwind (Filedata * filedata, struct ia64_unw_aux_info * aux)
{
if (tp->info.section >= filedata->file_header.e_shnum)
{
- warn (_("Invalid section %u in table entry %ld\n"),
- tp->info.section, (long) (tp - aux->table));
+ warn (_("Invalid section %u in table entry %td\n"),
+ tp->info.section, tp - aux->table);
res = false;
continue;
}
@@ -8757,8 +8763,8 @@ dump_ia64_unwind (Filedata * filedata, struct ia64_unw_aux_info * aux)
if (offset >= aux->info_size
|| aux->info_size - offset < 8)
{
- warn (_("Invalid offset %lx in table entry %ld\n"),
- (long) tp->info.offset, (long) (tp - aux->table));
+ warn (_("Invalid offset %" PRIx64 " in table entry %td\n"),
+ tp->info.offset, tp - aux->table);
res = false;
continue;
}
@@ -8798,7 +8804,7 @@ slurp_ia64_unwind_table (Filedata * filedata,
struct ia64_unw_aux_info * aux,
Elf_Internal_Shdr * sec)
{
- unsigned long size, nrelas, i;
+ uint64_t size, nrelas, i;
Elf_Internal_Phdr * seg;
struct ia64_unw_table_entry * tep;
Elf_Internal_Shdr * relsec;
@@ -8904,7 +8910,8 @@ slurp_ia64_unwind_table (Filedata * filedata,
/* PR 17531: file: 5bc8d9bf. */
if (i >= aux->table_len)
{
- warn (_("Skipping reloc with overlarge offset: %lx\n"), i);
+ warn (_("Skipping reloc with overlarge offset: %#" PRIx64 "\n"),
+ i);
continue;
}
@@ -8947,7 +8954,7 @@ ia64_process_unwind (Filedata * filedata)
{
Elf_Internal_Shdr * sec;
Elf_Internal_Shdr * unwsec = NULL;
- unsigned long i, unwcount = 0, unwstart = 0;
+ uint64_t i, unwcount = 0, unwstart = 0;
struct ia64_unw_aux_info aux;
bool res = true;
@@ -9082,9 +9089,9 @@ ia64_process_unwind (Filedata * filedata)
else
printf ("'%s'", printable_section_name (filedata, unwsec));
- printf (_(" at offset 0x%lx contains %lu entries:\n"),
- (unsigned long) unwsec->sh_offset,
- (unsigned long) (unwsec->sh_size / (3 * eh_addr_size)));
+ printf (_(" at offset %#" PRIx64 " contains %" PRIu64 " entries:\n"),
+ unwsec->sh_offset,
+ unwsec->sh_size / (3 * eh_addr_size));
if (slurp_ia64_unwind_table (filedata, & aux, unwsec)
&& aux.table_len > 0)
@@ -9143,21 +9150,21 @@ struct hppa_unw_table_entry
struct hppa_unw_aux_info
{
struct hppa_unw_table_entry * table; /* Unwind table. */
- unsigned long table_len; /* Length of unwind table. */
+ uint64_t table_len; /* Length of unwind table. */
uint64_t seg_base; /* Starting address of segment. */
Elf_Internal_Sym * symtab; /* The symbol table. */
- unsigned long nsyms; /* Number of symbols. */
+ uint64_t nsyms; /* Number of symbols. */
Elf_Internal_Sym * funtab; /* Sorted table of STT_FUNC symbols. */
- unsigned long nfuns; /* Number of entries in funtab. */
+ uint64_t nfuns; /* Number of entries in funtab. */
char * strtab; /* The string table. */
- unsigned long strtab_size; /* Size of string table. */
+ uint64_t strtab_size; /* Size of string table. */
};
static bool
dump_hppa_unwind (Filedata * filedata, struct hppa_unw_aux_info * aux)
{
struct hppa_unw_table_entry * tp;
- unsigned long j, nfuns;
+ uint64_t j, nfuns;
bool res = true;
aux->funtab = xmalloc (aux->nsyms * sizeof (Elf_Internal_Sym));
@@ -9183,7 +9190,7 @@ dump_hppa_unwind (Filedata * filedata, struct hppa_unw_aux_info * aux)
fputs (procname, stdout);
if (offset)
- printf ("+%lx", (unsigned long) offset);
+ printf ("+%" PRIx64, offset);
}
fputs (">: [", stdout);
@@ -9237,7 +9244,7 @@ slurp_hppa_unwind_table (Filedata * filedata,
struct hppa_unw_aux_info * aux,
Elf_Internal_Shdr * sec)
{
- unsigned long size, unw_ent_size, nentries, nrelas, i;
+ uint64_t size, unw_ent_size, nentries, nrelas, i;
Elf_Internal_Phdr * seg;
struct hppa_unw_table_entry * tep;
Elf_Internal_Shdr * relsec;
@@ -9372,7 +9379,8 @@ slurp_hppa_unwind_table (Filedata * filedata,
i = rp->r_offset / unw_ent_size;
if (i >= aux->table_len)
{
- warn (_("Skipping reloc with overlarge offset: %lx\n"), i);
+ warn (_("Skipping reloc with overlarge offset: %#" PRIx64 "\n"),
+ i);
continue;
}
@@ -9412,7 +9420,7 @@ hppa_process_unwind (Filedata * filedata)
struct hppa_unw_aux_info aux;
Elf_Internal_Shdr * unwsec = NULL;
Elf_Internal_Shdr * sec;
- unsigned long i;
+ size_t i;
bool res = true;
if (filedata->string_table == NULL)
@@ -9449,15 +9457,15 @@ hppa_process_unwind (Filedata * filedata)
if (section_name_valid (filedata, sec)
&& streq (section_name (filedata, sec), ".PARISC.unwind"))
{
- unsigned long num_unwind = sec->sh_size / 16;
+ uint64_t num_unwind = sec->sh_size / 16;
- printf (ngettext ("\nUnwind section '%s' at offset 0x%lx "
- "contains %lu entry:\n",
- "\nUnwind section '%s' at offset 0x%lx "
- "contains %lu entries:\n",
+ printf (ngettext ("\nUnwind section '%s' at offset %#" PRIx64 " "
+ "contains %" PRIu64 " entry:\n",
+ "\nUnwind section '%s' at offset %#" PRIx64 " "
+ "contains %" PRIu64 " entries:\n",
num_unwind),
printable_section_name (filedata, sec),
- (unsigned long) sec->sh_offset,
+ sec->sh_offset,
num_unwind);
if (! slurp_hppa_unwind_table (filedata, &aux, sec))
@@ -9485,7 +9493,7 @@ struct arm_section
unsigned char * data; /* The unwind data. */
Elf_Internal_Shdr * sec; /* The cached unwind section header. */
Elf_Internal_Rela * rela; /* The cached relocations for this section. */
- unsigned long nrelas; /* The number of relocations. */
+ uint64_t nrelas; /* The number of relocations. */
unsigned int rel_type; /* REL or RELA ? */
Elf_Internal_Rela * next_rela; /* Cyclic pointer to the next reloc to process. */
};
@@ -9494,11 +9502,11 @@ struct arm_unw_aux_info
{
Filedata * filedata; /* The file containing the unwind sections. */
Elf_Internal_Sym * symtab; /* The file's symbol table. */
- unsigned long nsyms; /* Number of symbols. */
+ uint64_t nsyms; /* Number of symbols. */
Elf_Internal_Sym * funtab; /* Sorted table of STT_FUNC symbols. */
- unsigned long nfuns; /* Number of these symbols. */
+ uint64_t nfuns; /* Number of these symbols. */
char * strtab; /* The file's string table. */
- unsigned long strtab_size; /* Size of string table. */
+ uint64_t strtab_size; /* Size of string table. */
};
static const char *
@@ -9525,7 +9533,7 @@ arm_print_vma_and_name (Filedata * filedata,
fputs (procname, stdout);
if (sym_offset)
- printf ("+0x%lx", (unsigned long) sym_offset);
+ printf ("+0x%" PRIx64, sym_offset);
fputc ('>', stdout);
}
@@ -9656,8 +9664,8 @@ get_unwind_section_word (Filedata * filedata,
if (rp->r_offset & 3)
{
- warn (_("Skipping unexpected relocation at offset 0x%lx\n"),
- (unsigned long) rp->r_offset);
+ warn (_("Skipping unexpected relocation at offset %#" PRIx64 "\n"),
+ rp->r_offset);
continue;
}
@@ -9686,8 +9694,9 @@ get_unwind_section_word (Filedata * filedata,
/* PR 17531 file: 027-1241568-0.004. */
if (ELF32_R_SYM (rp->r_info) >= aux->nsyms)
{
- error (_("Bad symbol index in unwind relocation (%lu > %lu)\n"),
- (unsigned long) ELF32_R_SYM (rp->r_info), aux->nsyms);
+ error (_("Bad symbol index in unwind relocation "
+ "(%" PRIu64 " > %" PRIu64 ")\n"),
+ ELF32_R_SYM (rp->r_info), aux->nsyms);
break;
}
@@ -9930,7 +9939,7 @@ decode_arm_unwind_bytecode (Filedata * filedata,
{
unsigned char buf[9];
unsigned int i, len;
- unsigned long offset;
+ uint64_t offset;
for (i = 0; i < sizeof (buf); i++)
{
@@ -9948,7 +9957,7 @@ decode_arm_unwind_bytecode (Filedata * filedata,
offset = read_leb128 (buf, buf + i + 1, false, &len, NULL);
assert (len == i + 1);
offset = offset * 4 + 0x204;
- printf ("vsp = vsp + %ld", offset);
+ printf ("vsp = vsp + %" PRId64, offset);
}
}
else if (op == 0xb3 || op == 0xc8 || op == 0xc9)
@@ -10153,7 +10162,7 @@ decode_tic6x_unwind_bytecode (Filedata * filedata,
{
unsigned char buf[9];
unsigned int i, len;
- unsigned long offset;
+ uint64_t offset;
for (i = 0; i < sizeof (buf); i++)
{
@@ -10171,7 +10180,7 @@ decode_tic6x_unwind_bytecode (Filedata * filedata,
offset = read_leb128 (buf, buf + i + 1, false, &len, NULL);
assert (len == i + 1);
offset = offset * 8 + 0x408;
- printf (_("sp = sp + %ld"), offset);
+ printf (_("sp = sp + %" PRId64), offset);
}
else if ((op & 0xf0) == 0xe0)
{
@@ -10382,7 +10391,7 @@ dump_arm_unwind (Filedata * filedata,
{
struct arm_section exidx_arm_sec, extab_arm_sec;
unsigned int i, exidx_len;
- unsigned long j, nfuns;
+ uint64_t j, nfuns;
bool res = true;
memset (&exidx_arm_sec, 0, sizeof (exidx_arm_sec));
@@ -10459,8 +10468,8 @@ dump_arm_unwind (Filedata * filedata,
/* PR 18879 */
if (table_offset > table_sec->sh_size)
{
- warn (_("Unwind entry contains corrupt offset (0x%lx) into section %s\n"),
- (unsigned long) table_offset,
+ warn (_("Unwind entry contains corrupt offset (%#" PRIx64 ") into section %s\n"),
+ table_offset,
printable_section_name (filedata, table_sec));
res = false;
continue;
@@ -10475,8 +10484,8 @@ dump_arm_unwind (Filedata * filedata,
if (table_sec == NULL)
{
- warn (_("Could not locate .ARM.extab section containing 0x%lx.\n"),
- (unsigned long) table);
+ warn (_("Could not locate .ARM.extab section containing %#" PRIx64 ".\n"),
+ table);
res = false;
continue;
}
@@ -10504,7 +10513,7 @@ arm_process_unwind (Filedata * filedata)
struct arm_unw_aux_info aux;
Elf_Internal_Shdr *unwsec = NULL;
Elf_Internal_Shdr *sec;
- unsigned long i;
+ size_t i;
unsigned int sec_type;
bool res = true;
@@ -10557,14 +10566,14 @@ arm_process_unwind (Filedata * filedata)
{
if (sec->sh_type == sec_type)
{
- unsigned long num_unwind = sec->sh_size / (2 * eh_addr_size);
- printf (ngettext ("\nUnwind section '%s' at offset 0x%lx "
- "contains %lu entry:\n",
- "\nUnwind section '%s' at offset 0x%lx "
- "contains %lu entries:\n",
+ uint64_t num_unwind = sec->sh_size / (2 * eh_addr_size);
+ printf (ngettext ("\nUnwind section '%s' at offset %#" PRIx64 " "
+ "contains %" PRIu64 " entry:\n",
+ "\nUnwind section '%s' at offset %#" PRIx64 " "
+ "contains %" PRIu64 " entries:\n",
num_unwind),
printable_section_name (filedata, sec),
- (unsigned long) sec->sh_offset,
+ sec->sh_offset,
num_unwind);
if (! dump_arm_unwind (filedata, &aux, sec))
@@ -10724,7 +10733,7 @@ dynamic_section_parisc_val (Elf_Internal_Dyn * entry)
{
static struct
{
- long int bit;
+ unsigned int bit;
const char * str;
}
flags[] =
@@ -10893,8 +10902,8 @@ get_32bit_dynamic_section (Filedata * filedata)
= (Elf_Internal_Dyn *) cmalloc (filedata->dynamic_nent, sizeof (* entry));
if (filedata->dynamic_section == NULL)
{
- error (_("Out of memory allocating space for %lu dynamic entries\n"),
- (unsigned long) filedata->dynamic_nent);
+ error (_("Out of memory allocating space for %" PRIu64 " dynamic entries\n"),
+ filedata->dynamic_nent);
free (edyn);
return false;
}
@@ -10944,8 +10953,8 @@ get_64bit_dynamic_section (Filedata * filedata)
= (Elf_Internal_Dyn *) cmalloc (filedata->dynamic_nent, sizeof (* entry));
if (filedata->dynamic_section == NULL)
{
- error (_("Out of memory allocating space for %lu dynamic entries\n"),
- (unsigned long) filedata->dynamic_nent);
+ error (_("Out of memory allocating space for %" PRIu64 " dynamic entries\n"),
+ filedata->dynamic_nent);
free (edyn);
return false;
}
@@ -11066,10 +11075,10 @@ get_dynamic_data (Filedata * filedata, uint64_t number, unsigned int ent_size)
return i_data;
}
-static unsigned long
+static uint64_t
get_num_dynamic_syms (Filedata * filedata)
{
- unsigned long num_of_syms = 0;
+ uint64_t num_of_syms = 0;
if (!do_histogram && (!do_using_dynamic || do_dyn_syms))
return num_of_syms;
@@ -11138,7 +11147,7 @@ get_num_dynamic_syms (Filedata * filedata)
unsigned char nb[16];
uint64_t i, maxchain = 0xffffffff, bitmaskwords;
uint64_t buckets_vma;
- unsigned long hn;
+ uint64_t hn;
if (fseek64 (filedata->handle,
(filedata->archive_file_offset
@@ -11327,7 +11336,7 @@ process_dynamic_section (Filedata * filedata)
/* Find the appropriate symbol table. */
if (filedata->dynamic_symbols == NULL || do_histogram)
{
- unsigned long num_of_syms;
+ uint64_t num_of_syms;
for (entry = filedata->dynamic_section;
entry < filedata->dynamic_section + filedata->dynamic_nent;
@@ -11435,7 +11444,7 @@ the .dynsym section doesn't match the DT_SYMTAB and DT_SYMENT tags\n"));
if (filedata->dynamic_info[DT_STRTAB]
&& filedata->dynamic_info[DT_STRSZ])
{
- unsigned long offset;
+ uint64_t offset;
uint64_t str_tab_len = filedata->dynamic_info[DT_STRSZ];
offset = offset_from_vma (filedata,
@@ -11467,7 +11476,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
/* And find the syminfo section if available. */
if (filedata->dynamic_syminfo == NULL)
{
- unsigned long syminsz = 0;
+ uint64_t syminsz = 0;
for (entry = filedata->dynamic_section;
entry < filedata->dynamic_section + filedata->dynamic_nent;
@@ -11511,9 +11520,9 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
filedata->dynamic_syminfo = (Elf_Internal_Syminfo *) malloc (syminsz);
if (filedata->dynamic_syminfo == NULL)
{
- error (_("Out of memory allocating %lu bytes "
- "for dynamic symbol info\n"),
- (unsigned long) syminsz);
+ error (_("Out of memory allocating %" PRIu64
+ " bytes for dynamic symbol info\n"),
+ syminsz);
return false;
}
@@ -11535,18 +11544,18 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
if (do_dynamic && filedata->dynamic_addr)
{
if (filedata->is_separate)
- printf (ngettext ("\nIn linked file '%s' the dynamic section at offset 0x%lx contains %lu entry:\n",
- "\nIn linked file '%s' the dynamic section at offset 0x%lx contains %lu entries:\n",
- (unsigned long) filedata->dynamic_nent),
+ printf (ngettext ("\nIn linked file '%s' the dynamic section at offset %#" PRIx64 " contains %" PRIu64 " entry:\n",
+ "\nIn linked file '%s' the dynamic section at offset %#" PRIx64 " contains %" PRIu64 " entries:\n",
+ filedata->dynamic_nent),
filedata->file_name,
filedata->dynamic_addr,
- (unsigned long) filedata->dynamic_nent);
+ filedata->dynamic_nent);
else
- printf (ngettext ("\nDynamic section at offset 0x%lx contains %lu entry:\n",
- "\nDynamic section at offset 0x%lx contains %lu entries:\n",
- (unsigned long) filedata->dynamic_nent),
+ printf (ngettext ("\nDynamic section at offset %#" PRIx64 " contains %" PRId64 " entry:\n",
+ "\nDynamic section at offset %#" PRIx64 " contains %" PRIu64 " entries:\n",
+ filedata->dynamic_nent),
filedata->dynamic_addr,
- (unsigned long) filedata->dynamic_nent);
+ filedata->dynamic_nent);
}
if (do_dynamic)
printf (_(" Tag Type Name/Value\n"));
@@ -11624,7 +11633,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
printf (_(" None\n"));
else
{
- unsigned long int val = entry->d_un.d_val;
+ uint64_t val = entry->d_un.d_val;
if (val & DTF_1_PARINIT)
{
@@ -11637,7 +11646,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
val ^= DTF_1_CONFEXP;
}
if (val != 0)
- printf (" %lx", val);
+ printf (" %" PRIx64, val);
puts ("");
}
}
@@ -11652,7 +11661,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
printf (_(" None\n"));
else
{
- unsigned long int val = entry->d_un.d_val;
+ uint64_t val = entry->d_un.d_val;
if (val & DF_P1_LAZYLOAD)
{
@@ -11665,7 +11674,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
val ^= DF_P1_GROUPPERM;
}
if (val != 0)
- printf (" %lx", val);
+ printf (" %" PRIx64, val);
puts ("");
}
}
@@ -11679,7 +11688,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
printf (_(" None\n"));
else
{
- unsigned long int val = entry->d_un.d_val;
+ uint64_t val = entry->d_un.d_val;
if (val & DF_1_NOW)
{
@@ -11837,7 +11846,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
val ^= DF_1_NOCOMMON;
}
if (val != 0)
- printf (" %lx", val);
+ printf (" %" PRIx64, val);
puts ("");
}
}
@@ -11992,8 +12001,8 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
tmp = gmtime (&atime);
/* PR 17533 file: 041-1244816-0.004. */
if (tmp == NULL)
- printf (_("<corrupt time val: %lx"),
- (unsigned long) atime);
+ printf (_("<corrupt time val: %" PRIx64),
+ (uint64_t) atime);
else
printf ("%04u-%02u-%02uT%02u:%02u:%02u\n",
tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
@@ -12019,7 +12028,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
printf (_(" None\n"));
else
{
- unsigned long int val = entry->d_un.d_val;
+ uint64_t val = entry->d_un.d_val;
if (val & DF_GNU_1_UNIQUE)
{
@@ -12027,7 +12036,7 @@ the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"));
val ^= DF_GNU_1_UNIQUE;
}
if (val != 0)
- printf (" %lx", val);
+ printf (" %" PRIx64, val);
puts ("");
}
}
@@ -12128,8 +12137,8 @@ process_version_sections (Filedata * filedata)
case SHT_GNU_verdef:
{
Elf_External_Verdef * edefs;
- unsigned long idx;
- unsigned long cnt;
+ size_t idx;
+ size_t cnt;
char * endbuf;
found = true;
@@ -12151,8 +12160,8 @@ process_version_sections (Filedata * filedata)
section->sh_info);
printf (_(" Addr: 0x%016" PRIx64), section->sh_addr);
- printf (_(" Offset: %#08lx Link: %u (%s)\n"),
- (unsigned long) section->sh_offset, section->sh_link,
+ printf (_(" Offset: 0x%08" PRIx64 " Link: %u (%s)\n"),
+ section->sh_offset, section->sh_link,
printable_section_name_from_index (filedata, section->sh_link));
edefs = (Elf_External_Verdef *)
@@ -12169,7 +12178,7 @@ process_version_sections (Filedata * filedata)
Elf_Internal_Verdef ent;
Elf_External_Verdaux * eaux;
Elf_Internal_Verdaux aux;
- unsigned long isum;
+ size_t isum;
int j;
vstart = ((char *) edefs) + idx;
@@ -12186,7 +12195,7 @@ process_version_sections (Filedata * filedata)
ent.vd_aux = BYTE_GET (edef->vd_aux);
ent.vd_next = BYTE_GET (edef->vd_next);
- printf (_(" %#06lx: Rev: %d Flags: %s"),
+ printf (_(" %#06zx: Rev: %d Flags: %s"),
idx, ent.vd_version, get_ver_flags (ent.vd_flags));
printf (_(" Index: %d Cnt: %d "),
@@ -12238,11 +12247,11 @@ process_version_sections (Filedata * filedata)
aux.vda_next = BYTE_GET (eaux->vda_next);
if (valid_dynamic_name (filedata, aux.vda_name))
- printf (_(" %#06lx: Parent %d: %s\n"),
+ printf (_(" %#06zx: Parent %d: %s\n"),
isum, j,
get_dynamic_name (filedata, aux.vda_name));
else
- printf (_(" %#06lx: Parent %d, name index: %ld\n"),
+ printf (_(" %#06zx: Parent %d, name index: %ld\n"),
isum, j, aux.vda_name);
}
@@ -12274,8 +12283,8 @@ process_version_sections (Filedata * filedata)
case SHT_GNU_verneed:
{
Elf_External_Verneed * eneed;
- unsigned long idx;
- unsigned long cnt;
+ size_t idx;
+ size_t cnt;
char * endbuf;
found = true;
@@ -12297,8 +12306,8 @@ process_version_sections (Filedata * filedata)
section->sh_info);
printf (_(" Addr: 0x%016" PRIx64), section->sh_addr);
- printf (_(" Offset: %#08lx Link: %u (%s)\n"),
- (unsigned long) section->sh_offset, section->sh_link,
+ printf (_(" Offset: 0x%08" PRIx64 " Link: %u (%s)\n"),
+ section->sh_offset, section->sh_link,
printable_section_name_from_index (filedata, section->sh_link));
eneed = (Elf_External_Verneed *) get_data (NULL, filedata,
@@ -12313,7 +12322,7 @@ process_version_sections (Filedata * filedata)
{
Elf_External_Verneed * entry;
Elf_Internal_Verneed ent;
- unsigned long isum;
+ size_t isum;
int j;
char * vstart;
@@ -12329,7 +12338,7 @@ process_version_sections (Filedata * filedata)
ent.vn_aux = BYTE_GET (entry->vn_aux);
ent.vn_next = BYTE_GET (entry->vn_next);
- printf (_(" %#06lx: Version: %d"), idx, ent.vn_version);
+ printf (_(" %#06zx: Version: %d"), idx, ent.vn_version);
if (valid_dynamic_name (filedata, ent.vn_file))
printf (_(" File: %s"),
@@ -12360,10 +12369,10 @@ process_version_sections (Filedata * filedata)
aux.vna_next = BYTE_GET (eaux->vna_next);
if (valid_dynamic_name (filedata, aux.vna_name))
- printf (_(" %#06lx: Name: %s"),
+ printf (_(" %#06zx: Name: %s"),
isum, get_dynamic_name (filedata, aux.vna_name));
else
- printf (_(" %#06lx: Name index: %lx"),
+ printf (_(" %#06zx: Name index: %lx"),
isum, aux.vna_name);
printf (_(" Flags: %s Version: %d\n"),
@@ -12409,15 +12418,15 @@ process_version_sections (Filedata * filedata)
case SHT_GNU_versym:
{
Elf_Internal_Shdr * link_section;
- size_t total;
+ uint64_t total;
unsigned int cnt;
unsigned char * edata;
unsigned short * data;
char * strtab;
Elf_Internal_Sym * symbols;
Elf_Internal_Shdr * string_sec;
- unsigned long num_syms;
- long off;
+ uint64_t num_syms;
+ uint64_t off;
if (section->sh_link >= filedata->file_header.e_shnum)
break;
@@ -12446,24 +12455,24 @@ process_version_sections (Filedata * filedata)
}
if (filedata->is_separate)
- printf (ngettext ("\nIn linked file '%s' the version symbols section '%s' contains %lu entry:\n",
- "\nIn linked file '%s' the version symbols section '%s' contains %lu entries:\n",
+ printf (ngettext ("\nIn linked file '%s' the version symbols section '%s' contains %" PRIu64 " entry:\n",
+ "\nIn linked file '%s' the version symbols section '%s' contains %" PRIu64 " entries:\n",
total),
filedata->file_name,
printable_section_name (filedata, section),
- (unsigned long) total);
+ total);
else
printf (ngettext ("\nVersion symbols section '%s' "
- "contains %lu entry:\n",
+ "contains %" PRIu64 " entry:\n",
"\nVersion symbols section '%s' "
- "contains %lu entries:\n",
+ "contains %" PRIu64 " entries:\n",
total),
printable_section_name (filedata, section),
- (unsigned long) total);
+ total);
printf (_(" Addr: 0x%016" PRIx64), section->sh_addr);
- printf (_(" Offset: %#08lx Link: %u (%s)\n"),
- (unsigned long) section->sh_offset, section->sh_link,
+ printf (_(" Offset: 0x%08" PRIx64 " Link: %u (%s)\n"),
+ section->sh_offset, section->sh_link,
printable_section_name (filedata, link_section));
off = offset_from_vma (filedata,
@@ -12512,7 +12521,7 @@ process_version_sections (Filedata * filedata)
/* If this index value is greater than the size of the symbols
array, break to avoid an out-of-bounds read. */
- if ((unsigned long)(cnt + j) >= num_syms)
+ if (cnt + j >= num_syms)
{
warn (_("invalid index into symbol array\n"));
break;
@@ -12522,7 +12531,7 @@ process_version_sections (Filedata * filedata)
if (filedata->version_info[DT_VERSIONTAGIDX (DT_VERNEED)])
{
Elf_Internal_Verneed ivn;
- unsigned long offset;
+ uint64_t offset;
offset = offset_from_vma
(filedata,
@@ -12534,7 +12543,7 @@ process_version_sections (Filedata * filedata)
Elf_Internal_Vernaux ivna;
Elf_External_Verneed evn;
Elf_External_Vernaux evna;
- unsigned long a_off;
+ uint64_t a_off;
if (get_data (&evn, filedata, offset, sizeof (evn), 1,
_("version need")) == NULL)
@@ -12585,7 +12594,7 @@ process_version_sections (Filedata * filedata)
{
Elf_Internal_Verdef ivd;
Elf_External_Verdef evd;
- unsigned long offset;
+ uint64_t offset;
offset = offset_from_vma
(filedata,
@@ -13017,18 +13026,18 @@ get_symbol_index_type (Filedata * filedata, unsigned int type)
}
static const char *
-get_symbol_version_string (Filedata * filedata,
- bool is_dynsym,
- const char * strtab,
- unsigned long int strtab_size,
- unsigned int si,
- Elf_Internal_Sym * psym,
- enum versioned_symbol_info * sym_info,
- unsigned short * vna_other)
+get_symbol_version_string (Filedata *filedata,
+ bool is_dynsym,
+ const char *strtab,
+ size_t strtab_size,
+ unsigned int si,
+ Elf_Internal_Sym *psym,
+ enum versioned_symbol_info *sym_info,
+ unsigned short *vna_other)
{
unsigned char data[2];
unsigned short vers_data;
- unsigned long offset;
+ uint64_t offset;
unsigned short max_vd_ndx;
if (!is_dynsym
@@ -13067,7 +13076,7 @@ get_symbol_version_string (Filedata * filedata,
Elf_Internal_Verdef ivd;
Elf_Internal_Verdaux ivda;
Elf_External_Verdaux evda;
- unsigned long off;
+ uint64_t off;
off = offset_from_vma (filedata,
filedata->version_info[DT_VERSIONTAGIDX (DT_VERDEF)],
@@ -13131,7 +13140,7 @@ get_symbol_version_string (Filedata * filedata,
sizeof evn);
do
{
- unsigned long vna_off;
+ uint64_t vna_off;
if (get_data (&evn, filedata, offset, sizeof (evn), 1,
_("version need")) == NULL)
@@ -13213,7 +13222,7 @@ print_dynamic_symbol_size (uint64_t vma, int base)
}
static void
-print_dynamic_symbol (Filedata *filedata, unsigned long si,
+print_dynamic_symbol (Filedata *filedata, uint64_t si,
Elf_Internal_Sym *symtab,
Elf_Internal_Shdr *section,
char *strtab, size_t strtab_size)
@@ -13225,7 +13234,7 @@ print_dynamic_symbol (Filedata *filedata, unsigned long si,
const char * sstr;
Elf_Internal_Sym *psym = symtab + si;
- printf ("%6ld: ", si);
+ printf ("%6" PRId64 ": ", si);
print_vma (psym->st_value, LONG_HEX);
putchar (' ');
print_dynamic_symbol_size (psym->st_size, sym_base);
@@ -13306,7 +13315,7 @@ print_dynamic_symbol (Filedata *filedata, unsigned long si,
/* Solaris binaries have been found to violate this requirement as
well. Not sure if this is a bug or an ABI requirement. */
&& filedata->file_header.e_ident[EI_OSABI] != ELFOSABI_SOLARIS)
- warn (_("local symbol %lu found at index >= %s's sh_info value of %u\n"),
+ warn (_("local symbol %" PRIu64 " found at index >= %s's sh_info value of %u\n"),
si, printable_section_name (filedata, section), section->sh_info);
}
@@ -13390,9 +13399,9 @@ display_lto_symtab (Filedata * filedata,
if (section->sh_size > filedata->file_size)
{
- error (_("Section %s has an invalid sh_size of 0x%lx\n"),
+ error (_("Section %s has an invalid sh_size of %#" PRIx64 "\n"),
printable_section_name (filedata, section),
- (unsigned long) section->sh_size);
+ section->sh_size);
return false;
}
@@ -13586,20 +13595,24 @@ process_symbol_table (Filedata * filedata)
&& filedata->dynamic_strings != NULL
&& filedata->dynamic_symbols != NULL)
{
- unsigned long si;
+ uint64_t si;
if (filedata->is_separate)
{
- printf (ngettext ("\nIn linked file '%s' the dynamic symbol table contains %lu entry:\n",
- "\nIn linked file '%s' the dynamic symbol table contains %lu entries:\n",
+ printf (ngettext ("\nIn linked file '%s' the dynamic symbol table"
+ " contains %" PRIu64 " entry:\n",
+ "\nIn linked file '%s' the dynamic symbol table"
+ " contains %" PRIu64 " entries:\n",
filedata->num_dynamic_syms),
filedata->file_name,
filedata->num_dynamic_syms);
}
else
{
- printf (ngettext ("\nSymbol table for image contains %lu entry:\n",
- "\nSymbol table for image contains %lu entries:\n",
+ printf (ngettext ("\nSymbol table for image contains %" PRIu64
+ " entry:\n",
+ "\nSymbol table for image contains %" PRIu64
+ " entries:\n",
filedata->num_dynamic_syms),
filedata->num_dynamic_syms);
}
@@ -13623,9 +13636,9 @@ process_symbol_table (Filedata * filedata)
i++, section++)
{
char * strtab = NULL;
- unsigned long int strtab_size = 0;
+ uint64_t strtab_size = 0;
Elf_Internal_Sym * symtab;
- unsigned long si, num_syms;
+ uint64_t si, num_syms;
if ((section->sh_type != SHT_SYMTAB
&& section->sh_type != SHT_DYNSYM)
@@ -13643,15 +13656,19 @@ process_symbol_table (Filedata * filedata)
num_syms = section->sh_size / section->sh_entsize;
if (filedata->is_separate)
- printf (ngettext ("\nIn linked file '%s' symbol section '%s' contains %lu entry:\n",
- "\nIn linked file '%s' symbol section '%s' contains %lu entries:\n",
+ printf (ngettext ("\nIn linked file '%s' symbol section '%s'"
+ " contains %" PRIu64 " entry:\n",
+ "\nIn linked file '%s' symbol section '%s'"
+ " contains %" PRIu64 " entries:\n",
num_syms),
filedata->file_name,
printable_section_name (filedata, section),
num_syms);
else
- printf (ngettext ("\nSymbol table '%s' contains %lu entry:\n",
- "\nSymbol table '%s' contains %lu entries:\n",
+ printf (ngettext ("\nSymbol table '%s' contains %" PRIu64
+ " entry:\n",
+ "\nSymbol table '%s' contains %" PRIu64
+ " entries:\n",
num_syms),
printable_section_name (filedata, section),
num_syms);
@@ -13697,24 +13714,23 @@ process_symbol_table (Filedata * filedata)
if (do_histogram && filedata->buckets != NULL)
{
- unsigned long * lengths;
- unsigned long * counts;
- unsigned long hn;
+ uint64_t *lengths;
+ uint64_t *counts;
+ uint64_t hn;
uint64_t si;
- unsigned long maxlength = 0;
- unsigned long nzero_counts = 0;
- unsigned long nsyms = 0;
+ uint64_t maxlength = 0;
+ uint64_t nzero_counts = 0;
+ uint64_t nsyms = 0;
char *visited;
printf (ngettext ("\nHistogram for bucket list length "
- "(total of %lu bucket):\n",
+ "(total of %" PRIu64 " bucket):\n",
"\nHistogram for bucket list length "
- "(total of %lu buckets):\n",
- (unsigned long) filedata->nbuckets),
- (unsigned long) filedata->nbuckets);
+ "(total of %" PRIu64 " buckets):\n",
+ filedata->nbuckets),
+ filedata->nbuckets);
- lengths = (unsigned long *) calloc (filedata->nbuckets,
- sizeof (*lengths));
+ lengths = calloc (filedata->nbuckets, sizeof (*lengths));
if (lengths == NULL)
{
error (_("Out of memory allocating space for histogram buckets\n"));
@@ -13741,7 +13757,7 @@ process_symbol_table (Filedata * filedata)
}
free (visited);
- counts = (unsigned long *) calloc (maxlength + 1, sizeof (*counts));
+ counts = calloc (maxlength + 1, sizeof (*counts));
if (counts == NULL)
{
free (lengths);
@@ -13754,13 +13770,13 @@ process_symbol_table (Filedata * filedata)
if (filedata->nbuckets > 0)
{
- unsigned long i;
- printf (" 0 %-10lu (%5.1f%%)\n",
+ uint64_t i;
+ printf (" 0 %-10" PRIu64 " (%5.1f%%)\n",
counts[0], (counts[0] * 100.0) / filedata->nbuckets);
for (i = 1; i <= maxlength; ++i)
{
nzero_counts += counts[i] * i;
- printf ("%7lu %-10lu (%5.1f%%) %5.1f%%\n",
+ printf ("%7" PRIu64 " %-10" PRIu64 " (%5.1f%%) %5.1f%%\n",
i, counts[i], (counts[i] * 100.0) / filedata->nbuckets,
(nzero_counts * 100.0) / nsyms);
}
@@ -13778,23 +13794,22 @@ process_symbol_table (Filedata * filedata)
if (do_histogram && filedata->gnubuckets != NULL)
{
- unsigned long * lengths;
- unsigned long * counts;
- unsigned long hn;
- unsigned long maxlength = 0;
- unsigned long nzero_counts = 0;
- unsigned long nsyms = 0;
+ uint64_t *lengths;
+ uint64_t *counts;
+ uint64_t hn;
+ uint64_t maxlength = 0;
+ uint64_t nzero_counts = 0;
+ uint64_t nsyms = 0;
printf (ngettext ("\nHistogram for `%s' bucket list length "
- "(total of %lu bucket):\n",
+ "(total of %" PRIu64 " bucket):\n",
"\nHistogram for `%s' bucket list length "
- "(total of %lu buckets):\n",
- (unsigned long) filedata->ngnubuckets),
+ "(total of %" PRIu64 " buckets):\n",
+ filedata->ngnubuckets),
GNU_HASH_SECTION_NAME (filedata),
- (unsigned long) filedata->ngnubuckets);
+ filedata->ngnubuckets);
- lengths = (unsigned long *) calloc (filedata->ngnubuckets,
- sizeof (*lengths));
+ lengths = calloc (filedata->ngnubuckets, sizeof (*lengths));
if (lengths == NULL)
{
error (_("Out of memory allocating space for gnu histogram buckets\n"));
@@ -13820,7 +13835,7 @@ process_symbol_table (Filedata * filedata)
nsyms += length;
}
- counts = (unsigned long *) calloc (maxlength + 1, sizeof (*counts));
+ counts = calloc (maxlength + 1, sizeof (*counts));
if (counts == NULL)
{
free (lengths);
@@ -13833,13 +13848,13 @@ process_symbol_table (Filedata * filedata)
if (filedata->ngnubuckets > 0)
{
- unsigned long j;
- printf (" 0 %-10lu (%5.1f%%)\n",
+ uint64_t j;
+ printf (" 0 %-10" PRIu64 " (%5.1f%%)\n",
counts[0], (counts[0] * 100.0) / filedata->ngnubuckets);
for (j = 1; j <= maxlength; ++j)
{
nzero_counts += counts[j] * j;
- printf ("%7lu %-10lu (%5.1f%%) %5.1f%%\n",
+ printf ("%7" PRIu64 " %-10" PRIu64 " (%5.1f%%) %5.1f%%\n",
j, counts[j], (counts[j] * 100.0) / filedata->ngnubuckets,
(nzero_counts * 100.0) / nsyms);
}
@@ -13890,17 +13905,17 @@ process_syminfo (Filedata * filedata)
return false;
if (filedata->is_separate)
- printf (ngettext ("\nIn linked file '%s: the dynamic info segment at offset 0x%lx contains %d entry:\n",
- "\nIn linked file '%s: the dynamic info segment at offset 0x%lx contains %d entries:\n",
+ printf (ngettext ("\nIn linked file '%s: the dynamic info segment at offset %#" PRIx64 " contains %d entry:\n",
+ "\nIn linked file '%s: the dynamic info segment at offset %#" PRIx64 " contains %d entries:\n",
filedata->dynamic_syminfo_nent),
filedata->file_name,
filedata->dynamic_syminfo_offset,
filedata->dynamic_syminfo_nent);
else
- printf (ngettext ("\nDynamic info segment at offset 0x%lx "
- "contains %d entry:\n",
- "\nDynamic info segment at offset 0x%lx "
- "contains %d entries:\n",
+ printf (ngettext ("\nDynamic info segment at offset %#" PRIx64
+ " contains %d entry:\n",
+ "\nDynamic info segment at offset %#" PRIx64
+ " contains %d entries:\n",
filedata->dynamic_syminfo_nent),
filedata->dynamic_syminfo_offset,
filedata->dynamic_syminfo_nent);
@@ -13974,15 +13989,15 @@ process_syminfo (Filedata * filedata)
discarded. */
static bool
-target_specific_reloc_handling (Filedata * filedata,
- Elf_Internal_Rela * reloc,
- unsigned char * start,
- unsigned char * end,
- Elf_Internal_Sym * symtab,
- unsigned long num_syms)
+target_specific_reloc_handling (Filedata *filedata,
+ Elf_Internal_Rela *reloc,
+ unsigned char *start,
+ unsigned char *end,
+ Elf_Internal_Sym *symtab,
+ uint64_t num_syms)
{
unsigned int reloc_type = 0;
- unsigned long sym_index = 0;
+ uint64_t sym_index = 0;
if (reloc)
{
@@ -14014,8 +14029,8 @@ target_specific_reloc_handling (Filedata * filedata,
case 23: /* R_MSP430X_GNU_SUB_ULEB128 */
/* PR 21139. */
if (sym_index >= num_syms)
- error (_("MSP430 SYM_DIFF reloc contains invalid symbol index %lu\n"),
- sym_index);
+ error (_("MSP430 SYM_DIFF reloc contains invalid symbol index"
+ " %" PRIu64 "\n"), sym_index);
else
saved_sym = symtab + sym_index;
return true;
@@ -14061,11 +14076,12 @@ target_specific_reloc_handling (Filedata * filedata,
}
if (leb_ret != 0 || reloc_size == 0 || reloc_size > 8)
- error (_("MSP430 ULEB128 field at 0x%lx contains invalid "
- "ULEB128 value\n"),
- (long) reloc->r_offset);
+ error (_("MSP430 ULEB128 field at %#" PRIx64
+ " contains invalid ULEB128 value\n"),
+ reloc->r_offset);
else if (sym_index >= num_syms)
- error (_("MSP430 reloc contains invalid symbol index %lu\n"),
+ error (_("MSP430 reloc contains invalid symbol index "
+ "%" PRIu64 "\n"),
sym_index);
else
{
@@ -14076,8 +14092,9 @@ target_specific_reloc_handling (Filedata * filedata,
byte_put (start + reloc->r_offset, value, reloc_size);
else
/* PR 21137 */
- error (_("MSP430 sym diff reloc contains invalid offset: 0x%lx\n"),
- (long) reloc->r_offset);
+ error (_("MSP430 sym diff reloc contains invalid offset: "
+ "%#" PRIx64 "\n"),
+ reloc->r_offset);
}
saved_sym = NULL;
@@ -14110,7 +14127,8 @@ target_specific_reloc_handling (Filedata * filedata,
return true;
case 33: /* R_MN10300_SYM_DIFF */
if (sym_index >= num_syms)
- error (_("MN10300_SYM_DIFF reloc contains invalid symbol index %lu\n"),
+ error (_("MN10300_SYM_DIFF reloc contains invalid symbol index "
+ "%" PRIu64 "\n"),
sym_index);
else
saved_sym = symtab + sym_index;
@@ -14124,7 +14142,8 @@ target_specific_reloc_handling (Filedata * filedata,
uint64_t value;
if (sym_index >= num_syms)
- error (_("MN10300 reloc contains invalid symbol index %lu\n"),
+ error (_("MN10300 reloc contains invalid symbol index "
+ "%" PRIu64 "\n"),
sym_index);
else
{
@@ -14134,8 +14153,9 @@ target_specific_reloc_handling (Filedata * filedata,
if (IN_RANGE (start, end, start + reloc->r_offset, reloc_size))
byte_put (start + reloc->r_offset, value, reloc_size);
else
- error (_("MN10300 sym diff reloc contains invalid offset: 0x%lx\n"),
- (long) reloc->r_offset);
+ error (_("MN10300 sym diff reloc contains invalid offset:"
+ " %#" PRIx64 "\n"),
+ reloc->r_offset);
}
saved_sym = NULL;
@@ -14167,8 +14187,8 @@ target_specific_reloc_handling (Filedata * filedata,
case 0x80: /* R_RL78_SYM. */
saved_sym1 = saved_sym2;
if (sym_index >= num_syms)
- error (_("RL78_SYM reloc contains invalid symbol index %lu\n"),
- sym_index);
+ error (_("RL78_SYM reloc contains invalid symbol index "
+ "%" PRIu64 "\n"), sym_index);
else
{
saved_sym2 = symtab[sym_index].st_value;
@@ -14186,8 +14206,9 @@ target_specific_reloc_handling (Filedata * filedata,
if (IN_RANGE (start, end, start + reloc->r_offset, 4))
byte_put (start + reloc->r_offset, value, 4);
else
- error (_("RL78 sym diff reloc contains invalid offset: 0x%lx\n"),
- (long) reloc->r_offset);
+ error (_("RL78 sym diff reloc contains invalid offset: "
+ "%#" PRIx64 "\n"),
+ reloc->r_offset);
value = 0;
return true;
@@ -14195,8 +14216,9 @@ target_specific_reloc_handling (Filedata * filedata,
if (IN_RANGE (start, end, start + reloc->r_offset, 2))
byte_put (start + reloc->r_offset, value, 2);
else
- error (_("RL78 sym diff reloc contains invalid offset: 0x%lx\n"),
- (long) reloc->r_offset);
+ error (_("RL78 sym diff reloc contains invalid offset: "
+ "%#" PRIx64 "\n"),
+ reloc->r_offset);
value = 0;
return true;
@@ -14965,7 +14987,7 @@ apply_relocations (Filedata *filedata,
unsigned char *start,
size_t size,
void **relocs_return,
- unsigned long *num_relocs_return)
+ uint64_t *num_relocs_return)
{
Elf_Internal_Shdr * relsec;
unsigned char * end = start + size;
@@ -14986,12 +15008,12 @@ apply_relocations (Filedata *filedata,
++relsec)
{
bool is_rela;
- unsigned long num_relocs;
+ uint64_t num_relocs;
Elf_Internal_Rela * relocs;
Elf_Internal_Rela * rp;
Elf_Internal_Shdr * symsec;
Elf_Internal_Sym * symtab;
- unsigned long num_syms;
+ uint64_t num_syms;
Elf_Internal_Sym * sym;
if ((relsec->sh_type != SHT_RELA && relsec->sh_type != SHT_REL)
@@ -15035,7 +15057,7 @@ apply_relocations (Filedata *filedata,
bool reloc_inplace = false;
bool reloc_subtract = false;
unsigned char *rloc;
- unsigned long sym_index;
+ uint64_t sym_index;
reloc_type = get_reloc_type (filedata, rp->r_info);
@@ -15104,16 +15126,18 @@ apply_relocations (Filedata *filedata,
rloc = start + rp->r_offset;
if (!IN_RANGE (start, end, rloc, reloc_size))
{
- warn (_("skipping invalid relocation offset 0x%lx in section %s\n"),
- (unsigned long) rp->r_offset,
+ warn (_("skipping invalid relocation offset %#" PRIx64
+ " in section %s\n"),
+ rp->r_offset,
printable_section_name (filedata, section));
continue;
}
- sym_index = (unsigned long) get_reloc_symindex (rp->r_info);
+ sym_index = get_reloc_symindex (rp->r_info);
if (sym_index >= num_syms)
{
- warn (_("skipping invalid relocation symbol index 0x%lx in section %s\n"),
+ warn (_("skipping invalid relocation symbol index %#" PRIx64
+ " in section %s\n"),
sym_index, printable_section_name (filedata, section));
continue;
}
@@ -15136,10 +15160,10 @@ apply_relocations (Filedata *filedata,
&& ELF_ST_TYPE (sym->st_info) != STT_COMMON
&& ELF_ST_TYPE (sym->st_info) > STT_SECTION)
{
- warn (_("skipping unexpected symbol type %s in section %s relocation %ld\n"),
+ warn (_("skipping unexpected symbol type %s in section %s relocation %tu\n"),
get_symbol_type (filedata, ELF_ST_TYPE (sym->st_info)),
printable_section_name (filedata, relsec),
- (long int)(rp - relocs));
+ rp - relocs);
continue;
}
@@ -15443,7 +15467,7 @@ dump_section_as_strings (Elf_Internal_Shdr * section, Filedata * filedata)
}
else
{
- printf (" [%6lx] ", (unsigned long) (data - start));
+ printf (" [%6tx] ", data - start);
}
if (maxlen > 0)
@@ -15660,7 +15684,7 @@ dump_section_as_bytes (Elf_Internal_Shdr *section,
lbytes = (bytes > 16 ? 16 : bytes);
- printf (" 0x%8.8lx ", (unsigned long) addr);
+ printf (" 0x%8.8" PRIx64 " ", addr);
for (j = 0; j < 16; j++)
{
@@ -16079,7 +16103,7 @@ get_build_id (void * data)
{
Filedata * filedata = (Filedata *) data;
Elf_Internal_Shdr * shdr;
- unsigned long i;
+ size_t i;
/* Iterate through notes to find note.gnu.build-id.
FIXME: Only the first note in any note section is examined. */
@@ -16186,7 +16210,7 @@ malformed note encountered in section %s whilst scanning for build-id note\n"),
&& startswith (inote.namedata, "GNU")
&& inote.type == NT_GNU_BUILD_ID)
{
- unsigned long j;
+ size_t j;
char * build_id;
build_id = malloc (inote.descsz * 2 + 1);
@@ -16517,7 +16541,7 @@ display_tag_value (signed int tag,
unsigned char * p,
const unsigned char * const end)
{
- unsigned long val;
+ uint64_t val;
if (tag > 0)
printf (" Tag_unknown_%d: ", tag);
@@ -16547,7 +16571,7 @@ display_tag_value (signed int tag,
else
{
READ_ULEB (val, p, end);
- printf ("%ld (0x%lx)\n", val, val);
+ printf ("%" PRId64 " (0x%" PRIx64 ")\n", val, val);
}
assert (p <= end);
@@ -17679,7 +17703,7 @@ display_tic6x_attribute (unsigned char * p,
static void
display_raw_attribute (unsigned char * p, unsigned char const * const end)
{
- unsigned long addr = 0;
+ uint64_t addr = 0;
size_t bytes = end - p;
assert (end >= p);
@@ -17689,7 +17713,7 @@ display_raw_attribute (unsigned char * p, unsigned char const * const end)
int k;
int lbytes = (bytes > 16 ? 16 : bytes);
- printf (" 0x%8.8lx ", addr);
+ printf (" 0x%8.8" PRIx64 " ", addr);
for (j = 0; j < 16; j++)
{
@@ -17723,10 +17747,10 @@ display_raw_attribute (unsigned char * p, unsigned char const * const end)
static unsigned char *
display_msp430_attribute (unsigned char * p,
- const unsigned char * const end)
+ const unsigned char * const end)
{
- unsigned int val;
- unsigned int tag;
+ uint64_t val;
+ uint64_t tag;
READ_ULEB (tag, p, end);
@@ -17740,7 +17764,7 @@ display_msp430_attribute (unsigned char * p,
case 0: printf (_("None\n")); break;
case 1: printf (_("MSP430\n")); break;
case 2: printf (_("MSP430X\n")); break;
- default: printf ("??? (%d)\n", val); break;
+ default: printf ("??? (%" PRId64 ")\n", val); break;
}
break;
@@ -17752,7 +17776,7 @@ display_msp430_attribute (unsigned char * p,
case 0: printf (_("None\n")); break;
case 1: printf (_("Small\n")); break;
case 2: printf (_("Large\n")); break;
- default: printf ("??? (%d)\n", val); break;
+ default: printf ("??? (%" PRId64 ")\n", val); break;
}
break;
@@ -17765,12 +17789,12 @@ display_msp430_attribute (unsigned char * p,
case 1: printf (_("Small\n")); break;
case 2: printf (_("Large\n")); break;
case 3: printf (_("Restricted Large\n")); break;
- default: printf ("??? (%d)\n", val); break;
+ default: printf ("??? (%" PRId64 ")\n", val); break;
}
break;
default:
- printf (_(" <unknown tag %d>: "), tag);
+ printf (_(" <unknown tag %" PRId64 ">: "), tag);
if (tag & 1)
{
@@ -17792,7 +17816,7 @@ display_msp430_attribute (unsigned char * p,
else
{
READ_ULEB (val, p, end);
- printf ("%d (0x%x)\n", val, val);
+ printf ("%" PRId64 " (0x%" PRIx64 ")\n", val, val);
}
break;
}
@@ -17808,7 +17832,7 @@ display_msp430_gnu_attribute (unsigned char * p,
{
if (tag == Tag_GNU_MSP430_Data_Region)
{
- unsigned int val;
+ uint64_t val;
printf (" Tag_GNU_MSP430_Data_Region: ");
READ_ULEB (val, p, end);
@@ -17822,7 +17846,7 @@ display_msp430_gnu_attribute (unsigned char * p,
printf (_("Lower Region Only\n"));
break;
default:
- printf ("??? (%u)\n", val);
+ printf ("??? (%" PRIu64 ")\n", val);
}
return p;
}
@@ -17850,8 +17874,8 @@ static unsigned char *
display_riscv_attribute (unsigned char *p,
const unsigned char * const end)
{
- unsigned int val;
- unsigned int tag;
+ uint64_t val;
+ uint64_t tag;
struct riscv_attr_tag_t *attr = NULL;
unsigned i;
@@ -17878,7 +17902,7 @@ display_riscv_attribute (unsigned char *p,
case Tag_RISCV_priv_spec_minor:
case Tag_RISCV_priv_spec_revision:
READ_ULEB (val, p, end);
- printf (_("%u\n"), val);
+ printf ("%" PRIu64 "\n", val);
break;
case Tag_RISCV_unaligned_access:
READ_ULEB (val, p, end);
@@ -17894,7 +17918,7 @@ display_riscv_attribute (unsigned char *p,
break;
case Tag_RISCV_stack_align:
READ_ULEB (val, p, end);
- printf (_("%u-bytes\n"), val);
+ printf (_("%" PRIu64 "-bytes\n"), val);
break;
case Tag_RISCV_arch:
p = display_tag_value (-1, p, end);
@@ -17910,8 +17934,8 @@ static unsigned char *
display_csky_attribute (unsigned char * p,
const unsigned char * const end)
{
- unsigned int tag;
- unsigned int val;
+ uint64_t tag;
+ uint64_t val;
READ_ULEB (tag, p, end);
if (tag >= Tag_CSKY_MAX)
@@ -17947,7 +17971,7 @@ display_csky_attribute (unsigned char * p,
case Tag_CSKY_VDSP_VERSION:
printf (" Tag_CSKY_VDSP_VERSION:\t");
READ_ULEB (val, p, end);
- printf ("VDSP Version %d\n", val);
+ printf ("VDSP Version %" PRId64 "\n", val);
break;
case Tag_CSKY_FPU_VERSION:
@@ -18640,10 +18664,10 @@ process_mips_specific (Filedata * filedata)
_("liblist section data"));
if (elib)
{
- printf (ngettext ("\nSection '.liblist' contains %lu entry:\n",
- "\nSection '.liblist' contains %lu entries:\n",
- (unsigned long) liblistno),
- (unsigned long) liblistno);
+ printf (ngettext ("\nSection '.liblist' contains %zu entry:\n",
+ "\nSection '.liblist' contains %zu entries:\n",
+ liblistno),
+ liblistno);
fputs (_(" Library Time Stamp Checksum Version Flags\n"),
stdout);
@@ -18666,7 +18690,7 @@ process_mips_specific (Filedata * filedata)
tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
- printf ("%3lu: ", (unsigned long) cnt);
+ printf ("%3zu: ", cnt);
if (valid_dynamic_name (filedata, liblist.l_name))
print_symbol (20, get_dynamic_name (filedata, liblist.l_name));
else
@@ -18978,8 +19002,8 @@ process_mips_specific (Filedata * filedata)
if we are sure that the cmalloc will fail. */
if (conflictsno > filedata->file_size / sizeof (* iconf))
{
- error (_("Overlarge number of conflicts detected: %lx\n"),
- (long) conflictsno);
+ error (_("Overlarge number of conflicts detected: %zx\n"),
+ conflictsno);
return false;
}
@@ -19027,15 +19051,15 @@ process_mips_specific (Filedata * filedata)
free (econf64);
}
- printf (ngettext ("\nSection '.conflict' contains %lu entry:\n",
- "\nSection '.conflict' contains %lu entries:\n",
- (unsigned long) conflictsno),
- (unsigned long) conflictsno);
+ printf (ngettext ("\nSection '.conflict' contains %zu entry:\n",
+ "\nSection '.conflict' contains %zu entries:\n",
+ conflictsno),
+ conflictsno);
puts (_(" Num: Index Value Name"));
for (cnt = 0; cnt < conflictsno; ++cnt)
{
- printf ("%5lu: %8lu ", (unsigned long) cnt, iconf[cnt]);
+ printf ("%5zu: %8lu ", cnt, iconf[cnt]);
if (iconf[cnt] >= filedata->num_dynamic_syms)
printf (_("<corrupt symbol index>"));
@@ -19072,8 +19096,9 @@ process_mips_specific (Filedata * filedata)
/* PR binutils/17533 file: 012-111227-0.004 */
if (symtabno < gotsym)
{
- error (_("The GOT symbol offset (%lu) is greater than the symbol table size (%lu)\n"),
- (unsigned long) gotsym, (unsigned long) symtabno);
+ error (_("The GOT symbol offset (%" PRIu64
+ ") is greater than the symbol table size (%" PRIu64 ")\n"),
+ gotsym, symtabno);
return false;
}
@@ -19081,7 +19106,7 @@ process_mips_specific (Filedata * filedata)
/* PR 17531: file: 54c91a34. */
if (global_end < local_end)
{
- error (_("Too many GOT symbols: %lu\n"), (unsigned long) symtabno);
+ error (_("Too many GOT symbols: %" PRIu64 "\n"), symtabno);
return false;
}
@@ -19178,8 +19203,8 @@ process_mips_specific (Filedata * filedata)
printf (_("<corrupt: %14ld>"), psym->st_name);
}
else
- printf (_("<symbol index %lu exceeds number of dynamic symbols>"),
- (unsigned long) i);
+ printf (_("<symbol index %zu exceeds number of dynamic symbols>"),
+ i);
printf ("\n");
if (ent == (uint64_t) -1)
@@ -19195,8 +19220,8 @@ process_mips_specific (Filedata * filedata)
if (mips_pltgot != 0 && jmprel != 0 && pltrel != 0 && pltrelsz != 0)
{
uint64_t ent, end;
- size_t offset, rel_offset;
- unsigned long count, i;
+ uint64_t offset, rel_offset;
+ uint64_t count, i;
unsigned char * data;
int addr_size, sym_width;
Elf_Internal_Rela * rels;
@@ -19244,13 +19269,13 @@ process_mips_specific (Filedata * filedata)
sym_width = (is_32bit_elf ? 80 : 160) - 17 - addr_size * 6 - 1;
for (i = 0; i < count; i++)
{
- unsigned long idx = get_reloc_symindex (rels[i].r_info);
+ uint64_t idx = get_reloc_symindex (rels[i].r_info);
ent = print_mips_pltgot_entry (data, mips_pltgot, ent);
printf (" ");
if (idx >= filedata->num_dynamic_syms)
- printf (_("<corrupt symbol index: %lu>"), idx);
+ printf (_("<corrupt symbol index: %" PRIu64 ">"), idx);
else
{
Elf_Internal_Sym * psym = filedata->dynamic_symbols + idx;
@@ -19325,7 +19350,7 @@ process_gnu_liblist (Filedata * filedata)
char * strtab;
size_t strtab_size;
size_t cnt;
- unsigned long num_liblist;
+ uint64_t num_liblist;
unsigned i;
bool res = true;
@@ -19367,8 +19392,10 @@ process_gnu_liblist (Filedata * filedata)
strtab_size = string_sec->sh_size;
num_liblist = section->sh_size / sizeof (Elf32_External_Lib);
- printf (ngettext ("\nLibrary list section '%s' contains %lu entries:\n",
- "\nLibrary list section '%s' contains %lu entries:\n",
+ printf (ngettext ("\nLibrary list section '%s' contains %" PRIu64
+ " entries:\n",
+ "\nLibrary list section '%s' contains %" PRIu64
+ " entries:\n",
num_liblist),
printable_section_name (filedata, section),
num_liblist);
@@ -19395,7 +19422,7 @@ process_gnu_liblist (Filedata * filedata)
tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
- printf ("%3lu: ", (unsigned long) cnt);
+ printf ("%3zu: ", cnt);
if (do_wide)
printf ("%-20s", liblist.l_name < strtab_size
? strtab + liblist.l_name : _("<corrupt>"));
@@ -20232,7 +20259,7 @@ print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote)
if (datasz != size)
printf (_("<corrupt length: %#x> "), datasz);
else
- printf ("%#lx", (unsigned long) byte_get (ptr, size));
+ printf ("%#" PRIx64, byte_get (ptr, size));
goto next;
case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
@@ -20310,7 +20337,7 @@ print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote)
{
case NT_GNU_BUILD_ID:
{
- unsigned long i;
+ size_t i;
printf (_(" Build ID: "));
for (i = 0; i < pnote->descsz; ++i)
@@ -20321,7 +20348,7 @@ print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote)
case NT_GNU_ABI_TAG:
{
- unsigned long os, major, minor, subminor;
+ unsigned int os, major, minor, subminor;
const char *osname;
/* PR 17531: file: 030-599401-0.004. */
@@ -20364,14 +20391,14 @@ print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote)
break;
}
- printf (_(" OS: %s, ABI: %ld.%ld.%ld\n"), osname,
+ printf (_(" OS: %s, ABI: %d.%d.%d\n"), osname,
major, minor, subminor);
}
break;
case NT_GNU_GOLD_VERSION:
{
- unsigned long i;
+ size_t i;
printf (_(" Version: "));
for (i = 0; i < pnote->descsz && pnote->descdata[i] != '\0'; ++i)
@@ -20382,7 +20409,7 @@ print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote)
case NT_GNU_HWCAP:
{
- unsigned long num_entries, mask;
+ unsigned int num_entries, mask;
/* Hardware capabilities information. Word 0 is the number of entries.
Word 1 is a bitmask of enabled entries. The rest of the descriptor
@@ -20397,7 +20424,7 @@ print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote)
}
num_entries = byte_get ((unsigned char *) pnote->descdata, 4);
mask = byte_get ((unsigned char *) pnote->descdata + 4, 4);
- printf (_("num entries: %ld, enabled mask: %lx\n"), num_entries, mask);
+ printf (_("num entries: %d, enabled mask: %x\n"), num_entries, mask);
/* FIXME: Add code to display the entries... */
}
break;
@@ -20411,7 +20438,7 @@ print_gnu_note (Filedata * filedata, Elf_Internal_Note *pnote)
created by get_gnu_elf_note_type(), so all that we need to do is to
display the data. */
{
- unsigned long i;
+ size_t i;
printf (_(" Description data: "));
for (i = 0; i < pnote->descsz; ++i)
@@ -20713,7 +20740,7 @@ static bool
print_stapsdt_note (Elf_Internal_Note *pnote)
{
size_t len, maxlen;
- unsigned long addr_size = is_32bit_elf ? 4 : 8;
+ size_t addr_size = is_32bit_elf ? 4 : 8;
char *data = pnote->descdata;
char *data_end = pnote->descdata + pnote->descsz;
uint64_t pc, base_addr, semaphore;
@@ -20841,9 +20868,9 @@ get_ia64_vms_note_type (unsigned e_type)
static bool
print_ia64_vms_note (Elf_Internal_Note * pnote)
{
- int maxlen = pnote->descsz;
+ unsigned int maxlen = pnote->descsz;
- if (maxlen < 2 || (unsigned long) maxlen != pnote->descsz)
+ if (maxlen < 2 || maxlen != pnote->descsz)
goto desc_size_fail;
switch (pnote->type)
@@ -20852,7 +20879,7 @@ print_ia64_vms_note (Elf_Internal_Note * pnote)
if (maxlen <= 36)
goto desc_size_fail;
- int l = (int) strnlen (pnote->descdata + 34, maxlen - 34);
+ size_t l = strnlen (pnote->descdata + 34, maxlen - 34);
printf (_(" Creation date : %.17s\n"), pnote->descdata);
printf (_(" Last patch date: %.17s\n"), pnote->descdata + 17);
@@ -20953,9 +20980,9 @@ print_ia64_vms_note (Elf_Internal_Note * pnote)
struct build_attr_cache {
Filedata *filedata;
char *strtab;
- unsigned long strtablen;
+ uint64_t strtablen;
Elf_Internal_Sym *symtab;
- unsigned long nsyms;
+ uint64_t nsyms;
} ba_cache;
/* Find the symbol associated with a build attribute that is attached
@@ -20965,7 +20992,7 @@ struct build_attr_cache {
static Elf_Internal_Sym *
get_symbol_for_build_attribute (Filedata *filedata,
- unsigned long offset,
+ uint64_t offset,
bool is_open_attr,
const char **pname)
{
@@ -21079,7 +21106,7 @@ get_symbol_for_build_attribute (Filedata *filedata,
/* Returns true iff addr1 and addr2 are in the same section. */
static bool
-same_section (Filedata * filedata, unsigned long addr1, unsigned long addr2)
+same_section (Filedata * filedata, uint64_t addr1, uint64_t addr2)
{
Elf_Internal_Shdr * a1;
Elf_Internal_Shdr * a2;
@@ -21094,15 +21121,15 @@ static bool
print_gnu_build_attribute_description (Elf_Internal_Note * pnote,
Filedata * filedata)
{
- static unsigned long global_offset = 0;
- static unsigned long global_end = 0;
- static unsigned long func_offset = 0;
- static unsigned long func_end = 0;
+ static uint64_t global_offset = 0;
+ static uint64_t global_end = 0;
+ static uint64_t func_offset = 0;
+ static uint64_t func_end = 0;
Elf_Internal_Sym *sym;
const char *name;
- unsigned long start;
- unsigned long end;
+ uint64_t start;
+ uint64_t end;
bool is_open_attr = pnote->type == NT_GNU_BUILD_ATTRIBUTE_OPEN;
switch (pnote->descsz)
@@ -21113,17 +21140,20 @@ print_gnu_build_attribute_description (Elf_Internal_Note * pnote,
if (is_open_attr)
{
if (global_end > global_offset)
- printf (_(" Applies to region from %#lx to %#lx\n"),
- global_offset, global_end);
+ printf (_(" Applies to region from %#" PRIx64
+ " to %#" PRIx64 "\n"), global_offset, global_end);
else
- printf (_(" Applies to region from %#lx\n"), global_offset);
+ printf (_(" Applies to region from %#" PRIx64
+ "\n"), global_offset);
}
else
{
if (func_end > func_offset)
- printf (_(" Applies to region from %#lx to %#lx\n"), func_offset, func_end);
+ printf (_(" Applies to region from %#" PRIx64
+ " to %#" PRIx64 "\n"), func_offset, func_end);
else
- printf (_(" Applies to region from %#lx\n"), func_offset);
+ printf (_(" Applies to region from %#" PRIx64
+ "\n"), func_offset);
}
return true;
@@ -21170,26 +21200,27 @@ print_gnu_build_attribute_description (Elf_Internal_Note * pnote,
increasing address, but we should find the all of the notes
for one section in the same place. */
&& same_section (filedata, start, global_end))
- warn (_("Gap in build notes detected from %#lx to %#lx\n"),
+ warn (_("Gap in build notes detected from %#" PRIx64
+ " to %#" PRIx64 "\n"),
global_end + 1, start - 1);
- printf (_(" Applies to region from %#lx"), start);
+ printf (_(" Applies to region from %#" PRIx64), start);
global_offset = start;
if (end)
{
- printf (_(" to %#lx"), end);
+ printf (_(" to %#" PRIx64), end);
global_end = end;
}
}
else
{
- printf (_(" Applies to region from %#lx"), start);
+ printf (_(" Applies to region from %#" PRIx64), start);
func_offset = start;
if (end)
{
- printf (_(" to %#lx"), end);
+ printf (_(" to %#" PRIx64), end);
func_end = end;
}
}
@@ -21331,11 +21362,11 @@ print_gnu_build_attribute_name (Elf_Internal_Note * pnote)
if (strchr (expected_types, name_type) == NULL)
warn (_("attribute does not have an expected type (%c)\n"), name_type);
- if ((unsigned long)(name - pnote->namedata) > pnote->namesz)
+ if ((size_t) (name - pnote->namedata) > pnote->namesz)
{
- error (_("corrupt name field: namesz: %lu but parsing gets to %ld\n"),
- (unsigned long) pnote->namesz,
- (long) (name - pnote->namedata));
+ error (_("corrupt name field: namesz: %lu but parsing gets to %td\n"),
+ pnote->namesz,
+ name - pnote->namedata);
return false;
}
@@ -21346,10 +21377,10 @@ print_gnu_build_attribute_name (Elf_Internal_Note * pnote)
{
case GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC:
{
- unsigned int bytes;
- unsigned long long val = 0;
- unsigned int shift = 0;
- char * decoded = NULL;
+ unsigned int bytes;
+ uint64_t val = 0;
+ unsigned int shift = 0;
+ char *decoded = NULL;
bytes = pnote->namesz - (name - pnote->namedata);
if (bytes > 0)
@@ -21369,7 +21400,7 @@ print_gnu_build_attribute_name (Elf_Internal_Note * pnote)
while (bytes --)
{
- unsigned long long byte = *name++ & 0xff;
+ uint64_t byte = *name++ & 0xff;
val |= byte << shift;
shift += 8;
@@ -21417,9 +21448,9 @@ print_gnu_build_attribute_name (Elf_Internal_Note * pnote)
else
{
if (do_wide)
- left -= printf ("0x%llx", val);
+ left -= printf ("0x%" PRIx64, val);
else
- left -= printf ("0x%-.*llx", left, val);
+ left -= printf ("0x%-.*" PRIx64, left, val);
}
}
break;
@@ -21447,7 +21478,7 @@ print_note_contents_hex (Elf_Internal_Note *pnote)
{
if (pnote->descsz)
{
- unsigned long i;
+ size_t i;
printf (_(" description data: "));
for (i = 0; i < pnote->descsz; i++)
@@ -21759,8 +21790,9 @@ process_notes_at (Filedata * filedata,
if (section)
printf (_("Displaying notes found in: %s\n"), printable_section_name (filedata, section));
else
- printf (_("Displaying notes found at file offset 0x%08lx with length 0x%08lx:\n"),
- (unsigned long) offset, (unsigned long) length);
+ printf (_("Displaying notes found at file offset 0x%08" PRIx64
+ " with length 0x%08" PRIx64 ":\n"),
+ offset, length);
/* NB: Some note sections may have alignment value of 0 or 1. gABI
specifies that notes should be aligned to 4 bytes in 32-bit
@@ -21771,8 +21803,8 @@ process_notes_at (Filedata * filedata,
align = 4;
else if (align != 4 && align != 8)
{
- warn (_("Corrupt note: alignment %ld, expecting 4 or 8\n"),
- (long) align);
+ warn (_("Corrupt note: alignment %" PRId64 ", expecting 4 or 8\n"),
+ align);
free (pnotes);
return false;
}
@@ -21795,12 +21827,12 @@ process_notes_at (Filedata * filedata,
min_notesz = offsetof (Elf_External_Note, name);
if (data_remaining < min_notesz)
{
- warn (ngettext ("Corrupt note: only %ld byte remains, "
+ warn (ngettext ("Corrupt note: only %zd byte remains, "
"not enough for a full note\n",
- "Corrupt note: only %ld bytes remain, "
+ "Corrupt note: only %zd bytes remain, "
"not enough for a full note\n",
data_remaining),
- (long) data_remaining);
+ data_remaining);
break;
}
data_remaining -= min_notesz;
@@ -21824,12 +21856,12 @@ process_notes_at (Filedata * filedata,
min_notesz = offsetof (Elf64_External_VMS_Note, name);
if (data_remaining < min_notesz)
{
- warn (ngettext ("Corrupt note: only %ld byte remains, "
+ warn (ngettext ("Corrupt note: only %zd byte remains, "
"not enough for a full note\n",
- "Corrupt note: only %ld bytes remain, "
+ "Corrupt note: only %zd bytes remain, "
"not enough for a full note\n",
data_remaining),
- (long) data_remaining);
+ data_remaining);
break;
}
data_remaining -= min_notesz;
@@ -21852,9 +21884,9 @@ process_notes_at (Filedata * filedata,
|| ((size_t) (next - inote.descdata)
> data_remaining - (size_t) (inote.descdata - inote.namedata)))
{
- warn (_("note with invalid namesz and/or descsz found at offset 0x%lx\n"),
- (unsigned long) ((char *) external - (char *) pnotes));
- warn (_(" type: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx, alignment: %u\n"),
+ warn (_("note with invalid namesz and/or descsz found at offset %#tx\n"),
+ (char *) external - (char *) pnotes);
+ warn (_(" type: %#lx, namesize: %#lx, descsize: %#lx, alignment: %u\n"),
inote.type, inote.namesz, inote.descsz, (int) align);
break;
}
@@ -21937,8 +21969,9 @@ process_v850_notes (Filedata * filedata, uint64_t offset, uint64_t length)
external = pnotes;
end = (char*) pnotes + length;
- printf (_("\nDisplaying contents of Renesas V850 notes section at offset 0x%lx with length 0x%lx:\n"),
- (unsigned long) offset, (unsigned long) length);
+ printf (_("\nDisplaying contents of Renesas V850 notes section at offset"
+ " %#" PRIx64 " with length %#" PRIx64 ":\n"),
+ offset, length);
while ((char *) external + sizeof (Elf_External_Note) < end)
{
@@ -21964,9 +21997,9 @@ process_v850_notes (Filedata * filedata, uint64_t offset, uint64_t length)
if ( ((char *) next > end)
|| ((char *) next < (char *) pnotes))
{
- warn (_("corrupt descsz found in note at offset 0x%lx\n"),
- (unsigned long) ((char *) external - (char *) pnotes));
- warn (_(" type: 0x%lx, namesize: 0x%lx, descsize: 0x%lx\n"),
+ warn (_("corrupt descsz found in note at offset %#tx\n"),
+ (char *) external - (char *) pnotes);
+ warn (_(" type: %#lx, namesize: %#lx, descsize: %#lx\n"),
inote.type, inote.namesz, inote.descsz);
break;
}
@@ -21977,9 +22010,9 @@ process_v850_notes (Filedata * filedata, uint64_t offset, uint64_t length)
if ( inote.namedata + inote.namesz > end
|| inote.namedata + inote.namesz < inote.namedata)
{
- warn (_("corrupt namesz found in note at offset 0x%lx\n"),
- (unsigned long) ((char *) external - (char *) pnotes));
- warn (_(" type: 0x%lx, namesize: 0x%lx, descsize: 0x%lx\n"),
+ warn (_("corrupt namesz found in note at offset %#zx\n"),
+ (char *) external - (char *) pnotes);
+ warn (_(" type: %#lx, namesize: %#lx, descsize: %#lx\n"),
inote.type, inote.namesz, inote.descsz);
break;
}
@@ -21989,7 +22022,7 @@ process_v850_notes (Filedata * filedata, uint64_t offset, uint64_t length)
if (! print_v850_note (& inote))
{
res = false;
- printf ("<corrupt sizes: namesz: %lx, descsz: %lx>\n",
+ printf ("<corrupt sizes: namesz: %#lx, descsz: %#lx>\n",
inote.namesz, inote.descsz);
}
}
@@ -22003,7 +22036,7 @@ static bool
process_note_sections (Filedata * filedata)
{
Elf_Internal_Shdr *section;
- unsigned long i;
+ size_t i;
unsigned int n = 0;
bool res = true;
@@ -22572,12 +22605,12 @@ process_archive (Filedata * filedata, bool is_thin_archive)
filedata->file_name);
else
{
- unsigned long i, l;
- unsigned long current_pos;
+ uint64_t i, l;
+ uint64_t current_pos;
- printf (_("Index of archive %s: (%lu entries, 0x%lx bytes "
- "in the symbol table)\n"),
- filedata->file_name, (unsigned long) arch.index_num,
+ printf (_("Index of archive %s: (%" PRIu64 " entries,"
+ " %#" PRIx64 " bytes in the symbol table)\n"),
+ filedata->file_name, arch.index_num,
arch.sym_size);
current_pos = ftell (filedata->handle);
@@ -22630,10 +22663,10 @@ process_archive (Filedata * filedata, bool is_thin_archive)
if (l < arch.sym_size)
{
- error (ngettext ("%s: %ld byte remains in the symbol table, "
+ error (ngettext ("%s: %" PRId64 " byte remains in the symbol table, "
"but without corresponding entries in "
"the index table\n",
- "%s: %ld bytes remain in the symbol table, "
+ "%s: %" PRId64 " bytes remain in the symbol table, "
"but without corresponding entries in "
"the index table\n",
arch.sym_size - l),