From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by sourceware.org (Postfix) with ESMTPS id 27D20385E038 for ; Thu, 16 Nov 2023 07:34:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 27D20385E038 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=xen0n.name Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xen0n.name ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 27D20385E038 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.28.160.31 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700120078; cv=none; b=hi/+LC7X9u/BT0T5Y/LgUWttqdYHGuRvtV3YVhRfHSYsW1y7zE2Uv1DdTzBTbG+fz2bePHonYoeD52caoSxjcShDyEYiVRskK87KqQY1Q9NCjbwehVLL4FvrdDfbq/kRN0wIkF3loI3eGthsy/Iw5e0ojzI6y10z4xJ75z+5hSc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700120078; c=relaxed/simple; bh=j16uy82KMKTHThh9ueXrWdmNxoHEHTMgdLGsnvZZy6Q=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Je/VbyOi+gnHMmHHiLKSwTZkM4OybwROPjMSB51tIK3a8+197iMFhXS9BrvTtF/NYuCbecsyw2b7spnFhXvD7Tood6bHEDlPUQeKK1e2UEfXi/UJi3NKVtSZJkFA08k6w07tIc/MBLk14QImwUmDkWh01qWDxt69lNryNA1lcbg= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1700120043; bh=j16uy82KMKTHThh9ueXrWdmNxoHEHTMgdLGsnvZZy6Q=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=RfsXMDOa2E8sSw4LxJ24e7V07EwzLZksAUkLRojb2cJt38oZRaD/mNFkQGelxYM3J TXIU+GjJUWY6mR/S9tYZNg6P/jFGifbNW3io9J0BKu6x93dgPU3xmbXw4AQlVwHdmz KkzAm+TVzGFgqrgEG2AcvAxYFa7fBXqoqjqQnbqA= Received: from [IPV6:240e:388:8d26:bf00:6f50:1e00:d62c:dcf9] (unknown [IPv6:240e:388:8d26:bf00:6f50:1e00:d62c:dcf9]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id BAF96600A6; Thu, 16 Nov 2023 15:34:03 +0800 (CST) Message-ID: <88c34da3-2457-4332-a620-437efa4baafc@xen0n.name> Date: Thu, 16 Nov 2023 15:34:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v1 1/6] LoongArch: Fix ld --no-relax bug Content-Language: en-US To: mengqinggang , binutils@sourceware.org Cc: xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com References: <20231116062307.3292483-1-mengqinggang@loongson.cn> <20231116062307.3292483-2-mengqinggang@loongson.cn> From: WANG Xuerui In-Reply-To: <20231116062307.3292483-2-mengqinggang@loongson.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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: On 11/16/23 14:23, mengqinggang wrote: > When ld --no-relax, pcalau12i + ld.d still can be relaxed. "When calling ld with --no-relax, ..." Apart from the grammatical fix, is the "pcalau12i + ld.d pair still gets relaxed" behavior actually intended, or is it the broken behavior that's being fixed? Looking at the code it's not so evident so it's better to explain a bit. > --- > bfd/elfnn-loongarch.c | 19 ++++++------------- > 1 file changed, 6 insertions(+), 13 deletions(-) > > diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c > index 18ad3cc91ca..1162cb35cd6 100644 > --- a/bfd/elfnn-loongarch.c > +++ b/bfd/elfnn-loongarch.c > @@ -3996,29 +3996,22 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, > loongarch_relax_align (abfd, sec, sym_sec, info, rel, symval); > break; > case R_LARCH_DELETE: > - if (info->relax_pass == 1) > + if (1 == info->relax_pass) > { > loongarch_relax_delete_bytes (abfd, sec, rel->r_offset, 4, info); > rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE); > } > break; > case R_LARCH_PCALA_HI20: > - if (info->relax_pass == 0) > - { > - if (i + 4 > sec->reloc_count) > - break; > - loongarch_relax_pcala_addi (abfd, sec, rel, symval); > - } > + if (0 == info->relax_pass && (i + 4) <= sec->reloc_count) > + loongarch_relax_pcala_addi (abfd, sec, rel, symval); > break; > case R_LARCH_GOT_PC_HI20: > - if (local_got) > + if (local_got && 0 == info->relax_pass > + && (i + 4) <= sec->reloc_count) > { > - if (i + 4 > sec->reloc_count) > - 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; > default: