From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com [IPv6:2607:f8b0:4864:20::332]) by sourceware.org (Postfix) with ESMTPS id B41FC3858C50 for ; Mon, 28 Nov 2022 01:35:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B41FC3858C50 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-ot1-x332.google.com with SMTP id l42-20020a9d1b2d000000b0066c6366fbc3so6070186otl.3 for ; Sun, 27 Nov 2022 17:35:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iP7Hk8K+D1r/2ptucN76aaOZ8xH306Ydn+wPNrV2xRk=; b=aXdHQpcMzXZGUDG3nB6ZSnZKpWVVCXmY5Ft1DudLsBbG92xOUwCUl0yDAICztN8jjJ P/2FBZ0eZPsRkwOGhha13+xbx55WvbhkSsX4fODRnGlh30et5nQYRuvp5xjVdZlE9f4z J+0alNvHb7lDzkOUTtX4MrzmqRBlV1gLWtE38KJNihPShesiZeWfEm70x0lUf03vjLam FCDNXIfQToEf1W/GXGvrKX1UUhd3BESOge+v/YKsj8K292pGFw0VcvXpW/vP5E6RqSp6 lEqKOxeYilNqax4Qu30D+N/nukPOAoqmjUsdWQ88NxvOotraMdtjs0Yx5j8cSxh+13mP O4IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iP7Hk8K+D1r/2ptucN76aaOZ8xH306Ydn+wPNrV2xRk=; b=YlT/FRd8BAf3DSA8pt/K1ndsDxvxd3pVP1nZ231IQu1UqhJjlVH6KvKNQI5BQHVTCJ QT9rpt1uQZP9UszO9OSbsPrqxIH7epLn0jGAS7KMVoIMnfmcY3mdyuhryGvs8y2m8CSc amH5Iinu7oyrIwNP7b04Jwix+xoHgj3v235dUTIsnBFmcn67KYCyKTylJ7AcbZIrLbbx GoLloexWHBy2ai+6mAJT2SApBAkWLmp3he7KxcHdXnw2v2W1vFP1Vz2ESghHrzthkv5v U/1FT/r2AkWoBSY9g23tGbQOAmwZNH5XtG6eTSZ6PCu2Gl99+Q+X5K3XeX9/nsxloTcS 7ypw== X-Gm-Message-State: ANoB5pmaOUmw2BABeKk5Ei/SW06YsSTkpX+fgtbjSBsKPl0nCqAg54XA KAagIsbq8bvCtM1XHeLObhXq1RnW5CtXZ9QhpkF9RQ== X-Google-Smtp-Source: AA0mqf4l62DuKzM+lqy3LW/uhsjBc1Km9niBPkL67jS5oA1BjFq9aiGG19Z4CC5URtgx8SnPczcyP7lBYXhZvYCUkSM= X-Received: by 2002:a05:6830:b93:b0:66c:7132:1bb1 with SMTP id a19-20020a0568300b9300b0066c71321bb1mr14692229otv.320.1669599351998; Sun, 27 Nov 2022 17:35:51 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Nelson Chu Date: Mon, 28 Nov 2022 09:35:41 +0800 Message-ID: Subject: Re: [PATCH] RISC-V: Allow merging 'H' extension To: Tsukasa OI Cc: Kito Cheng , Palmer Dabbelt , binutils@sourceware.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,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 List-Id: On Sat, Nov 26, 2022 at 11:14 AM Tsukasa OI wrote: > > 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. Thanks, we missed this, so it looks good except that I think we don't need to add/update test cases to test this trivial fix. Nelson > --- > 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(-) > > 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" > > base-commit: 66e7b0f4d9c88781c2b7589f86e31a7d153ed60c > -- > 2.38.1 >