[libvirt] [PATCH v2 1/2] examples: Drop event-test.c dependency on gnulib <verify.h>

Eric Blake eblake at redhat.com
Tue Jan 8 05:58:41 UTC 2019


Pulling in gnulib just for the <verify.h> header is rather
expensive, especially since that header does not require us
to link against gnulib.  It's better to make the event-test
example be standalone by just open-coding a more limited form
of a verify() macro that depends on modern gcc (we have enough
CI coverage that even though the verify is now a no-op in
older setups, we will still notice if we fail to add an event
- as a quick test, I still provoked a compile failure on
Fedora 29 by deleting a line from domainEvents).

Signed-off-by: Eric Blake <eblake at redhat.com>
---
 examples/object-events/event-test.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/examples/object-events/event-test.c b/examples/object-events/event-test.c
index 8499e0b38e..6694d3dffc 100644
--- a/examples/object-events/event-test.c
+++ b/examples/object-events/event-test.c
@@ -6,8 +6,6 @@
 #include <signal.h>
 #include <inttypes.h>

-#include <verify.h>
-
 #define VIR_ENUM_SENTINELS

 #include <libvirt/libvirt.h>
@@ -17,6 +15,14 @@
 #define STREQ(a, b) (strcmp(a, b) == 0)
 #define NULLSTR(s) ((s) ? (s) : "<null>")

+#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
+     && (201112L <= __STDC_VERSION__  || !defined __STRICT_ANSI__) \
+     && !defined __cplusplus)
+# define verify(cond) _Static_assert(cond, "verify (" #cond ")")
+#else
+# define verify(cond)
+#endif
+
 #ifndef ATTRIBUTE_UNUSED
 # define ATTRIBUTE_UNUSED __attribute__((__unused__))
 #endif
-- 
2.20.1




More information about the libvir-list mailing list