Skip to content

Commit 0c88392

Browse files
committed
[build-script] Always set -DNDEBUG when overriding CMAKE_{C,CXX}_FLAGS_RELWITHDEBINFO for swift and llvm.
Turns out -DLLVM_ENABLE_ASSERTIONS does not actually enable assertions in LLVM! What it actually does is rewrite the -DNDEBUG flag to be -UNDEBUG. This means that we always want to pass in -DNDEBUG to swift. There are some complications though. This means that we can not compile the C++ part of the runtime with a different assertions setting than the swift compiler/llvm. This is a trade off that for now we are ok with to get the no-asserts build working. As part of a separate change, we are going to make -DLLVM_ENABLE_ASSERTIONS more robust by doing what swift does now, putting -DNDEBUG or -UNDEBUG after CMake's -DNDEBUG so we get the correct behavior of disabling or enabling assertions. rdar://28485525
1 parent 1334f88 commit 0c88392

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

utils/build-script-impl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,8 +1934,8 @@ for host in "${ALL_HOSTS[@]}"; do
19341934
"${cmake_options[@]}"
19351935
-DCMAKE_C_FLAGS="$(llvm_c_flags ${host})"
19361936
-DCMAKE_CXX_FLAGS="$(llvm_c_flags ${host})"
1937-
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O2"
1938-
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2"
1937+
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O2 -DNDEBUG"
1938+
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -DNDEBUG"
19391939
-DCMAKE_BUILD_TYPE:STRING="${LLVM_BUILD_TYPE}"
19401940
-DLLVM_TOOL_SWIFT_BUILD:BOOL=NO
19411941
-DLLVM_INCLUDE_DOCS:BOOL=TRUE
@@ -2049,8 +2049,8 @@ for host in "${ALL_HOSTS[@]}"; do
20492049
"${cmake_options[@]}"
20502050
-DCMAKE_C_FLAGS="$(swift_c_flags ${host})"
20512051
-DCMAKE_CXX_FLAGS="$(swift_c_flags ${host})"
2052-
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O2"
2053-
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2"
2052+
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O2 -DNDEBUG"
2053+
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -DNDEBUG"
20542054
-DCMAKE_BUILD_TYPE:STRING="${SWIFT_BUILD_TYPE}"
20552055
-DLLVM_ENABLE_ASSERTIONS:BOOL=$(true_false "${SWIFT_ENABLE_ASSERTIONS}")
20562056
-DSWIFT_ANALYZE_CODE_COVERAGE:STRING=$(toupper "${SWIFT_ANALYZE_CODE_COVERAGE}")

0 commit comments

Comments
 (0)