[libcxx-commits] [PATCH] D99093: [libcxx] [ci] Add a Windows CI buildkite configuration
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Mar 24 03:13:57 PDT 2021
mstorsjo updated this revision to Diff 332919.
mstorsjo added a comment.
Rerun CI to see the number of failures now reported (should be only a handful, and there's patches under discussion for most of them). Rephrased the comments, adding clearer TODO comments for the bits that are non-ideal, with clear comments about what's required for them to be removed.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99093/new/
https://reviews.llvm.org/D99093
Files:
libcxx/utils/ci/buildkite-pipeline.yml
libcxx/utils/ci/run-buildbot
Index: libcxx/utils/ci/run-buildbot
===================================================================
--- libcxx/utils/ci/run-buildbot
+++ libcxx/utils/ci/run-buildbot
@@ -421,6 +421,49 @@
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7Thumb-noexceptions.cmake"
check-cxx-cxxabi
;;
+generic-win)
+ clean
+ # TODO: The CI runner doesn't have bash in the path currently, and it's
+ # needed for running tests. Once it's available out of the box, remove this.
+ export PATH="$PATH:/c/Program Files/Git/usr/bin"
+
+ # TODO: Clang-cl in MSVC configurations don't have access to compiler_rt
+ # builtins helpers for int128 division. See
+ # https://reviews.llvm.org/D91139#2429595 for a comment about longterm
+ # intent for handling the issue. In the meantime, define
+ # -D_LIBCPP_HAS_NO_INT128 (both when building the library itself and
+ # when building tests) to allow enabling filesystem for running tests,
+ # even if it uses a non-permanent ABI.
+
+ # TODO: The CI runner currently uses Clang 11, which doesn't implicitly
+ # link in oldnames.lib (which is needed for some tests) when compiling
+ # with the plain "clang" driver, as the tests do (as opposed to using
+ # the "clang-cl" driver for compiling). When the CI runner runs
+ # Clang 12, the "-loldnames" option can be dropped.
+
+ # TODO: Currently, building with the experimental library breaks running
+ # tests (the test linking look for the c++experimental library with the
+ # wrong name, and the statically linked c++experimental can't be linked
+ # correctly when libc++ visibility attributes indicate dllimport linkage
+ # anyway), thus just disable the experimental library. Remove this
+ # setting when cmake and the test driver does the right thing automatically.
+
+ echo "--- Generating CMake"
+ cmake -S "${MONOREPO_ROOT}/libcxx" \
+ -B "${BUILD_DIR}" \
+ -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_C_COMPILER=clang-cl \
+ -DCMAKE_CXX_COMPILER=clang-cl \
+ -DLLVM_LIT_ARGS="-sv --show-unsupported --xunit-xml-output test-results.xml" \
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=NO \
+ -DLIBCXX_ENABLE_FILESYSTEM=YES \
+ -DCMAKE_CXX_FLAGS="-D_LIBCPP_HAS_NO_INT128" \
+ -DLIBCXX_TEST_COMPILER_FLAGS="-D_LIBCPP_HAS_NO_INT128" \
+ -DLIBCXX_TEST_LINKER_FLAGS="-loldnames"
+ echo "+++ Running the libc++ tests"
+ ${NINJA} -vC "${BUILD_DIR}" check-cxx
+;;
*)
echo "${BUILDER} is not a known configuration"
exit 1
Index: libcxx/utils/ci/buildkite-pipeline.yml
===================================================================
--- libcxx/utils/ci/buildkite-pipeline.yml
+++ libcxx/utils/ci/buildkite-pipeline.yml
@@ -277,6 +277,21 @@
- exit_status: -1 # Agent was lost
limit: 2
+ - label: "Windows"
+ # TODO: The CI runner doesn't have bash in the path currently. Once it
+ # has that, remove the absolute path and just call 'bash' here.
+ command: "\"\\Program Files\\Git\\usr\\bin\\bash\" libcxx/utils/ci/run-buildbot generic-win"
+ artifact_paths:
+ - "**/test-results.xml"
+ agents:
+ queue: "windows"
+ retry:
+ automatic:
+ - exit_status: -1 # Agent was lost
+ limit: 2
+ soft_fail:
+ - exit_status: 1
+
# All jobs defined before this `wait` will run whenever a CI job is started.
# Jobs defined after the `wait` will run only if all the jobs above succeeded.
# We use this to reduce the load on testers that have more constrained resources
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99093.332919.patch
Type: text/x-patch
Size: 3668 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210324/6995e50b/attachment.bin>
More information about the libcxx-commits
mailing list