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

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


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Mon, 9 Feb 2026 10:02:52 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=suse.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; 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=EbZc3J2/CTPqP6i6o8sB3W52G9qJzIrSebqk2GYF6T0=; b=KFAmtSFSPx4NNMW723UZSZ/Ml+Gy/AowawOPWpAyWUJX+I9GqSGyMGVlC1OVqdZcH8SgkU5O+2U0zX9BzJp/AhWoTPlUgtkXmMAJLdjLYDJz86KCp7o6FmgfXsU2s3IOI9IwRYs6vqWYgM7idxSKbjiOHIiIqcilSNObFcoERslGRAK6iTKqu3giMSIHX6UXJYvWkthIMDpHv6IuixYMg5fELnO024eu5f7xvf2EzWDqA8MvfkRveB/XtacHEcR6FkiaqsLjOT7JadkK6jN6/BXlZSN9hPHvP2BHNQuxB3PORecmWUugskl8eyBYDj6KKWoLlQIAG7M0vL+0LmO+Nw==
  • 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=EbZc3J2/CTPqP6i6o8sB3W52G9qJzIrSebqk2GYF6T0=; b=c0iEqxw13wi3kCFJ+lo3IlzVQlEG5ZYhyljOy3KFEwY61QksX2TqbfePdyJAE8nnB9BLNnKW3m+4/Rn9HKsnjTkZ8Qli57S9jGwAwtLyyTRpsVrrDtDwsL8tPJWPQYXCyeqcek4vQMvOURRbvAxaKdgQHxasUZtPkFoHk7PBUiMemXT7Je5GkVnLZiN9emolnn+yiauiYivMLocXXY0A4z3rjZ7TNoavMoKXiggrgowfS0hTpLUDW5LwsVShPWmvbi+DXe967ixqTZvyr+0dVug6bKFHb/XbpqqGu1xwJqqNHOHUgol9Ylwv2d7o5dqN1ZL0xK2kyzQSWNVzlHOA/Q==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=M6vinsgfn/Ya4CpKAdbWFwXhkLG4psMhyyUd6CduqOcYOh4qpN5guQxyp3Mtd+an7kEwScONLOovmCDIEfRsKN9KMqZQwPk7gt5KOlNYfNvI/nxFoUA8TxvFoxH3bWz3Yb+MO3uBedh6TMPKrV37XUxzI+MmIAQJSLEZCMC+TXSos6cNRSFqCl1zq+1pmWMeNIJCvrqSJH83wxPMi42XVJwFEosyC33go1nOISuN8962eGBkVT/PHXgZcLJgzxe+zr6LjlGXT1DZIwHz7rGJL8+Jxsp6iQEZ4N/6nhugEMAajaZKCa6Z9IcfwLGP59Wj9Qc3O3m1zsba45YW67hzJA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W7uSOjlDS+qmmX2RsN/JIpx36kl0AvzLSYu5yfK8x/ZQ+DILqHvh7gODKDuN59yRmp4PQKIwY/eIe9CPnvExsWVOuP7FAFain2rZs2cgTgm+3QJCLrcBcr21rvxBpoYLDme0l5fRZqYsjsGAYYCJHZ1pssR2q6rk6AuxuXIFR/T+AIcyFGFsGeH0qJditd0HNVM9KIsbO9e4l4JS+B24A2KWs2TZiD14kgcbMaWJmG4lWq6hBWw/JXGhYK+lpiomkpTTquOw8Um23D+wJWlE+mCcBlZ01hRrd38CgUM1f+N5Xwuu3Fx6oIIy+EkqpsSJ3yN1bNPqbMEsYEJpU3x8Lw==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • Delivery-date: Mon, 09 Feb 2026 10:04:26 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHcl4TDvkxax6jik0exjnZrMlGqw7V17BsAgAQQvwCAABwvgIAACZqAgAAEx4A=
  • Thread-topic: [PATCH v4] xen: Add Darwin.mk for GNU toolchains

Hi Jan,

