Re: Fedora RISC-V port needs to put shared objects into /usr/lib64/lp64d

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 23, 2024 at 09:43:34AM +0300, David Abdurachmanov wrote:
> On Mon, Apr 22, 2024 at 1:12 PM Florian Weimer <fweimer@xxxxxxxxxx> wrote:
> > > We most likely will not have ABIs installed in parallel, but we might
> > > change ABI. Currently Linux distributions target "RV64GC", but we
> > > don't really want that for the future RISC-V. I keep telling folks
> > > that "RV64GC" is already "a legacy" (10+ years old), but that's the
> > > major target for the next few years. We are scheduled to see some
> > > RVA22 SBCs this year.
> > >
> > > RV64GC -> RVA20 -> RVA22 -> RVA23 -> RVA24.
> > >
> > > That's how things evolved. RVA23 most likely will be ratified soonish.
> > > RVA24 is most likely the next major RISC-V Profile from RVI point of
> > > view (TBD). Server specifications are based on RVA23 (and will be
> > > updated to RVA24 [most likely]). This defines baseline ISA, optional
> > > extensions, etc.
> >
> > Is there really an ABI change, though?  That would only happen if the
> > set of callee-saved registers grows, to include vector registers.
> > Adding new registers has compatibility problems on its own.
>
> There are two conventions for vectors in RISCV psABI: "standard" and
> "calling" (not the best name).
>
> standard does not have preserved registers across calls.
> calling one does (similar to what you would expect from AVX).
>
> The default today is standard, which means that -march=rv64gv
> -mabi=lp64d enables vectors and we can mix them with existing
> binaries. This is a very limited use of vectors.
>
> GCC 14 is the 1st release that has vector support for RISCV. There
> might be suggestions to add lp64dv as ABI in the future (maybe GCC 15?
> Unknown) that would default to the vector calling convention. There
> might be more extensions that could require ABI change IIUC, but I
> don't recall the details.
>
> RVA23 requires vectors, and vector crypto. Android will also require
> vectors, it's not an option.
>
> I hope that once RVA23 and especially RVA24 lands, RVI will announce
> the next major RISCV profile (RVA24, might have a fancier marketing
> name). We will see what the market does, but we have already seen some
> cores being marketed as RVA24 (yet I don't really trust that). Once we
> start looking at the next baseline ISA we might as well pick the best
> ABI for it. We could call this "Fedora/RISCV.Next". RV64GC will
> probably be 10-15 years old by that time, and it lacks any modern ISA
> especially if you want high performance. I consider RVA24 a point
> where we close major gaps between RISCV and other popular arches.

Wouldn't changing -mabi effectively make the result a new Fedora
architecture? IIUC, binaries built with -mabi=lp64d wouldn't be able
to load libraries built with -mabi=lp64dv and vice versa.

If that's correct, then we can't simply have a single "riscv64"
architecture: instead, we need to call what we have today
riscv64_lp64d, and be ready for riscv64_lp64dv as well as whatever
comes next.

It would be somewhat similar to existing architectures that can be
used in both Little-Endian (ppc64le) and Big-Endian (ppc64) modes.

This is quite different from just bumping the ISA baseline, where
existing binaries and libraries are still usable in the new
environment.

-- 
Andrea Bolognani / Red Hat / Virtualization
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux