diff --git a/recipes/bootstrap/recipe.toml b/recipes/bootstrap/recipe.toml index 7b564aaa743e34b0373b2db2c9a7a038db6c7e82..9efa810c6203cd31609cb020dea85ec2b8f673e4 100644 --- a/recipes/bootstrap/recipe.toml +++ b/recipes/bootstrap/recipe.toml @@ -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" """