llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/8] Enable build system on macOS hosts
@ 2024-09-06 11:01 Daniel Gomez via B4 Relay
  2024-09-06 11:01 ` [PATCH v2 1/8] scripts: subarch.include: fix SUBARCH " Daniel Gomez via B4 Relay
                   ` (8 more replies)
  0 siblings, 9 replies; 33+ messages in thread
From: Daniel Gomez via B4 Relay @ 2024-09-06 11:01 UTC (permalink / raw)
  To: Masahiro Yamada, Nathan Chancellor, Nicolas Schier,
	Lucas De Marchi, Thomas Hellström, Rodrigo Vivi,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
	William Hubbs, Chris Brannon, Kirk Reiser, Samuel Thibault,
	Paul Moore, Stephen Smalley, Ondrej Mosnacek, Catalin Marinas,
	Will Deacon, Marc Zyngier, Oliver Upton, James Morse,
	Suzuki K Poulose, Zenghui Yu, Greg Kroah-Hartman, Jiri Slaby,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Simona Vetter
  Cc: linux-kernel, linux-kbuild, intel-xe, dri-devel, speakup, selinux,
	linux-arm-kernel, kvmarm, linux-serial, llvm, Finn Behrens,
	Daniel Gomez (Samsung), gost.dev, Daniel Gomez, Nick Desaulniers

This patch set allows for building the Linux kernel for arm64 in macOS
with LLVM.

Patches are based on previous Nick's work and suggestions [1][2][3] to
enable the Linux kernel build system on macOS hosts.

macOS does not provide certain headers that are available in a GNU/Linux
distribution with development headers installed, usually provided by
the GNU C Library (glibc) and/or other projects. These missing headers
are needed as build dependencies. To address this, the patches depend
on a new Bee Headers Homebrew Tap formula [6][7][8] that provides them
together with a pkg-config file to locate the include directory.

To locate them, Makefiles include something like:
	$(shell $(HOSTPKG_CONFIG) --cflags bee-headers 2> /dev/null)

[6] Project:
https://github.com/bee-headers
[7] Headers repository:
https://github.com/bee-headers/headers.git
[8] Homebrew Tap formula:
https://github.com/bee-headers/homebrew-bee-headers.git

To set up the environment, documentation is provided via last patch in
this series.

More configurations and architectures as well as support for Rust
(from Finn Behrens [4] [5]) can be added in the future to extend build
support.

[1]: WIP: build Linux on MacOS
https://github.com/ClangBuiltLinux/linux/commit/f06333e29addbc3d714adb340355f471c1dfe95a

[2] Subject: [PATCH] scripts: subarch.include: fix SUBARCH on MacOS hosts
https://lore.kernel.org/all/20221113233812.36784-1-nick.desaulniers@gmail.com/

[3] Subject: Any interest in building the Linux kernel from a MacOS host?
https://lore.kernel.org/all/CAH7mPvj64Scp6_Nbaj8KOfkoV5f7_N5L=Tv5Z9zGyn5SS+gsUw@mail.gmail.com/

[4] https://github.com/kloenk/linux/commits/rust-project_macos-dylib/

[5] https://kloenk.eu/posts/build-linux-on-m1-macos/

To: Masahiro Yamada <masahiroy@kernel.org>
To: Nathan Chancellor <nathan@kernel.org>
To: Nicolas Schier <nicolas@fjasle.eu>
To: Lucas De Marchi <lucas.demarchi@intel.com>
To: Thomas Hellström <thomas.hellstrom@linux.intel.com>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
To: Maxime Ripard <mripard@kernel.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
To: David Airlie <airlied@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
To: William Hubbs <w.d.hubbs@gmail.com>
To: Chris Brannon <chris@the-brannons.com>
To: Kirk Reiser <kirk@reisers.ca>
To: Samuel Thibault <samuel.thibault@ens-lyon.org>
To: Paul Moore <paul@paul-moore.com>
To: Stephen Smalley <stephen.smalley.work@gmail.com>
To: Ondrej Mosnacek <omosnace@redhat.com>
To: Catalin Marinas <catalin.marinas@arm.com>
To: Will Deacon <will@kernel.org>
To: Marc Zyngier <maz@kernel.org>
To: Oliver Upton <oliver.upton@linux.dev>
To: James Morse <james.morse@arm.com>
To: Suzuki K Poulose <suzuki.poulose@arm.com>
To: Zenghui Yu <yuzenghui@huawei.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Jiri Slaby <jirislaby@kernel.org>
To: Nick Desaulniers <ndesaulniers@google.com>
To: Bill Wendling <morbo@google.com>
To: Justin Stitt <justinstitt@google.com>
Cc: linux-kernel@vger.kernel.org
Cc: linux-kbuild@vger.kernel.org
Cc: intel-xe@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Cc: speakup@linux-speakup.org
Cc: selinux@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: kvmarm@lists.linux.dev
Cc: linux-serial@vger.kernel.org
Cc: llvm@lists.linux.dev
Cc: Finn Behrens <me@kloenk.dev>
Cc: Daniel Gomez (Samsung) <d+samsung@kruces.com>
Cc: gost.dev@samsung.com

Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
---
Changes in v2:
- Add documentation and set this 'feature' as experimental.
- Update cover letter.
- Drop unnecessary changes. Patches removed:
	- kbuild: add header_install dependency to scripts
	- include: add endian.h support
	- include: add elf.h support
