* [PATCH v2] [TEST 0/1] Test with random patches
@ 2026-04-12 13:13 jw910731
2026-04-12 13:13 ` [TEST v2 1/1] [WIP] Try compile linux on macOS with the help of nix jw910731
0 siblings, 1 reply; 2+ messages in thread
From: jw910731 @ 2026-04-12 13:13 UTC (permalink / raw)
To: linux-newbie; +Cc: sef1548, Wen-Yuan Wu
From: Wen-Yuan Wu <jw910731@gmail.com>
Thank's for Nick's feed back, the Signed-off-by field should be fixed to
comply DCO now.
The commit message stays unclear since the revision is mainly for testing.
jw910731 (1):
[WIP] Try compile linux on macOS with the help of nix
flake.lock | 82 ++++++++++++++++++++++++++++++++
flake.nix | 43 +++++++++++++++++
scripts/Kconfig.include | 2 +-
scripts/install.sh | 2 +-
scripts/macos-include/byteswap.h | 4 ++
scripts/macos-include/elf.h | 24 ++++++++++
scripts/macos-include/endian.h | 8 ++++
scripts/mod/file2alias.c | 3 ++
usr/gen_init_cpio.c | 4 +-
9 files changed, 168 insertions(+), 4 deletions(-)
create mode 100644 flake.lock
create mode 100644 flake.nix
create mode 100644 scripts/macos-include/byteswap.h
create mode 100644 scripts/macos-include/elf.h
create mode 100644 scripts/macos-include/endian.h
--
2.51.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* [TEST v2 1/1] [WIP] Try compile linux on macOS with the help of nix
2026-04-12 13:13 [PATCH v2] [TEST 0/1] Test with random patches jw910731
@ 2026-04-12 13:13 ` jw910731
0 siblings, 0 replies; 2+ messages in thread
From: jw910731 @ 2026-04-12 13:13 UTC (permalink / raw)
To: linux-newbie; +Cc: sef1548, jw910731
From: jw910731 <jw910731@gmail.com>
Signed-off-by: Wen-Yuan Wu <jw910731@gmail.com>
---
flake.lock | 82 ++++++++++++++++++++++++++++++++
flake.nix | 43 +++++++++++++++++
scripts/Kconfig.include | 2 +-
scripts/install.sh | 2 +-
scripts/macos-include/byteswap.h | 4 ++
scripts/macos-include/elf.h | 24 ++++++++++
scripts/macos-include/endian.h | 8 ++++
scripts/mod/file2alias.c | 3 ++
usr/gen_init_cpio.c | 4 +-
9 files changed, 168 insertions(+), 4 deletions(-)
create mode 100644 flake.lock
create mode 100644 flake.nix
create mode 100644 scripts/macos-include/byteswap.h
create mode 100644 scripts/macos-include/elf.h
create mode 100644 scripts/macos-include/endian.h
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 000000000..e6c1f5f67
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,82 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1772963539,
+ "narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "9dcb002ca1690658be4a04645215baea8b95f31d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "rust-overlay": "rust-overlay",
+ "utils": "utils"
+ }
+ },
+ "rust-overlay": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1773115373,
+ "narHash": "sha256-bfK9FJFcQth6f3ydYggS5m0z2NRGF/PY6Y2XgZDJ6pg=",
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "rev": "1924b4672a2b8e4aee6e6652ec2e59a8d3c5648e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "type": "github"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 000000000..b2199f6eb
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,43 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ utils.url = "github:numtide/flake-utils";
+ rust-overlay = {
+ url = "github:oxalica/rust-overlay";
+ inputs = {
+ nixpkgs.follows = "nixpkgs";
+ };
+ };
+ };
+ outputs = { self, nixpkgs, utils, rust-overlay }: utils.lib.eachDefaultSystem (system:
+ let
+ overlays = [ (import rust-overlay) ];
+ pkgs = import nixpkgs {
+ inherit system overlays;
+ };
+ pkgsCross = pkgs.pkgsCross.aarch64-multiplatform;
+ in
+ {
+ devShell = pkgsCross.mkShell {
+ nativeBuildInputs = with pkgsCross; [
+ gnumake
+ ncurses
+ flex
+ bison
+ lld
+ rustc
+ rust-bindgen
+ rustfmt
+ clippy
+ pahole
+ ];
+ buildInputs = [];
+ HOSTCC="${pkgs.lib.getBin pkgs.clang}/bin/clang";
+ HOSTLD="${pkgs.lib.getBin pkgs.lld}/bin/lld";
+ HOSTCFLAGS="-I${pkgs.lib.getLib pkgs.libelf}/include -Iscripts/macos-include";
+ NIX_CFLAGS_COMPILE="-march=armv8-a+crypto";
+ RUST_LIB_SRC = "${pkgsCross.rust.packages.stable.rustPlatform.rustLibSrc}";
+ };
+ }
+ );
+}
\ No newline at end of file
diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include
index 33193ca6e..c3f38006c 100644
--- a/scripts/Kconfig.include
+++ b/scripts/Kconfig.include
@@ -54,7 +54,7 @@ as-version := $(shell,set -- $(as-info) && echo $2)
# Get the linker name, version, and error out if it is not supported.
ld-info := $(shell,$(srctree)/scripts/ld-version.sh $(LD))
-$(error-if,$(success,test -z "$(ld-info)"),Sorry$(comma) this linker is not supported.)
+$(error-if,$(success,test -z "$(ld-info)"),Sorry$(comma) this linker $(LD) is not supported.)
ld-name := $(shell,set -- $(ld-info) && echo $1)
ld-version := $(shell,set -- $(ld-info) && echo $2)
diff --git a/scripts/install.sh b/scripts/install.sh
index 05d62ac51..b99183bb8 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -6,7 +6,7 @@
# Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin
# Common code factored out by Masahiro Yamada
-set -e
+set -xe
# Make sure the files actually exist
for file in "${KBUILD_IMAGE}" System.map
diff --git a/scripts/macos-include/byteswap.h b/scripts/macos-include/byteswap.h
new file mode 100644
index 000000000..fd97ed5e1
--- /dev/null
+++ b/scripts/macos-include/byteswap.h
@@ -0,0 +1,4 @@
+#pragma once
+#define bswap_16 __builtin_bswap16
+#define bswap_32 __builtin_bswap32
+#define bswap_64 __builtin_bswap64
diff --git a/scripts/macos-include/elf.h b/scripts/macos-include/elf.h
new file mode 100644
index 000000000..5d42ed858
--- /dev/null
+++ b/scripts/macos-include/elf.h
@@ -0,0 +1,24 @@
+#pragma once
+#include <libelf/gelf.h>
+
+#define STT_SPARC_REGISTER 3
+#define R_386_32 1
+#define R_386_PC32 2
+#define R_MIPS_HI16 5
+#define R_MIPS_LO16 6
+#define R_MIPS_26 4
+#define R_MIPS_32 2
+#define R_ARM_ABS32 2
+#define R_ARM_REL32 3
+#define R_ARM_PC24 1
+#define R_ARM_CALL 28
+#define R_ARM_JUMP24 29
+#define R_ARM_THM_JUMP24 30
+#define R_ARM_THM_PC22 10
+#define R_ARM_MOVW_ABS_NC 43
+#define R_ARM_MOVT_ABS 44
+#define R_ARM_THM_MOVW_ABS_NC 47
+#define R_ARM_THM_MOVT_ABS 48
+#define R_ARM_THM_JUMP19 51
+#define R_AARCH64_ABS64 257
+#define R_AARCH64_PREL64 260
diff --git a/scripts/macos-include/endian.h b/scripts/macos-include/endian.h
new file mode 100644
index 000000000..6a27c4a0b
--- /dev/null
+++ b/scripts/macos-include/endian.h
@@ -0,0 +1,8 @@
+#pragma once
+#include <machine/endian.h>
+#include <libkern/OSByteOrder.h>
+
+#define le16toh(x) OSSwapLittleToHostInt16(x)
+#define le32toh(x) OSSwapLittleToHostInt32(x)
+#define le64toh(x) OSSwapLittleToHostInt64(x)
+#define EM_AARCH64 183
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 4e99393a3..98aee9a4d 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -16,7 +16,10 @@
#include "list.h"
#include "xalloc.h"
+#define _UUID_T
+#define uuid_t int
#include "modpost.h"
+#undef uuid_t
#include "devicetable-offsets.h"
/* We use the ELF typedefs for kernel_ulong_t but bite the bullet and
diff --git a/usr/gen_init_cpio.c b/usr/gen_init_cpio.c
index b7296edc6..809602912 100644
--- a/usr/gen_init_cpio.c
+++ b/usr/gen_init_cpio.c
@@ -457,7 +457,7 @@ static int cpio_mkfile(const char *name, const char *location,
goto error;
if (size) {
- this_read = copy_file_range(file, NULL, outfd, NULL, size, 0);
+ // this_read = copy_file_range(file, NULL, outfd, NULL, size, 0);
if (this_read > 0) {
if (this_read > size)
goto error;
@@ -674,7 +674,7 @@ int main (int argc, char *argv[])
break;
case 'o':
outfd = open(optarg,
- O_WRONLY | O_CREAT | O_LARGEFILE | O_TRUNC,
+ O_WRONLY | O_CREAT | O_TRUNC,
0600);
if (outfd < 0) {
fprintf(stderr, "failed to open %s\n", optarg);
--
2.51.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-04-12 13:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-12 13:13 [PATCH v2] [TEST 0/1] Test with random patches jw910731
2026-04-12 13:13 ` [TEST v2 1/1] [WIP] Try compile linux on macOS with the help of nix jw910731
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.