diff options
Diffstat (limited to 'cmake/Platforms/x86_64.cmake')
| -rw-r--r-- | cmake/Platforms/x86_64.cmake | 24 |
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>" ) |
