public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@rivosinc.com>
To: Darius Rad <darius@bluespec.com>
Cc: libc-alpha@sourceware.org
Subject: Re: [RFC] build-many-glibcs: Add a rv64gcbv-on-rv64gc/lp64d sub-variant
Date: Tue, 16 Apr 2024 09:04:24 -0700 (PDT)	[thread overview]
Message-ID: <mhng-aeafb6ce-0c11-4bae-a784-7f6cbfaca5c7@palmer-ri-x1c9a> (raw)
In-Reply-To: <Zh6RajOBStMsYvVb@localhost.localdomain>

On Tue, 16 Apr 2024 07:55:38 PDT (-0700), Darius Rad wrote:
> On Mon, Apr 15, 2024 at 02:36:59PM -0700, Palmer Dabbelt wrote:
>> On Mon, 15 Apr 2024 13:24:14 PDT (-0700), Darius Rad wrote:
>> > Is this really lp64d?
>>
>> I guess that depend on what you mean by "ABI".  Passing `-march=rv64gv
>> -mabi=lp64d` will result in binaries that require the V extension to run,
>> but can be linked with any other binary that is compiled with `-mabi=lp64d`.
>> It's essentially the same as `-march=rv64g -mabi=lp64`, except for vector
>> instead of float.
>>
>
> Got it.  I thought that might be the case, but wasn't sure if the vector
> calling convention leaked in with the arch switch only (and not the abi).

The intent was to avoid that, but GCC-14 will be the first release with 
any meaningful vector codegen so I guess we'll find out if we have any 
bugs ;)

>> > What is the status of the vector ABI?
>>
>> We don't have a global vector ABI switch for GCC (ie, `-mabi=lp64dv`) and we
>> decided not to put on in for GCC-14.  We've essentially got all the
>> machinery there for it, as we've got the vector calling convention
>> attribute, but that came in pretty late and we decided it'd be better to
>> wait.
>>
>> I don't see any reason it'd miss GCC-15, but no promises as there's not even
>> a patch on the lists yet...
>>
>
> Understood.  Though when this hits, won't it be the most likely target for
> vector?  Meaning at that point, rv64gcbv/lp64d would be less useful or
> important.

I'm not really sure.  If I was building a system I'd want an 
lp64dv-flavored ABI, but if distros are already rv64gc/lp64d then 
rv64gcv/lp64d would provide a binary compatible upgrade path for them.  
Assuming we end up with some sort of glibc-hwcaps the rv64gcv/lp64d 
builds might be common.

It's kind of all just a guess until HW shows up, though...

>> > If we need to
>> > have (and test) more targets that are actually useful, so be it.  But we
>> > don't want to be stuck testing targets nobody uses or that provide no
>> > testing value, and removing them is usually harder than adding them.
>>
>> Ya, that's kind of my worry here.  We'd be going out on a limb here by
>> targeting something without hardware availability, we've already got some
>> baggage floating around from lightly-used targets and it'd be best to avoid
>> too much of that.
>>
>
> Maybe make an explicit note that if/when the vector ABI is in gcc, the
> target will be switched to that, rather than another target being added.
> Then there's some notice for people to not rely on rv64gcbv/lp64d, or at
> least put up support and/or evidence of a use case to retain the target.

Ya, I guess so far we've not really been explicit about what's supported 
in glibc and what's not -- there's some code in there to ban stuff like 
lv64f and some default ISAs in build-many-glibcs, but I don't know if 
any of that is really binding.

So maybe we should do a wiki entry with what configurations are actively 
tested and thus likely to work?

>> IMO it's really more of a question for users/distros -- and I'm definitely a
>> crazy person on that front, I run Gentoo ;)
>>

  reply	other threads:[~2024-04-16 16:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-15 19:24 Palmer Dabbelt
2024-04-15 20:05 ` enh
2024-04-15 20:22   ` Palmer Dabbelt
2024-04-25  5:11     ` Jeff Law
2024-04-15 20:24 ` Darius Rad
2024-04-15 21:36   ` Palmer Dabbelt
2024-04-16 14:55     ` Darius Rad
2024-04-16 16:04       ` Palmer Dabbelt [this message]
2024-04-16 20:41         ` Darius Rad
2024-04-16 21:06           ` Palmer Dabbelt
2024-04-16  7:01 ` Michael Hudson-Doyle
2024-04-16 18:12   ` Palmer Dabbelt
2024-04-17  9:46     ` Florian Weimer
2024-04-23  3:08     ` Michael Hudson-Doyle
2024-04-17 10:26   ` Florian Weimer

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=mhng-aeafb6ce-0c11-4bae-a784-7f6cbfaca5c7@palmer-ri-x1c9a \
    --to=palmer@rivosinc.com \
    --cc=darius@bluespec.com \
    --cc=libc-alpha@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).