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>
|
2017-09-07 Palmer Dabbelt <palmer@dabbelt.com>
|
||||||
|
|
||||||
* elfnn-riscv.c (riscv_zero_pcrel_hi_reloc): New function.
|
* elfnn-riscv.c (riscv_zero_pcrel_hi_reloc): New function.
|
||||||
|
|
|
@ -2986,7 +2986,7 @@ _bfd_riscv_relax_tls_le (bfd *abfd,
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
_bfd_riscv_relax_align (bfd *abfd, asection *sec,
|
_bfd_riscv_relax_align (bfd *abfd, asection *sec,
|
||||||
asection *sym_sec ATTRIBUTE_UNUSED,
|
asection *sym_sec,
|
||||||
struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
|
struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
|
||||||
Elf_Internal_Rela *rel,
|
Elf_Internal_Rela *rel,
|
||||||
bfd_vma symval,
|
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. */
|
/* Make sure there are enough NOPs to actually achieve the alignment. */
|
||||||
if (rel->r_addend < nop_bytes)
|
if (rel->r_addend < nop_bytes)
|
||||||
|
{
|
||||||
|
(*_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;
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Delete the reloc. */
|
/* Delete the reloc. */
|
||||||
rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
|
rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
|
||||||
|
|
Loading…
Reference in New Issue