Oops, this should have been committed to head first and the 2.4 branch
second.
I am having some infrequent coredumps on DEC Alphas. Somehow, shared
memory pointers are gaining a high bit set, almost as though due to
an addition/subtraction overflow. One potential problem is that I
was storing the value of long pointer subtraction into a 32-bit integer.
I changed those integer offsets to off_t. However, the offset value
in the inter-process messages remains 32-bits to keep the message size
small and predictable.