0f3840a5b5
Per local/docs/PATCH-PRESERVATION-AUDIT-2026-07-12.md the kernel fork was carrying only 21 of 45 patches in local/patches/kernel/. The other 24 patches' content was silently missing from the fork working tree, even though their .patch files were preserved. This commit re-applies 7 patches that genuinely still apply cleanly. The other 17 patches in the orphan list had hunks that were already partially present in the fork (conservative audit flagged them as orphan but the changes were material and only partially diverged) or no longer apply (file was restructured upstream). After this commit, the kernel fork reflects the intended Red Bear work for: - P1-memory-map-overflow: stack-guard on startup memory map - P3-eventfd-kernel: scheme support for eventfd fd-table ops - P5-context-mod-sched: context-switch optimization (mod.rs) - P8-msi-foundation: MSI/MSI-X driver foundation (src/arch/x86_shared/device/msi.rs) - P8-msi: device-level MSI plumbing (vector.rs) - P9-proc-lock-ordering: scheme/proc lock ordering fix - redox: Makefile patch Untracked files msi.rs and vector.rs created by patch application. mtn/ tree and proc.rs.orig cleaned up (leftovers from absolute-path patch context lines).
68 lines
1.7 KiB
Makefile
68 lines
1.7 KiB
Makefile
# Red Bear OS kernel patches applied via individual patch files
|
|
.PHONY: all check
|
|
|
|
SOURCE:=$(dir $(realpath $(lastword $(MAKEFILE_LIST))))
|
|
BUILD?=$(CURDIR)
|
|
export RUST_TARGET_PATH=$(SOURCE)/targets
|
|
|
|
ifeq ($(TARGET),)
|
|
ARCH?=$(shell uname -m)
|
|
else
|
|
ARCH?=$(shell echo "$(TARGET)" | cut -d - -f1)
|
|
endif
|
|
|
|
ifeq ($(ARCH),riscv64gc)
|
|
override ARCH:=riscv64
|
|
GNU_TARGET=riscv64-unknown-redox
|
|
else ifeq ($(ARCH),i686)
|
|
override ARCH:=i586
|
|
GNU_TARGET=i686-unknown-redox
|
|
else
|
|
GNU_TARGET=$(ARCH)-unknown-redox
|
|
endif
|
|
|
|
|
|
all: $(BUILD)/kernel $(BUILD)/kernel.sym
|
|
|
|
LD_SCRIPT=$(SOURCE)/linkers/$(ARCH).ld
|
|
LOCKFILE=$(SOURCE)/Cargo.lock
|
|
MANIFEST=$(SOURCE)/Cargo.toml
|
|
TARGET_SPEC=$(RUST_TARGET_PATH)/$(ARCH)-unknown-kernel.json
|
|
|
|
KERNEL_CARGO_FEATURES?=
|
|
|
|
$(BUILD)/kernel.all: $(LD_SCRIPT) $(LOCKFILE) $(MANIFEST) $(TARGET_SPEC) $(shell find $(SOURCE) -name "*.rs" -type f)
|
|
cargo rustc \
|
|
--bin kernel \
|
|
--manifest-path "$(MANIFEST)" \
|
|
--target "$(TARGET_SPEC)" \
|
|
--release \
|
|
-Z build-std=core,alloc -Zbuild-std-features=compiler-builtins-mem -Z json-target-spec \
|
|
--features=$(KERNEL_CARGO_FEATURES) \
|
|
-- \
|
|
-C link-arg=-T -Clink-arg="$(LD_SCRIPT)" \
|
|
-C link-arg=-z -Clink-arg=max-page-size=0x1000 \
|
|
--emit link="$(BUILD)/kernel.all"
|
|
|
|
$(BUILD)/kernel.sym: $(BUILD)/kernel.all
|
|
$(GNU_TARGET)-objcopy \
|
|
--only-keep-debug \
|
|
"$(BUILD)/kernel.all" \
|
|
"$(BUILD)/kernel.sym"
|
|
|
|
$(BUILD)/kernel: $(BUILD)/kernel.all
|
|
$(GNU_TARGET)-objcopy \
|
|
--strip-debug \
|
|
"$(BUILD)/kernel.all" \
|
|
"$(BUILD)/kernel"
|
|
|
|
KERNEL_CHECK_FEATURES?=
|
|
|
|
check:
|
|
cargo check \
|
|
--bin kernel \
|
|
--manifest-path "$(MANIFEST)" \
|
|
--target "$(TARGET_SPEC)" \
|
|
-Z build-std=core,alloc -Zbuild-std-features=compiler-builtins-mem -Z json-target-spec \
|
|
--features=$(KERNEL_CHECK_FEATURES)
|