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 A52E8385801F for ; Tue, 19 Dec 2023 07:49:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A52E8385801F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A52E8385801F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702972148; cv=none; b=IwF2JeB55mvEF5inIZ4Ii/KiVUnsZIa6lZ49IYCWyVO3FUE3ewiWjIfWue3rUHjiAXQINWzivUWBJGdeScwCgdHeCM8gv9Xih5Jvh7U8DVwQ7KF8dnsonyg3VcWHtvmOlz0JHSfFEMiSVpskgaAt0pGvdlJ7ydnyIAAWHNwB338= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702972148; c=relaxed/simple; bh=ki+PUFIZO3nZaC/BM+SfFoSWBxWdZdoo9epcyp1tDjU=; h=Subject:To:From:Message-ID:Date:MIME-Version; b=wVhqdL1KPGfKb+coZ8YZAvZqZBvpCyBUndzY81AZI5zWYfa+aHsKLUtDXDZ/N035L/R5wV2amzEH2C/RB4DdyrKVsVad+OSk1MUU09P/52slHMZQOJVdP1Q2F4wDOVdkyFFaFpJU2yNOx+YIDl3GzGgmSMWRQxE9EtBvJDLoMOo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.20.4.171]) by gateway (Coremail) with SMTP id _____8Cx+ujsSoFlnYoCAA--.12841S3; Tue, 19 Dec 2023 15:49:00 +0800 (CST) Received: from [10.20.4.171] (unknown [10.20.4.171]) by localhost.localdomain (Coremail) with SMTP id AQAAf8BxKXPdSoFl4_0LAA--.40150S3; Tue, 19 Dec 2023 15:49:00 +0800 (CST) Subject: Re: Ping: [PATCH] LoongArch: Allow la.got -> la.pcrel relaxation for shared object To: Xi Ruoyao , binutils@sourceware.org Cc: liuzhensong@loongson.cn, i.swmail@xen0n.name, maskray@google.com, hejinyang@loongson.cn, cailulu@loongson.cn References: <20231205190547.52950-1-xry111@xry111.site> <5c9d7da55b80be8e6ff11894fcd0c225416859ca.camel@xry111.site> From: mengqinggang Message-ID: <6c6d38d1-b407-410e-95d1-e1c5de334067@loongson.cn> Date: Tue, 19 Dec 2023 15:48:45 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <5c9d7da55b80be8e6ff11894fcd0c225416859ca.camel@xry111.site> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:AQAAf8BxKXPdSoFl4_0LAA--.40150S3 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBj93XoW7urW8Xr17AFy8Gr15WFWDJrc_yoW8Zw4kpr 9YyFW5GFW5urn3J34jv34rXFyYyr1xt3Wqy34FqFy0yrsrJF9Fqr4Yq3y7uF4UZa1rGFyx Xr40qa93uF17A3gCm3ZEXasCq-sJn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUv2b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r106r15M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx 1l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv 67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IY64vIr41lc7I2V7IY0VAS07 AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02 F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw 1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7Cj xVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r 1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU8cz VUUUUUU== X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_STOCKGEN,NICE_REPLY_A,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: This patch have been merged. Thank you very much. 在 2023/12/15 下午8:22, Xi Ruoyao 写道: > Ping. > > On Wed, 2023-12-06 at 03:05 +0800, Xi Ruoyao wrote: >> Even in shared objects, la.got -> la.pcrel relaxation can still be >> performed for symbols with hidden visibility. For example, if a.c is: >> >>     extern int x; >>     int f() { return x++; } >> >> and b.c is: >> >>     int x = 114514; >> >> If compiling and linking with: >> >>     gcc -shared -fPIC -O2 -fvisibility=hidden a.c b.c >> >> Then the la.got in a.o should be relaxed to la.pcrel, and the resulted f >> should be like: >> >>     pcaddi  $t0, x >>     ldptr.w $a0, $t0, 0 >>     addi.w  $t1, $a0, 1 >>     stptr.w $t1, $t0, 0 >>     ret >> >> Remove bfd_link_executable from the condition of la.got -> la.pcrel >> relaxation so this will really happen.  The SYMBOL_REFERENCES_LOCAL >> check is enough not to wrongly relax preemptable symbols (for e.g. >> when -fvisibility=hidden is not used). >> >> Note that on x86_64 this is also relaxed and the produced code is like: >> >>     lea x(%rip), %rdx >>     mov (%rdx), %rax >>     lea 1(%rax), %ecx >>     mov %ecx, (%rdx) >>     ret >> >> Tested by running ld test suite, bootstrapping and regtesting GCC with >> the patched ld, and building and testing Glibc with the patched ld.  No >> regression is observed. >> >> Signed-off-by: Xi Ruoyao >> --- >>  bfd/elfnn-loongarch.c | 3 +-- >>  1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c >> index 024c5d4cd96..80739b817ab 100644 >> --- a/bfd/elfnn-loongarch.c >> +++ b/bfd/elfnn-loongarch.c >> @@ -3986,8 +3986,7 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, >>     else >>       continue; >> >> -   if (h && bfd_link_executable (info) >> -       && SYMBOL_REFERENCES_LOCAL (info, h)) >> +   if (h && SYMBOL_REFERENCES_LOCAL (info, h)) >>       local_got = true; >>     symtype = h->type; >>   }