When CONFIG_UIDGID_STRICT_TYPE_CHECKS is set, uid_t et al is a structure
with the only one member, val. This is probably to prevent uid_t from
mixing with gid_t accidentally. When this is not set however, they are
both just an unsigned int.
Ubuntu probably has this kernel build option set, while Arch Linux does
not, leading vmhgfs to not compile.
...STRICT_TYPE_CHECKS set
When CONFIG_UIDGID_STRICT_TYPE_CHECKS is set, uid_t et al is a structure with the only one member, val. This is probably to prevent uid_t from mixing with gid_t accidentally. When this is not set however, they are both just an unsigned int.
Ubuntu probably has this kernel build option set, while Arch Linux does not, leading vmhgfs to not compile.