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

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


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Fri, 6 Feb 2026 14:29:23 +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=citrix.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=kFTmHDCqa6Y2s6X6nc8m6Jgh9gGlZwbbiP0hkvPapI0=; b=xoasaXywx8G1TNyMRmRpwetfIuO7od1ND4+CNCj1n77UwKFJwi+iVryqY8LV3u4IM/pI+gPjqwcztDVaXIEsAoKUSCF3g+uA27LFtAYho4+LqZtYiUQEv6y6PePgcANRjwU3iLhBG8GupO2gXVOha6rntqGwxoE9yuyqwoyzbcuKmIpoAMnY7ENVaHUEK0q4HrW/ci28uJLVKuZFUSzKiSWAkyB+P13BRqPfOLYbFTpMkV9YgO7Di7qzpFZvgq6tEj9RWxdeN3pa2GXbATeJyw683Dqrz1zISLLsCWVKnjjcebXvTcb1A2pqZSnv+ldpp9c4QjtWAzY2e+kW1UTggg==
  • 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=kFTmHDCqa6Y2s6X6nc8m6Jgh9gGlZwbbiP0hkvPapI0=; b=huZtdHcDDZLVhcWGZ3XiaIzm86Nl30IxDXBpeGR83Sdx06WNXAsw1PVunpU2CTgqKHQfnm1m/PYd6dkLOO3NqaU+xpz+O2F5sW6XQTKy0GXojeBhX3O+SxRqkPc7D5W2PH3eg3qkcR8d9Po30P8DiodvwRsu2+VvPuLvM36VTzHJ/o0SVDtw25Xo/0Ae/0LD1i3GJ3Om443qcGtNUJlIGshV48W/0bSD8HE3hoKE04CUS6sITxr7dZIOtU/RMndUt+NhkoTo4oa+pMTCt7AJ6scEvCOmUSilFNs5b8oS8paF9eL3J8sgM0h0AmY/lawByveWOkqlAhqvELodchXWIA==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=TvcaZ/flgCdpzHx9zAIKNdo3zb2YC3pOszhPpdRAdmK2LAuUOLWJhdTOiYNOr2r51/PdPpkeQTwOGaTmdwjN42+FkTE2dS6VlbqmRZ0yArPX3wD5OyYLIsRlZNEPO3+8Hh3+ARhytLIMzK1E1eagGAsNRbl4wNFHekghCWCfQ4jvZO4FVKesGLAZlfRd0J7p6Tf4k7o6qVKaIQF0qAAtAoAmUSFOfAaXzGMatfRJJcVqLxJDm0JcVEkEh8lYJLNzJPR/ZInC4pAZ1sDhjPS1VSGWU2cDZFEA7QAk3vXenFdG/WakdXYTg7oSwbH+3b190Eq3xxXzvYmSKCHzCX7sWw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VD2x8bhETLxZJIKJWVeIvkZBalWtyN9iqeRFF24JHevArmsNjadQ0DLTncGNeTHsYTFgK0ZOwYKD6CbV4UO4MdTSflSor1JoHwG9UU0t9JegcAu4ZcBowIaXNRBrXndov0C1lmUpQYm2dyULdvOnM+hm4n3r9nNWmFn78IXMgX6VPOLu9LzeDcHgyT2ii9+MReE8s1zBr2ykKW5D46A+OafHSPtuHvb+AO/PLypHgt5MrAA6fuwoNAFJRlz3CdULe7tyuylcD5X/jc4EtFWLjejp3LdO/YZweSuuHwnF/aFksZ5cKoSHpLNfSXb40sFrDP5nsVCu61mHsBPBu6Hi0g==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, 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" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 06 Feb 2026 14:30:38 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHcl0ETIV6m5wqgrECh60MWgPTuGLV1etQAgAAv7QCAAAFMgIAAC8oAgAADkwA=
  • Thread-topic: [PATCH v3] xen: Add Darwin.mk for GNU toolchains

Hi Roger,

> On 6 Feb 2026, at 15:16, Roger Pau Monné <roger.pau@xxxxxxxxxx> wrote:
> 
> On Fri, Feb 06, 2026 at 01:34:23PM +0000, Bertrand Marquis wrote:
>> 
>> 
>>> On 6 Feb 2026, at 14:29, Roger Pau Monné <roger.pau@xxxxxxxxxx> wrote:
>>> 
>>> 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
> 
> I've just noticed: it's a bit misleading to use HOSTCC=gcc here, as
> (under a normal OSX system) gcc is a plain wrapped around clang:
> 
> % gcc -v
> Apple clang version 17.0.0 (clang-1700.6.3.2)
> Target: arm64-apple-darwin24.6.0
> Thread model: posix
> 
> You might as well use HOSTCC=clang and make it explicit the host
> compiler is clang and not gcc.

true

> 
>>>>> 
>>>>> 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)
>> 
>> Sorry i only saw your message in matrix.
>> 
>> I checked and i installed both gcc and binutils in homebrew.
>> 
>> So i think the commit message needs modifying to stay:
>> 
>> brew install aarch64-elf-gcc aarch64-elf-binutils
>> 
>> to be fully complete.
> 
> Yes, I didn't notice that in the commit message you explicitly
> mentioned the brew install dependencies.  There's also bison and flex
> needed for Kconfig, but AFAICT those are part of command line tools.
> I think python is also part of the command line tools, and not sure
> it's required for arm64, as it's required for x86 to generate the
> cpuid headers (but I don't know if arm64 has anything equivalent).

python is not available on my side (python3 is).
I do not think this is needed on arm no.

> 
>>> 
>>>>> --- /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 }?
>> 
>> I am ok to change this with either but maybe unsupported could be
>> a third choice?
> 
> No strong opinion for either naming, as long as we don't explicitly
> use "Darwin".

ok let's use "unsupported"

I will push a v4 with the commit message and Darwin.mk fixes

Cheers
Bertrand

> 
> Thanks, Roger.



 


Rackspace

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