On 06.02.2026 09:17, Bertrand Marquis wrote: > Xen does not provide a Darwin build configuration for selecting > GNU tool definitions. On macOS, the tools we use are either GNU > compatible or we only rely on features supported by Mac OS, so > using the GNU tool definitions is appropriate. > > Add config/Darwin.mk to include StdGNU.mk and force > XEN_COMPILE_ARCH=Darwin, ensuring Darwin builds always follow > the cross-compile path as we depend on the Linux ABI so compiling > on Mac OS is always a cross compilation case. > > An example of how to build the hypervisor for arm64 on Mac OS > (tools cannot be build for now) using a compiler from brew: > - brew install aarch64-elf-gcc > - cd xen > - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc > > Signed-off-by: Bertrand Marquis <[email protected]> > --- > Changes since v2: > - Subject was "xen: Add macOS hypervisor build configuration" > - Update Darwin.mk comments to more accurate versions (Jan) > - Remove the build-on-macos help as we have no dependency on anything > coming from brew anymore and the toolchain can be retrieved by lots of > other solutions than brew on mac os. Switch to a simple doc in the > commit message instead
Did you see Roger's notice on Matrix about objcopy? > --- /dev/null > +++ b/config/Darwin.mk > @@ -0,0 +1,7 @@ > +# Use GNU tool definitions as the tools we are using are either GNU > compatible > +# or we only use features which are supported on Mac OS. > +include $(XEN_ROOT)/config/StdGNU.mk > + > +# Xen uses Linux'es ABI so we are cross compiling on Mac OS. > +# Force COMPILE_ARCH to a fake value to make sure it is always the case. > +XEN_COMPILE_ARCH = Darwin I first wondered why you say "fake", seeing the file is named Darwin.mk. But in Config.mk's cross-compile check the build host OS doesn't even matter. So yes, it needs faking here for the time being. Jan
