Skip to content

Commit 44a3a2d

Browse files
committed
Simplify CMake configuration based on RFC feedback
1 parent 591d0e8 commit 44a3a2d

File tree

7 files changed

+10
-41
lines changed

7 files changed

+10
-41
lines changed

compiler-rt/CMakeLists.txt

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,8 @@ option(COMPILER_RT_USE_BUILTINS_LIBRARY
307307

308308
option(COMPILER_RT_USE_ATOMIC_LIBRARY "Use compiler-rt atomic instead of libatomic" OFF)
309309

310-
option(COMPILER_RT_EXECUTE_ONLY_CODE "Compile compiler-rt as execute-only" OFF)
311-
if (COMPILER_RT_EXECUTE_ONLY_CODE AND NOT LLVM_RUNTIMES_BUILD)
312-
message(SEND_ERROR "COMPILER_RT_EXECUTE_ONLY_CODE is only supported "
310+
if (LLVM_EXECUTE_ONLY_CODE AND NOT LLVM_RUNTIMES_BUILD)
311+
message(SEND_ERROR "LLVM_EXECUTE_ONLY_CODE is only supported "
313312
"for runtimes build of compiler-rt.")
314313
endif()
315314

@@ -609,19 +608,9 @@ string(REGEX REPLACE "-stdlib=[a-zA-Z+]*" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
609608
list(APPEND COMPILER_RT_COMMON_CFLAGS ${stdlib_flag})
610609
list(APPEND COMPILER_RT_COMMON_LINK_FLAGS ${stdlib_flag})
611610

612-
# Add flags for execute-only code generation.
613-
# We need to add to both COMPILER_RT_COMMON_CFLAGS and CMAKE_<LANG>_FLAGS.
614-
if (COMPILER_RT_HAS_MEXECUTE_ONLY_FLAG)
615-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -mexecute-only COMPILER_RT_COMMON_CFLAGS)
616-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -DCOMPILER_RT_EXECUTE_ONLY_CODE COMPILER_RT_COMMON_CFLAGS)
617-
append_string_if(COMPILER_RT_EXECUTE_ONLY_CODE -mexecute-only CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
618-
append_string_if(COMPILER_RT_EXECUTE_ONLY_CODE -DCOMPILER_RT_EXECUTE_ONLY_CODE CMAKE_ASM_FLAGS)
619-
elseif (COMPILER_RT_HAS_MPURE_CODE_FLAG)
620-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -mpure-code COMPILER_RT_COMMON_CFLAGS)
621-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -DCOMPILER_RT_EXECUTE_ONLY_CODE COMPILER_RT_COMMON_CFLAGS)
622-
append_string_if(COMPILER_RT_EXECUTE_ONLY_CODE -mpure-code CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
623-
append_string_if(COMPILER_RT_EXECUTE_ONLY_CODE -DCOMPILER_RT_EXECUTE_ONLY_CODE CMAKE_ASM_FLAGS)
624-
endif()
611+
# Add assembler flags for execute-only code generation. C and C++ flags should have already
612+
# been added to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS.
613+
append_string_if(LLVM_EXECUTE_ONLY_CODE -DCOMPILER_RT_EXECUTE_ONLY_CODE CMAKE_ASM_FLAGS)
625614

626615
# TODO: There's a lot of duplication across lib/*/tests/CMakeLists.txt files,
627616
# move some of the common flags to COMPILER_RT_UNITTEST_CFLAGS.

compiler-rt/cmake/builtin-config-ix.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ builtin_check_c_compiler_flag("-Xclang -mcode-object-version=none" COMPILER_RT_H
2626
builtin_check_c_compiler_flag(-Wbuiltin-declaration-mismatch COMPILER_RT_HAS_WBUILTIN_DECLARATION_MISMATCH_FLAG)
2727
builtin_check_c_compiler_flag(/Zl COMPILER_RT_HAS_ZL_FLAG)
2828
builtin_check_c_compiler_flag(-fcf-protection=full COMPILER_RT_HAS_FCF_PROTECTION_FLAG)
29-
builtin_check_c_compiler_flag(-mexecute-only COMPILER_RT_HAS_MEXECUTE_ONLY_FLAG)
30-
builtin_check_c_compiler_flag(-mpure-code COMPILER_RT_HAS_MPURE_CODE_FLAG)
3129

3230
builtin_check_c_compiler_source(COMPILER_RT_HAS_ATOMIC_KEYWORD
3331
"

compiler-rt/cmake/config-ix.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ check_cxx_compiler_flag(--sysroot=. COMPILER_RT_HAS_SYSROOT_FLAG)
115115
check_cxx_compiler_flag("-Werror -mcrc" COMPILER_RT_HAS_MCRC_FLAG)
116116
check_cxx_compiler_flag(-fno-partial-inlining COMPILER_RT_HAS_FNO_PARTIAL_INLINING_FLAG)
117117
check_cxx_compiler_flag("-Werror -ftrivial-auto-var-init=pattern" COMPILER_RT_HAS_TRIVIAL_AUTO_INIT)
118-
check_cxx_compiler_flag(-mexecute-only COMPILER_RT_HAS_MEXECUTE_ONLY_FLAG)
119-
check_cxx_compiler_flag(-mpure-code COMPILER_RT_HAS_MPURE_CODE_FLAG)
120118

121119
if(NOT WIN32 AND NOT CYGWIN)
122120
# MinGW warns if -fvisibility-inlines-hidden is used.

compiler-rt/lib/builtins/CMakeLists.txt

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -885,7 +885,6 @@ else ()
885885
cmake_push_check_state()
886886
# TODO: we should probably make most of the checks in builtin-config depend on the target flags.
887887
set(BUILTIN_CFLAGS_${arch} ${BUILTIN_CFLAGS})
888-
set(BUILTIN_DEFS_${arch} ${BUILTIN_DEFS})
889888
# CMAKE_REQUIRED_FLAGS must be a space separated string
890889
# Join BUILTIN_CFLAGS_${arch} and TARGET_${arch}_CFLAGS as a
891890
# space-separated string.
@@ -923,13 +922,6 @@ else ()
923922
if(COMPILER_RT_HAS_${arch}_BFLOAT16)
924923
list(APPEND ${arch}_SOURCES ${BF16_SOURCES})
925924
endif()
926-
if (COMPILER_RT_HAS_MEXECUTE_ONLY_FLAG)
927-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -mexecute-only BUILTIN_CFLAGS_${arch})
928-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE COMPILER_RT_EXECUTE_ONLY_CODE BUILTIN_DEFS_${arch})
929-
elseif (COMPILER_RT_HAS_MPURE_CODE_FLAG)
930-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -mpure-code BUILTIN_CFLAGS_${arch})
931-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE COMPILER_RT_EXECUTE_ONLY_CODE BUILTIN_DEFS_${arch})
932-
endif()
933925

