tidy elf_backend calls
Function pointers in elfNN_bed that are initialized by elfxx-target.h to non-zero values generally don't need a non-NULL test before calling them. Targets don't set a non-NULL function to NULL. The one exception being elfnn-ia64.c and that exception is removed here. * elf.c (_bfd_elf_setup_sections): Don't test known non-NULL backend functions for NULL before calling. (copy_special_section_fields, _bfd_elf_copy_private_bfd_data), (bfd_section_from_shdr, assign_section_numbers): Likewise. * elfcode.h (elf_write_relocs, elf_slurp_reloc_table): Likewise. * elfnn-ia64.c (ignore_errors): New function. (elf_backend_link_order_error_handler): Redefine as ignore_errors.
This commit is contained in:
parent
ce2ea1c7e0
commit
a859124df2
@ -1,3 +1,13 @@
|
||||
2020-03-20 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf.c (_bfd_elf_setup_sections): Don't test known non-NULL
|
||||
backend functions for NULL before calling.
|
||||
(copy_special_section_fields, _bfd_elf_copy_private_bfd_data),
|
||||
(bfd_section_from_shdr, assign_section_numbers): Likewise.
|
||||
* elfcode.h (elf_write_relocs, elf_slurp_reloc_table): Likewise.
|
||||
* elfnn-ia64.c (ignore_errors): New function.
|
||||
(elf_backend_link_order_error_handler): Redefine as ignore_errors.
|
||||
|
||||
2020-03-19 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 25676
|
||||
|
33
bfd/elf.c
33
bfd/elf.c
@ -857,11 +857,10 @@ _bfd_elf_setup_sections (bfd *abfd)
|
||||
if (elfsec == 0)
|
||||
{
|
||||
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
|
||||
if (bed->link_order_error_handler)
|
||||
bed->link_order_error_handler
|
||||
/* xgettext:c-format */
|
||||
(_("%pB: warning: sh_link not set for section `%pA'"),
|
||||
abfd, s);
|
||||
bed->link_order_error_handler
|
||||
/* xgettext:c-format */
|
||||
(_("%pB: warning: sh_link not set for section `%pA'"),
|
||||
abfd, s);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1424,9 +1423,8 @@ copy_special_section_fields (const bfd *ibfd,
|
||||
}
|
||||
|
||||
/* Allow the target a chance to decide how these fields should be set. */
|
||||
if (bed->elf_backend_copy_special_section_fields != NULL
|
||||
&& bed->elf_backend_copy_special_section_fields
|
||||
(ibfd, obfd, iheader, oheader))
|
||||
if (bed->elf_backend_copy_special_section_fields (ibfd, obfd,
|
||||
iheader, oheader))
|
||||
return TRUE;
|
||||
|
||||
/* We have an iheader which might match oheader, and which has non-zero
|
||||
@ -1610,8 +1608,8 @@ _bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
|
||||
{
|
||||
/* Final attempt. Call the backend copy function
|
||||
with a NULL input section. */
|
||||
if (bed->elf_backend_copy_special_section_fields != NULL)
|
||||
(void) bed->elf_backend_copy_special_section_fields (ibfd, obfd, NULL, oheader);
|
||||
(void) bed->elf_backend_copy_special_section_fields (ibfd, obfd,
|
||||
NULL, oheader);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2462,12 +2460,12 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex)
|
||||
sections. */
|
||||
if (*p_hdr != NULL)
|
||||
{
|
||||
if (bed->init_secondary_reloc_section == NULL
|
||||
|| ! bed->init_secondary_reloc_section (abfd, hdr, name, shindex))
|
||||
if (!bed->init_secondary_reloc_section (abfd, hdr, name, shindex))
|
||||
{
|
||||
_bfd_error_handler
|
||||
/* xgettext:c-format */
|
||||
(_("%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"),
|
||||
(_("%pB: warning: secondary relocation section '%s' "
|
||||
"for section %pA found - ignoring"),
|
||||
abfd, name, target_sect);
|
||||
}
|
||||
goto success;
|
||||
@ -3940,11 +3938,10 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info)
|
||||
where s is NULL. */
|
||||
const struct elf_backend_data *bed
|
||||
= get_elf_backend_data (abfd);
|
||||
if (bed->link_order_error_handler)
|
||||
bed->link_order_error_handler
|
||||
/* xgettext:c-format */
|
||||
(_("%pB: warning: sh_link not set for section `%pA'"),
|
||||
abfd, sec);
|
||||
bed->link_order_error_handler
|
||||
/* xgettext:c-format */
|
||||
(_("%pB: warning: sh_link not set for section `%pA'"),
|
||||
abfd, sec);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -987,12 +987,11 @@ elf_write_relocs (bfd *abfd, asection *sec, void *data)
|
||||
(*swap_out) (abfd, &src_rela, dst_rela);
|
||||
}
|
||||
|
||||
if (bed->write_secondary_relocs != NULL)
|
||||
if (! bed->write_secondary_relocs (abfd, sec))
|
||||
{
|
||||
*failedp = TRUE;
|
||||
return;
|
||||
}
|
||||
if (!bed->write_secondary_relocs (abfd, sec))
|
||||
{
|
||||
*failedp = TRUE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write out the program headers. */
|
||||
@ -1596,8 +1595,7 @@ elf_slurp_reloc_table (bfd *abfd,
|
||||
symbols, dynamic))
|
||||
return FALSE;
|
||||
|
||||
if (bed->slurp_secondary_relocs != NULL
|
||||
&& ! bed->slurp_secondary_relocs (abfd, asect, symbols))
|
||||
if (!bed->slurp_secondary_relocs (abfd, asect, symbols))
|
||||
return FALSE;
|
||||
|
||||
asect->relocation = relents;
|
||||
|
@ -5015,6 +5015,11 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ignore_errors (const char *fmt ATTRIBUTE_UNUSED, ...)
|
||||
{
|
||||
}
|
||||
|
||||
#define TARGET_LITTLE_SYM ia64_elfNN_le_vec
|
||||
#define TARGET_LITTLE_NAME "elfNN-ia64-little"
|
||||
@ -5112,7 +5117,7 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
|
||||
We don't want to flood users with so many error messages. We turn
|
||||
off the warning for now. It will be turned on later when the Intel
|
||||
compiler is fixed. */
|
||||
#define elf_backend_link_order_error_handler NULL
|
||||
#define elf_backend_link_order_error_handler ignore_errors
|
||||
|
||||
#include "elfNN-target.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user