Follows on from https://github.com/zed-industries/zed/pull/37717#discussion_r2376739687 @dvdsk suggested this but I didn't get to it in the previous PR. # Tested ``` ; sudo rm /usr/local/bin/wild ; ./script/install-wild Downloading from https://github.com/davidlattimore/wild/releases/download/0.6.0/wild-linker-0.6.0-x86_64-unknown-linux-gnu.tar.gz Wild is installed to /usr/local/bin/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"] ``` ``` ; sudo rm /usr/local/bin/mold ; ./script/install-mold 2.34.0 Downloading from https://github.com/rui314/mold/releases/download/v2.34.0/mold-2.34.0-x86_64-linux.tar.gz 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"] ``` Release Notes: - N/A
45 lines
1.4 KiB
Bash
Executable File
45 lines
1.4 KiB
Bash
Executable File
#!/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 which -s wild && wild --version | grep -Fq "$WILD_VERSION" ; then
|
|
echo "Warning: existing wild $WILD_VERSION found at $(which 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
|