RISC-V: Print an error when unable to align a section
This used to just print "can't relax section: Success", which is a silly error message. bfd/ChangeLog 2017-09-07 Palmer Dabbelt <palmer@dabbelt.com> * elfnn-riscv.c (_bfd_riscv_relax_align): Call bfd_set_error and print an error message when unable to relax a .align directive.
This commit is contained in:
parent
b1308d2c37
commit
9eb7b0acb5
@ -1,3 +1,8 @@
|
||||
2017-09-07 Palmer Dabbelt <palmer@dabbelt.com>
|
||||
|
||||
* (_bfd_riscv_relax_align): Call bfd_set_error and
|
||||
print an error message when unable to relax a .align directive.
|
||||
|
||||
2017-09-07 Palmer Dabbelt <palmer@dabbelt.com>
|
||||
|
||||
* elfnn-riscv.c (riscv_zero_pcrel_hi_reloc): New function.
|
||||
|
@ -2986,7 +2986,7 @@ _bfd_riscv_relax_tls_le (bfd *abfd,
|
||||
|
||||
static bfd_boolean
|
||||
_bfd_riscv_relax_align (bfd *abfd, asection *sec,
|
||||
asection *sym_sec ATTRIBUTE_UNUSED,
|
||||
asection *sym_sec,
|
||||
struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
|
||||
Elf_Internal_Rela *rel,
|
||||
bfd_vma symval,
|
||||
@ -3008,7 +3008,14 @@ _bfd_riscv_relax_align (bfd *abfd, asection *sec,
|
||||
|
||||
/* Make sure there are enough NOPs to actually achieve the alignment. */
|
||||
if (rel->r_addend < nop_bytes)
|
||||
return FALSE;
|
||||
{
|
||||
(*_bfd_error_handler)
|
||||
(_("%B(%A+0x%lx): %d bytes required for alignment"
|
||||
"to %d-byte boundary, but only %d present"),
|
||||
abfd, sym_sec, rel->r_offset, nop_bytes, alignment, rel->r_addend);
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Delete the reloc. */
|
||||
rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user