Re: [PATCH] config.sub: recognise ARM64EC machine type
+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
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
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
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
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
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
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
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'.