From 3668ccc8ae7de773652f3a9348a9112ca5d89ea4 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Thu, 11 Aug 2022 08:08:55 -0600
Subject: [PATCH] Support i686 bootstrap

---
 recipes/bootstrap/recipe.toml | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/recipes/bootstrap/recipe.toml b/recipes/bootstrap/recipe.toml
index 7b564aaa7..9efa810c6 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"
 """
-- 
GitLab