[libcxx-commits] [libcxx] d3024a0 - [libc++] Add a CI jobs to test the Standalone builds

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Mon Oct 26 09:13:26 PDT 2020


Author: Louis Dionne
Date: 2020-10-26T12:13:19-04:00
New Revision: d3024a074be09f6589eccac00cecabccd8258f2d

URL: https://github.com/llvm/llvm-project/commit/d3024a074be09f6589eccac00cecabccd8258f2d
DIFF: https://github.com/llvm/llvm-project/commit/d3024a074be09f6589eccac00cecabccd8258f2d.diff

LOG: [libc++] Add a CI jobs to test the Standalone builds

Added: 
    

Modified: 
    libcxx/src/CMakeLists.txt
    libcxx/utils/ci/buildkite-pipeline.yml
    libcxx/utils/ci/run-buildbot.sh

Removed: 
    


################################################################################
diff  --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 575bfc9da3d0..95dd520d1e3e 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -223,7 +223,7 @@ if (LIBCXX_ENABLE_SHARED)
       "-Wl,-force_symbols_not_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/notweak.exp"
       "-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp")
 
-    target_link_libraries(cxx_shared PRIVATE cxxabi-reexports)
+    target_link_libraries(cxx_shared PRIVATE $<TARGET_NAME_IF_EXISTS:cxxabi-reexports>)
   endif()
 
   # Generate a linker script in place of a libc++.so symlink.

diff  --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 4ea32c1c3a77..108588fac25d 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -125,6 +125,20 @@ steps:
     agents:
       queue: "libcxx-builders"
 
+  - label: "Legacy standalone build"
+  command: "libcxx/utils/ci/run-buildbot.sh legacy-standalone"
+  artifact_paths:
+    - "**/test-results.xml"
+  agents:
+    queue: "libcxx-builders"
+
+  - label: "Unified standalone build"
+  command: "libcxx/utils/ci/run-buildbot.sh unified-standalone"
+  artifact_paths:
+    - "**/test-results.xml"
+  agents:
+    queue: "libcxx-builders"
+
   # Build with the configuration we use to generate libc++.dylib on Apple platforms
   - label: "Apple system"
     command: "libcxx/utils/ci/run-buildbot.sh x86_64-apple-system"

diff  --git a/libcxx/utils/ci/run-buildbot.sh b/libcxx/utils/ci/run-buildbot.sh
index 7534cf3c47e5..cee4f39cfc17 100755
--- a/libcxx/utils/ci/run-buildbot.sh
+++ b/libcxx/utils/ci/run-buildbot.sh
@@ -163,6 +163,58 @@ benchmarks)
     generate-cmake
     check-cxx-benchmarks
 ;;
+unified-standalone)
+    export CC=clang
+    export CXX=clang++
+
+    echo "--- Generating CMake"
+    rm -rf "${BUILD_DIR}"
+    cmake -S "${MONOREPO_ROOT}/libcxx/utils/ci/runtimes" \
+          -B "${BUILD_DIR}" \
+          -GNinja \
+          -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+          -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
+          -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi;libunwind"
+
+    check-cxx-cxxabi
+;;
+legacy-standalone)
+    export CC=clang
+    export CXX=clang++
+
+    echo "--- Generating CMake"
+    rm -rf "${BUILD_DIR}"
+    cmake -S "${MONOREPO_ROOT}/libcxx" \
+          -B "${BUILD_DIR}/libcxx" \
+          -GNinja \
+          -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+          -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
+          -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \
+          -DLIBCXX_CXX_ABI=libcxxabi \
+          -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${MONOREPO_ROOT}/libcxxabi/include" \
+          -DLIBCXX_CXX_ABI_LIBRARY_PATH="${BUILD_DIR}/libcxxabi/lib"
+
+    cmake -S "${MONOREPO_ROOT}/libcxxabi" \
+          -B "${BUILD_DIR}/libcxxabi" \
+          -GNinja \
+          -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+          -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
+          -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \
+          -DLIBCXXABI_LIBCXX_PATH="${MONOREPO_ROOT}/libcxx" \
+          -DLIBCXXABI_LIBCXX_INCLUDES="${MONOREPO_ROOT}/libcxx/include"
+
+    echo "+++ Building libc++abi"
+    ninja -C "${BUILD_DIR}/libcxxabi" cxxabi
+
+    echo "+++ Building libc++"
+    ninja -C "${BUILD_DIR}/libcxx" cxx
+
+    echo "+++ Running the libc++ tests"
+    ninja -C "${BUILD_DIR}/libcxx" check-cxx
+
+    echo "+++ Running the libc++abi tests"
+    ninja -C "${BUILD_DIR}/libcxxabi" check-cxxabi
+;;
 *)
     echo "${BUILDER} is not a known configuration"
     exit 1


        


More information about the libcxx-commits mailing list