[v1,0/4] Fix a series of problems caused by ASM_OUTPUT_ALIGN_WITH_NOP (release/gcc-12).

Message ID 20240221031050.24343-1-chenglulu@loongson.cn
Headers
Series Fix a series of problems caused by ASM_OUTPUT_ALIGN_WITH_NOP (release/gcc-12). |

Message

Lulu Cheng Feb. 21, 2024, 3:10 a.m. UTC
  Because binutils2.42 corrects the implementation of
".align [abs-expr,[abs-expr[,abs-expr]]]".
The macro ASM_OUTPUT_ALIGN_WITH_NOP in GCC uses this assembler directive,
and an error occurs. See link below for detailed description.
https://gcc.gnu.org/pipermail/gcc-patches/2024-February/645067.html

In order to solve the above problems, do the following operations:

1. Delete macro definition ASM_OUTPUT_ALIGN_WITH_NOP. (cherry pick r14-4674)
2. Check whether binutils supports the relax function. (cherry pick r14-4160)
3. Disable relaxation if the assembler don't support
  conditional branch relaxation. (cherry pick r14-5434)

PR112299 is also fixed here.

Lulu Cheng (2):
  LoongArch: Delete macro definition ASM_OUTPUT_ALIGN_WITH_NOP.
  LoongArch: Check whether binutils supports the relax function. If
    supported, explicit relocs are turned off by default.

Xi Ruoyao (2):
  LoongArch: Disable relaxation if the assembler don't support
    conditional branch relaxation [PR112330]
  LoongArch: Define HAVE_AS_TLS to 0 if it's undefined [PR112299]

 gcc/config.in                                 | 18 +++++
 gcc/config/loongarch/genopts/loongarch.opt.in |  9 +++
 gcc/config/loongarch/gnu-user.h               |  4 +-
 gcc/config/loongarch/loongarch-opts.h         | 12 ++++
 gcc/config/loongarch/loongarch.h              | 22 +++++--
 gcc/config/loongarch/loongarch.opt            |  9 +++
 gcc/configure                                 | 66 +++++++++++++++++++
 gcc/configure.ac                              | 14 ++++
 gcc/doc/invoke.texi                           | 24 ++++++-
 9 files changed, 169 insertions(+), 9 deletions(-)
  

Comments

Lulu Cheng Feb. 22, 2024, 3:17 a.m. UTC | #1
Pushed to r12-10169...r12-10172.

在 2024/2/21 上午11:10, Lulu Cheng 写道:
> Because binutils2.42 corrects the implementation of
> ".align [abs-expr,[abs-expr[,abs-expr]]]".
> The macro ASM_OUTPUT_ALIGN_WITH_NOP in GCC uses this assembler directive,
> and an error occurs. See link below for detailed description.
> https://gcc.gnu.org/pipermail/gcc-patches/2024-February/645067.html
>
> In order to solve the above problems, do the following operations:
>
> 1. Delete macro definition ASM_OUTPUT_ALIGN_WITH_NOP. (cherry pick r14-4674)
> 2. Check whether binutils supports the relax function. (cherry pick r14-4160)
> 3. Disable relaxation if the assembler don't support
>    conditional branch relaxation. (cherry pick r14-5434)
>
> PR112299 is also fixed here.
>
> Lulu Cheng (2):
>    LoongArch: Delete macro definition ASM_OUTPUT_ALIGN_WITH_NOP.
>    LoongArch: Check whether binutils supports the relax function. If
>      supported, explicit relocs are turned off by default.
>
> Xi Ruoyao (2):
>    LoongArch: Disable relaxation if the assembler don't support
>      conditional branch relaxation [PR112330]
>    LoongArch: Define HAVE_AS_TLS to 0 if it's undefined [PR112299]
>
>   gcc/config.in                                 | 18 +++++
>   gcc/config/loongarch/genopts/loongarch.opt.in |  9 +++
>   gcc/config/loongarch/gnu-user.h               |  4 +-
>   gcc/config/loongarch/loongarch-opts.h         | 12 ++++
>   gcc/config/loongarch/loongarch.h              | 22 +++++--
>   gcc/config/loongarch/loongarch.opt            |  9 +++
>   gcc/configure                                 | 66 +++++++++++++++++++
>   gcc/configure.ac                              | 14 ++++
>   gcc/doc/invoke.texi                           | 24 ++++++-
>   9 files changed, 169 insertions(+), 9 deletions(-)
>