compat32: provide a type and a macro for (u)int64_t handling on non-x86 arches
compat/freebsd32: add comment about 64bit int alignmentuint64_t is 4-byte aligned on i386, but is 8-bytes aligned on all other
sys/abi_compat.h: fix UB32bit arches FreeBSD supports. Provide the freebsd32_uint64_t type and
Do not cast and then access potentially unaligned uint64_t in the BT_CP()the FU64_CP() macro, which are intended to be used where 32bit ABI uses
macro. Do the per-word copy as it is done everywhere for uint64_t(u)int64_t type, and do proper layout and copying for the aggregate type.
This is relevant for amd64, which 32bit host ABI (i386) only requiressys/abi_compat.h: fix UB for bintime32 handling
4-byte alignment for uint64_tDo not cast and then access potentially unaligned uint64_t in the BT_CP()
macro. Use freebsd32_uint64_t type and FU64_CP() for the frac member.
Noted by: des