* vmovqdu/vmovqda inline asm doesn't compile on macos catalina
@ 2023-06-05 10:55 Peter Maydell
2023-06-05 11:29 ` Daniel P. Berrangé
2023-06-09 11:05 ` Peter Maydell
0 siblings, 2 replies; 4+ messages in thread
From: Peter Maydell @ 2023-06-05 10:55 UTC (permalink / raw)
To: QEMU Developers; +Cc: Richard Henderson
I just noticed that the recent atomicity changes introduce a build
failure on x86 macos (Catalina). Now if we wanted to, we can say "this
is too old and outside our support policy", of course...
(I don't know if newer x86 macos is OK -- this machine can't
upgrade to anything newer than Catalina. So it's due to be
decommissioned pretty soon anyway.)
In file included from ../../accel/tcg/cputlb.c:1673:
In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
/Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
^
/Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
^
In file included from ../../accel/tcg/cputlb.c:34:
In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
^
In file included from ../../accel/tcg/cputlb.c:1673:
In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
/Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
^
/Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
^
In file included from ../../accel/tcg/cputlb.c:34:
In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
^
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
error: couldn't allocate output register for constraint 'x'
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
error: couldn't allocate output register for constraint 'x'
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:55:13:
error: couldn't allocate input reg for constraint 'x'
asm("vmovdqa %1, %0" : "=m"(*ptr_align) : "x" (new.i));
^
In file included from ../../accel/tcg/cputlb.c:1673:
In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
/Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
^
/Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
^
In file included from ../../accel/tcg/cputlb.c:34:
In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
error: couldn't allocate output register for constraint 'x'
asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
^
/Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
error: couldn't allocate output register for constraint 'x'
13 errors generated.
-- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: vmovqdu/vmovqda inline asm doesn't compile on macos catalina
2023-06-05 10:55 vmovqdu/vmovqda inline asm doesn't compile on macos catalina Peter Maydell
@ 2023-06-05 11:29 ` Daniel P. Berrangé
2023-06-05 12:47 ` Peter Maydell
2023-06-09 11:05 ` Peter Maydell
1 sibling, 1 reply; 4+ messages in thread
From: Daniel P. Berrangé @ 2023-06-05 11:29 UTC (permalink / raw)
To: Peter Maydell; +Cc: QEMU Developers, Richard Henderson
On Mon, Jun 05, 2023 at 11:55:43AM +0100, Peter Maydell wrote:
> I just noticed that the recent atomicity changes introduce a build
> failure on x86 macos (Catalina). Now if we wanted to, we can say "this
> is too old and outside our support policy", of course...
Catalina is version 10.
Current Ventura is version 13.
So it fails our 'two latest releases" requirement.
More importantly, IIUC, Apple have discontinued support for Catalina
with its EOL date being Sep 2022.
Having said all that, what matters more for macOS is the toolchain
version rather than the OS version. We have very little that is
directly dependent on the OS version. Most of our library deps come
from HomeBrew, so it is mostly compiler compatibility that we are
targetting for macOS.
What clang version are you seeing this failure with ?
> (I don't know if newer x86 macos is OK -- this machine can't
> upgrade to anything newer than Catalina. So it's due to be
> decommissioned pretty soon anyway.)
x86 macOS is also now a testing void for our CI too, since
Cirrus CI switched exclusively to aarch64 :-(
So we're entirely reliant on someone having macOS x86 hardware
and being personally willing& able to send us testing reports
of any compile bugs.
> In file included from ../../accel/tcg/cputlb.c:1673:
> In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> In file included from ../../accel/tcg/cputlb.c:34:
> In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
> ^
> In file included from ../../accel/tcg/cputlb.c:1673:
> In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> In file included from ../../accel/tcg/cputlb.c:34:
> In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:55:13:
> error: couldn't allocate input reg for constraint 'x'
> asm("vmovdqa %1, %0" : "=m"(*ptr_align) : "x" (new.i));
> ^
> In file included from ../../accel/tcg/cputlb.c:1673:
> In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> In file included from ../../accel/tcg/cputlb.c:34:
> In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> 13 errors generated.
>
> -- PMM
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: vmovqdu/vmovqda inline asm doesn't compile on macos catalina
2023-06-05 11:29 ` Daniel P. Berrangé
@ 2023-06-05 12:47 ` Peter Maydell
0 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2023-06-05 12:47 UTC (permalink / raw)
To: Daniel P. Berrangé; +Cc: QEMU Developers, Richard Henderson
On Mon, 5 Jun 2023 at 12:29, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Mon, Jun 05, 2023 at 11:55:43AM +0100, Peter Maydell wrote:
> > I just noticed that the recent atomicity changes introduce a build
> > failure on x86 macos (Catalina). Now if we wanted to, we can say "this
> > is too old and outside our support policy", of course...
>
> Catalina is version 10.
>
> Current Ventura is version 13.
>
> So it fails our 'two latest releases" requirement.
>
> More importantly, IIUC, Apple have discontinued support for Catalina
> with its EOL date being Sep 2022.
Yeah; as I say I'm going to have to decommission the machine
pretty soonish anyhow.
> Having said all that, what matters more for macOS is the toolchain
> version rather than the OS version. We have very little that is
> directly dependent on the OS version. Most of our library deps come
> from HomeBrew, so it is mostly compiler compatibility that we are
> targetting for macOS.
>
> What clang version are you seeing this failure with ?
This is "Apple clang version 12.0.0 (clang-1200.0.32.29)".
> > (I don't know if newer x86 macos is OK -- this machine can't
> > upgrade to anything newer than Catalina. So it's due to be
> > decommissioned pretty soon anyway.)
>
> x86 macOS is also now a testing void for our CI too, since
> Cirrus CI switched exclusively to aarch64 :-(
>
> So we're entirely reliant on someone having macOS x86 hardware
> and being personally willing& able to send us testing reports
> of any compile bugs.
Right. That used to be me, on this machine, to some extent.
It won't be that any more by the end of summer...
-- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: vmovqdu/vmovqda inline asm doesn't compile on macos catalina
2023-06-05 10:55 vmovqdu/vmovqda inline asm doesn't compile on macos catalina Peter Maydell
2023-06-05 11:29 ` Daniel P. Berrangé
@ 2023-06-09 11:05 ` Peter Maydell
1 sibling, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2023-06-09 11:05 UTC (permalink / raw)
To: QEMU Developers; +Cc: Richard Henderson
Richard: ping, any idea if we can get rid of these errors?
I have a simple standalone reproducer if you want to try different
asm syntax:
$ cat atomic.c
__int128_t atomic16_read_ro(const __int128_t *ptr)
{
__int128_t i;
asm("vmovqda %1, %0" : "=x" (i) : "m" (*ptr));
return i;
}
$ cc -o /tmp/atomic.o atomic.c
atomic.c:4:9: error: couldn't allocate output register for constraint 'x'
thanks
-- PMM
On Mon, 5 Jun 2023 at 11:55, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> I just noticed that the recent atomicity changes introduce a build
> failure on x86 macos (Catalina). Now if we wanted to, we can say "this
> is too old and outside our support policy", of course...
> (I don't know if newer x86 macos is OK -- this machine can't
> upgrade to anything newer than Catalina. So it's due to be
> decommissioned pretty soon anyway.)
>
> In file included from ../../accel/tcg/cputlb.c:1673:
> In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> In file included from ../../accel/tcg/cputlb.c:34:
> In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
> ^
> In file included from ../../accel/tcg/cputlb.c:1673:
> In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> In file included from ../../accel/tcg/cputlb.c:34:
> In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:55:13:
> error: couldn't allocate input reg for constraint 'x'
> asm("vmovdqa %1, %0" : "=m"(*ptr_align) : "x" (new.i));
> ^
> In file included from ../../accel/tcg/cputlb.c:1673:
> In file included from ../../accel/tcg/ldst_atomicity.c.inc:12:
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:38:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqu %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/load-extract-al16-al8.h:40:13:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr_align));
> ^
> In file included from ../../accel/tcg/cputlb.c:34:
> In file included from /Users/pm215/src/qemu/include/qemu/atomic128.h:62:
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> asm("vmovdqa %1, %0" : "=x" (r.i) : "m" (*ptr));
> ^
> /Users/pm215/src/qemu/host/include/x86_64/host/atomic128-ldst.h:31:9:
> error: couldn't allocate output register for constraint 'x'
> 13 errors generated.
>
> -- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-06-09 11:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-05 10:55 vmovqdu/vmovqda inline asm doesn't compile on macos catalina Peter Maydell
2023-06-05 11:29 ` Daniel P. Berrangé
2023-06-05 12:47 ` Peter Maydell
2023-06-09 11:05 ` Peter Maydell
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 NNTP newsgroup(s).