934926
# Remove a generic C builtin when an arch-specific builtin is specified.
935927
filter_builtin_sources(${arch}_SOURCES ${arch})
@@ -951,7 +943,7 @@ else ()
951943
ARCHS ${arch}
952944
DEPS ${deps_${arch}}
953945
SOURCES ${${arch}_SOURCES}
954-
DEFS ${BUILTIN_DEFS_${arch}}
946+
DEFS ${BUILTIN_DEFS}
955947
CFLAGS ${BUILTIN_CFLAGS_${arch}}
956948
PARENT_TARGET builtins)
957949
cmake_pop_check_state()
@@ -1023,11 +1015,6 @@ if (COMPILER_RT_BUILD_CRT)
10231015
if (COMPILER_RT_HAS_FCF_PROTECTION_FLAG)
10241016
append_list_if(COMPILER_RT_ENABLE_CET -fcf-protection=full CRT_CFLAGS)
10251017
endif()
1026-
if (COMPILER_RT_HAS_MEXECUTE_ONLY_FLAG)
1027-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -mexecute-only CRT_CFLAGS)
1028-
elseif (COMPILER_RT_HAS_MPURE_CODE_FLAG)
1029-
append_list_if(COMPILER_RT_EXECUTE_ONLY_CODE -mpure-code CRT_CFLAGS)
1030-
endif()
10311018

