[CMAKE] Disable SSE instruction on GCC amd64 builds

Except for user-mode modules
This commit is contained in:
Jérôme Gardou 2021-04-22 17:31:39 +02:00 committed by Jérôme Gardou
parent ba74a05a17
commit 63944988a2

View file

@ -172,6 +172,14 @@ add_definitions(-D_inline=__inline)
# Fix build with GLIBCXX + our c++ headers
add_definitions(-D_GLIBCXX_HAVE_BROKEN_VSWPRINTF)
# Disable SSE globally on amd64 builds.
# We can't disable it for kernel mode modules only,
# as we don't call set_module_type on static libraries
# Instead we disable this options for user-mode modules
if(ARCH STREQUAL "amd64")
add_compile_options(-mno-sse)
endif()
# Alternative arch name
if(ARCH STREQUAL "amd64")
set(ARCH2 x86_64)
@ -314,6 +322,9 @@ function(set_module_type_toolchain MODULE TYPE)
# Believe it or not, cmake doesn't do that
set_property(TARGET ${MODULE} APPEND PROPERTY LINK_DEPENDS $<TARGET_PROPERTY:native-pefixup,IMPORTED_LOCATION>)
else()
# We can safely use SSE for user-mode parts
remove_target_compile_option(${MODULE} -mno-sse)
endif()
endfunction()