Major restructure

This commit is contained in:
Imbus 2025-09-01 22:22:35 +02:00
parent 0562c2fe5a
commit c52e19de83
25 changed files with 574 additions and 188 deletions

View file

@ -1,4 +1,6 @@
TOOLPREFIX = riscv-none-elf
TOOLPREFIX = riscv64-linux-gnu
# TOOLPREFIX = toolchain/xpack-riscv-none-elf-gcc-14.2.0-3/bin/riscv-none-elf
# TOOLPREFIX = toolchain/gcc/bin/riscv-none-elf
CC = $(TOOLPREFIX)-gcc
AS = $(TOOLPREFIX)-as
@ -17,19 +19,21 @@ CFLAGS += -mcmodel=medany
CFLAGS += -march=rv64gc -mabi=lp64
CFLAGS += -ffreestanding -fno-common -nostdlib -mno-relax
CFLAGS += -I.
CFLAGS += -Ilib
CFLAGS += -Ikern
CFLAGS += -fno-stack-protector # Prevents code that needs libc / runtime support
CFLAGS += -MD # Generate header dependency files (.d)
CFLAGS += -fno-pie -no-pie # Fixed address linking
CFLAGS += -ggdb -gdwarf-2 # GDB debug info
CFLAGS += -fno-omit-frame-pointer # More reliable backtraces in GDB
CFLAGS += -I.
CFLAGS += -I./kern
CFLAGS += -I./kern/libkern
all: kernel.elf
kernel.elf: entry.o start.o lib/string.o lib/proc.o lib/proc.o lib/uart.o lib/panic.o kern/kalloc.o lib/memory.o kern/ispinlock.o lib/spinlock.o
main: main.o
kernel.elf: entry.o start.o kern/libkern/string.o kern/libkern/proc.o kern/libkern/uart.o kern/libkern/panic.o kern/kalloc.o kern/libkern/memory.o kern/ispinlock.o kern/libkern/spinlock.o kern/libkern/string.o kern/libkern/mini-printf.o
@echo LD $@
@$(LD) $(LDFLAGS) -o $@ $^
@ -47,6 +51,7 @@ qemu: kernel.elf
clean:
rm -f *.o *.elf *.d lib/*.o lib/*.d
fd -I -e o -x rm # TODO: Should only depend on posix
-include *.d