[PATCH] RISC-V: create new frag after alignment.

Nelson Chu nelson.chu@sifive.com
Fri Jan 21 04:43:11 GMT 2022


OK, looks good.  Please commit, otherwise we may get the wrong debug info.

Thanks
Nelson

On Thu, Jan 20, 2022 at 2:26 PM Lifang Xia <lifang_xia@c-sky.com> wrote:
>
> From: Lifang Xia <lifang_xia@linux.alibaba.com>
>
> PR 28793:
>
> The alignment may be removed in linker. We need to create new frag after
> alignment to prevent the assembler from computing static offsets.
>
> gas/
>         * config/tc-riscv.c (riscv_frag_align_code): Create new frag.
> ---
>  gas/config/tc-riscv.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
> index 390aaf1710b..25908597436 100644
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -3913,6 +3913,12 @@ riscv_frag_align_code (int n)
>
>    riscv_mapping_state (MAP_INSN, worst_case_bytes);
>
> +  /* We need to start a new frag after the alignment which may be removed by
> +     the linker, to prevent the assembler from computing static offsets.
> +     This is necessary to get correct EH info.  */
> +  frag_wane (frag_now);
> +  frag_new (0);
> +
>    return true;
>  }
>
> --
> 2.17.1
>


More information about the Binutils mailing list