From patchwork Tue Jul 11 08:49:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jinyang He X-Patchwork-Id: 118324 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp332652vqm; Tue, 11 Jul 2023 01:49:48 -0700 (PDT) X-Google-Smtp-Source: APBJJlHLpTGS8wa6GEdR8QFgQO621m4Mcg9D797ncYrnDmKWKuvqwmcX6HbHkP52mM01dixu/7yV X-Received: by 2002:a05:6512:5d7:b0:4f9:5622:4795 with SMTP id o23-20020a05651205d700b004f956224795mr10807955lfo.42.1689065387798; Tue, 11 Jul 2023 01:49:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689065387; cv=none; d=google.com; s=arc-20160816; b=mKA8m3nHzLIe3sSC7F1zNZADkKjXePGWwcV/CBf9zAw+yrssnUovhI0gOJsYB/QJo/ 2fGx36Ug0VACekLDYS/VuXtfUCS4k59GuWAW//vMxHxAR7ox2ZzOkPnM5QZrtpUwPY22 W+keSr+tuEVTCULvtWwkV5SjNrh4KvNuaAwvlLPFLn6TtFJd+1YDKc3zgkrWX1Fgu3Hf 78wIBnlnfr0kushOn8fZDvxFDwv33RaeWrgDsUs97GMFf7zGw/ZOIRSE4PkRqZMBbFxa T2YTj8i+KgCjWLQH8Kfxpsr3O9eY5xfiRbClRpp20BgRlx9dFzvOJEIMdMbSxYggZgyB Utlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dmarc-filter :delivered-to; bh=qR0WJmMd82823aDvwD+LqjSWcTUwZXgQFYCIanx4jJM=; fh=gRHtb1VN4mvPFeNAWhs5cFn5Snvfuop7walNpa7z26M=; b=xSXpNZbhZU9cblAbgpLZ1D2yjgP0COvJMExHFUWBLUS+tH1vA+LHcyWZ7jrKxP8rud YC5qFfuL9591c8w8UahYIvXhy0WK7e/LjUEWIOyQlNK/QOjHF3R600BiQUl7P0YYXtEp dLBePev/4oEZDERe+3ekzfxcJYQ+vNqTfWZ50/KqGzrtETKzzTumPoHYKqyciY9JENty 4FYsPeVaiaQ+pExy6Re08ixc3xU5wsQ47RfVuLJnUlHDsYRxitXpwkAzXYbVWc0rB4VD za0vsNZ3aUaumhrttDEfeuccbXHob5ZFiXwcqM6+YDNr/o5pXi6U5XxMXlT2JC54TCIT XwGg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id s26-20020a056402165a00b0051e27ecdd08si1617726edx.114.2023.07.11.01.49.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jul 2023 01:49:47 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 73FEC38582BD for ; Tue, 11 Jul 2023 08:49:46 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org 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 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771113427952738780 X-GMAIL-MSGID: 1771113427952738780 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"