* [PULL 0/1] Quick fix patches
@ 2023-08-30 15:40 Warner Losh
2023-08-30 15:40 ` [PULL 1/1] bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h Warner Losh
2023-08-31 16:15 ` [PULL 0/1] Quick fix patches Stefan Hajnoczi
0 siblings, 2 replies; 3+ messages in thread
From: Warner Losh @ 2023-08-30 15:40 UTC (permalink / raw)
To: qemu-devel
Cc: Kyle Evans, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé, Thomas Huth, Laurent Vivier,
Alex Bennée, Warner Losh
The following changes since commit 813bac3d8d70d85cb7835f7945eb9eed84c2d8d0:
Merge tag '2023q3-bsd-user-pull-request' of https://gitlab.com/bsdimp/qemu into staging (2023-08-29 08:58:00 -0400)
are available in the Git repository at:
https://gitlab.com/bsdimp/qemu.git tags/quick-fix-pull-request
for you to fetch changes up to 8a45962be33d4f7449567f8b9e07c724733ca303:
bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h (2023-08-30 08:57:08 -0600)
----------------------------------------------------------------
Pull request: fix ci by fixing clang-user
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org
iQIzBAABCgAdFiEEIDX4lLAKo898zeG3bBzRKH2wEQAFAmTvYpcACgkQbBzRKH2w
EQCKvhAA3nfvm+UMoRbOjFGuOOZKy+HR+nk40rxHa8CzOabbJnx4EtdBZTnNJ+f5
WxLvEIzQw6iLYoqr6Rkcn0MkfYryesDScig7tQW0A87DtivXbDyrRbcmAQuCrcSe
EpEqjBOueiC9xe1U9hzdpNyBkuXQWFUNGKX6swR5vpOEb1hHKzFMY+60vEgcjcjQ
/y7cQcwRJeMNyBEwAM4HSgcVIKxB8ZmIQpIbsWJPAJhEZZE6SvTiKhM0PlZvrwnv
dlEV8F68f3cBka0QmX5JJNJQdXn+2gb2Ix06dm8z7BWtiZoH/rcJ0FfVjMk7bkcC
2e0J0jI9JTf1MKNGHbO8V2YoZw+jCB9nr6N8HEymgla7bK6QPD6LIdTs0i6PUEB8
PUf902NrOS+kbWTGsb9GINegklk3pJ0jnFZagqfCUxARQ2qrqmA6q5vg9d0FjPVl
vJ13weKkSHW126/4Wr23EhUFIoYtiuMjgz/Bjd5TvzhvnVGJiPJaY9sGpgZZ3PJJ
EPCRms5MRut/NE0znKQ9ozAz1FMdVd2XnXeClWJd2NUmGc7ZbBGMcSvUYdC9KLIK
oSQRBTUDgGIdHnB+g367vKs98ir+03gOcpQk9z0fy25wCymmp/Uco8jsm6hCgSGn
x7b9R6/+92xd/IZFZm5N3/llu6JHYPEMhdg8evNp9VTFPoi9PYc=
=jG8p
-----END PGP SIGNATURE-----
----------------------------------------------------------------
Warner Losh (1):
bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h
bsd-user/qemu.h | 27 +++++++++++++++++++++++++++
include/qemu/compiler.h | 30 ------------------------------
2 files changed, 27 insertions(+), 30 deletions(-)
--
2.41.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PULL 1/1] bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h
2023-08-30 15:40 [PULL 0/1] Quick fix patches Warner Losh
@ 2023-08-30 15:40 ` Warner Losh
2023-08-31 16:15 ` [PULL 0/1] Quick fix patches Stefan Hajnoczi
1 sibling, 0 replies; 3+ messages in thread
From: Warner Losh @ 2023-08-30 15:40 UTC (permalink / raw)
To: qemu-devel
Cc: Kyle Evans, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé, Thomas Huth, Laurent Vivier,
Alex Bennée, Warner Losh, Peter Maydell
For the moment, move PRAGMA_DISABLE_PACKED_WARNING and
PRAGMA_ENABLE_PACKED_WARNING back to bsd-user/qemu.h.
Of course, these should be in compiler.h, but that interferes with too
many things at the moment, so take one step back to unbreak clang
linux-user builds first. Use the exact same version that's in
linux-user/qemu.h since that's what should be in compiler.h.
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
bsd-user/qemu.h | 27 +++++++++++++++++++++++++++
include/qemu/compiler.h | 30 ------------------------------
2 files changed, 27 insertions(+), 30 deletions(-)
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 4cfd5c63371..d3158bc2edd 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -273,6 +273,33 @@ static inline bool access_ok(int type, abi_ulong addr, abi_ulong size)
* 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/include/qemu/compiler.h b/include/qemu/compiler.h
index b0374425180..a309f90c768 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -22,36 +22,6 @@
#define QEMU_EXTERN_C extern
#endif
-/*
- * 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 .
- * - We have to disable -Wpragmas warnings to avoid a complaint about
- * an unknown warning type from older compilers that don't know about
- * -Waddress-of-packed-member.
- * - 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
- */
-#ifdef __clang__
-#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 \
- _Pragma("GCC diagnostic pop")
-
-#else
-#define PRAGMA_DISABLE_PACKED_WARNING
-#define PRAGMA_REENABLE_PACKED_WARNING
-#endif
-
#if defined(_WIN32) && (defined(__x86_64__) || defined(__i386__))
# define QEMU_PACKED __attribute__((gcc_struct, packed))
#else
--
2.41.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PULL 0/1] Quick fix patches
2023-08-30 15:40 [PULL 0/1] Quick fix patches Warner Losh
2023-08-30 15:40 ` [PULL 1/1] bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h Warner Losh
@ 2023-08-31 16:15 ` Stefan Hajnoczi
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2023-08-31 16:15 UTC (permalink / raw)
To: Warner Losh
Cc: qemu-devel, Kyle Evans, Beraldo Leal, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé, Thomas Huth, Laurent Vivier,
Alex Bennée, Warner Losh
[-- Attachment #1: Type: text/plain, Size: 115 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/8.2 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-08-31 16:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-30 15:40 [PULL 0/1] Quick fix patches Warner Losh
2023-08-30 15:40 ` [PULL 1/1] bsd-user: Move PRAGMA_DISABLE_PACKED_WARNING etc to qemu.h Warner Losh
2023-08-31 16:15 ` [PULL 0/1] Quick fix patches Stefan Hajnoczi
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).