summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-07-10 23:20:03 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-07-10 23:20:03 +0800
commit48ef95c24e9ac3d11200b61af617a01b10b507d1 (patch)
tree57f0e26ab98e795b19839b6eece98ca58a4b702d /arch
parentb9ff206e6bd3f4d67851263a6f2acb5f575cf3b0 (diff)
downloadlume-48ef95c24e9ac3d11200b61af617a01b10b507d1.tar.gz
lume-48ef95c24e9ac3d11200b61af617a01b10b507d1.tar.xz
build: introduce declarative non-recursive build graph
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv/Build.mk19
-rw-r--r--arch/riscv/include/asm/sections.h2
-rw-r--r--arch/riscv/mm/init.cc2
-rw-r--r--arch/riscv/module.mk18
4 files changed, 21 insertions, 20 deletions
diff --git a/arch/riscv/Build.mk b/arch/riscv/Build.mk
new file mode 100644
index 0000000..0a18344
--- /dev/null
+++ b/arch/riscv/Build.mk
@@ -0,0 +1,19 @@
+targets += arch/riscv
+target.arch/riscv.kind := source-set
+target.arch/riscv.public-includes := arch/riscv/include
+target.arch/riscv.sources := \
+ arch/riscv/mm/pmap.cc \
+ arch/riscv/mm/init.cc \
+ arch/riscv/config.cc \
+ arch/riscv/trap/trap_md.cc \
+ arch/riscv/syscall/syscall_md.cc \
+ arch/riscv/lib/random.cc \
+ arch/riscv/mm/tlb_md.cc \
+ arch/riscv/kernel/head.S \
+ arch/riscv/trap/swtch.S \
+ arch/riscv/trap/fpu.S \
+ arch/riscv/trap/trap_vector.S \
+ arch/riscv/uaccess/uaccess_memcpy.S \
+ arch/riscv/trap/extable.cc \
+ arch/riscv/kernel/signal.cc
+
diff --git a/arch/riscv/include/asm/sections.h b/arch/riscv/include/asm/sections.h
index 454d9de..7067444 100644
--- a/arch/riscv/include/asm/sections.h
+++ b/arch/riscv/include/asm/sections.h
@@ -23,7 +23,7 @@ extern "C" {
#endif
extern char _start[];
-extern char _end[];
+extern char _kernel_end[];
extern char _stext[];
extern char _etext[];
diff --git a/arch/riscv/mm/init.cc b/arch/riscv/mm/init.cc
index 3cebcd9..30ea45e 100644
--- a/arch/riscv/mm/init.cc
+++ b/arch/riscv/mm/init.cc
@@ -88,7 +88,7 @@ extern "C" void __init setup_vm(uintptr_t load_pa, uintptr_t dtb_pa)
kernel_map.virt_offset = 0;
kernel_map.virt_addr = KERNEL_LINK_ADDR + kernel_map.virt_offset;
kernel_map.phys_addr = load_pa;
- kernel_map.size = (uintptr_t)_end - (uintptr_t)_start;
+ kernel_map.size = (uintptr_t)_kernel_end - (uintptr_t)_start;
kernel_map.page_offset = PAGE_OFFSET;
/* Mirrors Linux: va_pa_offset is the constant added to a physical
diff --git a/arch/riscv/module.mk b/arch/riscv/module.mk
deleted file mode 100644
index 97d22de..0000000
--- a/arch/riscv/module.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# arch/riscv/module.mk
-SRCS_CC += arch/riscv/mm/pmap.cc
-SRCS_CC += arch/riscv/mm/init.cc
-SRCS_CC += arch/riscv/config.cc
-SRCS_CC += arch/riscv/trap/trap_md.cc
-SRCS_CC += arch/riscv/syscall/syscall_md.cc
-SRCS_CC += arch/riscv/lib/random.cc
-SRCS_CC += arch/riscv/mm/tlb_md.cc
-SRCS_S += arch/riscv/kernel/head.S
-SRCS_S += arch/riscv/trap/swtch.S
-SRCS_S += arch/riscv/trap/fpu.S
-SRCS_S += arch/riscv/trap/trap_vector.S
-SRCS_S += arch/riscv/uaccess/uaccess_memcpy.S
-SRCS_CC += arch/riscv/trap/extable.cc
-SRCS_CC += arch/riscv/kernel/signal.cc
-
-# Arch-specific headers (added to include path)
-INCLUDES += -Iarch/riscv/include