diff mbox series

[2/3] Dockerfile: Build GRUB UEFI target for RISC-V 32-bit

Message ID 1585238694-2714-2-git-send-email-bmeng.cn@gmail.com
State New
Headers show
Series [1/3] Dockerfile: Install riscv32 toolchain from kernel.org | expand

Commit Message

Bin Meng March 26, 2020, 4:04 p.m. UTC
Build GRUB UEFI target grubriscv32.efi.

Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---

 Dockerfile | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/Dockerfile b/Dockerfile
index dc9d6c9..a19067e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -96,7 +96,7 @@  RUN wget http://mirrors.kernel.org/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.4-1_amd
 # Manually install a new enough version of efitools (must be v1.5.2 or later)
 RUN wget http://mirrors.kernel.org/ubuntu/pool/universe/e/efitools/efitools_1.8.1-0ubuntu2_amd64.deb && sudo dpkg -i efitools_1.8.1-0ubuntu2_amd64.deb && rm efitools_1.8.1-0ubuntu2_amd64.deb
 
-# Build GRUB UEFI targets grubarm.efi and grubaa64.efi
+# Build GRUB UEFI targets for ARM & RISC-V, 32-bit and 64-bit
 RUN git clone git://git.savannah.gnu.org/grub.git /tmp/grub && \
 	cd /tmp/grub && \
 	git checkout grub-2.04 && \
@@ -143,6 +143,20 @@  RUN git clone git://git.savannah.gnu.org/grub.git /tmp/grub && \
 	lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot \
 	search search_fs_file search_fs_uuid search_label serial sleep test \
 	true && \
+	make clean && \
+	./configure --target=riscv32 --with-platform=efi \
+	CC=gcc \
+	TARGET_CC=/opt/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-gcc \
+	TARGET_OBJCOPY=/opt/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-objcopy \
+	TARGET_STRIP=/opt/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-strip \
+	TARGET_NM=/opt/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-nm \
+	TARGET_RANLIB=/opt/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-ranlib && \
+	make && \
+	./grub-mkimage -O riscv32-efi -o /opt/grub/grubriscv32.efi --prefix= -d \
+	grub-core cat chain configfile echo efinet ext2 fat halt help linux \
+	lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot \
+	search search_fs_file search_fs_uuid search_label serial sleep test \
+	true && \
 	rm -rf /tmp/grub
 
 RUN git clone git://git.qemu.org/qemu.git /tmp/qemu && \