@@ -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 && \
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(-)