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

Reply via email to