* [PATCH 0/2] misc: Remove pre-C99/C11 checks
@ 2026-06-13 17:51 Philippe Mathieu-Daudé
2026-06-13 17:51 ` [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks Philippe Mathieu-Daudé
2026-06-13 17:51 ` [PATCH 2/2] qom/object: Remove pre-C11 check Philippe Mathieu-Daudé
0 siblings, 2 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-06-13 17:51 UTC (permalink / raw)
To: qemu-devel
Cc: Edgar E. Iglesias, xen-devel, Daniel P. Berrangé,
Anthony PERARD, Paolo Bonzini, Stefano Stabellini,
Philippe Mathieu-Daudé
We uses C11 since 5 years now, time to
remove few obsolete __STDC_VERSION__ checks.
Philippe Mathieu-Daudé (2):
hw/xen/interface: Remove pre-C99 checks
qom/object: Remove pre-C11 check
include/hw/xen/interface/physdev.h | 2 +-
include/hw/xen/interface/version.h | 5 ++---
include/hw/xen/interface/xen-compat.h | 2 --
include/hw/xen/interface/xen.h | 14 --------------
qom/object.c | 14 +-------------
5 files changed, 4 insertions(+), 33 deletions(-)
--
2.53.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks
2026-06-13 17:51 [PATCH 0/2] misc: Remove pre-C99/C11 checks Philippe Mathieu-Daudé
@ 2026-06-13 17:51 ` Philippe Mathieu-Daudé
2026-06-13 18:13 ` Bastian Blank
2026-06-13 17:51 ` [PATCH 2/2] qom/object: Remove pre-C11 check Philippe Mathieu-Daudé
1 sibling, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-06-13 17:51 UTC (permalink / raw)
To: qemu-devel
Cc: Edgar E. Iglesias, xen-devel, Daniel P. Berrangé,
Anthony PERARD, Paolo Bonzini, Stefano Stabellini,
Philippe Mathieu-Daudé
We mandate a compiler supporting C99 since 2019-01-17 in
commit 7be41675f7c ("configure: Force the C standard to gnu99"),
thus supporting flexible array members. Remove what is now dead
code.
Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
---
include/hw/xen/interface/physdev.h | 2 +-
include/hw/xen/interface/version.h | 5 ++---
include/hw/xen/interface/xen-compat.h | 2 --
include/hw/xen/interface/xen.h | 14 --------------
4 files changed, 3 insertions(+), 20 deletions(-)
diff --git a/include/hw/xen/interface/physdev.h b/include/hw/xen/interface/physdev.h
index f0c0d4727c0..8da03b685ad 100644
--- a/include/hw/xen/interface/physdev.h
+++ b/include/hw/xen/interface/physdev.h
@@ -283,7 +283,7 @@ struct physdev_pci_device_add {
* First element ([0]) is PXM domain associated with the device (if
* XEN_PCI_DEV_PXM is set)
*/
- uint32_t optarr[XEN_FLEX_ARRAY_DIM];
+ uint32_t optarr[0];
};
typedef struct physdev_pci_device_add physdev_pci_device_add_t;
DEFINE_XEN_GUEST_HANDLE(physdev_pci_device_add_t);
diff --git a/include/hw/xen/interface/version.h b/include/hw/xen/interface/version.h
index 9c78b4f3b6a..41ff28c7ee5 100644
--- a/include/hw/xen/interface/version.h
+++ b/include/hw/xen/interface/version.h
@@ -77,9 +77,8 @@ typedef char xen_commandline_t[1024];
*/
#define XENVER_build_id 10
struct xen_build_id {
- uint32_t len; /* IN: size of buf[]. */
- unsigned char buf[XEN_FLEX_ARRAY_DIM];
- /* OUT: Variable length buffer with build_id. */
+ uint32_t len; /* IN: size of buf[]. */
+ unsigned char buf[0]; /* OUT: Variable length buffer with build_id. */
};
typedef struct xen_build_id xen_build_id_t;
diff --git a/include/hw/xen/interface/xen-compat.h b/include/hw/xen/interface/xen-compat.h
index 97fe6984989..582c0182367 100644
--- a/include/hw/xen/interface/xen-compat.h
+++ b/include/hw/xen/interface/xen-compat.h
@@ -24,6 +24,4 @@
#error "These header files do not support the requested interface version."
#endif
-#define COMPAT_FLEX_ARRAY_DIM XEN_FLEX_ARRAY_DIM
-
#endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */
diff --git a/include/hw/xen/interface/xen.h b/include/hw/xen/interface/xen.h
index 920567e0062..a6f4aa61993 100644
--- a/include/hw/xen/interface/xen.h
+++ b/include/hw/xen/interface/xen.h
@@ -36,15 +36,6 @@ DEFINE_XEN_GUEST_HANDLE(uint64_t);
DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
-/* Define a variable length array (depends on compiler). */
-#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-#define XEN_FLEX_ARRAY_DIM
-#elif defined(__GNUC__)
-#define XEN_FLEX_ARRAY_DIM 0
-#else
-#define XEN_FLEX_ARRAY_DIM 1 /* variable size */
-#endif
-
/* Turn a plain number into a C unsigned (long (long)) constant. */
#define __xen_mk_uint(x) x ## U
#define __xen_mk_ulong(x) x ## UL
@@ -986,13 +977,8 @@ typedef struct {
((d) >> 8) & 0xFF, ((d) >> 0) & 0xFF, \
e1, e2, e3, e4, e5, e6}}
-#if defined(__STDC_VERSION__) ? __STDC_VERSION__ >= 199901L : defined(__GNUC__)
#define XEN_DEFINE_UUID(a, b, c, d, e1, e2, e3, e4, e5, e6) \
((xen_uuid_t)XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6))
-#else
-#define XEN_DEFINE_UUID(a, b, c, d, e1, e2, e3, e4, e5, e6) \
- XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6)
-#endif /* __STDC_VERSION__ / __GNUC__ */
#endif /* !__ASSEMBLY__ */
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] qom/object: Remove pre-C11 check
2026-06-13 17:51 [PATCH 0/2] misc: Remove pre-C99/C11 checks Philippe Mathieu-Daudé
2026-06-13 17:51 ` [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks Philippe Mathieu-Daudé
@ 2026-06-13 17:51 ` Philippe Mathieu-Daudé
2026-06-15 5:05 ` Markus Armbruster
1 sibling, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-06-13 17:51 UTC (permalink / raw)
To: qemu-devel
Cc: Edgar E. Iglesias, xen-devel, Daniel P. Berrangé,
Anthony PERARD, Paolo Bonzini, Stefano Stabellini,
Philippe Mathieu-Daudé
We mandate a compiler supporting C11 since 2021-06-15 in
commit d22797ce36a ("configure: Use -std=gnu11"), thus the
max_align_t type definition exists. Remove what is now dead
code.
Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
---
qom/object.c | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index 0ac201de4c1..f79b2cf3618 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -675,18 +675,6 @@ static void object_finalize(void *data)
}
}
-/* Find the minimum alignment guaranteed by the system malloc. */
-#if __STDC_VERSION__ >= 201112L
-typedef max_align_t qemu_max_align_t;
-#else
-typedef union {
- long l;
- void *p;
- double d;
- long double ld;
-} qemu_max_align_t;
-#endif
-
static Object *object_new_with_type(Type type)
{
Object *obj;
@@ -703,7 +691,7 @@ static Object *object_new_with_type(Type type)
* Do not use qemu_memalign unless required. Depending on the
* implementation, extra alignment implies extra overhead.
*/
- if (likely(align <= __alignof__(qemu_max_align_t))) {
+ if (likely(align <= __alignof__(max_align_t))) {
obj = g_malloc(size);
obj_free = g_free;
} else {
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks
2026-06-13 17:51 ` [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks Philippe Mathieu-Daudé
@ 2026-06-13 18:13 ` Bastian Blank
2026-06-14 16:40 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 6+ messages in thread
From: Bastian Blank @ 2026-06-13 18:13 UTC (permalink / raw)
To: xen-devel, qemu-devel
On Sat, Jun 13, 2026 at 07:51:50PM +0200, Philippe Mathieu-Daudé wrote:
> We mandate a compiler supporting C99 since 2019-01-17 in
> commit 7be41675f7c ("configure: Force the C standard to gnu99"),
> thus supporting flexible array members. Remove what is now dead
> code.
> + uint32_t optarr[0];
This is no flexible array member. "optarr[]" would be.
https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Flexible-Array-Fields.html
Or are you talking about something different?
Bastian
--
The best diplomat I know is a fully activated phaser bank.
-- Scotty
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks
2026-06-13 18:13 ` Bastian Blank
@ 2026-06-14 16:40 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2026-06-14 16:40 UTC (permalink / raw)
To: Bastian Blank, xen-devel, qemu-devel
On 13/6/26 20:13, Bastian Blank wrote:
> On Sat, Jun 13, 2026 at 07:51:50PM +0200, Philippe Mathieu-Daudé wrote:
>> We mandate a compiler supporting C99 since 2019-01-17 in
>> commit 7be41675f7c ("configure: Force the C standard to gnu99"),
>> thus supporting flexible array members. Remove what is now dead
>> code.
>
>> + uint32_t optarr[0];
>
> This is no flexible array member. "optarr[]" would be.
Oops yes you are right... This is what we want here.
>
> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Flexible-Array-Fields.html
>
> Or are you talking about something different?
>
> Bastian
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] qom/object: Remove pre-C11 check
2026-06-13 17:51 ` [PATCH 2/2] qom/object: Remove pre-C11 check Philippe Mathieu-Daudé
@ 2026-06-15 5:05 ` Markus Armbruster
0 siblings, 0 replies; 6+ messages in thread
From: Markus Armbruster @ 2026-06-15 5:05 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: qemu-devel, Edgar E. Iglesias, xen-devel, Daniel P. Berrangé,
Anthony PERARD, Paolo Bonzini, Stefano Stabellini
Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> writes:
> We mandate a compiler supporting C11 since 2021-06-15 in
> commit d22797ce36a ("configure: Use -std=gnu11"), thus the
> max_align_t type definition exists. Remove what is now dead
> code.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
> ---
> qom/object.c | 14 +-------------
> 1 file changed, 1 insertion(+), 13 deletions(-)
>
> diff --git a/qom/object.c b/qom/object.c
> index 0ac201de4c1..f79b2cf3618 100644
> --- a/qom/object.c
> +++ b/qom/object.c
> @@ -675,18 +675,6 @@ static void object_finalize(void *data)
> }
> }
>
> -/* Find the minimum alignment guaranteed by the system malloc. */
> -#if __STDC_VERSION__ >= 201112L
> -typedef max_align_t qemu_max_align_t;
> -#else
> -typedef union {
> - long l;
> - void *p;
> - double d;
> - long double ld;
> -} qemu_max_align_t;
> -#endif
> -
> static Object *object_new_with_type(Type type)
> {
> Object *obj;
> @@ -703,7 +691,7 @@ static Object *object_new_with_type(Type type)
> * Do not use qemu_memalign unless required. Depending on the
> * implementation, extra alignment implies extra overhead.
> */
> - if (likely(align <= __alignof__(qemu_max_align_t))) {
> + if (likely(align <= __alignof__(max_align_t))) {
> obj = g_malloc(size);
> obj_free = g_free;
> } else {
obj = qemu_memalign(align, size);
obj_free = qemu_vfree;
}
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Context leads me to qemu_try_memalign() via qemu_memalign():
#elif defined(CONFIG_ALIGNED_MALLOC)
ptr = _aligned_malloc(size, alignment);
#elif defined(CONFIG_VALLOC)
ptr = valloc(size);
#elif defined(CONFIG_MEMALIGN)
ptr = memalign(alignment, size);
#else
#error No function to allocate aligned memory available
#endif
C11 provides aligned_alloc().
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-06-15 5:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-13 17:51 [PATCH 0/2] misc: Remove pre-C99/C11 checks Philippe Mathieu-Daudé
2026-06-13 17:51 ` [PATCH 1/2] hw/xen/interface: Remove pre-C99 checks Philippe Mathieu-Daudé
2026-06-13 18:13 ` Bastian Blank
2026-06-14 16:40 ` Philippe Mathieu-Daudé
2026-06-13 17:51 ` [PATCH 2/2] qom/object: Remove pre-C11 check Philippe Mathieu-Daudé
2026-06-15 5:05 ` Markus Armbruster
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.