mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-23 13:24:17 +08:00
Merge branch 'initfs_build_rework' into 'master'
Simplify base-initfs building See merge request redox-os/redox!2072
This commit is contained in:
commit
35420f9983
@ -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"
|
||||
"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user