aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/cmake/Platforms/x86_64.cmake4
-rw-r--r--source/kernel/CMakeLists.txt4
2 files changed, 6 insertions, 2 deletions
diff --git a/source/cmake/Platforms/x86_64.cmake b/source/cmake/Platforms/x86_64.cmake
index 25aa27b..14841ec 100644
--- a/source/cmake/Platforms/x86_64.cmake
+++ b/source/cmake/Platforms/x86_64.cmake
@@ -8,10 +8,10 @@ mark_as_advanced(CRT_BEGIN)
string(REGEX REPLACE "/crtbegin.o" "" CMAKE_SYSROOT "${CRT_BEGIN}")
mark_as_advanced(CMAKE_SYSROOT)
-set(CMAKE_CXX_FLAGS_INIT "-m64 -mno-red-zone -mcmodel=large -fno-exceptions")
+set(CMAKE_CXX_FLAGS_INIT "-m64 -mno-red-zone -mcmodel=large -fno-exceptions -ffunction-sections -fdata-sections")
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb3")
set(CMAKE_ASM_FLAGS_DEBUG "-ggdb3")
-set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostartfiles")
+set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostartfiles -Wl,-gc-sections")
set(CMAKE_CXX_LINK_EXECUTABLE
"<CMAKE_CXX_COMPILER> \
<FLAGS> \
diff --git a/source/kernel/CMakeLists.txt b/source/kernel/CMakeLists.txt
index 54bdb8b..bc60f6c 100644
--- a/source/kernel/CMakeLists.txt
+++ b/source/kernel/CMakeLists.txt
@@ -14,6 +14,10 @@ target_compile_options("kernel" PRIVATE
"$<$<CXX_COMPILER_ID:GNU>:-pedantic-errors>"
)
+set_target_properties("kernel" PROPERTIES
+ INTERPROCEDURAL_OPTIMIZATION YES
+)
+
#[============================================================================[
# Apply the platform dependent settings to the kernel image.
#]============================================================================]