Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Gomez <da.gomez@samsung.com>
To: Marc Zyngier <maz@kernel.org>
Cc: "Masahiro Yamada" <masahiroy@kernel.org>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nicolas Schier" <nicolas@fjasle.eu>,
	"Lucas De Marchi" <lucas.demarchi@intel.com>,
	"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
	"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"David Airlie" <airlied@gmail.com>,
	"William Hubbs" <w.d.hubbs@gmail.com>,
	"Chris Brannon" <chris@the-brannons.com>,
	"Kirk Reiser" <kirk@reisers.ca>,
	"Samuel Thibault" <samuel.thibault@ens-lyon.org>,
	"Paul Moore" <paul@paul-moore.com>,
	"Stephen Smalley" <stephen.smalley.work@gmail.com>,
	"Ondrej Mosnacek" <omosnace@redhat.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Will Deacon" <will@kernel.org>,
	"Oliver Upton" <oliver.upton@linux.dev>,
	"James Morse" <james.morse@arm.com>,
	"Suzuki K Poulose" <suzuki.poulose@arm.com>,
	"Zenghui Yu" <yuzenghui@huawei.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Bill Wendling" <morbo@google.com>,
	"Justin Stitt" <justinstitt@google.com>,
	"Simona Vetter" <simona.vetter@ffwll.ch>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-kbuild@vger.kernel.org" <linux-kbuild@vger.kernel.org>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"speakup@linux-speakup.org" <speakup@linux-speakup.org>,
	"selinux@vger.kernel.org" <selinux@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"kvmarm@lists.linux.dev" <kvmarm@lists.linux.dev>,
	"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>,
	"llvm@lists.linux.dev" <llvm@lists.linux.dev>,
	"Finn Behrens" <me@kloenk.dev>,
	"gost.dev@samsung.com" <gost.dev@samsung.com>,
	"Daniel Gomez (Samsung)" <d+samsung@kruces.com>
Subject: Re: [PATCH v2 8/8] Documentation: add howto build in macos
Date: Tue, 24 Sep 2024 10:51:43 +0200	[thread overview]
Message-ID: <33953236-138f-4141-a5af-9ea60d148ed3@samsung.com> (raw)
In-Reply-To: <86cylev7o7.wl-maz@kernel.org>

On 9/8/2024 11:03 AM, Marc Zyngier wrote:
> On Sat, 07 Sep 2024 10:32:20 +0100,
> "Daniel Gomez (Samsung)" <d+samsung@kruces.com> wrote:
>>
>> On Sat, Sep 7, 2024 at 10:33 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>>>
>>> On Fri, Sep 6, 2024 at 8:01 PM Daniel Gomez via B4 Relay
>>> <devnull+da.gomez.samsung.com@kernel.org> wrote:
>>>>
>>>> From: Daniel Gomez <da.gomez@samsung.com>
>>>>
>>>> Add documentation under kbuild/llvm to inform about the experimental
>>>> support for building the Linux kernel in macOS hosts environments.
>>>>
>>>> Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
>>>
>>>
>>> Instead, you can add this instruction to:
>>>
>>> https://protect2.fireeye.com/v1/url?k=f33af8a2-92b1ed94-f33b73ed-74fe485cbff1-7d382b34bfd617fc&q=1&e=c7a3e869-d48e-4168-88a9-03cd717797f0&u=https%3A%2F%2Fgithub.com%2Fbee-headers%2Fhomebrew-bee-headers%2Fblob%2Fmain%2FREADME.md
>>
>> Sure, that can be done as well. But the effort here is to have this
>> integrated. So, I think documentation should be in-tree.
> 
> I think this ship sailed the moment you ended-up with an external
> dependency.

The external dependency is not different in Linux hosts. We depend on 
byteswap.h, elf.h and endian.h headers. However, these are provided by 
glibc and musl, and macOS (at least in arm64/Homebrew) does not provide 
any of these.

To fix the dependency with these missing headers, it was suggested in v1 
[1][2] to create a "development kit" for this hosts. And that is what 
Bee Headers [3][4] aims to provide.

[1]https://lore.kernel.org/all/20240807-mottled-stoic-degu-d1e4cb@lindesnes/
[2]https://lore.kernel.org/all/ZrSoOM9z4VnqhOf2@fjasle.eu/

[3] https://github.com/bee-headers/headers
[4] https://github.com/bee-headers/homebrew-bee-headers

I don't see any other alternative to provide the missing headers other 
than the suggested. Please let me know if you think other paths can be 
explored and tested.

> 
> Having looked at this series (and in particular patch #4 which falls
> under my remit), I can't help but think that the whole thing should
> simply live as a wrapper around the pristine build system instead of
> hacking things inside of it. You already pull external dependencies
> (the include files). Just add a script that sets things up
> (environment variables that already exist) and calls 'make' in the
> kernel tree.

Agree. This aligns very well with other feedback.

I've added a script to the Bee Headers [5] to help users init their 
shell/Makefile environment.

[5] 
https://github.com/bee-headers/homebrew-bee-headers/blob/main/bee-headers.rb#L28

