From 7ad9de1188609dee11a5c196869fca62da8154a3 Mon Sep 17 00:00:00 2001 From: mengqinggang Date: Thu, 1 Dec 2022 16:01:27 +0800 Subject: [PATCH] LoongArch: opcodes: Add support for linker relaxation. Set gas default to enable relax. opcodes/ChangeLog: * loongarch-opc.c (struct loongarch_ASEs_option): New member relax with the default value 1. --- bfd/elfnn-loongarch.c | 6 +++--- opcodes/loongarch-opc.c | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index d501991e4cf..b16066c5d91 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -3698,7 +3698,7 @@ loongarch_relax_delete_bytes (bfd *abfd, /* Relax pcalau12i,addi.d => pcaddi. */ static bool -loongarch_relax_pcala_addi(bfd *abfd, asection *sec, +loongarch_relax_pcala_addi (bfd *abfd, asection *sec, Elf_Internal_Rela *rel_hi, bfd_vma symval) { bfd_byte *contents = elf_section_data (sec)->this_hdr.contents; @@ -3967,7 +3967,7 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, { if (i + 4 > sec->reloc_count) break; - loongarch_relax_pcala_addi(abfd, sec, rel, symval); + loongarch_relax_pcala_addi (abfd, sec, rel, symval); } break; case R_LARCH_GOT_PC_HI20: @@ -3977,7 +3977,7 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, break; if (loongarch_relax_pcala_ld (abfd, sec, rel)) { - loongarch_relax_pcala_addi(abfd, sec, rel, symval); + loongarch_relax_pcala_addi (abfd, sec, rel, symval); } } break; diff --git a/opcodes/loongarch-opc.c b/opcodes/loongarch-opc.c index 39d724a3398..573b691c1fd 100644 --- a/opcodes/loongarch-opc.c +++ b/opcodes/loongarch-opc.c @@ -22,7 +22,10 @@ #include "opcode/loongarch.h" #include "libiberty.h" -struct loongarch_ASEs_option LARCH_opts; +struct loongarch_ASEs_option LARCH_opts = +{ + .relax = 1 +}; size_t loongarch_insn_length (insn_t insn ATTRIBUTE_UNUSED) -- 2.30.2