1
0
Fork 0
mirror of https://github.com/hermitcore/libhermit.git synced 2025-03-09 00:00:03 +01:00
libhermit/cmake/HermitCore-Toolchain-x86_64.cmake
2018-04-22 16:47:28 +00:00

35 lines
1.3 KiB
CMake

include(${CMAKE_CURRENT_LIST_DIR}/HermitCore-Utils.cmake)
include_guard()
# let user provide a different path to the toolchain
set_default(TOOLCHAIN_BIN_DIR /opt/hermit/bin)
set(TARGET_ARCH x86_64-hermit)
set(HERMIT_KERNEL_FLAGS
-m64 -Wall -O2 -mno-red-zone
-fno-var-tracking-assignments -fstrength-reduce
-fomit-frame-pointer -finline-functions -ffreestanding
-nostdinc -fno-stack-protector -mno-sse -mno-mmx
-mno-sse2 -mno-3dnow -mno-avx
-fno-delete-null-pointer-checks
-falign-jumps=1 -falign-loops=1
-mno-80387 -mno-fp-ret-in-387 -mskip-rax-setup
-fno-common -Wframe-larger-than=1024
-fno-strict-aliasing -fno-asynchronous-unwind-tables
-fno-strict-overflow -maccumulate-outgoing-args)
set(HERMIT_APP_FLAGS
-m64 -mtls-direct-seg-refs -O3 -ftree-vectorize)
set(CMAKE_SYSTEM_NAME Generic)
# point CMake to our toolchain
set(CMAKE_C_COMPILER ${TOOLCHAIN_BIN_DIR}/${TARGET_ARCH}-gcc)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_BIN_DIR}/${TARGET_ARCH}-g++)
set(CMAKE_Fortran_COMPILER ${TOOLCHAIN_BIN_DIR}/${TARGET_ARCH}-gfortran)
set(CMAKE_Go_COMPILER ${TOOLCHAIN_BIN_DIR}/${TARGET_ARCH}-gccgo)
# hinting the prefix and location is needed in order to correctly detect
# binutils
set(_CMAKE_TOOLCHAIN_PREFIX "${TARGET_ARCH}-")
set(_CMAKE_TOOLCHAIN_LOCATION ${TOOLCHAIN_BIN_DIR})