From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id D2D473858D39 for ; Thu, 30 Dec 2021 16:00:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D2D473858D39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-pf1-x431.google.com with SMTP id s15so21701517pfk.6 for ; Thu, 30 Dec 2021 08:00:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id; bh=FLb4DCYh3/8IG0DZJbJC557Mian1l/2WTrFhv1Qq/qs=; b=HGoDRMBdKyZjX7K4VoOqz/ZwrSJNwhEFr10Gr2/r4Mcy2YZ0tAKtdZyAEGk37zYsCe zurmpl97ZSa62sJp3zufiXubKw5JccNk54Hpj/BpROB7kj9g9hkgmbOPUbTjDrpUBXzd E2BhpmbJi+gLsCeIp+1qK2DChgqS8Q+HCd89X2eY/TxHhwBx1qxGimrjfF9FQm1W4YBA ju1h3NSAIT0hfvFpwdcz3ph77M41LBuKLQPccrkbGhaeKr7lPKkg2ZSalbFJd963AB/6 /TYZzQg91N+pOrmvOXNq3aqY8IathnRR/17W01A815BPQr5mq0C6U/JYrGeY58wEleiF fsYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=FLb4DCYh3/8IG0DZJbJC557Mian1l/2WTrFhv1Qq/qs=; b=rrs1zeD1iqN/adFVYj4yguJ7wpe0iO+SMq1UOubK2CTkeow8jURXqkME8qyxZKbZEu DZP7ZoBVIR/8PwiNO1VjEX7vWDek/iixYeDd5PptSwfItW8j0tFQfivq23cukjIgkM9W xsYZSHxaFmijj80Cp0wiOyq718H97uwcRE5AOLjSY3ABROZL4a35Qs2UPVb/J5eCdAcd FHS9ERjln9p8+jR7gHzvrCqn+wgPcYSQUsHAn3Zr5C8T/DhLChJXdzcw++Bj7vahKtxP fzMZJVcuPwgonTUCAQTosGMnr+0ptTpv+9ODY6RqnwvSVgXToK1ga1HWnF+pz9eQZD0K 4jUQ== X-Gm-Message-State: AOAM530BbjLAdXh9WCyxjOI7kiZkVsCfAV9LCMYtLyo075WibRLgrOzd dtANKWlO8jFt325itqWcrVR8fXj4OBQhDA== X-Google-Smtp-Source: ABdhPJy7gJPdG1HZIUTXdej+/vo5CZcl2SvXcVPncmroYYu6m/xAUVij2OxWlShbvxxdlHv1I9jA3g== X-Received: by 2002:a05:6a00:15cb:b0:4ba:edb1:c03c with SMTP id o11-20020a056a0015cb00b004baedb1c03cmr31965849pfu.54.1640880029535; Thu, 30 Dec 2021 08:00:29 -0800 (PST) Received: from gamma00.internal.sifive.com ([64.62.193.194]) by smtp.gmail.com with ESMTPSA id c19sm28673386pjv.39.2021.12.30.08.00.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Dec 2021 08:00:29 -0800 (PST) From: Nelson Chu To: binutils@sourceware.org, jim.wilson.gcc@gmail.com, kito.cheng@sifive.com, palmer@dabbelt.com, andrew@sifive.com Subject: [PATCH 1/2] RISC-V: Don't report mismatch warnings when versions are larger than 1.0. Date: Thu, 30 Dec 2021 08:00:27 -0800 Message-Id: <1640880028-16820-1-git-send-email-nelson.chu@sifive.com> X-Mailer: git-send-email 2.7.4 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Thu, 30 Dec 2021 16:00:34 -0000 In general, the extension is ratified when it's version is 1.0, that means the versions larger than 1.0 should be compatible. Therefore, report the mismatch warnings for these compatible versions seems redundant and a little bit annoying. I know that there are some exceptions like zba 0.93 and e 1.9, but we could handle them specially in the future patches. bfd/ * elfnn-riscv.c (riscv_version_mismatch): Do not report the mismatch warnings when versions are larger than 1.0. ld/ * testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d: Removed. * testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s: Removed. * testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s: Removed. * testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified.d: Updated and renamed from attr-merge-arch-failed-02a testcase. * testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-a.s: Likewise. * testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-b.s: Likewise. * testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-c.s: Likewise. * testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-d.s: Likewise. * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated. --- bfd/elfnn-riscv.c | 12 ++++++---- .../ld-riscv-elf/attr-merge-arch-failed-01.d | 11 --------- .../ld-riscv-elf/attr-merge-arch-failed-01a.s | 1 - .../ld-riscv-elf/attr-merge-arch-failed-01b.s | 1 - .../ld-riscv-elf/attr-merge-arch-failed-02.d | 27 ---------------------- .../ld-riscv-elf/attr-merge-arch-failed-02a.s | 1 - .../ld-riscv-elf/attr-merge-arch-failed-02b.s | 1 - .../ld-riscv-elf/attr-merge-arch-failed-02c.s | 1 - .../ld-riscv-elf/attr-merge-arch-failed-02d.s | 1 - .../attr-merge-arch-failed-ratified-a.s | 1 + .../attr-merge-arch-failed-ratified-b.s | 1 + .../attr-merge-arch-failed-ratified-c.s | 1 + .../attr-merge-arch-failed-ratified-d.s | 1 + .../ld-riscv-elf/attr-merge-arch-failed-ratified.d | 22 ++++++++++++++++++ ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp | 3 +-- 15 files changed, 35 insertions(+), 50 deletions(-) delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02.d delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02a.s delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02b.s delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02c.s delete mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02d.s create mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-a.s create mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-b.s create mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-c.s create mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-d.s create mode 100644 ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified.d diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index d8c9066..ba2f2c1 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -3389,11 +3389,15 @@ riscv_version_mismatch (bfd *ibfd, if ((in->major_version == RISCV_UNKNOWN_VERSION && in->minor_version == RISCV_UNKNOWN_VERSION) || (out->major_version == RISCV_UNKNOWN_VERSION - && out->minor_version == RISCV_UNKNOWN_VERSION)) + && out->minor_version == RISCV_UNKNOWN_VERSION) + || (in->major_version > 0 + && out->major_version > 0)) { - /* Do not report the warning when the version of input - or output is RISCV_UNKNOWN_VERSION, since the extension - is added implicitly. */ + /* Do not report the warning when, + * The version of input or output is RISCV_UNKNOWN_VERSION, + since the extension is added implicitly. + * The version of input and output are larger than v1.0, + which means they are ratified in general. */ } else _bfd_error_handler diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d deleted file mode 100644 index 669a139..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01.d +++ /dev/null @@ -1,11 +0,0 @@ -#source: attr-merge-arch-failed-01a.s -#source: attr-merge-arch-failed-01b.s -#as: -march-attr -#ld: -r -m[riscv_choose_ilp32_emul] -#warning: .*mis-matched ISA version 3.0 for 'a' extension, the output version is 2.0 -#readelf: -A - -Attribute Section: riscv -File Attributes - Tag_RISCV_arch: ".*a3p0.*" -#.. diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s deleted file mode 100644 index 365901d..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01a.s +++ /dev/null @@ -1 +0,0 @@ - .attribute arch, "rv32i2p0_m2p0_a2p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s deleted file mode 100644 index 49263bf..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-01b.s +++ /dev/null @@ -1 +0,0 @@ - .attribute arch, "rv32i2p0_m2p0_a3p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02.d b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02.d deleted file mode 100644 index 3f4935d..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02.d +++ /dev/null @@ -1,27 +0,0 @@ -#source: attr-merge-arch-failed-02a.s -#source: attr-merge-arch-failed-02b.s -#source: attr-merge-arch-failed-02c.s -#source: attr-merge-arch-failed-02d.s -#as: -march-attr -#ld: -r -m[riscv_choose_ilp32_emul] -#warning: .*mis-matched ISA version 3.0 for 'i' extension, the output version is 2.0 -#warning: .*mis-matched ISA version 3.0 for 'm' extension, the output version is 2.0 -#warning: .*mis-matched ISA version 3.0 for 'a' extension, the output version is 2.0 -#warning: .*mis-matched ISA version 3.0 for 'zicsr' extension, the output version is 2.0 -#warning: .*mis-matched ISA version 3.0 for 'xunknown' extension, the output version is 2.0 -#warning: .*mis-matched ISA version 2.1 for 'i' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 2.2 for 'm' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 2.3 for 'a' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 2.4 for 'zicsr' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 2.5 for 'xunknown' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 4.6 for 'i' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 4.7 for 'm' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 4.8 for 'a' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 4.9 for 'zicsr' extension, the output version is 3.0 -#warning: .*mis-matched ISA version 4.0 for 'xunknown' extension, the output version is 3.0 -#readelf: -A - -Attribute Section: riscv -File Attributes - Tag_RISCV_arch: "rv32i4p6_m4p7_a4p8_zicsr4p9_xunknown4p0" -#.. diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02a.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02a.s deleted file mode 100644 index 3dbf8a2..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02a.s +++ /dev/null @@ -1 +0,0 @@ - .attribute arch, "rv32i2p0_m2p0_a2p0_zicsr2p0_xunknown2p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02b.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02b.s deleted file mode 100644 index 7bbc39f..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02b.s +++ /dev/null @@ -1 +0,0 @@ - .attribute arch, "rv32i3p0_m3p0_a3p0_zicsr3p0_xunknown3p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02c.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02c.s deleted file mode 100644 index 2a921e6..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02c.s +++ /dev/null @@ -1 +0,0 @@ - .attribute arch, "rv32i2p1_m2p2_a2p3_zicsr2p4_xunknown2p5" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02d.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02d.s deleted file mode 100644 index 6ef5ee5..0000000 --- a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-02d.s +++ /dev/null @@ -1 +0,0 @@ - .attribute arch, "rv32i4p6_m4p7_a4p8_zicsr4p9_xunknown4p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-a.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-a.s new file mode 100644 index 0000000..e7fadf0 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-a.s @@ -0,0 +1 @@ + .attribute arch, "rv32i0p1_m0p1_a0p1_zicsr0p1_xunknown0p1" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-b.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-b.s new file mode 100644 index 0000000..1a7a11c --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-b.s @@ -0,0 +1 @@ + .attribute arch, "rv32i0p9_m0p9_a0p9_zicsr0p9_xunknown0p9" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-c.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-c.s new file mode 100644 index 0000000..1a935e7 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-c.s @@ -0,0 +1 @@ + .attribute arch, "rv32i1p0_m1p0_a1p0_zicsr1p0_xunknown1p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-d.s b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-d.s new file mode 100644 index 0000000..3dbf8a2 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified-d.s @@ -0,0 +1 @@ + .attribute arch, "rv32i2p0_m2p0_a2p0_zicsr2p0_xunknown2p0" diff --git a/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified.d b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified.d new file mode 100644 index 0000000..b835aa3 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/attr-merge-arch-failed-ratified.d @@ -0,0 +1,22 @@ +#source: attr-merge-arch-failed-ratified-a.s +#source: attr-merge-arch-failed-ratified-b.s +#source: attr-merge-arch-failed-ratified-c.s +#source: attr-merge-arch-failed-ratified-d.s +#as: -march-attr +#ld: -r -m[riscv_choose_ilp32_emul] +#warning: .*mis-matched ISA version 0.9 for 'i' extension, the output version is 0.1 +#warning: .*mis-matched ISA version 0.9 for 'm' extension, the output version is 0.1 +#warning: .*mis-matched ISA version 0.9 for 'a' extension, the output version is 0.1 +#warning: .*mis-matched ISA version 0.9 for 'zicsr' extension, the output version is 0.1 +#warning: .*mis-matched ISA version 0.9 for 'xunknown' extension, the output version is 0.1 +#warning: .*mis-matched ISA version 1.0 for 'i' extension, the output version is 0.9 +#warning: .*mis-matched ISA version 1.0 for 'm' extension, the output version is 0.9 +#warning: .*mis-matched ISA version 1.0 for 'a' extension, the output version is 0.9 +#warning: .*mis-matched ISA version 1.0 for 'zicsr' extension, the output version is 0.9 +#warning: .*mis-matched ISA version 1.0 for 'xunknown' extension, the output version is 0.9 +#readelf: -A + +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_zicsr2p0_xunknown2p0" +#.. diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp index 961f064..84d3654 100644 --- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp +++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp @@ -160,8 +160,7 @@ if [istarget "riscv*-*-*"] { run_dump_test "attr-merge-priv-spec-01" run_dump_test "attr-merge-priv-spec-02" run_dump_test "attr-merge-priv-spec-03" - run_dump_test "attr-merge-arch-failed-01" - run_dump_test "attr-merge-arch-failed-02" + run_dump_test "attr-merge-arch-failed-ratified" run_dump_test "attr-merge-stack-align-failed" run_dump_test "attr-merge-priv-spec-failed-01" run_dump_test "attr-merge-priv-spec-failed-02" -- 2.7.4