Wireshark-dev: Re: [Wireshark-dev] [PATCH] Fix compilation failures on x86_64-unknown-linux-gnu
From: Jeff Morriss <jeff.morriss@xxxxxxxxxxx>
Date: Wed, 30 May 2007 10:18:08 +0800


Guy Harris wrote:
Jeff Morriss wrote:
Guy Harris wrote:
Jeff Morriss wrote:
Problem is that how you print 64-bit numbers varies. %llu doesn't always work
...and neither does "long long" as a data type.

(for example the Windoze buildbot is now red). Instead the PRI*64 macros should be used.
Or the G_GINT64_MODIFIER macro. I seem to remember that there was an issue a while ago where the native *printf on Windows used %I64[doxu] but the Windows GLib *printf routines used %ll[doxu], or something such as that (because it had its own formatting routine).

I remembered correctly:

	http://www.ethereal.com/lists/ethereal-dev/200509/msg00368.html

although, unfortunately, GLib 1.2[.x] has some severe breakage for 64-bit printing on Windows:

	http://www.ethereal.com/lists/ethereal-dev/200509/msg00370.html

[...]

so we may be doomed to having formatting of 64-bit values not work quite right on Windows builds with GTK+ 1.2[.x].

[...]

Should the PRI*64 macros (which I just recently started adding--meaning there were some there before, it's just that only recently did /I/ add some) be replaced with G_GINT64_MODIFIER?

Yes (except for calls that use printf/fprintf/sprintf/snprintf rather than the GLib equivalents, if any; there should be as few of those as possible). We should also update the documentation.

Possibly stupid question (and a bit too late since you already did the above but it might be worth it for the simplification for future coders): do we still need GTK1.2 on Windows? I (and some others) still need it on Unix (because of the massive list of dependencies for GTK2 or just plain old systems) but does anybody actually use the GTK1.2 Windows version?