From 599c86c4a57c10c456663fadd8dfb21cbbcafe57 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 6 Jan 2021 16:40:31 +1030 Subject: [PATCH] score-elf binutils-all/strip-13 fail * elf32-score.c (s3_bfd_score_info_to_howto): Report an error on unknown r_type. * elf32-score7.c (s7_bfd_score_info_to_howto): Likewise. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-score.c | 10 ++++++++-- bfd/elf32-score7.c | 10 ++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b9b5f7b2d3..06d6e39306 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2021-01-06 Alan Modra + + * elf32-score.c (s3_bfd_score_info_to_howto): Report an error + on unknown r_type. + * elf32-score7.c (s7_bfd_score_info_to_howto): Likewise. + 2021-01-06 Alan Modra * config.bfd (sparc-*-solaris2*): Add sparc_elf32_vec. diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c index ee20d4cd48..50c7405c32 100644 --- a/bfd/elf32-score.c +++ b/bfd/elf32-score.c @@ -2379,7 +2379,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto, /* Score backend functions. */ static bfd_boolean -s3_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +s3_bfd_score_info_to_howto (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { @@ -2387,7 +2387,13 @@ s3_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, r_type = ELF32_R_TYPE (elf_reloc->r_info); if (r_type >= ARRAY_SIZE (elf32_score_howto_table)) - return FALSE; + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } bfd_reloc->howto = &elf32_score_howto_table[r_type]; return TRUE; diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c index 06e8f5083e..2f63ab8cd5 100644 --- a/bfd/elf32-score7.c +++ b/bfd/elf32-score7.c @@ -2218,7 +2218,7 @@ score_elf_final_link_relocate (reloc_howto_type *howto, /* Score backend functions. */ bfd_boolean -s7_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, +s7_bfd_score_info_to_howto (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { @@ -2226,7 +2226,13 @@ s7_bfd_score_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, r_type = ELF32_R_TYPE (elf_reloc->r_info); if (r_type >= ARRAY_SIZE (elf32_score_howto_table)) - return FALSE; + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } bfd_reloc->howto = &elf32_score_howto_table[r_type]; return TRUE; -- 2.34.1