diff mbox series

meson.build: add -mcx16 flag

Message ID 20240522193016.136866-1-artyomkunakovsky@gmail.com
State New
Headers show
Series meson.build: add -mcx16 flag | expand

Commit Message

Artyom Kunakovsky May 22, 2024, 7:30 p.m. UTC
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(-)

Comments

Daniel P. Berrangé May 23, 2024, 8:02 a.m. UTC | #1
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
Artyom Kunakovsky May 23, 2024, 8:35 a.m. UTC | #2
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.
Peter Maydell May 23, 2024, 8:52 a.m. UTC | #3
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
Daniel P. Berrangé May 23, 2024, 9:14 a.m. UTC | #4
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
Paolo Bonzini May 23, 2024, 10:12 a.m. UTC | #5
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 = []
>
diff mbox series

Patch

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 = []