qemu-devel
[Top][All Lists]
Advanced

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

Re: vmovqdu/vmovqda inline asm doesn't compile on macos catalina


From: Daniel P . Berrangé
Subject: Re: vmovqdu/vmovqda inline asm doesn't compile on macos catalina
Date: Mon, 5 Jun 2023 12:29:30 +0100
User-agent: Mutt/2.2.9 (2022-11-12)

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 :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]