> 
> I also dislike that this is forcing "native" developers to cater for
> an operating system they are unlikely to have access to. If I break
> this hack tomorrow by adding a new dependency that MacOS doesn't
> provide, how do I fix it? Should I drop my changes on the floor?
> 
> As an alternative, and since you already have to create a special
> file-system to contain your kernel tree, you may as well run Linux in
> a VM, which I am told works pretty well (QEMU supports HVF, and there
> are plenty of corporate-friendly alternatives). This would solve your
> problem once and for all.

This is a use case I'm trying to avoid with this series. QEMU HVF works 
very well indeed but extracting the built objects/vmlinux/*.ko etc is 
tedious and slow. Building natively allows users to boot a VM with QEMU 
and -kernel argument directly. This is way faster than the suggested 
alternative. In addition, lldb can be used to debug the kernel from the 
host.

> 
> Please don't take the above the wrong way. I'm sympathetic to what you
> are trying to do. But this is IMO going in the wrong direction.

First patch has been merged already and after some fixes in the build 
system from Masahiro, this series only requires a small change in 
xe_gen_wa_oob to make this work if users of this provide the missing 
headers and set up the build environment properly.

I will send a v3 later today with the remaining patch.

Thanks Marc for sharing your views!

> 
> Thanks,
> 
> 	M.
> 


  reply	other threads:[~2024-09-24  8:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-06 11:01 [PATCH v2 0/8] Enable build system on macOS hosts Daniel Gomez via B4 Relay
2024-09-06 11:01 ` [PATCH v2 1/8] scripts: subarch.include: fix SUBARCH " Daniel Gomez via B4 Relay
2024-09-08 14:05   ` Masahiro Yamada
2024-09-06 11:01 ` [PATCH v2 2/8] file2alias: fix uuid_t definitions for macos Daniel Gomez via B4 Relay
2024-09-07 23:56   ` Masahiro Yamada
2024-09-08 17:40     ` Daniel Gomez (Samsung)
2024-09-09  5:40       ` Masahiro Yamada
2024-10-03 22:32   ` Andy Shevchenko
2024-09-06 11:01 ` [PATCH v2 3/8] drm/xe: xe_gen_wa_oob: fix program_invocation_short_name " Daniel Gomez via B4 Relay
2024-09-06 14:39   ` Masahiro Yamada
2024-09-06 15:32     ` Jani Nikula
2024-09-19 19:12     ` Daniel Gomez
2024-09-06 11:01 ` [PATCH v2 4/8] arm64: nvhe: add bee-headers support Daniel Gomez via B4 Relay
2024-09-06 14:02   ` Masahiro Yamada
2024-09-07  9:27     ` Daniel Gomez (Samsung)
2024-09-08  1:17       ` Masahiro Yamada
2024-09-06 11:01 ` [PATCH v2 5/8] scripts: " Daniel Gomez via B4 Relay
2024-09-06 14:02   ` Masahiro Yamada
2024-09-06 11:01 ` [PATCH v2 6/8] selinux: do not include <linux/*.h> headers from host programs Daniel Gomez via B4 Relay
2024-09-06 14:56   ` Paul Moore
2024-09-06 15:07     ` Daniel Gomez (Samsung)
2024-09-06 11:01 ` [PATCH v2 7/8] selinux: move genheaders to security/selinux/ Daniel Gomez via B4 Relay
2024-09-06 14:54   ` Paul Moore
2024-09-06 15:06     ` Daniel Gomez (Samsung)
2024-09-06 15:37     ` Masahiro Yamada
2024-09-06 15:47       ` Paul Moore
2024-09-06 11:01 ` [PATCH v2 8/8] Documentation: add howto build in macos Daniel Gomez via B4 Relay
2024-09-07  8:33   ` Masahiro Yamada
2024-09-07  9:32     ` Daniel Gomez (Samsung)
2024-09-08  1:29       ` Masahiro Yamada
2024-09-08  9:03       ` Marc Zyngier
2024-09-24  8:51         ` Daniel Gomez [this message]
2024-09-06 11:09 ` ✗ CI.Patch_applied: failure for Enable build system on macOS hosts (rev2) Patchwork
2024-09-12 12:02 ` [PATCH v2 0/8] Enable build system on macOS hosts Jeff Xie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=33953236-138f-4141-a5af-9ea60d148ed3@samsung.com \
    --to=da.gomez@samsung.com \
    --cc=airlied@gmail.com \
    --cc=catalin.marinas@arm.com \
    --cc=chris@the-brannons.com \
    --cc=d+samsung@kruces.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gost.dev@samsung.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=james.morse@arm.com \
    --cc=jirislaby@kernel.org \
    --cc=justinstitt@google.com \
    --cc=kirk@reisers.ca \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=lucas.demarchi@intel.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=masahiroy@kernel.org \
    --cc=maz@kernel.org \
    --cc=me@kloenk.dev \
    --cc=morbo@google.com \
    --cc=mripard@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nicolas@fjasle.eu \
    --cc=oliver.upton@linux.dev \
    --cc=omosnace@redhat.com \
    --cc=paul@paul-moore.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=selinux@vger.kernel.org \
    --cc=simona.vetter@ffwll.ch \
    --cc=speakup@linux-speakup.org \
    --cc=stephen.smalley.work@gmail.com \
    --cc=suzuki.poulose@arm.com \
    --cc=thomas.hellstrom@linux.intel.com \
    --cc=tzimmermann@suse.de \
    --cc=w.d.hubbs@gmail.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox