From 3184cb206058193cfed7b2aefd46d5da9780d535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 23 May 2023 11:12:59 +0300 Subject: [PATCH] wrappers: Don't rely on "readlink -f" Older macOS versions (macOS 12.2 at least) don't support this option, while newer macOS versions do support it (macOS 12.6). The solution is based on https://stackoverflow.com/a/1116890/3115956, but simplified for this usecase. --- wrappers/clang-target-wrapper.sh | 12 +++++++++++- wrappers/ld-wrapper.sh | 12 +++++++++++- wrappers/objdump-wrapper.sh | 12 +++++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/wrappers/clang-target-wrapper.sh b/wrappers/clang-target-wrapper.sh index dfa36e4..dff8c4e 100755 --- a/wrappers/clang-target-wrapper.sh +++ b/wrappers/clang-target-wrapper.sh @@ -14,7 +14,17 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -DIR="$(cd "$(dirname $(readlink -f "$0"))" && pwd)" +get_dir() { + target="$1" + while [ -L "$target" ]; do + cd "$(dirname "$target")" + target="$(readlink "$(basename "$target")")" + done + cd "$(dirname "$target")" + pwd +} + +DIR="$(get_dir "$0")" BASENAME="$(basename "$0")" TARGET="${BASENAME%-*}" EXE="${BASENAME##*-}" diff --git a/wrappers/ld-wrapper.sh b/wrappers/ld-wrapper.sh index eb9d3ff..c2549d1 100755 --- a/wrappers/ld-wrapper.sh +++ b/wrappers/ld-wrapper.sh @@ -14,7 +14,17 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -DIR="$(cd "$(dirname $(readlink -f "$0"))" && pwd)" +get_dir() { + target="$1" + while [ -L "$target" ]; do + cd "$(dirname "$target")" + target="$(readlink "$(basename "$target")")" + done + cd "$(dirname "$target")" + pwd +} + +DIR="$(get_dir "$0")" export PATH="$DIR":"$PATH" BASENAME="$(basename "$0")" diff --git a/wrappers/objdump-wrapper.sh b/wrappers/objdump-wrapper.sh index 1b09c34..d864f9c 100755 --- a/wrappers/objdump-wrapper.sh +++ b/wrappers/objdump-wrapper.sh @@ -14,7 +14,17 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -DIR="$(cd "$(dirname $(readlink -f "$0"))" && pwd)" +get_dir() { + target="$1" + while [ -L "$target" ]; do + cd "$(dirname "$target")" + target="$(readlink "$(basename "$target")")" + done + cd "$(dirname "$target")" + pwd +} + +DIR="$(get_dir "$0")" export PATH="$DIR":"$PATH" if [ "$1" = "-f" ]; then