mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 23:31:37 +00:00
[CMake] Revert r200695 and fix the problem with missing -fno-function-sections in a different way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200745 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
caeb7f94c7
commit
c55ee815d4
@ -335,23 +335,25 @@ if (UNIX AND
|
|||||||
append("-fcolor-diagnostics" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
append("-fcolor-diagnostics" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Clang prior to 3.5 ignored -fno-function-sections.
|
|
||||||
# It's pretty hard to test directly, so we rely on the version number.
|
|
||||||
if( ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5) )
|
|
||||||
set(LLVM_COMPILER_HAS_BROKEN_FNO_FUNCTION_SECTIONS ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Add flags for add_dead_strip().
|
# Add flags for add_dead_strip().
|
||||||
# FIXME: With MSVS, consider compiling with /Gy and linking with /OPT:REF?
|
# FIXME: With MSVS, consider compiling with /Gy and linking with /OPT:REF?
|
||||||
# But MinSizeRel seems to add that automatically, so maybe disable these
|
# But MinSizeRel seems to add that automatically, so maybe disable these
|
||||||
# flags instead if LLVM_NO_DEAD_STRIP is set.
|
# flags instead if LLVM_NO_DEAD_STRIP is set.
|
||||||
if(NOT CYGWIN AND NOT WIN32)
|
if(NOT CYGWIN AND NOT WIN32)
|
||||||
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||||
# Don't add -ffunction-section if it can be disabled with -fno-function-sections.
|
check_c_compiler_flag("-Werror -fno-function-sections" C_SUPPORTS_FNO_FUNCTION_SECTIONS)
|
||||||
# Doing so will break sanitizers.
|
if (C_SUPPORTS_FNO_FUNCTION_SECTIONS)
|
||||||
if (NOT LLVM_COMPILER_HAS_BROKEN_FNO_FUNCTION_SECTIONS)
|
# Don't add -ffunction-section if it can be disabled with -fno-function-sections.
|
||||||
append("-ffunction-sections -fdata-sections" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
# Doing so will break sanitizers.
|
||||||
|
check_c_compiler_flag("-Werror -ffunction-sections" C_SUPPORTS_FFUNCTION_SECTIONS)
|
||||||
|
check_cxx_compiler_flag("-Werror -ffunction-sections" CXX_SUPPORTS_FFUNCTION_SECTIONS)
|
||||||
|
append_if(C_SUPPORTS_FFUNCTION_SECTIONS "-ffunction-sections" CMAKE_C_FLAGS)
|
||||||
|
append_if(CXX_SUPPORTS_FFUNCTION_SECTIONS "-ffunction-sections" CMAKE_CXX_FLAGS)
|
||||||
endif()
|
endif()
|
||||||
|
check_c_compiler_flag("-Werror -fdata-sections" C_SUPPORTS_FDATA_SECTIONS)
|
||||||
|
check_cxx_compiler_flag("-Werror -fdata-sections" CXX_SUPPORTS_FDATA_SECTIONS)
|
||||||
|
append_if(C_SUPPORTS_FDATA_SECTIONS "-fdata-sections" CMAKE_C_FLAGS)
|
||||||
|
append_if(CXX_SUPPORTS_FDATA_SECTIONS "-fdata-sections" CMAKE_CXX_FLAGS)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user