From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 0C84A385772D for ; Tue, 11 Jul 2023 08:49:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0C84A385772D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [111.9.175.10]) by gateway (Coremail) with SMTP id _____8CxbeufF61kh3ADAA--.7153S3; Tue, 11 Jul 2023 16:49:35 +0800 (CST) Received: from localhost.localdomain (unknown [111.9.175.10]) by localhost.localdomain (Coremail) with SMTP id AQAAf8AxjiOcF61kDGkoAA--.8841S2; Tue, 11 Jul 2023 16:49:34 +0800 (CST) From: Jinyang He To: Chenghua Xu , Zhensong Liu , mengqinggang , WANG Xuerui Cc: binutils@sourceware.org, Xing Li , yala , Peng Fan Subject: [PATCH 1/2] LoongArch: bfd: Remove elf_seg_map condition in loongarch_elf_relax_section Date: Tue, 11 Jul 2023 16:49:30 +0800 Message-Id: <20230711084931.18978-1-hejinyang@loongson.cn> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:AQAAf8AxjiOcF61kDGkoAA--.8841S2 X-CM-SenderInfo: pkhmx0p1dqwqxorr0wxvrqhubq/ X-Coremail-Antispam: 1Uk129KBj93XoWxJFW3tF4kGrW7WrWrXr1DJwc_yoW5Gw13p3 sxZrySkF18A3Z7Jr98G3y5X3Z8Jws7Kry2va4ft340krs8Zry8Xw40yrZ3XFs8J3y5WryY vF18t34ruFsYyrcCm3ZEXasCq-sJn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUkYb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVWxJr0_GcWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF 04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7 CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU8j-e5UUUUU== X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: When I tried "./ld-new sth." the relax does not work because the elf_seg_map (info->output_bfd) was NULL in loongarch_elf_relax_section. There is no need for the segment info, we can get the address through the section info. Thus, remove this condition. bfd/ChangeLog: * elfnn-loongarch.c (loongarch_elf_relax_section): Remove elf_seg_map condition. ld/ChangeLog: * testsuite/ld-loongarch-elf/relax.exp: Update trigger method. * testsuite/ld-loongarch-elf/relax.dd: New test. --- bfd/elfnn-loongarch.c | 1 - ld/testsuite/ld-loongarch-elf/relax.dd | 6 +++++ ld/testsuite/ld-loongarch-elf/relax.exp | 35 +++++++------------------ 3 files changed, 16 insertions(+), 26 deletions(-) create mode 100644 ld/testsuite/ld-loongarch-elf/relax.dd diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index d3d8419d8..01f349a24 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -3845,7 +3845,6 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, || sec->sec_flg0 || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 - || elf_seg_map (info->output_bfd) == NULL || (info->disable_target_specific_optimizations && info->relax_pass == 0) /* The exp_seg_relro_adjust is enum phase_enum (0x4), diff --git a/ld/testsuite/ld-loongarch-elf/relax.dd b/ld/testsuite/ld-loongarch-elf/relax.dd new file mode 100644 index 000000000..e266beb8f --- /dev/null +++ b/ld/testsuite/ld-loongarch-elf/relax.dd @@ -0,0 +1,6 @@ +#... +.*pcaddi.* +.*ld.w.* +.*pcaddi.* +.*ld.w.* +#pass diff --git a/ld/testsuite/ld-loongarch-elf/relax.exp b/ld/testsuite/ld-loongarch-elf/relax.exp index 7ff876d79..d2bb967c6 100644 --- a/ld/testsuite/ld-loongarch-elf/relax.exp +++ b/ld/testsuite/ld-loongarch-elf/relax.exp @@ -21,31 +21,6 @@ if [istarget loongarch64-*-*] { - if [isbuild loongarch64-*-*] { - set testname "loongarch relax build" - set pre_builds [list \ - [list \ - "$testname" \ - "" \ - "" \ - {relax.s} \ - {} \ - "relax" \ - ] \ - ] - - run_cc_link_tests $pre_builds - - if [file exist "tmpdir/relax"] { - set objdump_output [run_host_cmd "objdump" "-d tmpdir/relax"] - if { [ regexp ".*pcaddi.*pcaddi.*" $objdump_output] } { - pass "loongarch relax" - } { - fail "loongarch relax" - } - } - } - run_ld_link_tests \ [list \ [list \ @@ -58,6 +33,16 @@ if [istarget loongarch64-*-*] { ] \ "relax-align" \ ] \ + [list \ + "relax" \ + "-e 0 -Ttext 0x10000 -Tdata 0x20000" "" \ + "" \ + {relax.s} \ + [list \ + [list objdump -d relax.dd] \ + ] \ + "relax" \ + ] \ ] set objdump_flags "-s -j .data" -- 2.33.0