Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/bootstrap/src/core/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2549,7 +2549,12 @@ impl Cargo {
// FIXME: the guard against msvc shouldn't need to be here
if target.is_msvc() {
if let Some(ref cl) = builder.config.llvm_clang_cl {
self.command.env("CC", cl).env("CXX", cl);
// FIXME: There is a bug in Clang 18 when building for ARM64:
// https://github.com/llvm/llvm-project/pull/81849. This is
// fixed in LLVM 19, but can't be backported.
if !target.starts_with("aarch64") && !target.starts_with("arm64ec") {
self.command.env("CC", cl).env("CXX", cl);
}
}
} else {
let ccache = builder.config.ccache.as_ref();
Expand Down
1 change: 1 addition & 0 deletions src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ set -ex

source shared.sh

# Try to keep the LLVM version here in sync with src/ci/scripts/install-clang.sh
LLVM=llvmorg-18.1.0

mkdir llvm-project
Expand Down
22 changes: 7 additions & 15 deletions src/ci/github-actions/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,6 @@ runners:
os: windows-2022-16core-64gb
<<: *base-job

- &job-windows-2019-8c
os: windows-2019-8core-32gb
<<: *base-job

- &job-windows-2019-16c
os: windows-2019-16core-64gb
<<: *base-job

- &job-aarch64-linux
os: [ self-hosted, ARM64, linux ]

Expand Down Expand Up @@ -349,21 +341,21 @@ auto:
env:
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler
SCRIPT: make ci-msvc
<<: *job-windows-2019-8c
<<: *job-windows-8c

- image: i686-msvc
env:
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
SCRIPT: make ci-msvc
<<: *job-windows-2019-8c
<<: *job-windows-8c

- image: x86_64-msvc-ext
env:
SCRIPT: python x.py --stage 2 test src/tools/cargotest src/tools/cargo && src/ci/docker/host-x86_64/x86_64-gnu-tools/checktools.sh x.py /tmp/toolstate/toolstates.json windows
HOST_TARGET: x86_64-pc-windows-msvc
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-lld --save-toolstates=/tmp/toolstate/toolstates.json
DEPLOY_TOOLSTATES_JSON: toolstates-windows.json
<<: *job-windows-2019-8c
<<: *job-windows-8c

# 32/64-bit MinGW builds.
#
Expand Down Expand Up @@ -414,7 +406,7 @@ auto:
--set rust.codegen-units=1
SCRIPT: python x.py build --set rust.debug=true opt-dist && PGO_HOST=x86_64-pc-windows-msvc ./build/x86_64-pc-windows-msvc/stage0-tools-bin/opt-dist windows-ci -- python x.py dist bootstrap --include-default-paths
DIST_REQUIRE_ALL_TOOLS: 1
<<: *job-windows-2019-8c
<<: *job-windows-8c

- image: dist-i686-msvc
env:
Expand All @@ -426,7 +418,7 @@ auto:
--enable-profiler
SCRIPT: python x.py dist bootstrap --include-default-paths
DIST_REQUIRE_ALL_TOOLS: 1
<<: *job-windows-2019-8c
<<: *job-windows-8c

- image: dist-aarch64-msvc
env:
Expand All @@ -437,7 +429,7 @@ auto:
--enable-profiler
SCRIPT: python x.py dist bootstrap --include-default-paths
DIST_REQUIRE_ALL_TOOLS: 1
<<: *job-windows-2019-8c
<<: *job-windows-8c

- image: dist-i686-mingw
env:
Expand Down Expand Up @@ -471,4 +463,4 @@ auto:
env:
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended --enable-profiler
SCRIPT: python x.py dist bootstrap --include-default-paths
<<: *job-windows-2019-8c
<<: *job-windows-8c
16 changes: 11 additions & 5 deletions src/ci/scripts/install-clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,24 @@ IFS=$'\n\t'
source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"

# Update both macOS's and Windows's tarballs when bumping the version here.
LLVM_VERSION="14.0.5"
# Try to keep this in sync with src/ci/docker/host-x86_64/dist-x86_64-linux/build-clang.sh
LLVM_VERSION="18.1.4"

if isMacOS; then
# FIXME: This is the latest pre-built version of LLVM that's available for
# x86_64 MacOS. We may want to consider bulding our own LLVM binaries
# instead, or set `USE_XCODE_CLANG` like AArch64 does.
LLVM_VERSION="15.0.7"

# If the job selects a specific Xcode version, use that instead of
# downloading our own version.
if [[ ${USE_XCODE_CLANG-0} -eq 1 ]]; then
bindir="$(xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain/usr/bin"
else
file="${MIRRORS_BASE}/clang%2Bllvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz"
retry curl -f "${file}" -o "clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz"
tar xJf "clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz"
bindir="$(pwd)/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin/bin"
file="${MIRRORS_BASE}/clang%2Bllvm-${LLVM_VERSION}-x86_64-apple-darwin21.0.tar.xz"
retry curl -f "${file}" -o "clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin21.0.tar.xz"
tar xJf "clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin21.0.tar.xz"
bindir="$(pwd)/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin21.0/bin"
fi

ciCommandSetEnv CC "${bindir}/clang"
Expand Down