use offsetof() instead of rolling our own
src/common/util.h defines a
STRUCT_OFFSET() macro that effectively duplicates
offsetof(), which has been available in
stddef.h since C89. The non-GCC version of
STRUCT_OFFSET() does pointer arithmetic on null pointers, which is undefined behavior.
We should use the standard
offsetof() macro instead, unless there's some reason we still need to support platforms that lack it.