From patchwork Fri Oct 13 08:24:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 152383 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp1739866vqb; Fri, 13 Oct 2023 01:25:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHqFXnUOPKINHZe8uVgME+3lZaBevvnZ5BKC3k7KNC8PeX+6ZxRHmEPydurBA5aUYIoyhU2 X-Received: by 2002:a1f:4a45:0:b0:496:b3b7:5d4c with SMTP id x66-20020a1f4a45000000b00496b3b75d4cmr17264171vka.16.1697185529957; Fri, 13 Oct 2023 01:25:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697185529; cv=none; d=google.com; s=arc-20160816; b=Oukh3+e/noPmxhhx1vtecMivyZpJTIVCpyH09zTPe48JGCTahAPPiRb5/RSNoi6jBG HT4CVifwwaGwG/RC9CbLCIn0F84jxoGWdVcCS4ggk1EwydwcnwO/mWwYnS+3MeK98xTw aBpAMedxwmILC+8MFLLcGcliPMjbbEAhkbL2TEE13UtbxYlVZS/yuT327EOIG2Cj9K1s VWLuD8Y5JnEhjZqcZNznfjyuF1ohGQEe25CvqTJAHpMrnguu4hfCOMi9MDl/5GgmZu9f yV5pjas0/ZyEsd8RwyDbqsWrKGnzaf7RRLFRguYl35f5ZHYrx+5uYxAGL8cm10mE9MDb Fk9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=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=ocWKkRwwJJLQ3FZZdxgoQCzjXh5XwXSsL3ane7tDBYI=; fh=0gdK4tzoS3mWL291EIVe4WpvhwZaKb1JrH+p0ipNPvA=; b=nVT9eBAOobSGjt3Q+WqcJBKWcIUrOUiURVhx12viupv63Qb+VZKH/dbxLu+xho+zaE Qx0bFYrRXbnrIcaPngMoQj5VQvVnWC0y3fvbfwNoPOTi30JzU829U3O+bKKdC1s+jlgO 8b/TIddC6Z6Bz2QLiMxVvsmg82PTEC+rGh2VAhF4metePnCVmWekAtY22IYhQKre5f1x Q2Cqn1E1+1vX6EIrlV4hJAZfOiaX4OjngbVsMX1xRisChmp8QNC6EBSut4UrTr78iENP mhm5Oy1Ghd2c/00gjtsU4Wcx+d/giytWoQeLKMRjObKME8EwNvBLCDJ46nI2fqAvaqEH L7Dw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id t21-20020a05622a149500b004198816340esi840720qtx.662.2023.10.13.01.25.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 01:25:29 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 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 B121A3857026 for ; Fri, 13 Oct 2023 08:25:29 +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 AF2E03857C5A for ; Fri, 13 Oct 2023 08:24:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AF2E03857C5A 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 [10.2.6.5]) by gateway (Coremail) with SMTP id _____8DxPOvP_ihlgKYxAA--.24721S3; Fri, 13 Oct 2023 16:24:48 +0800 (CST) Received: from 5.5.5 (unknown [10.2.6.5]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Cx7y_P_ihlO6UiAA--.6637S2; Fri, 13 Oct 2023 16:24:47 +0800 (CST) From: mengqinggang To: binutils@sourceware.org Cc: xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, cailulu@loongson.cn, mengqinggang Subject: [PATCH 1/5] LoongArch: Fix ld --no-relax bug Date: Fri, 13 Oct 2023 16:24:41 +0800 Message-Id: <20231013082445.290062-1-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-CM-TRANSID: AQAAf8Cx7y_P_ihlO6UiAA--.6637S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBj93XoW7Zr17XrWfur48uFWfGFWUKFX_yoW8GrW8pa 43uryrJF4rCFn3WwnrJrWUuF4DGry8Kr12ya43t3s7CF4DCFy5XF4rAryIgFWDGw12grW8 Zr10g347uFn7CabCm3ZEXasCq-sJn29KB7ZKAUJUUUUr529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUU9Yb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2kKe7AKxVWUXVWUAwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07 AIYIkI8VC2zVCFFI0UMc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWU XVWUAwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7V AKI48JMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMxCIbckI1I0E14v2 6r1Y6r17MI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17 CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF 0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIx AIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIev Ja73UjIFyTuYvjxU2L05UUUUU X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP 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.30 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779628014428215892 X-GMAIL-MSGID: 1779628014428215892 When ld --no-relax, pcalau12i + ld.d still can be relaxed. --- 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 70a666283af..471b5df3a9c 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: