Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-16 Thread John Cotton Ericson

+1 from me

John

P.S. I was wondering why this wasn't called aarch64ec, or why it is an 
arch and not ABI; I found https://reviews.llvm.org/D125412 and saw it 
was because the dash-separated format couldn't easily accommodate the 
combinatorial explosion of {mingw, msvc}{regular ABI, this new 
x86_64-emulator-compatible ABI}. Thus, it was instead shoved in as a 
"sub-arch" instead (like versions for 32-bit ARM and RISC-V) instead, 
like an earlier "arm64e" from Apple. Interesting stuff, and I think it 
is a useful data point for the broader discussion in the other thread.


On 9/15/23 18:56, Billy Laws wrote:

ARM64EC is a custom ABI for AArch64 that allows for interoperability
with x86_64 compiled code. While technically just an ABI, it is treated
as its own machine type, with triples in the format arm64ec-*.
---
  config.sub| 2 +-
  testsuite/config-sub.data | 2 ++
  2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/config.sub b/config.sub
index 6ae2502..733218d 100755
--- a/config.sub
+++ b/config.sub
@@ -1181,7 +1181,7 @@ case $cpu-$vendor in
case $cpu in
1750a | 580 \
| a29k \
-   | aarch64 | aarch64_be \
+   | aarch64 | aarch64_be | arm64ec \
| abacus \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | 
alpha64ev6[78] \
diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
index ba934b6..744892e 100644
--- a/testsuite/config-sub.data
+++ b/testsuite/config-sub.data
@@ -102,6 +102,8 @@ arm64-apple-tvos
aarch64-apple-tvos
  arm64-apple-tvos10.0.0aarch64-apple-tvos10.0.0
  arm64-apple-watchos   aarch64-apple-watchos
  arm64-apple-watchos5.0aarch64-apple-watchos5.0
+arm64ec-pc-mingw32 arm64ec-pc-mingw32
+arm64ec-windowsarm64ec-unknown-windows
  armbe armbe-unknown-none
  armeb-unknown-netbsdelf7.0armeb-unknown-netbsdelf7.0
  armel armel-unknown-none




Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-14 Thread Sam James


Po Lu  writes:

> Billy Laws  writes:
>
>> I just put what MinGW was using here since that is what I'm targeting,
>> I assumed that tests should represent what was actually being used.
>
> The vendor name in configuration tuples is more or less irrelevant these
> days and may be disregarded.  In light of the sheer quantity of
> operating systems that support PCs, what is this meant to return?
>
>   $ ./config.sub pc
>
> or even
>
>   $ ./config.sub x86_64-pc
>
>> LLVM doesn't even support "winnt" in triples, only "win32" and
>> "windows".  "-windows-msvc" is
>> also used throughout its testsuite.
>
> LLVM is not part of the GNU project, nor does it abide with the rules
> and conventions thereof.  We are under no obligation to contort
> ourselves to match their expectations.

This would make more sense if
https://git.savannah.gnu.org/cgit/config.git/commit/?id=91f6a7f616b161c25ba2001861a40e662e18c4ad
hadn't been merged though.






Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-14 Thread Po Lu
Sam James  writes:

> This would make more sense if
> https://git.savannah.gnu.org/cgit/config.git/commit/?id=91f6a7f616b161c25ba2001861a40e662e18c4ad
> hadn't been merged though.

Which I've been asking to have reverted, because `msvc' is not an
operating system.



Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-14 Thread Po Lu
Billy Laws  writes:

> I just put what MinGW was using here since that is what I'm targeting,
> I assumed that tests should represent what was actually being used.

The vendor name in configuration tuples is more or less irrelevant these
days and may be disregarded.  In light of the sheer quantity of
operating systems that support PCs, what is this meant to return?

  $ ./config.sub pc

or even

  $ ./config.sub x86_64-pc

> LLVM doesn't even support "winnt" in triples, only "win32" and
> "windows".  "-windows-msvc" is
> also used throughout its testsuite.

LLVM is not part of the GNU project, nor does it abide with the rules
and conventions thereof.  We are under no obligation to contort
ourselves to match their expectations.

> I'll submit a v2 with the test data changed per your suggestions.

