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