Source-Changes-D archive

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

Re: CVS commit: src/crypto/external/bsd/netpgp/dist/src/lib



On Sat, Jun 26, 2010 at 06:25:23AM +0200, Joerg Sonnenberger wrote:
 > > It would be better to make this a check which is size_t dependent,
 > > rather than platform-dependent.
 > 
 > The idea is to black list platforms that don't do %zu and there is no
 > way to do that without breaking cross-compilation. It is still
 > preferable to use that if it is available, e.g. to help format string
 > checks.

Compromising the autoconfiguration not work properly in the name of
cross-compilation, though, is misguided. Can't you have it run the
test if it's not a cross-compiler and only if it is fall back to the
platform test? Or is this one of the things where autoconf falls apart
because it's not written in a programming language?

I suppose the best available comprehensive solution is to use PRIu***
garble in the code and then if necessary have autoconf figure out what
the garble should expand to based on SIZE_MAX.

Are there non-theoretical platforms that are missing both SIZE_MAX and
SIZE_T_MAX defines where it isn't either 0xffffffff or 0xffffffffffffffff?

(not counting where it might technically be 0x7fffffff because someone
was unclear on it being unsigned -- that doesn't affect printf)

 > > I still don't understand why autoconf is passing C pre-processor
 > > directives down.
 > > 
 > > #if sizeof(size_t) == sizeof(int)
 > > ...
 > > #elif sizeof(size_t) == sizeof(long)
 > > ...
 > > #endif
 > > 
 > > directly in the code is much more readable.

It would be nice if that worked... it did in Borland's compiler back
in the day. I suppose someone on the standards committee thought it
was OK to have to teach the preprocessor the entire expression syntax
but not the type name syntax...

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index