qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Cc: qemu-devel@nongnu.org, "Cleber Rosa" <crosa@redhat.com>,
	"John Snow" <jsnow@redhat.com>,
	"Michael Roth" <michael.roth@amd.com>,
	"Alexandre Iooss" <erdnaxe@crans.org>,
	"Konstantin Kostiuk" <kkostiuk@redhat.com>,
	"Stefano Garzarella" <sgarzare@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Mahmoud Mandour" <ma.mandourr@gmail.com>
Subject: Re: [PATCH 07/12] win32: use compiler option instead of attribute gcc_struct
Date: Thu, 31 Oct 2024 09:28:12 +0000	[thread overview]
Message-ID: <ZyNNrKi2Of8j5WEh@redhat.com> (raw)
In-Reply-To: <20241031040426.772604-8-pierrick.bouvier@linaro.org>

On Wed, Oct 30, 2024 at 09:04:21PM -0700, Pierrick Bouvier wrote:
> This attribute is not recognized by clang, but the associated option is.
> 
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
>  meson.build                               | 8 ++++----
>  include/qemu/compiler.h                   | 7 +------
>  subprojects/libvhost-user/libvhost-user.h | 6 +-----
>  3 files changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index d8af08299e0..d0d5dbe1479 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -330,10 +330,10 @@ elif host_os == 'sunos'
>  elif host_os == 'haiku'
>    qemu_common_flags += ['-DB_USE_POSITIVE_POSIX_ERRORS', '-D_BSD_SOURCE', '-fPIC']
>  elif host_os == 'windows'
> -  if not compiler.compiles('struct x { int y; } __attribute__((gcc_struct));',
> -                           args: '-Werror')
> -    error('Your compiler does not support __attribute__((gcc_struct)) - please use GCC instead of Clang')
> -  endif
> +  # https://gcc.gnu.org/onlinedocs/gcc/x86-Type-Attributes.html
> +  # We use this compilation option instead of relying on gcc_struct attribute
> +  # because clang does not support it (but supports the option).
> +  qemu_common_flags += ['-mno-ms-bitfields']
>  endif

Is this really safe for us to use ?   The current gcc_struct
attribute affects only structs marked as QEMU_PACKED. This
flag will affect all code.

If we call from QEMU code into Windows native APIs, and pass
or receive structs, then those structs' layouts would be
affected by this flag. I don't have a specific example, but
this feels unsafe to me, otherwise we would have done this
originally rather than only targetting internal packed structs
with the gcc_struct attribute.


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	other threads:[~2024-10-31  9:28 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-31  4:04 [PATCH 00/12] Enable building plugins on Windows with Clang Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 01/12] scripts: remove erroneous file that breaks git clone on Windows Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 02/12] contrib/plugins/cflow: fix warning Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 03/12] meson: build contrib/plugins with meson Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 04/12] contrib/plugins: remove Makefile for contrib/plugins Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 05/12] qga: fix -Wsometimes-uninitialized windows warning Pierrick Bouvier
2024-10-31 13:32   ` Konstantin Kostiuk
2024-11-04 13:43     ` Konstantin Kostiuk
2024-10-31  4:04 ` [PATCH 06/12] qga: fix missing static and prototypes windows warnings Pierrick Bouvier
2024-10-31  4:11   ` Philippe Mathieu-Daudé
2024-10-31 13:32   ` Konstantin Kostiuk
2024-11-04 13:43     ` Konstantin Kostiuk
2024-11-04 22:30       ` Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 07/12] win32: use compiler option instead of attribute gcc_struct Pierrick Bouvier
2024-10-31  9:28   ` Daniel P. Berrangé [this message]
2024-10-31 10:44     ` Thomas Huth
2024-10-31 19:01       ` Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 08/12] plugins: enable linking with clang/lld Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 09/12] plugins: add missing export for qemu_plugin_num_vcpus Pierrick Bouvier
2024-10-31  4:14   ` Philippe Mathieu-Daudé
2024-10-31  4:04 ` [PATCH 10/12] plugins: detect qemu plugin API symbols from header Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 11/12] plugins: eradicate qemu-plugins.symbols static file Pierrick Bouvier
2024-10-31  4:04 ` [PATCH 12/12] docs: add information on how to setup build environments Pierrick Bouvier
2024-10-31  9:24   ` Daniel P. Berrangé
2024-10-31 19:38     ` Pierrick Bouvier
2024-11-04 15:58   ` Peter Maydell
2024-11-04 16:08     ` Michael S. Tsirkin
2024-11-04 22:09       ` Pierrick Bouvier
2024-11-04 22:05     ` Pierrick Bouvier
2024-11-05 10:15       ` Peter Maydell
2024-11-06 17:13 ` [PATCH 00/12] Enable building plugins on Windows with Clang Pierrick Bouvier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZyNNrKi2Of8j5WEh@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=crosa@redhat.com \
    --cc=erdnaxe@crans.org \
    --cc=jsnow@redhat.com \
    --cc=kkostiuk@redhat.com \
    --cc=ma.mandourr@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sgarzare@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).