10321019
foreach(arch ${BUILTIN_SUPPORTED_ARCH})
10331020
add_compiler_rt_runtime(clang_rt.crtbegin

compiler-rt/lib/fuzzer/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,10 @@ if(OS_NAME MATCHES "Android|Linux|Fuchsia" AND
162162
CFLAGS ${TARGET_CFLAGS}
163163
CMAKE_ARGS -DCMAKE_CXX_COMPILER_WORKS=ON
164164
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
165+
-DLLVM_EXECUTE_ONLY_CODE=${LLVM_EXECUTE_ONLY_CODE}
165166
-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF
166-
-DLIBCXXABI_EXECUTE_ONLY_CODE=${COMPILER_RT_EXECUTE_ONLY_CODE}
167167
-DLIBCXX_ABI_NAMESPACE=__Fuzzer
168-
-DLIBCXX_ENABLE_EXCEPTIONS=OFF
169-
-DLIBCXX_EXECUTE_ONLY_CODE=${COMPILER_RT_EXECUTE_ONLY_CODE})
168+
-DLIBCXX_ENABLE_EXCEPTIONS=OFF)
170169
target_compile_options(RTfuzzer.${arch} PRIVATE -isystem ${LIBCXX_${arch}_PREFIX}/include/c++/v1)
171170
add_dependencies(RTfuzzer.${arch} libcxx_fuzzer_${arch}-install-cmake326-workaround)
172171
target_compile_options(RTfuzzer_main.${arch} PRIVATE -isystem ${LIBCXX_${arch}_PREFIX}/include/c++/v1)

compiler-rt/lib/msan/tests/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,7 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS AND
139139
add_custom_libcxx(libcxx_msan_${arch} ${LIBCXX_PREFIX}
140140
DEPS ${MSAN_RUNTIME_LIBRARIES}
141141
CFLAGS ${MSAN_LIBCXX_CFLAGS} ${TARGET_CFLAGS}
142-
CMAKE_ARGS -DLIBCXX_EXECUTE_ONLY_CODE=${COMPILER_RT_EXECUTE_ONLY_CODE}
143-
-DLIBCXXABI_EXECUTE_ONLY_CODE=${COMPILER_RT_EXECUTE_ONLY_CODE}
142+
CMAKE_ARGS -DLLVM_EXECUTE_ONLY_CODE=${LLVM_EXECUTE_ONLY_CODE}
144143
USE_TOOLCHAIN)
145144
set(MSAN_LIBCXX_DIR ${LIBCXX_PREFIX}/lib/)
146145

compiler-rt/lib/tsan/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ if(COMPILER_RT_LIBCXX_PATH AND
3030
add_custom_libcxx(libcxx_tsan_${arch} ${LIBCXX_PREFIX}
3131
DEPS ${TSAN_RUNTIME_LIBRARIES}
3232
CFLAGS ${TARGET_CFLAGS} -fsanitize=thread
33-
CMAKE_ARGS -DLIBCXX_EXECUTE_ONLY_CODE=${COMPILER_RT_EXECUTE_ONLY_CODE}
34-
-DLIBCXXABI_EXECUTE_ONLY_CODE=${COMPILER_RT_EXECUTE_ONLY_CODE}
33+
CMAKE_ARGS -DLLVM_EXECUTE_ONLY_CODE=${LLVM_EXECUTE_ONLY_CODE}
3534
USE_TOOLCHAIN)
3635
list(APPEND libcxx_tsan_deps libcxx_tsan_${arch}-install-cmake326-workaround)
3736
endforeach()

0 commit comments

Comments
 (0)