Bruce Momjian <[EMAIL PROTECTED]> writes: > Your version will break more often because we are assuming we can > determine the endian-ness of the OS, _and_ for quad off_t types, > assuming we know that is stored the same too. While we have ending for > int's, I have no idea if quads are always stored the same.
There is precedent for problems of that ilk, too, cf PDP_ENDIAN: years ago someone made double-word-integer software routines and did not think twice about which word should appear first in storage, with the consequence that the storage order was neither little-endian nor big-endian. (We have exactly the same issue with our CRC routines for compilers without int64: the two-int32 struct is defined in a way that's compatible with little-endian storage, and on a big-endian machine it'll produce a funny storage order.) Unless someone can point to a supported (or potentially interesting) platform on which off_t is indeed not integral, I think the shift-based code is our safest bet. (The precedent of the off_t checking code in configure makes me really doubt that there are any platforms with non-integral off_t.) regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly