diff --git a/recipes/core/base-initfs/recipe.toml b/recipes/core/base-initfs/recipe.toml index 237dfe0ca..6dd0b99bc 100644 --- a/recipes/core/base-initfs/recipe.toml +++ b/recipes/core/base-initfs/recipe.toml @@ -25,19 +25,10 @@ BINS=( pcid-spawner rtcd vesad + virtio-blkd + virtio-gpud ) -virt_bins() -{ - BINS+=(virtio-blkd virtio-gpud) -} - -x86_common_bins() -{ - BINS+=(ahcid ided ps2d vesad) - virt_bins -} - aarch64_bins() { case "${BOARD}" in @@ -45,18 +36,13 @@ aarch64_bins() BINS+=(bcm2835-sdhcid) ;; *) - #qemu-virt - virt_bins ;; esac } case "${TARGET}" in - i586-unknown-redox | i686-unknown-redox) - x86_common_bins - ;; - x86_64-unknown-redox) - x86_common_bins + i586-unknown-redox | i686-unknown-redox | x86_64-unknown-redox) + BINS+=(ahcid ided ps2d) ;; aarch64-unknown-redox) aarch64_bins @@ -66,16 +52,15 @@ case "${TARGET}" in esac rm -rf "${COOKBOOK_BUILD}/initfs" -mkdir -p "${COOKBOOK_BUILD}/initfs/lib/init.d" +# Copy config files +mkdir -p "${COOKBOOK_BUILD}/initfs/lib/init.d" "${COOKBOOK_BUILD}/initfs/lib/pcid.d" cp "${COOKBOOK_SOURCE}/init.initfs.d"/* "${COOKBOOK_BUILD}/initfs/lib/init.d/" +cp "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/lib/pcid.d/initfs.toml" -mkdir -pv "${COOKBOOK_BUILD}/initfs/lib/pcid.d" -cp -v "${COOKBOOK_SOURCE}/drivers/initfs.toml" "${COOKBOOK_BUILD}/initfs/lib/pcid.d/initfs.toml" - -export CARGO_PROFILE_RELEASE_OPT_LEVEL=s -export CARGO_PROFILE_RELEASE_PANIC=abort -"${COOKBOOK_CARGO}" build ${build_flags} \ +# Build daemons and drivers +CARGO_PROFILE_RELEASE_OPT_LEVEL=s CARGO_PROFILE_RELEASE_PANIC=abort \ + "${COOKBOOK_CARGO}" build ${build_flags} \ --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \ $(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done) @@ -94,23 +79,14 @@ done cp "${COOKBOOK_SYSROOT}/usr/bin/redoxfs" "${COOKBOOK_BUILD}/initfs/bin" +# Build bootstrap ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)" -RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+crt-static" cargo \ - -Zbuild-std=core,alloc,compiler_builtins \ - -Zbuild-std-features=compiler-builtins-mem build \ - --target "${TARGET}" \ - --manifest-path "${COOKBOOK_SOURCE}/bootstrap/Cargo.toml" \ - --release \ - --target-dir "${COOKBOOK_BUILD}" -"${GNU_TARGET}-ld" \ - -o "${COOKBOOK_BUILD}/bootstrap" \ - --gc-sections \ - -T "${COOKBOOK_SOURCE}/bootstrap/src/${ARCH}.ld" \ - -z max-page-size=4096 \ - "${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a" +(cd "${COOKBOOK_SOURCE}/bootstrap" && "${COOKBOOK_CARGO}" rustc \ + --release -- -Ctarget-feature=+crt-static -Clinker="${GNU_TARGET}-ld") +cp "${COOKBOOK_BUILD}/target/${TARGET}/release/bootstrap" "${COOKBOOK_BUILD}/bootstrap" +# Assemble initfs env -u CARGO -u RUSTFLAGS cargo run --manifest-path "${COOKBOOK_SOURCE}/initfs/tools/Cargo.toml" --bin redox-initfs-ar -- "${COOKBOOK_BUILD}/initfs" "${COOKBOOK_BUILD}/bootstrap" -o "${COOKBOOK_BUILD}/initfs.img" - mkdir -pv "${COOKBOOK_STAGE}/usr/lib/boot" cp "${COOKBOOK_BUILD}/initfs.img" "${COOKBOOK_STAGE}/usr/lib/boot/initfs" """