Skip to content

Commit 1f47ff9

Browse files
[CI] Switch to a single runtimes build
This patch makes the monolithic-linux script use a single runtimes build rather than building in three (C++03, C++26, and modules) different configurations. Queueing delays are quite high currently. This is probably due to a couple of reasons, but from what I've observed, building all these runtimes in all the configurations takes up a decent chunk of the overall build time (~10 minutes). These are configurations that I really think should be tested post-commit. Some things might slip through the cracks, but I believe there would be relatively few patches doing this. Given the tradeoffs with build times and the (or at least my) view that premerge should be testing the most common configuration for these projects only, I think it makes sense to only use one. This patch also makes it easier in the future when we need to rework the runtimes build to anticipate the deprecation of building most of the runtimes with LLVM_ENABLE_PROJECTS.
1 parent 395bdeb commit 1f47ff9

File tree

1 file changed

+2
-47
lines changed

1 file changed

+2
-47
lines changed

.ci/monolithic-linux.sh

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ if [[ "${runtimes}" != "" ]]; then
9191
INSTALL_DIR="${BUILD_DIR}/install"
9292
mkdir -p ${RUNTIMES_BUILD_DIR}
9393

94-
echo "--- cmake runtimes C++03"
94+
echo "--- cmake runtimes"
9595

9696
cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \
9797
-D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \
@@ -103,53 +103,8 @@ if [[ "${runtimes}" != "" ]]; then
103103
-D LIBCXX_CXX_ABI=libcxxabi \
104104
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
105105
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
106-
-D LIBCXX_TEST_PARAMS="std=c++03" \
107-
-D LIBCXXABI_TEST_PARAMS="std=c++03" \
108106
-D LLVM_LIT_ARGS="${lit_args}"
109107

110-
echo "--- ninja runtimes C++03"
108+
echo "--- ninja runtimes"
111109

112110
ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets}
113-
114-
echo "--- cmake runtimes C++26"
115-
116-
rm -rf "${RUNTIMES_BUILD_DIR}"
117-
cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \
118-
-D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \
119-
-D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \
120-
-D CMAKE_Fortran_COMPILER="${BUILD_DIR}/bin/flang" \
121-
-D CMAKE_Fortran_COMPILER_WORKS=ON \
122-
-D LLVM_BINARY_DIR="${BUILD_DIR}" \
123-
-D LLVM_ENABLE_RUNTIMES="${runtimes}" \
124-
-D LIBCXX_CXX_ABI=libcxxabi \
125-
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
126-
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
127-
-D LIBCXX_TEST_PARAMS="std=c++26" \
128-
-D LIBCXXABI_TEST_PARAMS="std=c++26" \
129-
-D LLVM_LIT_ARGS="${lit_args}"
130-
131-
echo "--- ninja runtimes C++26"
132-
133-
ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets}
134-
135-
echo "--- cmake runtimes clang modules"
136-
137-
rm -rf "${RUNTIMES_BUILD_DIR}"
138-
cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \
139-
-D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \
140-
-D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \
141-
-D CMAKE_Fortran_COMPILER="${BUILD_DIR}/bin/flang" \
142-
-D CMAKE_Fortran_COMPILER_WORKS=ON \
143-
-D LLVM_BINARY_DIR="${BUILD_DIR}" \
144-
-D LLVM_ENABLE_RUNTIMES="${runtimes}" \
145-
-D LIBCXX_CXX_ABI=libcxxabi \
146-
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
147-
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
148-
-D LIBCXX_TEST_PARAMS="enable_modules=clang" \
149-
-D LIBCXXABI_TEST_PARAMS="enable_modules=clang" \
150-
-D LLVM_LIT_ARGS="${lit_args}"
151-
152-
echo "--- ninja runtimes clang modules"
153-
154-
ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets}
155-
fi

0 commit comments

Comments
 (0)