diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-07-10 23:20:03 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-07-10 23:20:03 +0800 |
| commit | 48ef95c24e9ac3d11200b61af617a01b10b507d1 (patch) | |
| tree | 57f0e26ab98e795b19839b6eece98ca58a4b702d /scripts/build/environments/kernel.mk | |
| parent | b9ff206e6bd3f4d67851263a6f2acb5f575cf3b0 (diff) | |
| download | lume-48ef95c24e9ac3d11200b61af617a01b10b507d1.tar.gz lume-48ef95c24e9ac3d11200b61af617a01b10b507d1.tar.xz | |
build: introduce declarative non-recursive build graph
Diffstat (limited to 'scripts/build/environments/kernel.mk')
| -rw-r--r-- | scripts/build/environments/kernel.mk | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/build/environments/kernel.mk b/scripts/build/environments/kernel.mk new file mode 100644 index 0000000..088cdf0 --- /dev/null +++ b/scripts/build/environments/kernel.mk @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +WARNINGS ?= -Wall -Wextra -Wno-unused-parameter + +ifeq ($(BUILD_VARIANT),release) +KERNEL_OPT_FLAGS := -O2 -g0 -DNDEBUG +else +KERNEL_OPT_FLAGS := -O2 -g +endif + +CFLAGS := $(WARNINGS) $(KERNEL_OPT_FLAGS) \ + -ffreestanding -nostdlib \ + -mcmodel=medany -fPIE -MMD -MP \ + $(TOOLCHAIN_CFLAGS) $(KCPPFLAGS) $(INCLUDES) \ + -I$(BUILD)/generated + +CFLAGS_LIBC := $(CFLAGS) -std=gnu23 -Iinclude/libc-shim \ + -Wno-parentheses -Wno-sign-compare + +CXXFLAGS := $(CFLAGS) $(TOOLCHAIN_CXXFLAGS) -std=c++23 \ + -fno-exceptions -fno-rtti -fno-use-cxa-atexit \ + -fno-threadsafe-statics + +# Pre-MMU assembly must never use GOT-indirect addressing. +ASFLAGS := $(filter-out -fPIE,$(CFLAGS)) -fno-pie + +LDFLAGS := -nostdlib -shared -Bsymbolic -z notext -z norelro \ + --no-dynamic-linker |
