Date: Wed, 9 Oct 2002 14:22:58 -0700 From: "David O'Brien" <obrien@FreeBSD.ORG> To: Peter Wemm <peter@wemm.org> Cc: Bruce Evans <bde@zeta.org.au>, Mike Barcroft <mike@FreeBSD.ORG>, Andrew Gallatin <gallatin@cs.duke.edu>, freebsd-arch@FreeBSD.ORG Subject: Re: lp64 vs lp32 printf Message-ID: <20021009212258.GA65457@dragon.nuxi.com> In-Reply-To: <20021009173106.9D1862A88D@canning.wemm.org> References: <20021009161756.E4040-100000@gamplex.bde.org> <20021009173106.9D1862A88D@canning.wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Oct 09, 2002 at 10:31:06AM -0700, Peter Wemm wrote: > Bruce Evans wrote: > > On Tue, 8 Oct 2002, Mike Barcroft wrote: > > > > > Andrew Gallatin <gallatin@cs.duke.edu> writes: > > > > > > > > What's the accepted way to printf something (like sizeof()) which > > > > boils down to "unsigned int" on x86 and "unsigned long" on the LP64 > > > > platforms? > > > > > > In userland you can use %z for printing size_t's. In the kernel, > > > casting to intmax_t/uintmax_t and using %j is correct. > > > > Um, using intmax_t to print size_t's would be incorrect, since it is > > signed. Using uintmax_t would be bloat. Very few typedefed types > > need the full bloat of [u]intmax_t, and size_t is unlikely to become > > one of them before casting it to uintmax_t to print it becomes a style > > bug in the kernel too (when %z is implemented). > > Bring it on! The sooner %z gets here the better. The only problem is that > gcc has been taught that %z means something different in the kernel. :-( Yeah, I can fix that along with fixing %z. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021009212258.GA65457>