[PATCH] meson.build: add -mcx16 flag

Artyom Kunakovsky posted 1 patch 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240522193016.136866-1-artyomkunakovsky@gmail.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Thomas Huth <thuth@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] meson.build: add -mcx16 flag
Posted by Artyom Kunakovsky 6 months ago
fix linker error if the project was configured by the './configure --cpu=unknown --target-list=riscv64-softmmu' command

Signed-off-by: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index a9de71d450..0c24878c86 100644
--- a/meson.build
+++ b/meson.build
@@ -298,7 +298,7 @@ endforeach
 
 qemu_common_flags = [
   '-D_GNU_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE',
-  '-fno-strict-aliasing', '-fno-common', '-fwrapv' ]
+  '-fno-strict-aliasing', '-fno-common', '-fwrapv', '-mcx16' ]
 qemu_cflags = []
 qemu_ldflags = []
 
-- 
2.25.1
Re: [PATCH] meson.build: add -mcx16 flag
Posted by Paolo Bonzini 6 months ago
On 5/22/24 21:30, Artyom Kunakovsky wrote:
> fix linker error if the project was configured by the './configure --cpu=unknown --target-list=riscv64-softmmu' command
> 
> Signed-off-by: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
> ---
>   meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index a9de71d450..0c24878c86 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -298,7 +298,7 @@ endforeach
>   
>   qemu_common_flags = [
>     '-D_GNU_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE',
> -  '-fno-strict-aliasing', '-fno-common', '-fwrapv' ]
> +  '-fno-strict-aliasing', '-fno-common', '-fwrapv', '-mcx16' ]

-mcx16 does not exist on non-x86 hosts so this change breaks them.

QEMU's configure script knows to add -mcx16 on x86 hosts; you've added 
--cpu=unknown yourself, you have to add --extra-cflags=-mcx16 as well.

Paolo

>   qemu_cflags = []
>   qemu_ldflags = []
>
Re: [PATCH] meson.build: add -mcx16 flag
Posted by Daniel P. Berrangé 6 months ago
On Wed, May 22, 2024 at 10:30:16PM +0300, Artyom Kunakovsky wrote:
> fix linker error if the project was configured by the './configure --cpu=unknown --target-list=riscv64-softmmu' command

Isn't this simply user error, with the right answer being
to pass a valid CPU target to --cpu, rather than "unknown"

> 
> Signed-off-by: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
> ---
>  meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

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 :|
Re: [PATCH] meson.build: add -mcx16 flag
Posted by Peter Maydell 6 months ago
On Thu, 23 May 2024 at 09:04, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Wed, May 22, 2024 at 10:30:16PM +0300, Artyom Kunakovsky wrote:
> > fix linker error if the project was configured by the './configure --cpu=unknown --target-list=riscv64-softmmu' command
>
> Isn't this simply user error, with the right answer being
> to pass a valid CPU target to --cpu, rather than "unknown"

I've felt for ages that we should probably drop the "unrecognized
host CPU, fall back to TCI" path and insist that we only run
on recognized CPU types. Then we could also sanity check that
the user passed a valid --cpu option.

thanks
-- PMM
Re: [PATCH] meson.build: add -mcx16 flag
Posted by Daniel P. Berrangé 6 months ago
On Thu, May 23, 2024 at 09:52:35AM +0100, Peter Maydell wrote:
> On Thu, 23 May 2024 at 09:04, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Wed, May 22, 2024 at 10:30:16PM +0300, Artyom Kunakovsky wrote:
> > > fix linker error if the project was configured by the './configure --cpu=unknown --target-list=riscv64-softmmu' command
> >
> > Isn't this simply user error, with the right answer being
> > to pass a valid CPU target to --cpu, rather than "unknown"
> 
> I've felt for ages that we should probably drop the "unrecognized
> host CPU, fall back to TCI" path and insist that we only run
> on recognized CPU types. Then we could also sanity check that
> the user passed a valid --cpu option.

Yeah, I think that's reasonable. Worst case, a user will have to send us a
patch to recognise a new CPU target, at which point at least we know that
it exists as a possible target.

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


Re: [PATCH] meson.build: add -mcx16 flag
Posted by Artyom Kunakovsky 6 months ago
The compilation error caused by attempting of use 128 bit '__sync_val_compare_and_swap_16', which is supported on the host but not enabled, I don't think this is expected behavior.

Also the patch is little incomplete, I already sent v2 patch, that applying the flag only for x86_64 host.

With regards,
Artyom K.
________________________________
From: Daniel P. Berrangé <berrange@redhat.com>
Sent: Thursday, May 23, 2024 11:02:31 AM
To: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
Cc: qemu-devel@nongnu.org <qemu-devel@nongnu.org>
Subject: Re: [PATCH] meson.build: add -mcx16 flag

On Wed, May 22, 2024 at 10:30:16PM +0300, Artyom Kunakovsky wrote:
> fix linker error if the project was configured by the './configure --cpu=unknown --target-list=riscv64-softmmu' command

Isn't this simply user error, with the right answer being
to pass a valid CPU target to --cpu, rather than "unknown"

>
> Signed-off-by: Artyom Kunakovsky <artyomkunakovsky@gmail.com>
> ---
>  meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

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