Removal of mold/wild scripts and mentions in docs (#53078)
Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [ ] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [ ] Tests cover the new/changed behavior - [ ] Performance impact has been considered and is acceptable Release Notes: - N/A --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
cc975c2a23
commit
d7e1dd408a
7 files changed
+4
-137
No files matched your search
@@ -19,10 +19,6 @@ runs:
|
|||||||
shell: bash -euxo pipefail {0}
|
shell: bash -euxo pipefail {0}
|
||||||
run: ./script/linux
|
run: ./script/linux
|
||||||
|
|
||||||
- name: Install mold linker
|
|
||||||
shell: bash -euxo pipefail {0}
|
|
||||||
run: ./script/install-mold
|
|
||||||
|
|
||||||
- name: Download WASI SDK
|
- name: Download WASI SDK
|
||||||
shell: bash -euxo pipefail {0}
|
shell: bash -euxo pipefail {0}
|
||||||
run: ./script/download-wasi-sdk
|
run: ./script/download-wasi-sdk
|
||||||
|
|||||||
+1
-2
@@ -11,8 +11,7 @@ ENV CARGO_TERM_COLOR=always
|
|||||||
|
|
||||||
COPY script/linux script/
|
COPY script/linux script/
|
||||||
RUN ./script/linux
|
RUN ./script/linux
|
||||||
COPY script/install-mold script/install-cmake script/
|
COPY script/install-cmake script/
|
||||||
RUN ./script/install-mold "2.34.0"
|
|
||||||
RUN ./script/install-cmake "3.30.4"
|
RUN ./script/install-cmake "3.30.4"
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|||||||
@@ -263,10 +263,6 @@ async fn build_remote_server_from_source(
|
|||||||
rust_flags.push_str(&format!(" -C link-arg=-L{path}"));
|
rust_flags.push_str(&format!(" -C link-arg=-L{path}"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if build_remote_server.contains("mold") {
|
|
||||||
rust_flags.push_str(" -C link-arg=-fuse-ld=mold");
|
|
||||||
}
|
|
||||||
|
|
||||||
if platform.arch.as_str() == std::env::consts::ARCH
|
if platform.arch.as_str() == std::env::consts::ARCH
|
||||||
&& platform.os.as_str() == std::env::consts::OS
|
&& platform.os.as_str() == std::env::consts::OS
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,33 +21,6 @@ Clone the [Zed repository](https://github.com/zed-industries/zed).
|
|||||||
|
|
||||||
If you prefer to install the system libraries manually, you can find the list of required packages in the `script/linux` file.
|
If you prefer to install the system libraries manually, you can find the list of required packages in the `script/linux` file.
|
||||||
|
|
||||||
### Linkers {#linker}
|
|
||||||
|
|
||||||
On Linux, Rust's default linker is [LLVM's `lld`](https://blog.rust-lang.org/2025/09/18/Rust-1.90.0/). Alternative linkers, especially [Wild](https://github.com/davidlattimore/wild) and [Mold](https://github.com/rui314/mold), can improve clean and incremental build times.
|
|
||||||
|
|
||||||
Zed currently uses Mold in CI because it is more mature. For local development, Wild is recommended because it is typically 5-20% faster than Mold.
|
|
||||||
|
|
||||||
These linkers can be installed with `script/install-mold` and `script/install-wild`.
|
|
||||||
|
|
||||||
To use Wild as your default, add these lines to your `~/.cargo/config.toml`:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[target.x86_64-unknown-linux-gnu]
|
|
||||||
linker = "clang"
|
|
||||||
rustflags = ["-C", "link-arg=--ld-path=wild"]
|
|
||||||
|
|
||||||
[target.aarch64-unknown-linux-gnu]
|
|
||||||
linker = "clang"
|
|
||||||
rustflags = ["-C", "link-arg=--ld-path=wild"]
|
|
||||||
```
|
|
||||||
|
|
||||||
To use Mold as your default:
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[target.'cfg(target_os = "linux")']
|
|
||||||
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building from source
|
## Building from source
|
||||||
|
|
||||||
Once the dependencies are installed, you can build Zed using [Cargo](https://doc.rust-lang.org/cargo/).
|
Once the dependencies are installed, you can build Zed using [Cargo](https://doc.rust-lang.org/cargo/).
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Install `mold` official binaries from GitHub Releases.
|
|
||||||
#
|
|
||||||
# Adapted from the official rui314/setup-mold@v1 action to:
|
|
||||||
# * use environment variables instead of action inputs
|
|
||||||
# * remove make-default support
|
|
||||||
# * use curl instead of wget
|
|
||||||
# * support doas for sudo
|
|
||||||
# * support redhat systems
|
|
||||||
# See: https://github.com/rui314/setup-mold/blob/main/action.yml
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
MOLD_VERSION="2.34.0"
|
|
||||||
|
|
||||||
if [ "$(uname -s)" != "Linux" ]; then
|
|
||||||
echo "Error: This script is intended for Linux systems only."
|
|
||||||
exit 1
|
|
||||||
elif [ -e /usr/local/bin/mold ]; then
|
|
||||||
echo "Warning: existing mold found at /usr/local/bin/mold. Skipping installation."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$(whoami)" = root ]; then SUDO=; else SUDO="$(command -v sudo || command -v doas || true)"; fi
|
|
||||||
|
|
||||||
MOLD_REPO="${MOLD_REPO:-https://github.com/rui314/mold}"
|
|
||||||
MOLD_URL="${MOLD_URL:-$MOLD_REPO}/releases/download/v$MOLD_VERSION/mold-$MOLD_VERSION-$(uname -m)-linux.tar.gz"
|
|
||||||
|
|
||||||
echo "Downloading from $MOLD_URL"
|
|
||||||
curl -fsSL --output - "$MOLD_URL" \
|
|
||||||
| $SUDO tar -C /usr/local --strip-components=1 --no-overwrite-dir -xzf -
|
|
||||||
|
|
||||||
# Note this binary depends on the system libatomic.so.1 which is usually
|
|
||||||
# provided as a dependency of gcc so it should be available on most systems.
|
|
||||||
|
|
||||||
cat <<EOF
|
|
||||||
Mold is installed to /usr/local/bin/mold
|
|
||||||
|
|
||||||
To make it your default, add or merge these lines into your ~/.cargo/config.toml:
|
|
||||||
|
|
||||||
[target.'cfg(target_os = "linux")']
|
|
||||||
linker = "clang"
|
|
||||||
rustflags = ["-C", "link-arg=-fuse-ld=mold"]
|
|
||||||
EOF
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Install wild-linker official binaries from GitHub Releases.
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
WILD_VERSION="${WILD_VERSION:-${1:-0.6.0}}"
|
|
||||||
if [ "$(uname -s)" != "Linux" ]; then
|
|
||||||
echo "Error: This script is intended for Linux systems only."
|
|
||||||
exit 1
|
|
||||||
elif [ -z "$WILD_VERSION" ]; then
|
|
||||||
echo "Usage: $0 [version]"
|
|
||||||
exit 1
|
|
||||||
elif command -v wild >/dev/null 2>&1 && wild --version | grep -Fq "$WILD_VERSION" ; then
|
|
||||||
echo "Warning: existing wild $WILD_VERSION found at $(command -v wild). Skipping installation."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$(whoami)" = root ]; then SUDO=; else SUDO="$(command -v sudo || command -v doas || true)"; fi
|
|
||||||
|
|
||||||
ARCH="$(uname -m)"
|
|
||||||
WILD_REPO="${WILD_REPO:-https://github.com/davidlattimore/wild}"
|
|
||||||
WILD_PACKAGE="wild-linker-${WILD_VERSION}-${ARCH}-unknown-linux-gnu"
|
|
||||||
WILD_URL="${WILD_URL:-$WILD_REPO}/releases/download/$WILD_VERSION/${WILD_PACKAGE}.tar.gz"
|
|
||||||
DEST_DIR=/usr/local/bin
|
|
||||||
|
|
||||||
echo "Downloading from $WILD_URL"
|
|
||||||
curl -fsSL --output - "$WILD_URL" \
|
|
||||||
| $SUDO tar -C ${DEST_DIR} --strip-components=1 --no-overwrite-dir -xzf - \
|
|
||||||
"${WILD_PACKAGE}/wild"
|
|
||||||
|
|
||||||
cat <<EOF
|
|
||||||
Wild is installed to ${DEST_DIR}/wild
|
|
||||||
|
|
||||||
To make it your default, add or merge these lines into your ~/.cargo/config.toml:
|
|
||||||
|
|
||||||
[target.x86_64-unknown-linux-gnu]
|
|
||||||
linker = "clang"
|
|
||||||
rustflags = ["-C", "link-arg=--ld-path=wild"]
|
|
||||||
|
|
||||||
[target.aarch64-unknown-linux-gnu]
|
|
||||||
linker = "clang"
|
|
||||||
rustflags = ["-C", "link-arg=--ld-path=wild"]
|
|
||||||
EOF
|
|
||||||
+3
-11
@@ -12,9 +12,6 @@ function finalize {
|
|||||||
# after packages install (curl, etc), get the rust toolchain
|
# after packages install (curl, etc), get the rust toolchain
|
||||||
which rustup > /dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
which rustup > /dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Note: It's recommended to install and configure Wild or Mold for faster builds.
|
|
||||||
Run script/install-wild or script/install-mold.
|
|
||||||
|
|
||||||
Finished installing Linux dependencies with script/linux
|
Finished installing Linux dependencies with script/linux
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@@ -55,11 +52,11 @@ if [[ -n $apt ]]; then
|
|||||||
)
|
)
|
||||||
if (grep -qP 'PRETTY_NAME="(Debian|Raspbian).+13' /etc/os-release); then
|
if (grep -qP 'PRETTY_NAME="(Debian|Raspbian).+13' /etc/os-release); then
|
||||||
# libstdc++-14-dev is in build-essential
|
# libstdc++-14-dev is in build-essential
|
||||||
deps+=( mold )
|
true
|
||||||
elif (grep -qP 'PRETTY_NAME="(Linux Mint 22|.+24\.(04|10))' /etc/os-release); then
|
elif (grep -qP 'PRETTY_NAME="(Linux Mint 22|.+24\.(04|10))' /etc/os-release); then
|
||||||
deps+=( mold libstdc++-14-dev )
|
deps+=( libstdc++-14-dev )
|
||||||
elif (grep -qP 'PRETTY_NAME="((Debian|Raspbian).+12|Linux Mint 21|.+22\.04)' /etc/os-release); then
|
elif (grep -qP 'PRETTY_NAME="((Debian|Raspbian).+12|Linux Mint 21|.+22\.04)' /etc/os-release); then
|
||||||
deps+=( mold libstdc++-12-dev )
|
deps+=( libstdc++-12-dev )
|
||||||
elif (grep -qP 'PRETTY_NAME="((Debian|Raspbian).+11|Linux Mint 20|.+20\.04)' /etc/os-release); then
|
elif (grep -qP 'PRETTY_NAME="((Debian|Raspbian).+11|Linux Mint 20|.+20\.04)' /etc/os-release); then
|
||||||
# Ubuntu 20.04 ships clang-10 and libstdc++-10 which lack adequate C++20
|
# 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
|
# support for building webrtc-sys (requires -std=c++20, lambdas in
|
||||||
@@ -125,7 +122,6 @@ if [[ -n $dnf ]] || [[ -n $yum ]]; then
|
|||||||
perl-IPC-Cmd
|
perl-IPC-Cmd
|
||||||
perl-File-Compare
|
perl-File-Compare
|
||||||
perl-File-Copy
|
perl-File-Copy
|
||||||
mold
|
|
||||||
)
|
)
|
||||||
elif grep -qP '^ID="?(rhel|rocky|alma|centos|ol)' /etc/os-release; then
|
elif grep -qP '^ID="?(rhel|rocky|alma|centos|ol)' /etc/os-release; then
|
||||||
deps+=( perl-interpreter )
|
deps+=( perl-interpreter )
|
||||||
@@ -183,7 +179,6 @@ if [[ -n $zyp ]]; then
|
|||||||
libxkbcommon-x11-devel
|
libxkbcommon-x11-devel
|
||||||
libzstd-devel
|
libzstd-devel
|
||||||
make
|
make
|
||||||
mold
|
|
||||||
openssl-devel
|
openssl-devel
|
||||||
sqlite3-devel
|
sqlite3-devel
|
||||||
tar
|
tar
|
||||||
@@ -217,7 +212,6 @@ if [[ -n $pacman ]]; then
|
|||||||
openssl
|
openssl
|
||||||
zstd
|
zstd
|
||||||
pkgconf
|
pkgconf
|
||||||
mold
|
|
||||||
sqlite
|
sqlite
|
||||||
pipewire
|
pipewire
|
||||||
xdg-desktop-portal
|
xdg-desktop-portal
|
||||||
@@ -250,7 +244,6 @@ if [[ -n $xbps ]]; then
|
|||||||
openssl-devel
|
openssl-devel
|
||||||
wayland-devel
|
wayland-devel
|
||||||
vulkan-loader
|
vulkan-loader
|
||||||
mold
|
|
||||||
sqlite-devel
|
sqlite-devel
|
||||||
pipewire
|
pipewire
|
||||||
xdg-desktop-portal
|
xdg-desktop-portal
|
||||||
@@ -277,7 +270,6 @@ if [[ -n $emerge ]]; then
|
|||||||
media-libs/vulkan-loader
|
media-libs/vulkan-loader
|
||||||
x11-libs/libxcb
|
x11-libs/libxcb
|
||||||
x11-libs/libxkbcommon
|
x11-libs/libxkbcommon
|
||||||
sys-devel/mold
|
|
||||||
dev-db/sqlite
|
dev-db/sqlite
|
||||||
media-video/pipewire
|
media-video/pipewire
|
||||||
sys-apps/xdg-desktop-portal
|
sys-apps/xdg-desktop-portal
|
||||||
|
|||||||
Reference in new issue
Block a user