Thank you.



Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-14 Thread Billy Laws
On Thu, 14 Sept 2023 at 01:43, Po Lu  wrote:
>
> Billy Laws  writes:
>
> > diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
> > index ba934b6..aba6ffc 100644
> > --- a/testsuite/config-sub.data
> > +++ b/testsuite/config-sub.data
> > @@ -102,6 +102,8 @@ arm64-apple-tvos  
> > aarch64-apple-tvos
> >  arm64-apple-tvos10.0.0   
> > aarch64-apple-tvos10.0.0
> >  arm64-apple-watchos  aarch64-apple-watchos
> >  arm64-apple-watchos5.0   
> > aarch64-apple-watchos5.0
> > +arm64ec-w64-mingw32  arm64ec-w64-mingw32
>
> *-w64-* is not a system vendor, is it?  I presume this ought to be:
I just put what MinGW was using here since that is what I'm targeting, I assumed
that tests should represent what was actually being used.
>
>   arm64ec-pc-mingw64
>
> or something akin to that.
>
> > +arm64ec-windows-msvc 
> > arm64ec-unknown-windows-msvc
>
> *-*-windows-* are all misnomers, inasmuch as `msvc' or `gnu'
> (representing MinGW) do not constitute OS names.  The correct operating
> system for MSVC within configuration tuples is `winnt'.
LLVM doesn't even support "winnt" in triples, only "win32" and
"windows".  "-windows-msvc" is
also used throughout its testsuite.

I'll submit a v2 with the test data changed per your suggestions.



Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-14 Thread Po Lu
Ozkan Sezer  writes:

> On 9/14/23, Po Lu  wrote:
>> Billy Laws  writes:
>>
>>> diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
>>> index ba934b6..aba6ffc 100644
>>> --- a/testsuite/config-sub.data
>>> +++ b/testsuite/config-sub.data
>>> @@ -102,6 +102,8 @@ arm64-apple-tvos
>>> aarch64-apple-tvos
>>>  arm64-apple-tvos10.0.0 aarch64-apple-tvos10.0.0
>>>  arm64-apple-watchosaarch64-apple-watchos
>>>  arm64-apple-watchos5.0 aarch64-apple-watchos5.0
>>> +arm64ec-w64-mingw32arm64ec-w64-mingw32
>>
>> *-w64-* is not a system vendor, is it?  I presume this ought to be:
>
> *-w64-* has been in use for more than a decade now: You don't know about
> i686-w64-mingw32 and x86_64-w64-mingw32 ?

I don't see any of these in config.sub, nor are they produced by
config.guess.  `w64' occupies the vendor name component of each of these
configuration names, so for all config.* users care, these may as well
be i[3456]86-unknown-mingw32 and x86_64-unknown-mingw32 respectively.



Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-14 Thread Ozkan Sezer
On 9/14/23, Po Lu  wrote:
> Billy Laws  writes:
>
>> diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
>> index ba934b6..aba6ffc 100644
>> --- a/testsuite/config-sub.data
>> +++ b/testsuite/config-sub.data
>> @@ -102,6 +102,8 @@ arm64-apple-tvos 
>> aarch64-apple-tvos
>>  arm64-apple-tvos10.0.0  aarch64-apple-tvos10.0.0
>>  arm64-apple-watchos aarch64-apple-watchos
>>  arm64-apple-watchos5.0  aarch64-apple-watchos5.0
>> +arm64ec-w64-mingw32 arm64ec-w64-mingw32
>
> *-w64-* is not a system vendor, is it?  I presume this ought to be:

*-w64-* has been in use for more than a decade now: You don't know about
i686-w64-mingw32 and x86_64-w64-mingw32 ?



Re: [PATCH] config.sub: recognise ARM64EC machine type

2023-09-13 Thread Po Lu
Billy Laws  writes:

> diff --git a/testsuite/config-sub.data b/testsuite/config-sub.data
> index ba934b6..aba6ffc 100644
> --- a/testsuite/config-sub.data
> +++ b/testsuite/config-sub.data
> @@ -102,6 +102,8 @@ arm64-apple-tvos  
> aarch64-apple-tvos
>  arm64-apple-tvos10.0.0   aarch64-apple-tvos10.0.0
>  arm64-apple-watchos  aarch64-apple-watchos
>  arm64-apple-watchos5.0   aarch64-apple-watchos5.0
> +arm64ec-w64-mingw32  arm64ec-w64-mingw32

*-w64-* is not a system vendor, is it?  I presume this ought to be:

  arm64ec-pc-mingw64

or something akin to that.

> +arm64ec-windows-msvc 
> arm64ec-unknown-windows-msvc

*-*-windows-* are all misnomers, inasmuch as `msvc' or `gnu'
(representing MinGW) do not constitute OS names.  The correct operating
system for MSVC within configuration tuples is `winnt'.