From patchwork Sat Nov 26 03:13:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 26180 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp4432652wrr; Fri, 25 Nov 2022 19:14:11 -0800 (PST) X-Google-Smtp-Source: AA0mqf5MYwwa4ipJjwoSy5avq6g8VqUgSIYtPxdSPwlul2dWqmjtClU3PtJw+UzHLMbUPhjf/M6O X-Received: by 2002:a17:906:2e82:b0:7ae:44b2:cb7f with SMTP id o2-20020a1709062e8200b007ae44b2cb7fmr20560615eji.437.1669432451207; Fri, 25 Nov 2022 19:14:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669432451; cv=none; d=google.com; s=arc-20160816; b=OsrwB10SwQOmVUWeUNKECS+cci4vbj7boHDHgA+vHlg7CkBX5K5dShySKkiwymjj8M 0L8BCXjWdRmdoFeKXLdaCAu102XjTwe9/zi6nWxCJ+g65dfxk5lfbf7I7HYoxmoYw3LQ kmAdKhhDddtSQ9zIuwYQeaKJh4LhyxIyH4i3/cdnGbWil7mILrS6va6S/fRJ5bi4DZR+ S1GFUvDUiXtyAbRbi1/Ye2ZKYQq301L/EsnhSxYEUkD+Hi4lDHkR43jQHwmDP4Dmnmvf B5Q9uzAVDesTjPBI1PLVDvvkvRT51NlC1kbgWTtR/HrPNldIu3WU/t1cncU8kIw5yr13 k6VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=L8Q6FcRCGWjq7NJ+bt0s+szmVNnR1TbiQAzh5lTR84o=; b=i1lx2jK2mMw7lBY5z8/bET5h88LJe3MHxAJ9+8q69pYZ/CLJ03S+fxhBC7Z0jXRB4A e4xsZzJotbi9atJd4VbKHFunUrQSn20gb2WtWwNWtarMbjzcKLVo6S/IyUA0hPUIVsAN HiEnZDdcfK2blX1lknNgkUYvkle4xIK24CyWWWbI2m91/FKh7jIiXdJz93c010ligAIc dXIVkQT4k9VoW1p609KC/Kc/9Rf2l02iVAOkp/MnSAi8kFGBNiP+r3kdHMpRwtIW9em2 DSt9TEbwg2xChsyF7yZNnPQNVqwojORxKM8WEp5dWpbw2nwrLXPDEKUCQpuR3a8tWBZX CdjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=enkB8zFP; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id 30-20020a17090600de00b0078e11e92257si4152233eji.333.2022.11.25.19.14.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Nov 2022 19:14:11 -0800 (PST) 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; dkim=pass header.i=@sourceware.org header.s=default header.b=enkB8zFP; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 474FA3889C81 for ; Sat, 26 Nov 2022 03:14:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 474FA3889C81 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669432450; bh=L8Q6FcRCGWjq7NJ+bt0s+szmVNnR1TbiQAzh5lTR84o=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=enkB8zFPy53FgQfbU3PNenAcXPl6ylT2dmD8zZZhBQfInDOY6LD8qQGhT+Zz/63/o aoc5wPc9dXT4USTh5loXdqqfwrLfBXg75EdpH3tJ7yjo+1AWiWdmIebTiBUfQFI+GJ JdcO4udCYkKwPMXJcgnL7zlK1KqzdTJK9lPsfaSs= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-sender-0.a4lg.com (mail-sender-0.a4lg.com [IPv6:2401:2500:203:30b:4000:6bfe:4757:0]) by sourceware.org (Postfix) with ESMTPS id ED5CD3888C54 for ; Sat, 26 Nov 2022 03:14:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ED5CD3888C54 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 4772E300089; Sat, 26 Nov 2022 03:13:58 +0000 (UTC) To: Tsukasa OI , Nelson Chu , Kito Cheng , Palmer Dabbelt Cc: binutils@sourceware.org Subject: [PATCH] RISC-V: Allow merging 'H' extension Date: Sat, 26 Nov 2022 03:13:51 +0000 Message-Id: Mime-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, 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.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tsukasa OI via Binutils From: Tsukasa OI Reply-To: Tsukasa OI Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750526802191905426?= X-GMAIL-MSGID: =?utf-8?q?1750526802191905426?= From: Tsukasa OI Because riscv_merge_std_ext function did not merge the 'H' extension, linked executables lacked 'H' extension when multiple objects are linked. This issue is found while building OpenSBI with 'H' extension (resulting ELF files did not contain "h1p0" in "Tag_RISCV_arch" even if *all* linked object files contained it). This commit adds 'h' to standard_exts variable to merge 'H' extension. bfd/ChangeLog: * elfnn-riscv.c (riscv_merge_std_ext): Add 'H' extension merging. ld/ChangeLog: * testsuite/ld-riscv-elf/attr-merge-arch-02.d: Test merging of 'H' and 'Zicsr' extensions. * testsuite/ld-riscv-elf/attr-merge-arch-02a.s: Likewise. --- bfd/elfnn-riscv.c | 2 +- ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d | 2 +- ld/testsuite/ld-riscv-elf/attr-merge-arch-02a.s | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) base-commit: 66e7b0f4d9c88781c2b7589f86e31a7d153ed60c diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index a2d85dbe9396..a83c8ad2695e 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -3427,7 +3427,7 @@ riscv_merge_std_ext (bfd *ibfd, struct riscv_subset_t **pin, struct riscv_subset_t **pout) { - const char *standard_exts = "mafdqlcbjtpvn"; + const char *standard_exts = "mafdqlcbjtpvnh"; const char *p; struct riscv_subset_t *in = *pin; struct riscv_subset_t *out = *pout; diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d b/ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d index 381ef850d974..d1ed8667303c 100644 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d @@ -6,4 +6,4 @@ Attribute Section: riscv File Attributes - Tag_RISCV_arch: "rv32i2p1_a2p0" + Tag_RISCV_arch: "rv32i2p1_a2p0_h1p0_zicsr2p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-02a.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-02a.s index 4593241c0249..696e83975346 100644 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-02a.s +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-02a.s @@ -1 +1 @@ - .attribute arch, "rv32i2p1_a2p0" + .attribute arch, "rv32i2p1_a2p0_h1p0_zicsr2p0"