Detailed changes
@@ -299,8 +299,8 @@ jobs:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
- CC: clang
- CXX: clang++
+ CC: clang-18
+ CXX: clang++-18
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -341,8 +341,8 @@ jobs:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
- CC: clang
- CXX: clang++
+ CC: clang-18
+ CXX: clang++-18
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -103,8 +103,8 @@ jobs:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
- CC: clang
- CXX: clang++
+ CC: clang-18
+ CXX: clang++-18
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -151,8 +151,8 @@ jobs:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
- CC: clang
- CXX: clang++
+ CC: clang-18
+ CXX: clang++-18
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -19,8 +19,8 @@ jobs:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
- CC: clang
- CXX: clang++
+ CC: clang-18
+ CXX: clang++-18
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -60,8 +60,8 @@ jobs:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
- CC: clang
- CXX: clang++
+ CC: clang-18
+ CXX: clang++-18
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -64,6 +64,7 @@ impl LinuxClient for HeadlessClient {
None
}
+ #[cfg(feature = "screen-capture")]
fn screen_capture_sources(
&self,
) -> futures::channel::oneshot::Receiver<anyhow::Result<Vec<Rc<dyn gpui::ScreenCaptureSource>>>>
@@ -71,7 +71,7 @@ if "$rustup_installed"; then
rustup target add "$remote_server_triple"
fi
-export CC=$(which clang)
+export CC=${CC:-$(which clang)}
# Build binary in release mode
export RUSTFLAGS="${RUSTFLAGS:-} -C link-args=-Wl,--disable-new-dtags,-rpath,\$ORIGIN/../lib"
@@ -57,11 +57,21 @@ if [[ -n $apt ]]; then
elif (grep -qP 'PRETTY_NAME="((Debian|Raspbian).+12|Linux Mint 21|.+22\.04)' /etc/os-release); then
deps+=( mold libstdc++-12-dev )
elif (grep -qP 'PRETTY_NAME="((Debian|Raspbian).+11|Linux Mint 20|.+20\.04)' /etc/os-release); then
- deps+=( libstdc++-10-dev )
+ # Ubuntu 20.04 ships clang-10 and libstdc++-10 which lack adequate C++20
+ # support for building webrtc-sys (requires -std=c++20, lambdas in
+ # unevaluated contexts from clang 17+, and working std::ranges in the
+ # stdlib). clang-18 is available in focal-security/universe as an official
+ # backport, and libstdc++-11-dev from the ubuntu-toolchain-r PPA provides
+ # headers with working pointer_traits/contiguous_range.
+ # Note: the prebuilt libwebrtc.a is compiled with libstdc++, so we must
+ # use libstdc++ (not libc++) to avoid ABI mismatches at link time.
+ $maysudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+ deps+=( clang-18 libstdc++-11-dev )
fi
$maysudo "$apt" update
$maysudo "$apt" install -y "${deps[@]}"
+
finalize
exit 0
fi
@@ -4,9 +4,7 @@ use crate::tasks::workflows::{
nix_build::build_nix,
release::ReleaseBundleJobs,
runners::{Arch, Platform, ReleaseChannel},
- steps::{
- DEFAULT_REPOSITORY_OWNER_GUARD, FluentBuilder, NamedJob, dependant_job, named, use_clang,
- },
+ steps::{DEFAULT_REPOSITORY_OWNER_GUARD, FluentBuilder, NamedJob, dependant_job, named},
vars::{assets, bundle_envs},
};
@@ -145,22 +143,22 @@ pub(crate) fn bundle_linux(
};
NamedJob {
name: format!("bundle_linux_{arch}"),
- job: use_clang(
- bundle_job(deps)
- .runs_on(arch.linux_bundler())
- .envs(bundle_envs(platform)),
- )
- .add_step(steps::checkout_repo())
- .when_some(release_channel, |job, release_channel| {
- job.add_step(set_release_channel(platform, release_channel))
- })
- .add_step(steps::setup_sentry())
- .map(steps::install_linux_dependencies)
- .add_step(steps::script("./script/bundle-linux"))
- .add_step(upload_artifact(&format!("target/release/{artifact_name}")))
- .add_step(upload_artifact(&format!(
- "target/{remote_server_artifact_name}"
- ))),
+ job: bundle_job(deps)
+ .runs_on(arch.linux_bundler())
+ .envs(bundle_envs(platform))
+ .add_env(Env::new("CC", "clang-18"))
+ .add_env(Env::new("CXX", "clang++-18"))
+ .add_step(steps::checkout_repo())
+ .when_some(release_channel, |job, release_channel| {
+ job.add_step(set_release_channel(platform, release_channel))
+ })
+ .add_step(steps::setup_sentry())
+ .map(steps::install_linux_dependencies)
+ .add_step(steps::script("./script/bundle-linux"))
+ .add_step(upload_artifact(&format!("target/release/{artifact_name}")))
+ .add_step(upload_artifact(&format!(
+ "target/{remote_server_artifact_name}"
+ ))),
}
}