linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] Enable build system on macOS hosts
@ 2024-08-06 23:09 Daniel Gomez via B4 Relay
  2024-08-06 23:09 ` [PATCH 01/12] scripts: subarch.include: fix SUBARCH on MacOS hosts Daniel Gomez via B4 Relay
                   ` (12 more replies)
  0 siblings, 13 replies; 48+ messages in thread
From: Daniel Gomez via B4 Relay @ 2024-08-06 23:09 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,
	Daniel Vetter, 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
  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 build system in macOS hosts.

Since macOS does not provide some of the headers available in the GNU
C Library (glibc), the patches include a copy of these headers from
glibc-2.40, with minor modifications detailed in the commit message.

To set up the environment:

* Provide build dependencies (installed via Homebrew):

	coreutils, findutils, gnu-sed, gnu-tar, grep, llvm, make and pkg-config.

* A case sensitive volume for building:

	diskutil apfs addVolume /dev/disk<N> "Case-sensitive APFS" linux

* And include in your PATH all GNU tools required by the Linux kernel as
well as LLVM:

	PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
	PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH"
	PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
	PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"
	PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"
	PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH"
	PATH="/opt/homebrew/opt/llvm/bin:$PATH"

* Start the build using LLVM:

	make LLVM=1 allyesconfig
	make LLVM=1 -j$(nproc)

I believe other architectures could also be supported if we can move
forward this initiative. Additionally, we could incorporate Rust
support. I understand that Finn Behrens has some patches [4][5] based on
Nick's previous work.

[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>
---
Daniel Gomez (11):
      kbuild: add header_install dependency to scripts
      file2alias: fix uuid_t definitions for macos
      drm/xe: xe_gen_wa_oob: fix program_invocation_short_name for macos
      accessiblity/speakup: genmap and makemapdata require linux/version.h
      selinux/genheaders: include bitsperlong and posix_types headers
      selinux/mdp: include bitsperlong and posix_types headers
      include: add elf.h support
      include: add endian.h support
      scripts/mod: add byteswap support
      tty/vt: conmakehash requires linux/limits.h
      scripts/kallsyms: add compatibility support for macos

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

 Makefile                               |    2 +-
 arch/arm64/kernel/pi/Makefile          |    1 +
 arch/arm64/kernel/vdso32/Makefile      |    1 +
 arch/arm64/kvm/hyp/nvhe/Makefile       |    2 +-
 drivers/accessibility/speakup/Makefile |    2 +
 drivers/gpu/drm/xe/xe_gen_wa_oob.c     |    8 +-
 drivers/tty/vt/Makefile                |    1 +
 include/byteswap/byteswap.h            |   35 +
 include/elf/elf.h                      | 4491 ++++++++++++++++++++++++++++++++
 include/endian/bits/uintn-identity.h   |   48 +
 include/endian/endian.h                |   63 +
 scripts/Makefile                       |    3 +-
 scripts/kallsyms.c                     |    4 +
 scripts/mod/Makefile                   |    6 +
 scripts/mod/file2alias.c               |    3 +
 scripts/selinux/genheaders/Makefile    |    3 +-
 scripts/selinux/mdp/Makefile           |    3 +-
 scripts/subarch.include                |    3 +-
 18 files changed, 4672 insertions(+), 7 deletions(-)
---
base-commit: 1e391b34f6aa043c7afa40a2103163a0ef06d179
change-id: 20240807-macos-build-support-9ca0d77adb17

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




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

end of thread, other threads:[~2024-09-06  8:44 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-06 23:09 [PATCH 00/12] Enable build system on macOS hosts Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 01/12] scripts: subarch.include: fix SUBARCH on MacOS hosts Daniel Gomez via B4 Relay
2024-08-07 15:07   ` Nicolas Schier
2024-08-23 16:12   ` Masahiro Yamada
2024-08-23 22:14     ` Daniel Gomez (Samsung)
2024-08-24 19:34       ` Daniel Gomez (Samsung)
2024-08-06 23:09 ` [PATCH 02/12] kbuild: add header_install dependency to scripts Daniel Gomez via B4 Relay
2024-08-07 15:23   ` Nicolas Schier
2024-08-06 23:09 ` [PATCH 03/12] file2alias: fix uuid_t definitions for macos Daniel Gomez via B4 Relay
2024-08-07 15:30   ` Nicolas Schier
2024-08-07 21:31     ` Daniel Gomez
2024-08-06 23:09 ` [PATCH 04/12] drm/xe: xe_gen_wa_oob: fix program_invocation_short_name " Daniel Gomez via B4 Relay
2024-08-07  1:50   ` Lucas De Marchi
2024-08-07  8:13     ` Daniel Gomez
2024-08-07 11:25       ` Lucas De Marchi
2024-08-06 23:09 ` [PATCH 05/12] accessiblity/speakup: genmap and makemapdata require linux/version.h Daniel Gomez via B4 Relay
2024-08-07 15:34   ` Masahiro Yamada
2024-08-06 23:09 ` [PATCH 06/12] selinux/genheaders: include bitsperlong and posix_types headers Daniel Gomez via B4 Relay
2024-08-07 15:29   ` Paul Moore
2024-08-07 15:38   ` Nicolas Schier
2024-08-07 15:44     ` Masahiro Yamada
2024-08-07 16:20       ` Paul Moore
2024-08-07 21:41     ` Daniel Gomez
2024-08-08 11:12       ` Nicolas Schier
2024-08-06 23:09 ` [PATCH 07/12] selinux/mdp: " Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 09/12] include: add endian.h support Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 10/12] scripts/mod: add byteswap support Daniel Gomez via B4 Relay
2024-08-06 23:09 ` [PATCH 11/12] tty/vt: conmakehash requires linux/limits.h Daniel Gomez via B4 Relay
2024-08-09 12:15   ` Masahiro Yamada
2024-08-09 13:47     ` Daniel Gomez (Samsung)
2024-08-06 23:09 ` [PATCH 12/12] scripts/kallsyms: add compatibility support for macos Daniel Gomez via B4 Relay
2024-08-07 11:01 ` [PATCH 00/12] Enable build system on macOS hosts Greg Kroah-Hartman
2024-08-07 13:56   ` Daniel Gomez
2024-08-07 14:19     ` Greg Kroah-Hartman
2024-08-17  1:11       ` Barry Song
2024-08-18 16:55         ` Klaus Jensen
2024-08-23 22:37       ` Daniel Gomez
2024-08-24  5:51         ` Greg Kroah-Hartman
     [not found] ` <20240807-macos-build-support-v1-8-4cd1ded85694@samsung.com>
2024-08-07 11:04   ` [PATCH 08/12] include: add elf.h support Greg Kroah-Hartman
2024-08-07 14:13     ` Daniel Gomez
2024-08-07 14:18       ` Greg Kroah-Hartman
2024-08-07 15:46         ` Nicolas Schier
2024-08-23 22:54           ` Daniel Gomez
2024-08-30 19:53             ` Nicolas Schier
2024-09-01 16:15               ` Masahiro Yamada
2024-09-05  8:56                 ` Daniel Gomez
2024-09-05 23:58                   ` Masahiro Yamada
2024-09-06  8:34                     ` Daniel Gomez

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).