diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-15 17:40:19 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-15 17:40:19 +0200 |
commit | d156a5bf40f16b968152e80f6c9c63fe1f6ff1cc (patch) | |
tree | 900f76c963533fca41d6fea744a3d56bcc42410a | |
parent | CGA: map and set buffer address in kernel main (diff) | |
download | kernel.cpp-d156a5bf40f16b968152e80f6c9c63fe1f6ff1cc.tar.xz |
Enable ThinLTO
-rw-r--r-- | linker.ld | 2 | ||||
-rw-r--r-- | makefile | 5 | ||||
-rw-r--r-- | toolchain.makefile | 4 |
3 files changed, 6 insertions, 5 deletions
@@ -51,7 +51,7 @@ SECTIONS .bss ALIGN(4K) : AT(ADDR(.bss) - VADDR_BASE + 4M) { begin_bss = .; *(.pages) - *(.bss) + *(.bss*) *(.stack) end_bss = .; } @@ -1,6 +1,6 @@ -include toolchain.makefile include .config OBJ_DIR != echo $(CONFIG_OBJ_DIR) +include toolchain.makefile .PHONY: default clean test todo run menuconfig default: $(OBJ_DIR)/glitch.elf @@ -18,7 +18,8 @@ CXX_SYSTEM_INCLUDE := $(addprefix -isystem, $(CXX_SYSTEM_INCLUDE)) $(OBJ_DIR)/glitch.elf: $(autogen) $(AS_OBJ) $(CXX_OBJ) linker.ld @echo " LD $@" - @$(LD) $(LD_FLAGS) -o $@ $(AS_OBJ) $(CXX_OBJ) -T $(CURDIR)/linker.ld + @mkdir -p $(OBJ_DIR)/thinlto_cache + @$(LD) $(LD_FLAGS) -o $@ $(AS_OBJ) $(CXX_OBJ) $(AS_OBJ): $(OBJ_DIR)/%.o: %.S @mkdir -p $(@D) diff --git a/toolchain.makefile b/toolchain.makefile index c3ac2d8..d8f09f7 100644 --- a/toolchain.makefile +++ b/toolchain.makefile @@ -8,13 +8,13 @@ AS := clang AS_FLAGS := LD := ld.lld -LD_FLAGS := +LD_FLAGS := -T linker.ld --thinlto-cache-dir=$(OBJ_DIR)/thinlto_cache CXX := clang++ TEST_CXX := clang++ CXX_FLAGS := -std=c++20 -g \ -mkernel -ffreestanding -nostdlib -nostdinc -nostdinc++ \ - -Wall -Wextra -Werror=pedantic -O2 \ + -Wall -Wextra -Werror=pedantic -O2 -flto=thin \ -Werror=date-time \ -Werror=shadow-all \ -Wold-style-cast -Wconversion \ |