public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Cc: Alexandre Ghiti <alexandre.ghiti@canonical.com>,
	Rick Chen <rick@andestech.com>, Leo <ycliang@andestech.com>,
	u-boot@lists.denx.de, matthias.klose@canonical.com
Subject: Re: [PATCH] riscv: Fix build against binutils 2.38
Date: Fri, 28 Jan 2022 19:28:30 +0100	[thread overview]
Message-ID: <YfQ1zkhV5TjESJWU@aurel32.net> (raw)
In-Reply-To: <YfQzpyT2N6TUjYFB@aurel32.net>

On 2022-01-28 19:19, Aurelien Jarno wrote:
> On 2022-01-28 19:03, Heinrich Schuchardt wrote:
> > On 1/28/22 14:47, Alexandre Ghiti wrote:
> > > The following description is copied from the equivalent patch for the
> > > Linux Kernel proposed by Aurelien Jarno:
> > > 
> > >  From version 2.38, binutils default to ISA spec version 20191213. This
> > > means that the csr read/write (csrr*/csrw*) instructions and fence.i
> > > instruction has separated from the `I` extension, become two standalone
> > > extensions: Zicsr and Zifencei. As the kernel uses those instruction,
> > > this causes the following build failure:
> > > 
> > > arch/riscv/cpu/mtrap.S: Assembler messages:
> > > arch/riscv/cpu/mtrap.S:65: Error: unrecognized opcode `csrr a0,scause'
> > > arch/riscv/cpu/mtrap.S:66: Error: unrecognized opcode `csrr a1,sepc'
> > > arch/riscv/cpu/mtrap.S:67: Error: unrecognized opcode `csrr a2,stval'
> > > arch/riscv/cpu/mtrap.S:70: Error: unrecognized opcode `csrw sepc,a0'
> > 
> > I tried to build qemu-riscv64_smode_defconfig. With your patch I get
> > 
> > arch/riscv/cpu/cpu.c: Assembler messages:
> > arch/riscv/cpu/cpu.c:94: Error: unrecognized opcode `csrs sstatus,a5'
> > arch/riscv/cpu/cpu.c:95: Error: unrecognized opcode `csrw 0x003,0'
> > 
> > The build flag used is -march=rv64imac.
> > 
> > My toolchain is:
> > binutils 2.37.90.20220126-0ubuntu1
> > riscv64-linux-gnu-gcc (Ubuntu 10.3.0-8ubuntu1) 10.3.0
> > 
> > This GCC does not support _zicsr_zifencei:
> > cc1: error: ‘-march=rv64imac_zicsr_zifencei’: unsupported ISA subset ‘z
> > 
> > Could it be that the GCC is too old for the new binutils?
> > When was the z subset added to GCC?
> 
> Yes, GCC 11 is the minimum version that understand those extensions.

GCC 11 is also required to support the not recommended alternative fix
-misa-spec=2.2.

If you need to support GCC 10, it seems that the only option is to build
binutils with --with-isa-spec=2.2.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

  reply	other threads:[~2022-01-28 18:28 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28 13:47 [PATCH] riscv: Fix build against binutils 2.38 Alexandre Ghiti
2022-01-28 14:15 ` Bin Meng
2022-01-28 18:03 ` Heinrich Schuchardt
2022-01-28 18:19   ` Aurelien Jarno
2022-01-28 18:28     ` Aurelien Jarno [this message]
2022-01-28 18:22   ` Heinrich Schuchardt
2022-02-17  9:24 ` Leo Liang
2022-02-17 10:28   ` Alexandre Ghiti
2022-02-19  8:51     ` Leo Liang
2022-02-21 16:42       ` Alexandre Ghiti
2022-03-01  3:21         ` Leo Liang
2022-03-03 11:06           ` Leo Liang
2022-03-09  6:31             ` Leo Liang
2022-03-10  8:03               ` Alexandre Ghiti
2022-04-07  9:12                 ` Leo Liang
2022-04-12  9:14                   ` Alexandre Ghiti
2022-04-13  1:49                     ` Leo Liang
2022-10-01 23:24               ` Heinrich Schuchardt
2022-10-01 23:57                 ` Tom Rini
2022-10-02  1:52                   ` Heinrich Schuchardt
2022-10-02 17:16                     ` Tom Rini
2022-10-02 17:25                       ` Tom Rini
2022-06-23 13:40 ` Heiko Stübner
2022-08-30 20:28   ` Christian Stewart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YfQ1zkhV5TjESJWU@aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=alexandre.ghiti@canonical.com \
    --cc=heinrich.schuchardt@canonical.com \
    --cc=matthias.klose@canonical.com \
    --cc=rick@andestech.com \
    --cc=u-boot@lists.denx.de \
    --cc=ycliang@andestech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox