diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:05:20 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:05:20 +0800 |
| commit | df1af31b90d904fddc45c6da6da5ee36d905a0ca (patch) | |
| tree | ed51b2b97da3845c842ad27d7b3b44909e703baf /na/lib | |
| parent | de8ee60ecb4396fa0567db666f99c1b8d1114bc7 (diff) | |
| download | lume-df1af31b90d904fddc45c6da6da5ee36d905a0ca.tar.gz lume-df1af31b90d904fddc45c6da6da5ee36d905a0ca.tar.xz | |
feat: Update Makefile and module.mk files to include additional source files and improve build process
Diffstat (limited to 'na/lib')
| -rw-r--r-- | na/lib/module.mk | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/na/lib/module.mk b/na/lib/module.mk index 46c46d4..08b29c2 100644 --- a/na/lib/module.mk +++ b/na/lib/module.mk @@ -1,2 +1,37 @@ # lib/module.mk SRCS_CC += lib/panic.cc +SRCS_CC += lib/cxx_abi.cc +SRCS_CC += lib/rbtree.cc + +# ============================================================ +# musl string library (cross-platform with arch asm overrides) +# ============================================================ + +# Map LumeOS ARCH to musl string arch directory +# riscv has no musl asm optimizations → pure C fallback +MUSL_STRING_ARCH_riscv := +MUSL_STRING_ARCH_x86_64 := x86_64 +MUSL_STRING_ARCH_i386 := i386 +MUSL_STRING_ARCH_aarch64:= aarch64 +MUSL_STRING_ARCH_arm := arm + +MUSL_STRING_ARCH := $(MUSL_STRING_ARCH_$(ARCH)) + +# Collect arch-specific asm sources (if any for this arch) +MUSL_ASM_SRCS := +ifneq ($(MUSL_STRING_ARCH),) + MUSL_ASM_SRCS += $(wildcard lib/string/$(MUSL_STRING_ARCH)/*.S) \ + $(wildcard lib/string/$(MUSL_STRING_ARCH)/*.s) +endif + +# Derive which C files are overridden by asm (strip path+ext to get base name) +MUSL_ASM_BASENAMES := $(sort $(basename $(notdir $(MUSL_ASM_SRCS)))) + +# All C sources, then filter out those with asm replacements +MUSL_ALL_C := $(wildcard lib/string/*.c) +MUSL_EXCLUDED_C := $(foreach name,$(MUSL_ASM_BASENAMES),lib/string/$(name).c) +MUSL_C_SRCS := $(filter-out $(MUSL_EXCLUDED_C),$(MUSL_ALL_C)) + +SRCS_C += $(MUSL_C_SRCS) +SRCS_S += $(filter %.S,$(MUSL_ASM_SRCS)) +SRCS_s += $(filter %.s,$(MUSL_ASM_SRCS)) |
