diff options
| author | Nathan Lee <me@nwlee.tech> | 2026-08-12 17:56:28 -0500 |
|---|---|---|
| committer | Nathan Lee <me@nwlee.tech> | 2026-08-12 17:56:28 -0500 |
| commit | 02a931d1a99b7d5fab90a3d02c474075c6e90fdf (patch) | |
| tree | b66b7f05805277728773b7e998fdc332bc5cce82 | |
| parent | 2c0efd93530c472e96ff3529aee983b53f3b78d9 (diff) | |
move linker into arch-specific directory
| -rw-r--r-- | BuildConfig | 1 | ||||
| -rw-r--r-- | Makefile | 7 | ||||
| -rw-r--r-- | kernel/riscv/linker.ld (renamed from linker.ld) | 1 |
3 files changed, 5 insertions, 4 deletions
diff --git a/BuildConfig b/BuildConfig index 000d4ee..c985c6c 100644 --- a/BuildConfig +++ b/BuildConfig @@ -1,4 +1,5 @@ kernel: kernel/riscv/*.c kernel/riscv/*.S kernel/common/*.c +linker_script: kernel/riscv/linker.ld kernel_target: kernel/riscv modules: console console: console/*.c @@ -33,7 +33,7 @@ INCLUDE_FLAG = -Iinclude -Ikernel OPT_FLAG = -O2 -g3 WARN_FLAG = -Wall -Wextra -Werror -Wundef -KERNEL_LD_FLAG = -T linker.ld -nostdlib -m elf32lriscv --gc-sections +KERNEL_LD_FLAG = -T $(KERNEL_LD) -nostdlib -m elf32lriscv --gc-sections MODULE_LD_FLAG = -nostdlib -shared -m elf32lriscv --gc-sections KERNEL_OBJCOPY_FLAG = -O binary \ @@ -85,6 +85,7 @@ endef $(foreach module,$(MODULES),$(eval $(call module_template,$(module)))) KERNEL_SRCS = $(wildcard $(shell grep '^kernel:' BuildConfig | sed 's/^kernel://' | awk '{$$1=$$1; print}')) +KERNEL_LD := $(shell grep '^linker_script:' BuildConfig | sed 's/^linker_script://' | awk '{$$1=$$1; print}') KERNEL_OBJS = $(KERNEL_SRCS:.c=.o) KERNEL_OBJS := $(KERNEL_OBJS:.S=.o) KERNEL_BIN = kernel/kernel.bin @@ -112,7 +113,7 @@ $(MODULES): $(MODULE_OBJECTS) @echo " AS $<" $(CC) $(KERNEL_CFLAGS) -c $< -o $@ -$(KERNEL_ELF): $(KERNEL_OBJS) linker.ld | $(KERNEL_OUTDIR)/ +$(KERNEL_ELF): $(KERNEL_OBJS) $(KERNEL_LD) | $(KERNEL_OUTDIR)/ @echo " LD $@" $(LD) $(KERNEL_LD_FLAG) $(KERNEL_OBJS) -o $@ @@ -121,5 +122,5 @@ $(KERNEL_BIN): $(KERNEL_ELF) | $(KERNEL_OUTDIR)/ $(OBJCOPY) $(KERNEL_OBJCOPY_FLAG) $(KERNEL_ELF) $(KERNEL_BIN) clean: - @echo " CLEAN" + @echo " CLEAN $(GENERATED)" $(RM) $(GENERATED) diff --git a/linker.ld b/kernel/riscv/linker.ld index 4fec2bf..5bf6586 100644 --- a/linker.ld +++ b/kernel/riscv/linker.ld @@ -71,5 +71,4 @@ SECTIONS *(.llvm_*) *(.rela.*) } - _end = .; } |
