[PATCH 1/3] examples: Work around mingw printf() weakness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



mingw lacks %lld and %zu support in printf(); we were getting it
from gnulib. But since commit acf522e8 stopped linking examples
against gnulib, we are getting a build failure due to -Wformat
flagging these strings. Keep the examples standalone, and work
around mingw by using manual casts to types we can portably print.

Signed-off-by: Eric Blake <eblake@xxxxxxxxxx>
---
 examples/domtop/domtop.c            | 3 ++-
 examples/object-events/event-test.c | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/examples/domtop/domtop.c b/examples/domtop/domtop.c
index 4224e4c9ec..ada5a064fb 100644
--- a/examples/domtop/domtop.c
+++ b/examples/domtop/domtop.c
@@ -241,7 +241,8 @@ print_cpu_usage(const char *dom_name,

         if (delim)
             printf("\t");
-        printf("CPU%zu: %.2lf", cpu + i, usage);
+        /* mingw lacks %zu */
+        printf("CPU%u: %.2lf", (unsigned)(cpu + i), usage);
         delim = true;
     }

diff --git a/examples/object-events/event-test.c b/examples/object-events/event-test.c
index 53d95b10d0..0c99fb33e3 100644
--- a/examples/object-events/event-test.c
+++ b/examples/object-events/event-test.c
@@ -948,10 +948,11 @@ myDomainEventBlockThresholdCallback(virConnectPtr conn ATTRIBUTE_UNUSED,
                                     unsigned long long excess,
                                     void *opaque ATTRIBUTE_UNUSED)
 {
+    /* Casts to uint64_t to work around mingw not knowing %lld */
     printf("%s EVENT: Domain %s(%d) block threshold callback dev '%s'(%s), "
-           "threshold: '%llu', excess: '%llu'",
+           "threshold: '%" PRIu64 "', excess: '%" PRIu64 "'",
            __func__, virDomainGetName(dom), virDomainGetID(dom),
-           dev, NULLSTR(path), threshold, excess);
+           dev, NULLSTR(path), (uint64_t)threshold, (uint64_t)excess);
     return 0;
 }

-- 
2.20.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux