diff --git a/recipes/kernel/init.rc b/recipes/kernel/init.rc index 25c5ba031d069ad03a6d605cd0f1e89c7d32a79c..dedda2d0f735554e96dd3965eac0831931cf5952 100644 --- a/recipes/kernel/init.rc +++ b/recipes/kernel/init.rc @@ -6,8 +6,9 @@ randd vesad T T G stdio display:1 ps2d us +ramfs logging pcid /etc/pcid/initfs.toml -redoxfs --uuid $REDOXFS_UUID file +redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK cd file: export PATH file:/bin run.d /etc/init.d diff --git a/recipes/kernel/kernel_ld.sh b/recipes/kernel/kernel_ld.sh new file mode 100755 index 0000000000000000000000000000000000000000..0f82b89d6ab2a9b0a0f3e08ec34b48478a9fbeb1 --- /dev/null +++ b/recipes/kernel/kernel_ld.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -ex + +LD="$1" +shift + +if "${LD}" -z use-gs-for-tls 2>&1 | +grep "warning: -z use-gs-for-tls ignored" &> /dev/null +then + echo "Please update your prefix:" >&2 + echo " rm -rf prefix" >&2 + echo " make prefix" >&2 + exit 1 +fi + +exec "${LD}" -z use-gs-for-tls "$@" diff --git a/recipes/kernel/recipe.sh b/recipes/kernel/recipe.sh index b30cc51c685b6068c02c671881973f70fb4e58dd..d2b9dd6b508510d9cebc575193ed0e26c9e45821 100644 --- a/recipes/kernel/recipe.sh +++ b/recipes/kernel/recipe.sh @@ -5,15 +5,17 @@ function recipe_build { export INITFS_FOLDER="$(realpath ../sysroot)" mkdir -pv "$INITFS_FOLDER/etc" cp -v "$(realpath ../init.rc)" "$INITFS_FOLDER/etc/init.rc" - xargo rustc \ + cargo rustc \ --lib \ --target "${ARCH}-unknown-none" \ --release \ + -Z build-std=core,alloc \ -- \ -C soft-float \ -C debuginfo=2 \ + -C lto \ --emit link=libkernel.a - "${LD}" \ + ../kernel_ld.sh "${LD}" \ --gc-sections \ -z max-page-size=0x1000 \ -T "linkers/${ARCH}.ld" \