- Update Makefiles to find Bee Headers with pkg-config.
- Update file2alias to solve uuid_t conflicts inside Makefile as
suggested by Nicolas Schier.
- Adapt xe_gen_wa_oob to solve getprogname()/
program_invocation_short_name in runtime. as suggested by Lucas De
Marchi.
- Remove linux/version.h in accessibility/speakup as suggested by
Masahiro Yamada.
- Replace selinux patches with new Masahiro Yamada's patches:
	Message-id: 20240809122007.1220219-1-masahiroy@kernel.org
	Link: https://lore.kernel.org/all/20240809122007.1220219-1-masahiroy@kernel.org/
- Replace tty/vt with new Masahiro Yamada's patch:
	Message-id: 20240809160853.1269466-1-masahiroy@kernel.org
	Link: https://lore.kernel.org/all/20240809160853.1269466-1-masahiroy@kernel.org/
	(Already merged in the linux-next tag used)
- Replace scripts/kallsyms patch with Masahiro Yamada's patch:
	Message-id: 20240807181148.660157-1-masahiroy@kernel.org
	Link: https://lore.kernel.org/all/20240807181148.660157-1-masahiroy@kernel.org/
	(Already merged in the linux-next tag used)
- Link to v1: https://lore.kernel.org/r/20240807-macos-build-support-v1-0-4cd1ded85694@samsung.com

---
Daniel Gomez (5):
      file2alias: fix uuid_t definitions for macos
      drm/xe: xe_gen_wa_oob: fix program_invocation_short_name for macos
      arm64: nvhe: add bee-headers support
      scripts: add bee-headers support
      Documentation: add howto build in macos

Masahiro Yamada (2):
      selinux: do not include <linux/*.h> headers from host programs
      selinux: move genheaders to security/selinux/

Nick Desaulniers (1):
      scripts: subarch.include: fix SUBARCH on macOS hosts

 Documentation/kbuild/llvm.rst                      | 78 ++++++++++++++++++++++
 arch/arm64/kernel/pi/Makefile                      |  1 +
 arch/arm64/kernel/vdso32/Makefile                  |  1 +
 arch/arm64/kvm/hyp/nvhe/Makefile                   |  3 +-
 drivers/gpu/drm/xe/xe_gen_wa_oob.c                 |  4 ++
 scripts/Makefile                                   |  4 +-
 scripts/mod/Makefile                               |  7 ++
 scripts/mod/file2alias.c                           |  3 +
 scripts/remove-stale-files                         |  3 +
 scripts/selinux/Makefile                           |  2 +-
 scripts/selinux/genheaders/.gitignore              |  2 -
 scripts/selinux/genheaders/Makefile                |  5 --
 scripts/selinux/mdp/Makefile                       |  2 +-
 scripts/selinux/mdp/mdp.c                          |  4 --
 scripts/subarch.include                            |  2 +-
 security/selinux/.gitignore                        |  1 +
 security/selinux/Makefile                          |  7 +-
 .../genheaders => security/selinux}/genheaders.c   |  3 -
 security/selinux/include/classmap.h                | 19 ++++--
 security/selinux/include/initial_sid_to_string.h   |  2 -
 20 files changed, 123 insertions(+), 30 deletions(-)
---
base-commit: ad40aff1edffeccc412cde93894196dca7bc739e
change-id: 20240807-macos-build-support-9ca0d77adb17

Best regards,
-- 
Daniel Gomez <da.gomez@samsung.com>



^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2024-10-03 22:33 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2024-09-12 12:02 ` [PATCH v2 0/8] Enable build system on macOS hosts Jeff Xie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).