aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-03-29 09:39:15 +1030
committerAlan Modra <amodra@gmail.com>2021-03-29 11:22:21 +1030
commit37bb890f814d58dd4c5f67db32ea4618008229ee (patch)
tree96cac119eb97496b93bf83069ff0634dde3846b1 /bfd/elflink.c
parent0f68420117f805ecb51aa623867201f9d95a5ab7 (diff)
downloadgdb-37bb890f814d58dd4c5f67db32ea4618008229ee.zip
gdb-37bb890f814d58dd4c5f67db32ea4618008229ee.tar.gz
gdb-37bb890f814d58dd4c5f67db32ea4618008229ee.tar.bz2
ELF output symbol hooks int vs. bfd_boolean
elf_backend_link_output_symbol_hook and elf_link_output_symstrtab may return 2 when a symbol is to be discarded. Update places that use bfd_boolean rather than int for these functions. * elflink.c (elf_link_output_symstrtab): Make flinfo parameter a void pointer. (bfd_elf_final_link): Delete out_sym_func typedef and don't cast elf_link_output_symstrtab when calling output_arch_syms and output_arch_local_syms. * elf-bfd.h (struct elf_backend_data <elf_backend_output_arch_syms, elf_backend_output_arch_local_syms>): Change return type of func arg to match elf_link_output_symstrtab. * elf-vxworks.h (elf_vxworks_link_output_symbol_hook): Correct return type. * elf32-nds32.c (nds32_elf_output_symbol_hook): Correct return type. (nds32_elf_output_arch_syms): Correct func return type.
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r--bfd/elflink.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c
index c5db406..6be14e7 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -9767,12 +9767,13 @@ elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec)
/* Add a symbol to the output symbol string table. */
static int
-elf_link_output_symstrtab (struct elf_final_link_info *flinfo,
+elf_link_output_symstrtab (void *finf,
const char *name,
Elf_Internal_Sym *elfsym,
asection *input_sec,
struct elf_link_hash_entry *h)
{
+ struct elf_final_link_info *flinfo = finf;
int (*output_symbol_hook)
(struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *,
struct elf_link_hash_entry *);
@@ -12662,13 +12663,8 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
if (bed->elf_backend_output_arch_local_syms
&& (info->strip != strip_all || emit_relocs))
{
- typedef int (*out_sym_func)
- (void *, const char *, Elf_Internal_Sym *, asection *,
- struct elf_link_hash_entry *);
-
if (! ((*bed->elf_backend_output_arch_local_syms)
- (abfd, info, &flinfo,
- (out_sym_func) elf_link_output_symstrtab)))
+ (abfd, info, &flinfo, elf_link_output_symstrtab)))
{
ret = FALSE;
goto return_local_hash_table;
@@ -12796,13 +12792,8 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
if (bed->elf_backend_output_arch_syms
&& (info->strip != strip_all || emit_relocs))
{
- typedef int (*out_sym_func)
- (void *, const char *, Elf_Internal_Sym *, asection *,
- struct elf_link_hash_entry *);
-
if (! ((*bed->elf_backend_output_arch_syms)
- (abfd, info, &flinfo,
- (out_sym_func) elf_link_output_symstrtab)))
+ (abfd, info, &flinfo, elf_link_output_symstrtab)))
{
ret = FALSE;
goto return_local_hash_table;