Skip to content

Commit 387f77b

Browse files
author
Clement Cheung
committed
Fix symlink when version is latest and symlink all LLVM executables
1 parent 2412051 commit 387f77b

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

install.sh

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ set -e
44
if [ "$VERSION" == "latest" ]; then
55
VERSION=
66
fi
7-
MAJOR_VERSION=${VERSION%%.*}
87

98
# Function to run apt-get if needed
109
apt_get_update_if_needed()
@@ -49,7 +48,28 @@ rm llvm.sh
4948
# Remove downloads to keep Docker layer small
5049
apt-get clean -y && rm -rf /var/lib/apt/lists/*
5150

52-
ln -sf /usr/bin/clang-${MAJOR_VERSION} /usr/bin/clang
53-
ln -sf /usr/bin/clang++-${MAJOR_VERSION} /usr/bin/clang++
54-
ln -sf /usr/bin/lld-${MAJOR_VERSION} /usr/bin/lld
55-
ln -sf /usr/bin/ld.lld-${MAJOR_VERSION} /usr/bin/ld.lld
51+
llvm_root_prefix=/usr/lib/llvm-
52+
53+
if [ -z $VERSION ]; then
54+
# Detect the latest version if it is "latest".
55+
llvm_latest_version=
56+
for llvm in ${llvm_root_prefix}*; do
57+
llvm_version=${llvm##$llvm_root_prefix}
58+
if [ ! -f ${llvm_root_prefix}${llvm_version}/bin/llvm-config ]; then
59+
continue
60+
fi
61+
if [[ -z $llvm_latest_version || llvm_version -gt llvm_latest_version ]]; then
62+
llvm_latest_version=$llvm_version
63+
fi
64+
done
65+
VERSION=$llvm_latest_version
66+
fi
67+
68+
llvm_root=${llvm_root_prefix}${VERSION}
69+
70+
for bin in $llvm_root/bin/*; do
71+
bin=$(basename $bin)
72+
if [ -f /usr/bin/$bin-$VERSION ]; then
73+
ln -sf /usr/bin/$bin-$VERSION /usr/bin/$bin
74+
fi
75+
done

0 commit comments

Comments
 (0)