With this patch, I get the following results (I don't have Xen so I can't try it from there):
% make buildkernel TARGET_ARCH=armv7 -DWITH_KERNEL_BIN
....
--- kernel.bin ---
linking kernel.bin
--- kernel.full ---
linking kernel.full
--- kernel.bin ---
text data bss dec hex filename
9111273 740924 2441216 12293413 0xbb9525 kernel.bin
--- kernel.full ---
ctfmerge -L VERSION -g -o kernel.full ...
text data bss dec hex filename
9111273 740924 2441216 12293413 0xbb9525 kernel.full
Building /usr/home/imp/obj/usr/home/imp/git/head/arm.armv7/sys/GENERIC/kernel.debug
Building /usr/home/imp/obj/usr/home/imp/git/head/arm.armv7/sys/GENERIC/kernel
7.08 real 34.55 user 41.50 sys
--------------------------------------------------------------
>>> Kernel build for GENERIC completed on Mon Jan 8 14:25:58 MST 2024
--------------------------------------------------------------
>>> Kernel(s) GENERIC built in 7 seconds, ncpu: 64, make -j100
--------------------------------------------------------------
% file /usr/home/imp/obj/usr/home/imp/git/head/arm.armv7/sys/GENERIC/kernel.bin
/usr/home/imp/obj/usr/home/imp/git/head/arm.armv7/sys/GENERIC/kernel.bin: Linux kernel ARM boot executable zImage (little-endian)
And that w/o installing a different tool chain.
So natively or in a linux/macos world the same results...
Warner