Support i686 bootstrap

This commit is contained in:
Jeremy Soller 2022-08-11 08:08:55 -06:00
parent 73f39eb96e
commit 3668ccc8ae
No known key found for this signature in database
GPG Key ID: 87F211AF2BE4C2FE

View File

@ -5,7 +5,31 @@ git = "https://gitlab.redox-os.org/redox-os/bootstrap.git"
template = "custom"
script = """
ARCH="$(echo "${TARGET}" | cut -d - -f1)"
nasm -o "${COOKBOOK_BUILD}/asm.o" -f elf64 "${COOKBOOK_SOURCE}/src/${ARCH}.asm"
cargo -Zbuild-std=core,alloc,compiler_builtins -Zbuild-std-features=compiler-builtins-mem rustc --target "${TARGET}" --manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" --release --target-dir "${COOKBOOK_BUILD}" -- --emit link="${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a"
ld -o "${COOKBOOK_STAGE}/bootstrap" --gc-sections -T "${COOKBOOK_SOURCE}/src/${ARCH}.ld" "${COOKBOOK_BUILD}/asm.o" "${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a"
case "${ARCH}" in
i686)
NASM_FORMAT=elf32
;;
*)
NASM_FORMAT=elf64
;;
esac
nasm \
-o "${COOKBOOK_BUILD}/asm.o" \
-f "${NASM_FORMAT}" \
"${COOKBOOK_SOURCE}/src/${ARCH}.asm"
cargo \
-Zbuild-std=core,alloc,compiler_builtins \
-Zbuild-std-features=compiler-builtins-mem rustc \
--target "${TARGET}" \
--manifest-path "${COOKBOOK_SOURCE}/Cargo.toml" \
--release \
--target-dir "${COOKBOOK_BUILD}" \
-- \
--emit link="${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a"
"${TARGET}-ld" \
-o "${COOKBOOK_STAGE}/bootstrap" \
--gc-sections \
-T "${COOKBOOK_SOURCE}/src/${ARCH}.ld" \
"${COOKBOOK_BUILD}/asm.o" \
"${COOKBOOK_BUILD}/${TARGET}/release/libbootstrap.a"
"""