stable-rc: 5.10: riscv: defconfig: clang-nightly: build failed - Invalid or unknown z ISA extension: 'zifencei'

Conor Dooley conor at kernel.org
Tue Feb 21 15:17:56 PST 2023


On Tue, Feb 21, 2023 at 03:33:31PM -0700, Nathan Chancellor wrote:
> On Tue, Feb 21, 2023 at 09:15:11AM +0000, Conor Dooley wrote:
> > On Tue, Feb 21, 2023 at 02:30:17PM +0530, Naresh Kamboju wrote:
> > > The riscv defconfig and tinyconfig builds failed with clang-nightly
> > > due to below build warnings / errors on latest stable-rc 5.10.
> > > 
> > > Regression on riscv:
> > >   - build/clang-nightly-tinyconfig - FAILED
> > >   - build/clang-nightly-defconfig - FAILED
> > 
> > > Build log:
> > > ----
> > > make --silent --keep-going --jobs=8
> > > O=/home/tuxbuild/.cache/tuxmake/builds/1/build ARCH=riscv
> > > CROSS_COMPILE=riscv64-linux-gnu- HOSTCC=clang CC=clang LLVM=1
> > > LLVM_IAS=1 LD=riscv64-linux-gnu-ld
> > > riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_zicsr2p0_zifencei2p0:
> > > Invalid or unknown z ISA extension: 'zifencei'
> > > riscv64-linux-gnu-ld: failed to merge target specific data of file
> > > init/version.o
> > > riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_zicsr2p0_zifencei2p0:
> > > Invalid or unknown z ISA extension: 'zifencei'
> > > riscv64-linux-gnu-ld: failed to merge target specific data of file
> > > init/do_mounts.o
> > > riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_zicsr2p0_zifencei2p0:
> > > Invalid or unknown z ISA extension: 'zifencei'
> > > riscv64-linux-gnu-ld: failed to merge target specific data of file
> > > init/noinitramfs.o
> > > riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_zicsr2p0_zifencei2p0:
> > > Invalid or unknown z ISA extension: 'zifencei'
> > > riscv64-linux-gnu-ld: failed to merge target specific data of file
> > > init/calibrate.o
> > > riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_zicsr2p0_zifencei2p0:
> > > Invalid or unknown z ISA extension: 'zifencei'
> > 
> > > Build details,
> > > https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.10.y/build/v5.10.168-58-g7d11e4c4fc56/testrun/14869376/suite/build/test/clang-nightly-tinyconfig/details/
> > 
> > binutils 2.35 by the looks of things, I **think** that zifencei didn't
> > land until 2.36. zicsr and zifence get added via cc-option-yn, which,
> > IIRC, doesn't do anything with the linker. I dunno if anyone in RISC-V
> > land cares this much about "odd" configurations back in 5.10, but while
> > a fix is outstanding, you could use a newer binutils?
> 
> This is new in clang-17 so I bisected LLVM down to commit 22e199e6afb1
> ("[RISCV] Accept zicsr and zifencei command line options"), so I think
> we need something like commit aae538cd03bc ("riscv: fix detection of
> toolchain Zihintpause support") for zifencei to make sure all three
> tools stay in sync, since I suspect that this is reproducible in
> mainline with GNU ld. We just happen not to notice when using
> LLVM=1 LLVM_IAS=1 since the tools have symmetrical support.

At least if it is in mainline there'll be interest in fixing it!
Nobody was shipping hardware worth mention when 5.10 was en vogue, so
little interest in it :(

> I can work up something like that change tomorrow if that seems like the
> path worth taking.

I'm not sure if this one is the same as Zihintpause though, because
zifencei & zicsr were part of i prior to a spec update, so we may need
to be careful about the spec version that clang/llvm is using if we
decide not to pass zifencei/zicsr to it. See arch/riscv/Makefile, about
L55 for a comment...
I'll go get myself a clang-17 tomorrow and give things a whirl if you
want Nathan?

Cheers,
Conor.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20230221/9d571b51/attachment.sig>


More information about the linux-riscv mailing list