Red Bear OS — microkernel OS in Rust, based on Redox
Derivative of Redox OS (https://www.redox-os.org) adding: - AMD GPU driver (amdgpu) via LinuxKPI compat layer - ext4 filesystem support (ext4d scheme daemon) - ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG) - Custom branding (hostname, os-release, boot identity) Build system is full upstream Redox with RBOS overlay in local/. Patches for kernel, base, and relibc are symlinked from local/patches/ and protected from make clean/distclean. Custom recipes live in local/recipes/ with symlinks into the recipes/ search path. Build: make all CONFIG_NAME=redbear-full Sync: ./local/scripts/sync-upstream.sh
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
set(CMAKE_C_COMPILER cc)
|
||||
set(CMAKE_CXX_COMPILER c++)
|
||||
@@ -0,0 +1,72 @@
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/llvm-project.git"
|
||||
upstream = "https://github.com/rust-lang/llvm-project.git"
|
||||
branch = "redox-2024-05-11"
|
||||
shallow_clone = true
|
||||
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"zlib"
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
# https://llvm.org/docs/CMake.html
|
||||
case "${TARGET}" in
|
||||
x86-unknown-redox)
|
||||
LLVM_TARGETS_TO_BUILD="X86"
|
||||
;;
|
||||
x86_64-unknown-redox)
|
||||
LLVM_TARGETS_TO_BUILD="X86"
|
||||
;;
|
||||
aarch64-unknown-redox)
|
||||
LLVM_TARGETS_TO_BUILD="AArch64"
|
||||
;;
|
||||
riscv64gc-unknown-redox)
|
||||
LLVM_TARGETS_TO_BUILD="RISCV"
|
||||
;;
|
||||
*)
|
||||
LLVM_TARGETS_TO_BUILD="host"
|
||||
;;
|
||||
esac
|
||||
|
||||
COOKBOOK_CMAKE_FLAGS+=(
|
||||
-DCMAKE_CXX_FLAGS="--std=gnu++11"
|
||||
-DBUILD_SHARED_LIBS=False
|
||||
-DLLVM_LINK_LLVM_DYLIB=On
|
||||
-DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")"
|
||||
-DLLVM_BUILD_BENCHMARKS=Off
|
||||
-DLLVM_BUILD_EXAMPLES=Off
|
||||
-DLLVM_BUILD_TESTS=Off
|
||||
-DLLVM_BUILD_UTILS=Off
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}"
|
||||
-DLLVM_ENABLE_LTO=Off
|
||||
-DLLVM_ENABLE_RTTI=On
|
||||
-DLLVM_ENABLE_THREADS=On
|
||||
-DLLVM_ENABLE_ZSTD=Off
|
||||
-DLLVM_INCLUDE_BENCHMARKS=Off
|
||||
-DLLVM_INCLUDE_EXAMPLES=Off
|
||||
-DLLVM_INCLUDE_TESTS=Off
|
||||
-DLLVM_INCLUDE_UTILS=Off
|
||||
-DLLVM_OPTIMIZED_TABLEGEN=On
|
||||
-DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)"
|
||||
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS_TO_BUILD}"
|
||||
-DLLVM_TOOL_LLVM_COV_BUILD=Off
|
||||
-DLLVM_TOOL_LLVM_LTO_BUILD=Off
|
||||
-DLLVM_TOOL_LLVM_LTO2_BUILD=Off
|
||||
-DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off
|
||||
-DLLVM_TOOL_LLVM_RTDYLD_BUILD=Off
|
||||
-DLLVM_TOOL_LLVM_XRAY_BUILD=Off
|
||||
-DLLVM_TOOL_LLI_BUILD=Off
|
||||
-DLLVM_TOOL_LTO_BUILD=Off
|
||||
-DLLVM_TOOLS_INSTALL_DIR=bin
|
||||
-DLLVM_UTILS_INSTALL_DIR=bin
|
||||
-DUNIX=1
|
||||
-DLLVM_ENABLE_PROJECTS="llvm"
|
||||
)
|
||||
|
||||
# Native tablegen build fails with too many jobs, limit to 16
|
||||
COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 16 ? 16 : ${COOKBOOK_MAKE_JOBS} ))"
|
||||
cookbook_cmake "${COOKBOOK_SOURCE}/llvm"
|
||||
"""
|
||||
Reference in New Issue
Block a user