Skip to content

Commit 7505b6b

Browse files
committed
[lto] Use -DLLVM_ENABLE_LTO to enable llvm lto instead of -DCMAKE_{C,CXX}_FLAGS
This not only is the more canonical way to enable lto in LLVM but in addition without this change, the swift compiler unittests will not build with LTO resulting in funky LTO errors like rdar://25968091. rdar://24717107
1 parent e5ce27c commit 7505b6b

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

utils/build-script-impl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,10 +531,6 @@ function set_deployment_target_based_options() {
531531
fi
532532

533533
llvm_cmake_options+=(
534-
"-DCMAKE_C_FLAGS=-O2 -flto -gline-tables-only -fno-stack-protector "
535-
"-DCMAKE_CXX_FLAGS=-O2 -flto -gline-tables-only -fno-stack-protector "
536-
"-DCMAKE_C_FLAGS_RELWITHDEBINFO=-O2 -flto -gline-tables-only -fno-stack-protector "
537-
"-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -flto -gline-tables-only -fno-stack-protector "
538534
"-DLLVM_PARALLEL_LINK_JOBS=$(num_llvm_parallel_lto_link_jobs)"
539535
)
540536
fi
@@ -1239,6 +1235,9 @@ function llvm_c_flags() {
12391235
if [[ $(is_cmake_release_build_type "${LLVM_BUILD_TYPE}") ]] ; then
12401236
echo -n " -fno-stack-protector"
12411237
fi
1238+
if [[ $(true_false "${LLVM_ENABLE_LTO}") ]] ; then
1239+
echo -n " -gline-tables-only"
1240+
fi
12421241
}
12431242

12441243
function cmark_c_flags() {
@@ -1527,6 +1526,7 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
15271526
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS_TO_BUILD}"
15281527
-DLLVM_INCLUDE_TESTS:BOOL=$(true_false "${SOURCE_TREE_INCLUDES_TESTS}")
15291528
-DLLVM_INCLUDE_DOCS:BOOL=TRUE
1529+
-DLLVM_ENABLE_LTO=$(true_false "${LLVM_ENABLE_LTO}")
15301530
"${llvm_cmake_options[@]}"
15311531
)
15321532
if [[ $(is_cross_tools_deployment_target ${deployment_target}) ]] ; then
@@ -1619,6 +1619,7 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
16191619
-DCMAKE_CXX_FLAGS="$(swift_c_flags ${deployment_target})"
16201620
-DCMAKE_BUILD_TYPE:STRING="${SWIFT_BUILD_TYPE}"
16211621
-DLLVM_ENABLE_ASSERTIONS:BOOL=$(true_false "${SWIFT_ENABLE_ASSERTIONS}")
1622+
-DLLVM_ENABLE_LTO=$(true_false "${LLVM_ENABLE_LTO}")
16221623
-DSWIFT_ANALYZE_CODE_COVERAGE:STRING=$(toupper "${SWIFT_ANALYZE_CODE_COVERAGE}")
16231624
-DSWIFT_STDLIB_BUILD_TYPE:STRING="${SWIFT_STDLIB_BUILD_TYPE}"
16241625
-DSWIFT_STDLIB_ASSERTIONS:BOOL=$(true_false "${SWIFT_STDLIB_ENABLE_ASSERTIONS}")

0 commit comments

Comments
 (0)