aboutsummaryrefslogtreecommitdiff
path: root/cmake/Platforms/x86_64.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Platforms/x86_64.cmake')
-rw-r--r--cmake/Platforms/x86_64.cmake24
1 files changed, 4 insertions, 20 deletions
diff --git a/cmake/Platforms/x86_64.cmake b/cmake/Platforms/x86_64.cmake
index c84d9ba..8db6142 100644
--- a/cmake/Platforms/x86_64.cmake
+++ b/cmake/Platforms/x86_64.cmake
@@ -1,17 +1,5 @@
include_guard(GLOBAL)
-macro(find_compiler_file NAME OUTPUT_VARIABLE)
- execute_process(COMMAND
- "${CMAKE_CXX_COMPILER}"
- "-mno-red-zone"
- "-print-file-name=${NAME}"
- OUTPUT_STRIP_TRAILING_WHITESPACE
- OUTPUT_VARIABLE "${OUTPUT_VARIABLE}"
- ERROR_QUIET
- )
- mark_as_advanced("${OUTPUT_VARIABLE}")
-endmacro()
-
set(PLATFORM_TARGET "x86_64-pc-elf")
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
@@ -27,7 +15,8 @@ find_program(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER_TARGET}-g++" REQUIRED)
set(CMAKE_CXX_FLAGS_INIT
"-mno-red-zone \
--mcmodel=large \
+-mcmodel=kernel \
+-fno-pie \
-fno-rtti \
-fno-exceptions \
-ffunction-sections \
@@ -46,19 +35,14 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -ggdb3")
set(CMAKE_ASM_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -ggdb3")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -ggdb3")
-set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostartfiles -Wl,--gc-sections")
-
-find_compiler_file("crtbegin.o" CRT_BEGIN_PATH)
-find_compiler_file("crtend.o" CRT_END_PATH)
+set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--gc-sections")
set(CMAKE_CXX_LINK_EXECUTABLE
"<CMAKE_CXX_COMPILER> \
<FLAGS> \
<CMAKE_CXX_LINK_FLAGS> \
<LINK_FLAGS> \
-${CRT_BEGIN_PATH} \
<OBJECTS> \
-o <TARGET> \
-<LINK_LIBRARIES> \
-${CRT_END_PATH}"
+<LINK_LIBRARIES>"
)