From 6e9519723802bc3f8f704d1f49a0c580c1bc7c8f Mon Sep 17 00:00:00 2001 From: Denis Kudelin <15978569+denis-kudelin@users.noreply.github.com> Date: Wed, 27 Aug 2025 14:35:04 +0300 Subject: [PATCH 1/2] Restore osxcross install after ld64.lld setup --- osx-run/osx-run.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/osx-run/osx-run.sh b/osx-run/osx-run.sh index ca1ecae..18484a7 100755 --- a/osx-run/osx-run.sh +++ b/osx-run/osx-run.sh @@ -19,6 +19,7 @@ export DEBIAN_FRONTEND=noninteractive f="" for cand in "$(command -v ld64.lld || true)" /usr/bin/ld64.lld-* /usr/lib/llvm-*/bin/ld64.lld /usr/bin/ld.lld /usr/lib/llvm-*/bin/ld.lld; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done if [ -z "$f" ]; then /usr/bin/sudo apt-get install -y lld || true; for cand in "$(command -v ld64.lld || true)" /usr/bin/ld64.lld-* /usr/lib/llvm-*/bin/ld64.lld /usr/bin/ld.lld /usr/lib/llvm-*/bin/ld.lld; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done; fi +if [ -z "$f" ]; then v="18.1.8"; tmp="$(mktemp -d)"; curl -fL -o "$tmp/llvm.tar.xz" "https://github.com/llvm/llvm-project/releases/download/llvmorg-$v/clang+llvm-$v-x86_64-linux-gnu-ubuntu-18.04.tar.xz"; tar -xf "$tmp/llvm.tar.xz" -C "$tmp"; for cand in "$tmp"/clang+llvm-*/bin/ld64.lld "$tmp"/clang+llvm-*/bin/ld.lld; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done; fi [ -n "$f" ] || { echo ld64.lld not found; exit 1; } /usr/bin/sudo ln -sf "$f" /usr/local/bin/ld64.lld /usr/bin/sudo mkdir -p "$OSXCROSS_ROOT" From 2b2580877003326af02d1ebb88972258dfe559a8 Mon Sep 17 00:00:00 2001 From: Denis Kudelin <15978569+denis-kudelin@users.noreply.github.com> Date: Wed, 27 Aug 2025 15:15:47 +0300 Subject: [PATCH 2/2] Link ld64.lld through local bin --- osx-run/osx-run.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/osx-run/osx-run.sh b/osx-run/osx-run.sh index 18484a7..2ce667e 100755 --- a/osx-run/osx-run.sh +++ b/osx-run/osx-run.sh @@ -17,11 +17,15 @@ export DEBIAN_FRONTEND=noninteractive /usr/bin/sudo apt-get update /usr/bin/sudo apt-get install -y build-essential clang lld cmake git patch python3 xz-utils curl libssl-dev liblzma-dev libxml2-dev bzip2 cpio zlib1g-dev uuid-dev ninja-build pkg-config ca-certificates f="" -for cand in "$(command -v ld64.lld || true)" /usr/bin/ld64.lld-* /usr/lib/llvm-*/bin/ld64.lld /usr/bin/ld.lld /usr/lib/llvm-*/bin/ld.lld; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done -if [ -z "$f" ]; then /usr/bin/sudo apt-get install -y lld || true; for cand in "$(command -v ld64.lld || true)" /usr/bin/ld64.lld-* /usr/lib/llvm-*/bin/ld64.lld /usr/bin/ld.lld /usr/lib/llvm-*/bin/ld.lld; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done; fi -if [ -z "$f" ]; then v="18.1.8"; tmp="$(mktemp -d)"; curl -fL -o "$tmp/llvm.tar.xz" "https://github.com/llvm/llvm-project/releases/download/llvmorg-$v/clang+llvm-$v-x86_64-linux-gnu-ubuntu-18.04.tar.xz"; tar -xf "$tmp/llvm.tar.xz" -C "$tmp"; for cand in "$tmp"/clang+llvm-*/bin/ld64.lld "$tmp"/clang+llvm-*/bin/ld.lld; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done; fi -[ -n "$f" ] || { echo ld64.lld not found; exit 1; } -/usr/bin/sudo ln -sf "$f" /usr/local/bin/ld64.lld +for cand in "$(command -v ld64.lld || true)" "$HOME/.local/bin/ld64.lld" /usr/lib/llvm-*/bin/ld64.lld /usr/bin/ld64.lld-* /usr/lib/llvm-*/bin/ld.lld /usr/bin/ld.lld*; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done +if [ -z "$f" ]; then /usr/bin/sudo apt-get install -y lld-18 || /usr/bin/sudo apt-get install -y lld; for cand in "$(command -v ld64.lld || true)" "$HOME/.local/bin/ld64.lld" /usr/lib/llvm-*/bin/ld64.lld /usr/bin/ld64.lld-* /usr/lib/llvm-*/bin/ld.lld /usr/bin/ld.lld*; do [ -n "$cand" ] && [ -x "$cand" ] && { f="$cand"; break; }; done; fi +[ -n "$f" ] || { echo "Required dependency 'ld64.lld' is not installed"; exit 1; } +d="$HOME/.local/bin" +mkdir -p "$d" +ln -sf "$f" "$d/ld64.lld" +PATH="$d:$PATH" +export PATH +command -v ld64.lld >/dev/null 2>&1 || { echo "Required dependency 'ld64.lld' is not installed"; exit 1; } /usr/bin/sudo mkdir -p "$OSXCROSS_ROOT" /usr/bin/sudo chown "$(id -u)":"$(id -g)" "$OSXCROSS_ROOT" cd "$OSXCROSS_ROOT"