diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -483,12 +483,6 @@ # 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 @@ -507,8 +501,7 @@ -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" + -DLIBCXX_TEST_COMPILER_FLAGS="-D_LIBCPP_HAS_NO_INT128" echo "+++ Running the libc++ tests" ${NINJA} -vC "${BUILD_DIR}" check-cxx ;; diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -465,6 +465,9 @@ # libcxx CMakeLists.txt if building targeting msvc. self.cxx.link_flags += ['-l%s%s' % (lib, debug_suffix) for lib in ['vcruntime', 'ucrt', 'msvcrt', 'msvcprt']] + # The compiler normally links in oldnames.lib too, but we've + # specified -nostdlib above, so we need to specify it manually. + self.cxx.link_flags += ['-loldnames'] elif cxx_abi == 'none' or cxx_abi == 'default': if self.target_info.is_windows(): debug_suffix = 'd' if self.debug_build else ''