commit d10cfddad74e227b7d797baf69e236ba52ed988c
parent eeed52bda2fcae84582cf9e0f9f9df77bf34e7c0
Author: Christian Ermann <christianermann@gmail.com>
Date: Thu, 24 Oct 2024 18:10:22 -0700
Switch to 'gcc' instead of 'as' and 'ld'
Diffstat:
1 file changed, 8 insertions(+), 15 deletions(-)
diff --git a/Dockerfile b/Dockerfile
@@ -33,20 +33,17 @@ RUN git clone https://github.com/riscv/riscv-gnu-toolchain
WORKDIR "/riscv-gnu-toolchain"
RUN ./configure --prefix=/opt/riscv
RUN make
+WORKDIR "/"
-FROM debian:stable-slim as build
+FROM build-tools as build
-COPY --from=build-tools /opt/riscv /opt/riscv
ENV PATH="$PATH:/opt/riscv/bin"
COPY ns16550a.s .
COPY forth.s .
COPY riscv32-virt.ld .
-RUN riscv64-unknown-elf-as -march=rv32i -o ns16550a.o ns16550a.s
-RUN riscv64-unknown-elf-as -march=rv32i -o forth.o forth.s
-RUN riscv64-unknown-elf-ld -T riscv32-virt.ld -o forth.elf forth.o ns16550a.o
-RUN riscv64-unknown-elf-objcopy -O binary forth.elf forth.bin
+RUN riscv64-unknown-elf-gcc -ggdb -static -nostdlib -nostdinc -nostartfiles -x assembler-with-cpp -march=rv32i -mabi=ilp32 -T riscv32-virt.ld -o forth.elf ns16550a.s forth.s
-FROM debian:stable-slim as run-base
+FROM build-tools as run-base
RUN apt-get update && apt-get -y upgrade && \
apt-get --no-install-recommends -y install \
@@ -54,15 +51,11 @@ RUN apt-get update && apt-get -y upgrade && \
qemu-system-misc
FROM run-base as run
-COPY --from=build forth.bin forth.bin
+
+COPY --from=build forth.elf forth.elf
+ENV PATH="$PATH:/opt/riscv/bin"
#RUN qemu-system-riscv32 -machine virt -machine dumpdtb=riscv32-virt.dtb -bios none
#RUN dtc -I dtb -O dts -o riscv32-virt.dts riscv32-virt.dtb
-
-CMD ["qemu-system-riscv32", "-nographic", "-bios", "none", "-machine", "virt", "-kernel", "forth.bin"]
-
-
+CMD ["qemu-system-riscv32", "-gdb", "tcp::1234", "-nographic", "-bios", "none", "-machine", "virt", "-kernel", "forth.elf"]
#CMD ["/bin/sh"]
-#FROM build
-#COPY --from=build-tools /opt/riscv/... /
-