libllvm: replace arm-linux-androideabi-clang symlink with wrapper

This is the same wrapper as what the ndk uses for selecting api level.

This fixes https://github.com/termux/termux-packages/issues/7232 and
https://github.com/termux/termux-packages/issues/7839.
This commit is contained in:
Henrik Grimler 2021-10-26 08:46:40 +02:00
parent 185d8a2f29
commit f32b2c0e7e
1 changed files with 32 additions and 0 deletions

View File

@ -3,6 +3,7 @@ TERMUX_PKG_DESCRIPTION="Modular compiler and toolchain technologies library"
TERMUX_PKG_LICENSE="NCSA"
TERMUX_PKG_MAINTAINER="@buttaface"
TERMUX_PKG_VERSION=13.0.0
TERMUX_PKG_REVISION=1
TERMUX_PKG_SHA256=6075ad30f1ac0e15f07c1bf062c1e1268c241d674f11bd32cdf0e040c71f2bf3
TERMUX_PKG_SRCURL=https://github.com/llvm/llvm-project/releases/download/llvmorg-$TERMUX_PKG_VERSION/llvm-project-$TERMUX_PKG_VERSION.src.tar.xz
TERMUX_PKG_HOSTBUILD=true
@ -108,6 +109,37 @@ termux_step_post_make_install() {
for tool in clang clang++ cc c++ cpp gcc g++ ${TERMUX_HOST_PLATFORM}-{clang,clang++,gcc,g++,cpp}; do
ln -f -s clang-${TERMUX_PKG_VERSION:0:2} $tool
done
if [ $TERMUX_ARCH == "arm" ]; then
# For arm we replace symlinks with the same type of
# wrapper as the ndk uses to choose correct target
for tool in ${TERMUX_HOST_PLATFORM}-{clang,gcc}; do
unlink $tool
cat <<- EOF > $tool
#!$TERMUX_PREFIX/bin/bash
if [ "\$1" != "-cc1" ]; then
\`dirname \$0\`/clang --target=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL "\$@"
else
# Target is already an argument.
\`dirname \$0\`/clang "\$@"
fi
EOF
chmod u+x $tool
done
for tool in ${TERMUX_HOST_PLATFORM}-{clang++,g++}; do
unlink $tool
cat <<- EOF > $tool
#!$TERMUX_PREFIX/bin/bash
if [ "\$1" != "-cc1" ]; then
\`dirname \$0\`/clang++ --target=armv7a-linux-androideabi$TERMUX_PKG_API_LEVEL "\$@"
else
# Target is already an argument.
\`dirname \$0\`/clang++ "\$@"
fi
EOF
chmod u+x $tool
done
fi
}
termux_step_post_massage() {