[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Fri, 6 Feb 2026 14:29:34 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3hY5FyuDZP6NwuBFEmcCkb7AwE3kWtgyY4vZVqMZG4k=; b=oxQzjCsqp8Kr7hL4tGzFyczL1oQygVTE1uhbgAWZB4kmgiONOXz773fmOUnhrHN3fqI+oti3xYXh+lCNXgJHIoBxYcxJ1ruDwdKI27uTIkvevfMRR3KQlCMHV/ACc7fwX9OQ2OwYBLrXOFV6gEY876vmgcGGzrXmItNwhHXu3imIdZG/zd9a+kEmdgrzGs4w1bxfgv09dgP031nlXVpnnfFaC9GZ09o+LfqirGKxVsRdsT8WI6PwoNbSsd60Dz44cBso6EG4d5sSYXdbAtBYKV9zq+hJwEiOGwqzu0J0IUk8oaPAGPnZnDAaZlgUTvhwCNVGRvx8+VcLfrQz+TfX5Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ndBHM8TWfTj1cOujvpfY6WF/FbuvGgRIJ5hokIT321EOGt0BhnnwEGETYSPDxc4BhhzwYw/fupTjRQ4eLoK2P+QG924lex/7nZtBtH+NcBKbCFSlpulg8VSP6hKzZAi/+5NBOZ7FfilaQ3NuFk6ODq+7GRFUgRseBffzo40QoULoHeNAnBvC0e+uYco/4ZjUUuw1pSUmXLWcx+JeLQ0F8bSs+zM2QfYOJOvax//4qpxBRTDBvHvoi+kfk18Di62E+BS1IBtiszJ6TnyuUnSwsn3UrW/t9zxeYvwWel+H6t5tueR8nrR/oOoi7W7RIAMuQcSMzejLIhV+imQNfhIjQw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Bertrand Marquis <bertrand.marquis@xxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Fri, 06 Feb 2026 13:29:58 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Fri, Feb 06, 2026 at 11:38:02AM +0100, Jan Beulich wrote:
> 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 <bertrand.marquis@xxxxxxx>
> > ---
> > 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?

I think Bertrand considers objcopy to be part of the toolchain, hence
"retrieving a toolchain" is meant to include objcopy (either the GNU,
LLVM or elftoolchain one)

> > --- /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.

Hm, setting it to "Darwin" seems weird to me.  I understand the
purpose of this is to force the user to set XEN_TARGET_ARCH
explicitly.  I however wouldn't see it as fully uncorrect to not set
this.  It will then execute `uname -m` and get `arm64` back for Apple
silicon macs (which is kind of OK?).  Other I suggest we use a non-OSX
specific value here, so that if required we could distinguish this
case where the user is expected to provide XEN_COMPILE_ARCH.

Maybe XEN_COMPILE_ARCH = { unknown | undefined }?

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.