record: Support architectures with sizeof(void*) > sizeof(long)

I was seeing SIGBUS errors when running TigerVNC inside the record code because the offsets into the memory buffer were not sufficiently aligned to use the RecordSetRec (alignof(void*)). The current code ensures that all offsets are alinged to sizeof(unsigned long), but that may not be sufficient to load/store a pointer. Architectures where this is not true include Arm Morello which has 16-byte pointers and 8-byte longs.

Edited by Alexander Richardson

Merge request reports