summaryrefslogtreecommitdiff
path: root/bfd/elf32-arm.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2012-07-26 13:43:21 +0000
committerNick Clifton <nickc@redhat.com>2012-07-26 13:43:21 +0000
commit130aa4f1262299a19a6080b953245dd190049905 (patch)
treeedb143471275b61b8da81ea646acee2643f93896 /bfd/elf32-arm.c
parent93a55370d6a5ad40e4ee038cfe703fbd7ecf0e98 (diff)
downloadbinutils-redhat-130aa4f1262299a19a6080b953245dd190049905.tar.gz
PR ld/14397
* elf32-arm.c (elf32_arm_finish_dynamic_sections): Report an error if a required section is missing from the linker script. * ld-arm/arm-elf.exp: Add tests of linking without .rel.plt. * ld-arm/arm-no-rel-plt.out: Linker script without .rel.plt section. * ld-arm/arm-no-rel-plt.out: Expected output.
Diffstat (limited to 'bfd/elf32-arm.c')
-rw-r--r--bfd/elf32-arm.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 1bbd96ce9e..4f2d00ee30 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -14083,7 +14083,14 @@ elf32_arm_finish_dynamic_sections (bfd * output_bfd, struct bfd_link_info * info
name = RELOC_SECTION (htab, ".plt");
get_vma:
s = bfd_get_section_by_name (output_bfd, name);
- BFD_ASSERT (s != NULL);
+ if (s == NULL)
+ {
+ /* PR ld/14397: Issue an error message if a required section is missing. */
+ (*_bfd_error_handler)
+ (_("error: required section '%s' not found in the linker script"), name);
+ bfd_set_error (bfd_error_invalid_operation);
+ return FALSE;
+ }
if (!htab->symbian_p)
dyn.d_un.d_ptr = s->vma;
else