From patchwork Fri Jul 24 01:26:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: wangjue X-Patchwork-Id: 139863 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 12BC84BA23CA for ; Fri, 24 Jul 2026 01:27:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 12BC84BA23CA Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.a=rsa-sha256 header.s=default header.b=Qbpz8fFx X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from out30-111.freemail.mail.aliyun.com (out30-111.freemail.mail.aliyun.com [115.124.30.111]) by sourceware.org (Postfix) with ESMTPS id F101E4BA2E05 for ; Fri, 24 Jul 2026 01:26:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F101E4BA2E05 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F101E4BA2E05 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=115.124.30.111 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784856411; cv=none; b=E+kWYjYhPTHm6QNihX934Y0rJJJ9mF1vt1YcD4MHLkYlUFyNkEaQYSlPpMZO3noobS7w1FtvuMp7ycf6XM7/YTN5+xkmvZdHMNYtCCZeLQLUMGXYmBMkZkxnv3DM3bYLUWs8uMXgTo/MpdTp892Vb0BzJhHivA8WmBrSyKXxbZI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784856411; c=relaxed/simple; bh=apF5myy0JCO1uFzhOB2mippSMQeaM8pI3rmAEAN+80Y=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=iEdkvDCYkOQAKRsiTeuwQKjId4a2yrbaP+WfNgdKYN8HZ1aDU3sFUecZLw5BydSj37UaIsJBTYECT8JSxXNjptUX6b2D4Ox5nHhfb29wGClgx+dFscCei4M+N4SQaS64C9pvzPgyZiQIFBq2A/97yTOvOFh3wnnfBllAZwzzhqI= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.a=rsa-sha256 header.s=default header.b=Qbpz8fFx DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F101E4BA2E05 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1784856408; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=kHIZnpvbrRMAdODkfAfP+LHZE+5zF9XRX30L+miqRx0=; b=Qbpz8fFxZmM1ajF/S+LVFFX/TPG9wgaaaENNQysUBgGxg0Y22MI3zx4MAQHqt7CFKE6UMog2odOiDctQbx0Q/oI1lPWhHCdE093dqk0Q03wCmjiMVm3ydFn9+C5jOXpKGk57pMPaLZtgSOqRa5gKNluAFntgs58RU0S23Zb1E3U= X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R101e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=maildocker-contentspam033045133197; MF=juewang@linux.alibaba.com; NM=1; PH=DS; RN=8; SR=0; TI=SMTPD_---0X7hQQT3_1784856405; Received: from localhost.localdomain(mailfrom:juewang@linux.alibaba.com fp:SMTPD_---0X7hQQT3_1784856405 cluster:ay36) by smtp.aliyun-inc.com; Fri, 24 Jul 2026 09:26:46 +0800 From: wangjue To: binutils@sourceware.org Cc: Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu , Fangrui Song , juewang , "wangjue . wangjue" Subject: [PATCH] RISC-V: define elf_backend_dtrel_excludes_plt Date: Fri, 24 Jul 2026 09:26:42 +0800 Message-Id: <20260724012642.21997-1-juewang@linux.alibaba.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 X-Spam-Status: No, score=-27.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, ENV_AND_HDR_SPF_MATCH, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, UNPARSEABLE_RELAY, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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~patchwork=sourceware.org@sourceware.org From: juewang The RISC-V port never defined elf_backend_dtrel_excludes_plt, unlike x86-64, AArch64, arm, ppc, mips and s390. As a result DT_RELASZ counted .rela.dyn + .rela.plt instead of just .rela.dyn. With an empty .rela.dyn this makes DT_RELA alias DT_JMPREL (DT_RELA == DT_JMPREL, DT_RELASZ == DT_PLTRELSZ). glibc accepts the aliased range, but tools that read the two ranges independently, such as llvm-bolt, then process .rela.plt twice. Define the macro so DT_RELASZ excludes .rela.plt, matching every other target. When .rela.dyn is empty DT_RELA is now zeroed and the aliasing is gone. * elfnn-riscv.c (elf_backend_dtrel_excludes_plt): Define. Signed-off-by: wangjue.wangjue --- bfd/elfnn-riscv.c | 1 + 1 file changed, 1 insertion(+) diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 1c1c3ea36c5..1ca23e4964a 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -5587,6 +5587,7 @@ elfNN_riscv_merge_gnu_properties (struct bfd_link_info *info, bfd *abfd, #define elf_backend_got_header_size (ARCH_SIZE / 8) #define elf_backend_want_dynrelro 1 #define elf_backend_rela_normal 1 +#define elf_backend_dtrel_excludes_plt 1 #define elf_backend_default_execstack 0 #undef elf_backend_obj_attrs_vendor