On Tue, Aug 17, 2010 at 04:05:03PM -0600, Eric Blake wrote:
Mingw64 lacks %zu, and has the unfortunate setup where
sizeof(long)==4 but sizeof(size_t)==8. Since gnulib's
printf-posix module is not LGPLv2+, the best we can do
is manually cast to the only portable int type known to
hold size_t, and rely on gnulib's inttypes.h.
* src/remote/remote_driver.c (remoteStreamPacket): Rewrite size_t
formatting.
* src/storage/storage_driver.c (storageWipeExtent): Likewise.
---
Here's the latter option; there are many more uses of %zu, but
only in DEBUG statements. I suppose it would also be easy enough
to teach cfg.mk how to recognize and reject %z inside translated
strings, as part of 'make syntax-check'.
src/remote/remote_driver.c | 7 +++++--
src/storage/storage_driver.c | 7 ++++---
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index cb0d8e1..d9115c8 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -34,6 +34,7 @@
#include <fcntl.h>
#include <arpa/inet.h>
#include <sys/wait.h>
+#include <inttypes.h>
/* Windows socket compatibility functions. */
#include <errno.h>
@@ -8024,8 +8025,10 @@ remoteStreamPacket(virStreamPtr st,
if (status == REMOTE_CONTINUE) {
if (((4 + REMOTE_MESSAGE_MAX) - thiscall->bufferLength) < nbytes) {
- remoteError(VIR_ERR_RPC, _("data size %zu too large for payload
%d"),
- nbytes, ((4 + REMOTE_MESSAGE_MAX) -
thiscall->bufferLength));
+ remoteError(VIR_ERR_RPC,
+ _("data size %" PRIuMAX " too large for payload
%d"),
+ (uintmax_t) nbytes,
+ ((4 + REMOTE_MESSAGE_MAX) - thiscall->bufferLength));
I find the PRI* stuff rather fugly. Can't we just use %llu and
cast to (unsigned long long)
The question of printf-posix license doesn't appear relevant since
remoteError & friends all use asprintf() which is LGPLv2+ already.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://deltacloud.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|