Skip to content

Commit

Permalink
[libc++] Use apple-install-libcxx.sh in the Apple/system CI job
Browse files Browse the repository at this point in the history
That script is what we (need to) use to build libc++ for the system
configuration, so that's what we should test against. At some point
we may be able to fold all of that logic into the CMake build, and
when that happens the CI can go back to running CMake directly.

As a fly-by fix, stop mentioning x86_64 in the names of the Apple
jobs since they are not truly tied to any architecture.

Differential Revision: https://reviews.llvm.org/D111865
  • Loading branch information
ldionne committed Oct 15, 2021
1 parent 082fa56 commit 25cbf72
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 11 deletions.
6 changes: 3 additions & 3 deletions libcxx/utils/ci/buildkite-pipeline.yml
Expand Up @@ -562,7 +562,7 @@ steps:

# Build with the configuration we use to generate libc++.dylib on Apple platforms
- label: "Apple system"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system"
command: "libcxx/utils/ci/run-buildbot apple-system"
artifact_paths:
- "**/test-results.xml"
agents:
Expand All @@ -576,7 +576,7 @@ steps:

# Test back-deployment to older Apple platforms
- label: "Apple back-deployment macosx10.9"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.9"
command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.9"
artifact_paths:
- "**/test-results.xml"
agents:
Expand All @@ -590,7 +590,7 @@ steps:
timeout_in_minutes: 120

- label: "Apple back-deployment macosx10.15"
command: "libcxx/utils/ci/run-buildbot x86_64-apple-system-backdeployment-10.15"
command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.15"
artifact_paths:
- "**/test-results.xml"
agents:
Expand Down
28 changes: 20 additions & 8 deletions libcxx/utils/ci/run-buildbot
Expand Up @@ -377,14 +377,25 @@ generic-no-wide-characters)
-DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
check-runtimes
;;
x86_64-apple-system)
apple-system)
clean
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" \
-DLIBCXX_TEST_CONFIG="apple-libc++-shared.cfg.in" \
-DLIBCXXABI_TEST_CONFIG="apple-libc++abi-shared.cfg.in"
check-runtimes

sdk_root="$(xcrun --sdk macosx --show-sdk-path)"
arch="$(uname -m)"

${MONOREPO_ROOT}/libcxx/utils/ci/apple-install-libcxx.sh \
--llvm-root ${MONOREPO_ROOT} \
--build-dir ${BUILD_DIR} \
--install-dir ${INSTALL_DIR} \
--symbols-dir "${BUILD_DIR}/symbols" \
--sdk "macosx" \
--architectures "${arch}" \
--version "999.99"

# TODO: It would be better to run the tests against the fake-installed version of libc++ instead
xcrun --sdk macosx ninja -vC "${BUILD_DIR}/${arch}" check-cxx check-cxxabi
;;
x86_64-apple-system-backdeployment-*)
apple-system-backdeployment-*)
clean

if [[ "${OSX_ROOTS}" == "" ]]; then
Expand All @@ -395,14 +406,15 @@ x86_64-apple-system-backdeployment-*)
curl "${PREVIOUS_DYLIBS_URL}" | tar -xz --strip-components=1 -C "${OSX_ROOTS}"
fi

DEPLOYMENT_TARGET="${BUILDER#x86_64-apple-system-backdeployment-}"
DEPLOYMENT_TARGET="${BUILDER#apple-system-backdeployment-}"

# TODO: On Apple platforms, we never produce libc++abi.1.dylib, always libc++abi.dylib.
# Fix that in the build so that the tests stop searching for @rpath/libc++abi.1.dylib.
cp "${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}/libc++abi.dylib" \
"${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}/libc++abi.1.dylib"

PARAMS="target_triple=x86_64-apple-macosx${DEPLOYMENT_TARGET}"
arch="$(uname -m)"
PARAMS="target_triple=${arch}-apple-macosx${DEPLOYMENT_TARGET}"
PARAMS+=";cxx_runtime_root=${OSX_ROOTS}/macOS/libc++/${DEPLOYMENT_TARGET}"
PARAMS+=";abi_runtime_root=${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}"
PARAMS+=";use_system_cxx_lib=True"
Expand Down

0 comments on commit 25cbf72

Please sign in to comment.