[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:36:29 +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=5t1eUYfthphS+6r0sL9Y1OI1NN0KV8JI2/mcqgNwvMg=; b=n5tj11xwRcorn+Mq1JHT7ZhO5dhoxnslct8K+rw33JcV+UyckVpKfasiUF5SwnDWD8jFNE0nQXMgDcJt6xqlCQZx+kUYQIpyvknc2+ulkbVmY+hdR44XQN8L8UqzpfDc2TQJcug4ijS5Ku40NIjhU9k4sONjO4d2gOj8j8FDbWxLDOMR+TWG8yRyGuu9x85iTwzit4z0LKZdW38v5Y8sC6nnSYlfx5v3MLVQQhx0PISi284UoXEdCX7lqEgQNDBo+CCqjAagz/HrYjy4awVv8q2UCR9w7ootg9eOQT74zzktAP3RV8DX+ZfjOBaEPWxfO+AwkIfxpqG9SdX30BRI8A==
  • 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=5t1eUYfthphS+6r0sL9Y1OI1NN0KV8JI2/mcqgNwvMg=; b=gbdhpFidqcvHrs0ygmhedqYtiMZvliq+QN64ERF7Op3l1/aaxWdNKZis/eKnnaelRcScD8M7Piqo2adYz6HOV3cL4/rPpZoGNoeVx1ZUKPoo6tTVd9PNRfp7/jMQen2SLBJjvsyJlCRGlsmTUrwFGnGP+XOtY2uIIkq37yYXaA2CpO506UINIimrEY3absYJuCaVBTkKDpe7poLjfRuslSnrcbxB35164ML0+/R8TY+Keu7cMJWwPYU37b23bbpVu79szYlYFgNrPxqdrmyUoX/GG4fdBNI3z/iJe3r4OGv8dAQ/sx3cVTT8Apy1VLmYzWzO8iOAUvui3tQIxqX5Tg==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=hrawf4RVcvw2enicDbCCSuOqk9mheeisnl5LmjDcTKe0E6dqISMOZyILkBOu4GCudzbtP5EUPNZJCbteCS/YhF4M0pW0ZNHFDCQeyhd0d1JSWjjzWahsd+UBzawUm7JLyut0GTQ3EFTDeMTTCGmufSmRURM86TCTYEMwlID3t3ELbZMnkScLL6gw3L0D7QrK13poiepvaSCcy4OGKlYM/Ibce5lB7JkqghyIkLHHLfd06CGtWd/hsyadmdhRvDfPOUc1breJY5Hc+IUdHcdHV4j9q736dOZtgxLzib9P6rGdqcmMKqOApmBVFCUa0TEoF0NzJr3H1Jeug7UX6wyVgQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=T8SWMcSMrwh9jGM5cFzRSbrrK9pP04WAlDhl0QGclUO+iZlIPDNtfZv1E4NJ78UeDZ4tkYr4Q3wNNwz6MbjHrPTpryCI03B1JBlyRe5AxWyEcvTKpRKT0vYKG8Q9v6E6TKyOq8Cm/IkLckfzgOSNwSjuMfr8FcA+efLiGKSbW51Ei4P+Yk+owJfd/Svu8YOlSjtaligr8cvOiokX6cMQTOjCl1h1nXtenQUHtfm0/H90YvYmdULAYxDKSyX/Frsx0Fg2XKAiSTGZk33IGaoraOC5opUmVgngOwunxr+BacMdZIwYtIr66QTvrbiu/H7R0Hvbf9CSZxPBSy2UQPj/BQ==
  • 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:37:47 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHcl4TDvkxax6jik0exjnZrMlGqw7V17BsAgAQQvwCAABwvgIAACZqAgAAEx4CAAAQwAIAABTaA
  • Thread-topic: [PATCH v4] xen: Add Darwin.mk for GNU toolchains

Hi Jan,

> On 9 Feb 2026, at 11:17, Jan Beulich <jbeulich@xxxxxxxx> wrote:
> 
> On 09.02.2026 11:02, Bertrand Marquis wrote:
>> 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
> 
> There have been several "previous" comments there, so I think in this case
> it may indeed be better ...
> 
>> Othewise happy to submit a v5
> 
> ... if you do this. I'm sorry, it's quite a bit of bike-shedding on "merely"
> commentary, yet I think we want to avoid misleading people.

ok.

Cheers
Bertrand

> 
> Jan



 


Rackspace

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