mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 01:53:38 +08:00
parent
9b09ceea7d
commit
e5375abb67
@ -2277,8 +2277,6 @@ extern Elf_Internal_Sym *bfd_elf_get_elf_syms
|
||||
(bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *,
|
||||
Elf_External_Sym_Shndx *);
|
||||
extern char * bfd_elf_get_str_section (bfd *, unsigned int);
|
||||
extern const char *bfd_elf_sym_name_raw
|
||||
(bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *);
|
||||
extern const char *bfd_elf_sym_name
|
||||
(bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *);
|
||||
|
||||
|
25
bfd/elf.c
25
bfd/elf.c
@ -531,10 +531,12 @@ bfd_elf_get_elf_syms (bfd *ibfd,
|
||||
|
||||
/* Look up a symbol name. */
|
||||
const char *
|
||||
bfd_elf_sym_name_raw (bfd *abfd,
|
||||
Elf_Internal_Shdr *symtab_hdr,
|
||||
Elf_Internal_Sym *isym)
|
||||
bfd_elf_sym_name (bfd *abfd,
|
||||
Elf_Internal_Shdr *symtab_hdr,
|
||||
Elf_Internal_Sym *isym,
|
||||
asection *sym_sec)
|
||||
{
|
||||
const char *name;
|
||||
unsigned int iname = isym->st_name;
|
||||
unsigned int shindex = symtab_hdr->sh_link;
|
||||
|
||||
@ -546,19 +548,8 @@ bfd_elf_sym_name_raw (bfd *abfd,
|
||||
shindex = elf_elfheader (abfd)->e_shstrndx;
|
||||
}
|
||||
|
||||
return bfd_elf_string_from_elf_section (abfd, shindex, iname);
|
||||
}
|
||||
|
||||
const char *
|
||||
bfd_elf_sym_name (bfd *abfd,
|
||||
Elf_Internal_Shdr *symtab_hdr,
|
||||
Elf_Internal_Sym *isym,
|
||||
asection *sym_sec)
|
||||
{
|
||||
const char *name = bfd_elf_sym_name_raw (abfd, symtab_hdr, isym);
|
||||
if (name == NULL)
|
||||
name = "<null>";
|
||||
else if (sym_sec && *name == '\0')
|
||||
name = bfd_elf_string_from_elf_section (abfd, shindex, iname);
|
||||
if (sym_sec && name && *name == '\0')
|
||||
name = bfd_section_name (sym_sec);
|
||||
|
||||
return name;
|
||||
@ -590,7 +581,7 @@ group_signature (bfd *abfd, Elf_Internal_Shdr *ghdr)
|
||||
&isym, esym, &eshndx) == NULL)
|
||||
return NULL;
|
||||
|
||||
return bfd_elf_sym_name_raw (abfd, hdr, &isym);
|
||||
return bfd_elf_sym_name (abfd, hdr, &isym, NULL);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
@ -1723,7 +1723,7 @@ elf_i386_scan_relocs (bfd *abfd,
|
||||
name = h->root.root.string;
|
||||
else
|
||||
name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
|
||||
NULL);
|
||||
NULL);
|
||||
_bfd_error_handler
|
||||
/* xgettext:c-format */
|
||||
(_("%pB: `%s' accessed both as normal and "
|
||||
|
@ -1355,7 +1355,7 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bool dynamic)
|
||||
sym->symbol.name = (elf_tdata (abfd)->dt_strtab
|
||||
+ isym->st_name);
|
||||
else
|
||||
sym->symbol.name = bfd_elf_sym_name_raw (abfd, hdr, isym);
|
||||
sym->symbol.name = bfd_elf_sym_name (abfd, hdr, isym, NULL);
|
||||
sym->symbol.value = isym->st_value;
|
||||
|
||||
if (isym->st_shndx == SHN_UNDEF)
|
||||
|
Loading…
Reference in New Issue
Block a user