* [PATCH] linux-user: Move PRAGMA_DISABLE_PACKED_WARNING to compiler.h
@ 2023-08-29 18:45 Warner Losh
2023-08-29 18:51 ` Warner Losh
2023-08-30 6:58 ` Thomas Huth
0 siblings, 2 replies; 3+ messages in thread
From: Warner Losh @ 2023-08-29 18:45 UTC (permalink / raw)
To: qemu-devel
Cc: Thomas Huth, Alex Bennée, Philippe Mathieu-Daudé,
Wainer dos Santos Moschetta, Laurent Vivier, Beraldo Leal,
Warner Losh
Replace the slightly older version of this in include/qemu/compiler.h
that was commit as part of bsd-user changes with the newer one from
linux-user. bsd-user has no regreassions with this.
Signed-off-by: Warner Losh <imp@bsdimp.com>
---
include/qemu/compiler.h | 3 +--
linux-user/qemu.h | 26 --------------------------
tests/lcitool/libvirt-ci | 2 +-
3 files changed, 2 insertions(+), 29 deletions(-)
diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index b0374425180..9496a65ea57 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -38,10 +38,9 @@
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only
* include the warning-suppression pragmas for clang
*/
-#ifdef __clang__
+#if defined(__clang__) && __has_warning("-Waddress-of-packed-member")
#define PRAGMA_DISABLE_PACKED_WARNING \
_Pragma("GCC diagnostic push"); \
- _Pragma("GCC diagnostic ignored \"-Wpragmas\""); \
_Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"")
#define PRAGMA_REENABLE_PACKED_WARNING \
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 4f8b55e2fb0..12821e54d0a 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -193,32 +193,6 @@ static inline bool access_ok(CPUState *cpu, int type,
These are usually used to access struct data members once the struct has
been locked - usually with lock_user_struct. */
-/*
- * Tricky points:
- * - Use __builtin_choose_expr to avoid type promotion from ?:,
- * - Invalid sizes result in a compile time error stemming from
- * the fact that abort has no parameters.
- * - It's easier to use the endian-specific unaligned load/store
- * functions than host-endian unaligned load/store plus tswapN.
- * - The pragmas are necessary only to silence a clang false-positive
- * warning: see https://bugs.llvm.org/show_bug.cgi?id=39113 .
- * - gcc has bugs in its _Pragma() support in some versions, eg
- * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only
- * include the warning-suppression pragmas for clang
- */
-#if defined(__clang__) && __has_warning("-Waddress-of-packed-member")
-#define PRAGMA_DISABLE_PACKED_WARNING \
- _Pragma("GCC diagnostic push"); \
- _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"")
-
-#define PRAGMA_REENABLE_PACKED_WARNING \
- _Pragma("GCC diagnostic pop")
-
-#else
-#define PRAGMA_DISABLE_PACKED_WARNING
-#define PRAGMA_REENABLE_PACKED_WARNING
-#endif
-
#define __put_user_e(x, hptr, e) \
do { \
PRAGMA_DISABLE_PACKED_WARNING; \
diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
index bbd55b4d18c..9bff3b763b5 160000
--- a/tests/lcitool/libvirt-ci
+++ b/tests/lcitool/libvirt-ci
@@ -1 +1 @@
-Subproject commit bbd55b4d18cce8f89b5167675e434a6941315634
+Subproject commit 9bff3b763b5531a1490e238bfbf77306dc3a6dbb
--
2.41.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] linux-user: Move PRAGMA_DISABLE_PACKED_WARNING to compiler.h
2023-08-29 18:45 [PATCH] linux-user: Move PRAGMA_DISABLE_PACKED_WARNING to compiler.h Warner Losh
@ 2023-08-29 18:51 ` Warner Losh
2023-08-30 6:58 ` Thomas Huth
1 sibling, 0 replies; 3+ messages in thread
From: Warner Losh @ 2023-08-29 18:51 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 3479 bytes --]
v1 should have had a comment removed, but didn't. v2 addresses that (should
already be in your mailbox).
Warner
On Tue, Aug 29, 2023 at 12:48 PM Warner Losh <imp@bsdimp.com> wrote:
> Replace the slightly older version of this in include/qemu/compiler.h
> that was commit as part of bsd-user changes with the newer one from
> linux-user. bsd-user has no regreassions with this.
>
> Signed-off-by: Warner Losh <imp@bsdimp.com>
> ---
> include/qemu/compiler.h | 3 +--
> linux-user/qemu.h | 26 --------------------------
> tests/lcitool/libvirt-ci | 2 +-
> 3 files changed, 2 insertions(+), 29 deletions(-)
>
> diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
> index b0374425180..9496a65ea57 100644
> --- a/include/qemu/compiler.h
> +++ b/include/qemu/compiler.h
> @@ -38,10 +38,9 @@
> * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only
> * include the warning-suppression pragmas for clang
> */
> -#ifdef __clang__
> +#if defined(__clang__) && __has_warning("-Waddress-of-packed-member")
> #define PRAGMA_DISABLE_PACKED_WARNING \
> _Pragma("GCC diagnostic push"); \
> - _Pragma("GCC diagnostic ignored \"-Wpragmas\""); \
> _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"")
>
> #define PRAGMA_REENABLE_PACKED_WARNING \
> diff --git a/linux-user/qemu.h b/linux-user/qemu.h
> index 4f8b55e2fb0..12821e54d0a 100644
> --- a/linux-user/qemu.h
> +++ b/linux-user/qemu.h
> @@ -193,32 +193,6 @@ static inline bool access_ok(CPUState *cpu, int type,
> These are usually used to access struct data members once the struct
> has
> been locked - usually with lock_user_struct. */
>
> -/*
> - * Tricky points:
> - * - Use __builtin_choose_expr to avoid type promotion from ?:,
> - * - Invalid sizes result in a compile time error stemming from
> - * the fact that abort has no parameters.
> - * - It's easier to use the endian-specific unaligned load/store
> - * functions than host-endian unaligned load/store plus tswapN.
> - * - The pragmas are necessary only to silence a clang false-positive
> - * warning: see https://bugs.llvm.org/show_bug.cgi?id=39113 .
> - * - gcc has bugs in its _Pragma() support in some versions, eg
> - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only
> - * include the warning-suppression pragmas for clang
> - */
> -#if defined(__clang__) && __has_warning("-Waddress-of-packed-member")
> -#define PRAGMA_DISABLE_PACKED_WARNING \
> - _Pragma("GCC diagnostic push"); \
> - _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"")
> -
> -#define PRAGMA_REENABLE_PACKED_WARNING \
> - _Pragma("GCC diagnostic pop")
> -
> -#else
> -#define PRAGMA_DISABLE_PACKED_WARNING
> -#define PRAGMA_REENABLE_PACKED_WARNING
> -#endif
> -
> #define __put_user_e(x, hptr, e)
> \
> do {
> \
> PRAGMA_DISABLE_PACKED_WARNING;
> \
> diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
> index bbd55b4d18c..9bff3b763b5 160000
> --- a/tests/lcitool/libvirt-ci
> +++ b/tests/lcitool/libvirt-ci
> @@ -1 +1 @@
> -Subproject commit bbd55b4d18cce8f89b5167675e434a6941315634
> +Subproject commit 9bff3b763b5531a1490e238bfbf77306dc3a6dbb
> --
> 2.41.0
>
>
[-- Attachment #2: Type: text/html, Size: 4756 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] linux-user: Move PRAGMA_DISABLE_PACKED_WARNING to compiler.h
2023-08-29 18:45 [PATCH] linux-user: Move PRAGMA_DISABLE_PACKED_WARNING to compiler.h Warner Losh
2023-08-29 18:51 ` Warner Losh
@ 2023-08-30 6:58 ` Thomas Huth
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Huth @ 2023-08-30 6:58 UTC (permalink / raw)
To: Warner Losh, qemu-devel
Cc: Alex Bennée, Philippe Mathieu-Daudé,
Wainer dos Santos Moschetta, Laurent Vivier, Beraldo Leal
On 29/08/2023 20.45, Warner Losh wrote:
> Replace the slightly older version of this in include/qemu/compiler.h
> that was commit as part of bsd-user changes with the newer one from
s/commit/committed/ ?
> linux-user. bsd-user has no regreassions with this.
s/regreassions/regressions/
>
> Signed-off-by: Warner Losh <imp@bsdimp.com>
> ---
> include/qemu/compiler.h | 3 +--
> linux-user/qemu.h | 26 --------------------------
> tests/lcitool/libvirt-ci | 2 +-
> 3 files changed, 2 insertions(+), 29 deletions(-)
>
> diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
> index b0374425180..9496a65ea57 100644
> --- a/include/qemu/compiler.h
> +++ b/include/qemu/compiler.h
> @@ -38,10 +38,9 @@
> * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only
> * include the warning-suppression pragmas for clang
> */
> -#ifdef __clang__
> +#if defined(__clang__) && __has_warning("-Waddress-of-packed-member")
> #define PRAGMA_DISABLE_PACKED_WARNING \
> _Pragma("GCC diagnostic push"); \
> - _Pragma("GCC diagnostic ignored \"-Wpragmas\""); \
> _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"")
>
> #define PRAGMA_REENABLE_PACKED_WARNING \
> diff --git a/linux-user/qemu.h b/linux-user/qemu.h
> index 4f8b55e2fb0..12821e54d0a 100644
> --- a/linux-user/qemu.h
> +++ b/linux-user/qemu.h
> @@ -193,32 +193,6 @@ static inline bool access_ok(CPUState *cpu, int type,
> These are usually used to access struct data members once the struct has
> been locked - usually with lock_user_struct. */
>
> -/*
> - * Tricky points:
> - * - Use __builtin_choose_expr to avoid type promotion from ?:,
> - * - Invalid sizes result in a compile time error stemming from
> - * the fact that abort has no parameters.
> - * - It's easier to use the endian-specific unaligned load/store
> - * functions than host-endian unaligned load/store plus tswapN.
> - * - The pragmas are necessary only to silence a clang false-positive
> - * warning: see https://bugs.llvm.org/show_bug.cgi?id=39113 .
> - * - gcc has bugs in its _Pragma() support in some versions, eg
> - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only
> - * include the warning-suppression pragmas for clang
> - */
> -#if defined(__clang__) && __has_warning("-Waddress-of-packed-member")
> -#define PRAGMA_DISABLE_PACKED_WARNING \
> - _Pragma("GCC diagnostic push"); \
> - _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"")
> -
> -#define PRAGMA_REENABLE_PACKED_WARNING \
> - _Pragma("GCC diagnostic pop")
> -
> -#else
> -#define PRAGMA_DISABLE_PACKED_WARNING
> -#define PRAGMA_REENABLE_PACKED_WARNING
> -#endif
> -
> #define __put_user_e(x, hptr, e) \
> do { \
> PRAGMA_DISABLE_PACKED_WARNING; \
> diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci
> index bbd55b4d18c..9bff3b763b5 160000
> --- a/tests/lcitool/libvirt-ci
> +++ b/tests/lcitool/libvirt-ci
> @@ -1 +1 @@
> -Subproject commit bbd55b4d18cce8f89b5167675e434a6941315634
> +Subproject commit 9bff3b763b5531a1490e238bfbf77306dc3a6dbb
Accidentially committed the libvirt-ci submodule change?
Thomas
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-08-30 6:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-29 18:45 [PATCH] linux-user: Move PRAGMA_DISABLE_PACKED_WARNING to compiler.h Warner Losh
2023-08-29 18:51 ` Warner Losh
2023-08-30 6:58 ` Thomas Huth
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).