> On 9 Feb 2026, at 10:45, Jan Beulich <jbeulich@xxxxxxxx> wrote:
> 
> On 09.02.2026 10:11, Roger Pau Monné wrote:
>> On Mon, Feb 09, 2026 at 07:30:30AM +0000, Bertrand Marquis wrote:
>>> Hi Roger,
>>> 
>>>> On 6 Feb 2026, at 18:25, Roger Pau Monné <roger.pau@xxxxxxxxxx> wrote:
>>>> 
>>>> On Fri, Feb 06, 2026 at 05:21:44PM +0100, 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=unknown, 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 toolchain from brew:
>>>>> - brew install aarch64-elf-gcc aarch64-elf-binutils
>>>>> - cd xen
>>>>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
>>>> 
>>>> Instead of `cd xen` I would use `make xen ...`.
>>> 
>>> Ack the 'cd xen' line is useless and should be removed.
>>> 
>>>> 
>>>>> 
>>>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
>>>> 
>>>> Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>>>> 
>>>> One comment below.
>>>> 
>>>>> ---
>>>>> Changes since v3:
>>>>> - set XEN_COMPILE_ARCH to unknown instead of Darwin
>>>>> - list binutils as a dependency to install in brew in commit message
>>>>> 
>>>>> 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
>>>>> ---
>>>>> config/Darwin.mk | 7 +++++++
>>>>> 1 file changed, 7 insertions(+)
>>>>> create mode 100644 config/Darwin.mk
>>>>> 
>>>>> diff --git a/config/Darwin.mk b/config/Darwin.mk
>>>>> new file mode 100644
>>>>> index 000000000000..176b27eac676
>>>>> --- /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.
>>>> 
>>>> Hm, is this actually fully true?  What's the Linux ABI exactly here?
>>>> 
>>>> FreeBSD builds Xen natively, and it's not using the Linux ABI.
>>>> FreeBSD uses no specific -target to the compiler invocations, and the
>>>> linker emulation is set to elf_x86_64_fbsd.
>>>> 
>>>> I think the point here is that the toolchain must support building ELF
>>>> objects / images, because that's the binary format supported by Xen.
>>>> Whether it's Linux ELF or FreeBSD ELF doesn't make a difference for
>>>> standalone environments like the Xen kernel.
>>> 
>>> This file is also use while compiling the tools and for those you definitely
>>> to cross compile as they depend on Linux ABI.
>> 
>> I'm not an expert on this at all, but IMO the tools don't depend on
>> the Linux ABI at all.  Anyone can add the minimal OS-specific bindings
>> required for the tools to work on environments different than Linux.
>> We currently have {Net,Free}BSD and Linux.  In the past we also had
>> Solaris, but that has bit rotten.
>> 
>>> Maybe that works on BSD
>>> but i doubt this would be the case on mac os.
>> 
>> I doubt we would ever have any need to build an OSX native toolchain,
>> as it's unlikely (?) that we will ever get Xen support in the Darwin
>> kernel.
> 
> If Darwin has some way to load "modules" (e.g. drivers) into the kernel, it
> may in principle be possible to run OSX as a HVM-Dom0, with a Xen driver
> loaded separately. That's far fetched, I know.
> 
>>> Maybe we could simplify the sentence to not say anything we are unsure:
>>> 
>>> # Cross compile on Mac OS
>>> 
>>> Tell me if that works for you and i can submit a v5 or this might be 
>>> possible to
>>> fix on commit.
>> 
>> I'm fine with it, I would like to hear Jan's opinion.
> 
> As long as it's clear that all of this is only about building the hypervisor
> (which doesn't look to be the case right now beyond the example given in the
> commit message, which may be taken as really only an example), that's okay
> [1]. I'd still prefer to mention the SVR4 ABI here, though, to at least
> somewhat explain the "always cross" aspect.
> 
> I can make edits while committing, but I'm unsure whether that's wanted in
> this case.

I would suggest:

Cross compile on Mac OS, only hypervisor build has been tested, no tools

Please do the following edits on commit if that's ok for you :
- remove 'cd xen' from commit message
- use previous comment in Darwin.mk

Othewise happy to submit a v5

Cheers
Bertrand


> 
> Jan
> 
> [1] Yet better might be if we refused to build other than the hypervisor.
> I'm unsure though how easy it would be to achieve that in an at least
> halfway tidy manner.



 


Rackspace

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