In-tree gcc (4.2) doesn't understand __attribute__((ms_abi)) (EFIABI_ATTR). Functions declared with that attribute are only used by efirt.c. Move struct efi_rt which contains their declarations into efirt.c so that in-tree gcc can buildkernel for amd64 with WITHOUT_MODULES=efirt.
This is the simplest solution I could think of. If we eventually wanted other architectures to share this same structure definition, then we might do something different, like hide the declarations for compiler versions known not to support __attribute__((ms_abi)) (gcc < 4.4, clang < 3.7) or move them to a header only included by efirt (sys/sys/efirt.h?).
I realize that the old in-tree gcc is not a high priority but there is some value in keeping it functioning and this is one of the last couple thing blocking amd64/gcc4.2 buildkernel.