From bce519a90b1e39397d9c5a321fc4dc34a8808083 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Sun, 24 Jul 2022 08:59:45 -0600 Subject: [PATCH] Update kernel recipe for new initfs format --- recipes/kernel/init.rc | 16 ----------- recipes/kernel/recipe.sh | 57 -------------------------------------- recipes/kernel/recipe.toml | 35 +++++++++++++++++++++++ 3 files changed, 35 insertions(+), 73 deletions(-) delete mode 100644 recipes/kernel/init.rc delete mode 100644 recipes/kernel/recipe.sh create mode 100644 recipes/kernel/recipe.toml diff --git a/recipes/kernel/init.rc b/recipes/kernel/init.rc deleted file mode 100644 index bfbcad7a6..000000000 --- a/recipes/kernel/init.rc +++ /dev/null @@ -1,16 +0,0 @@ -export PATH /bin -export TMPDIR /tmp -nulld -zerod -randd -vesad T T G -logd debug: display:1 -stdio log: -ps2d us -ramfs logging -acpid -pcid /etc/pcid/initfs.toml -redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK -cd file: -export PATH file:/bin -run.d /etc/init.d diff --git a/recipes/kernel/recipe.sh b/recipes/kernel/recipe.sh deleted file mode 100644 index 63a3a21b1..000000000 --- a/recipes/kernel/recipe.sh +++ /dev/null @@ -1,57 +0,0 @@ -GIT=https://gitlab.redox-os.org/redox-os/kernel.git -BUILD_DEPENDS=( - drivers - init - logd - nulld - ramfs - randd - redoxfs - zerod -) - -function recipe_build { - export INITFS_FOLDER="$(realpath ../sysroot)" - mkdir -pv "$INITFS_FOLDER/etc" - cp -v "$(realpath ../init.rc)" "$INITFS_FOLDER/etc/init.rc" - cargo rustc \ - --lib \ - --target "${ARCH}-unknown-kernel" \ - --release \ - -Z build-std=core,alloc \ - -- \ - -C soft-float \ - -C debuginfo=2 \ - -C lto \ - --emit link=libkernel.a - ../kernel_ld.sh "${LD}" \ - --gc-sections \ - -z max-page-size=0x1000 \ - -T "linkers/${ARCH}.ld" \ - -o kernel \ - libkernel.a - "${OBJCOPY}" \ - --only-keep-debug \ - kernel \ - kernel.sym - "${OBJCOPY}" \ - --strip-debug \ - kernel - skip=1 -} - -function recipe_test { - echo "skipping test" - skip=1 -} - -function recipe_clean { - "$REDOX_MAKE" clean - skip=1 -} - -function recipe_stage { - dest="$(realpath $1)" - cp -v kernel "$dest" - skip=1 -} diff --git a/recipes/kernel/recipe.toml b/recipes/kernel/recipe.toml new file mode 100644 index 000000000..330cd1154 --- /dev/null +++ b/recipes/kernel/recipe.toml @@ -0,0 +1,35 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/kernel.git" + +[build] +template = "custom" +script = """ +export RUST_TARGET_PATH="${COOKBOOK_SOURCE}/targets" +ARCH="$(echo "${TARGET}" | cut -d - -f1)" +cargo rustc \ + --lib \ + --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ + --target "${COOKBOOK_SOURCE}/targets/${ARCH}-unknown-kernel.json" \ + --release \ + -Z build-std=core,alloc \ + -- \ + -C soft-float \ + -C debuginfo=2 \ + -C lto \ + --emit link="${PWD}/libkernel.a" +"${COOKBOOK_RECIPE}/kernel_ld.sh" "${TARGET}-ld" \ + --gc-sections \ + -z max-page-size=0x1000 \ + -T "${COOKBOOK_SOURCE}/linkers/${ARCH}.ld" \ + -o kernel.all \ + libkernel.a +"${TARGET}-objcopy" \ + --only-keep-debug \ + kernel.all \ + kernel.sym +"${TARGET}-objcopy" \ + --strip-debug \ + kernel.all \ + kernel +cp -v kernel "${COOKBOOK_STAGE}" +""" -- GitLab