This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 1/2] RISC-V: Print an error when unable to align a section
- From: Palmer Dabbelt <palmer at dabbelt dot com>
- To: binutils at sourceware dot org
- Cc: patches at groups dot riscv dot org
- Date: Thu, 07 Sep 2017 10:12:54 -0700 (PDT)
- Subject: Re: [PATCH 1/2] RISC-V: Print an error when unable to align a section
- Authentication-results: sourceware.org; auth=none
Committed.
On Wed, 06 Sep 2017 13:43:47 PDT (-0700), Palmer Dabbelt wrote:
> This used to just print "can't relax section: Success", which is a silly
> error message.
>
> bfd/ChangeLog
>
> 2017-09-06 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.
> ---
> bfd/elfnn-riscv.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
> index fdb151be827f..b4d7b9b00455 100644
> --- a/bfd/elfnn-riscv.c
> +++ b/bfd/elfnn-riscv.c
> @@ -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);