Skip to content

Instantly share code, notes, and snippets.

@xiaoxi-ij478
Created October 21, 2023 15:13
Show Gist options
  • Save xiaoxi-ij478/6b931559c9f935b610c3c0ec4ccd2367 to your computer and use it in GitHub Desktop.
Save xiaoxi-ij478/6b931559c9f935b610c3c0ec4ccd2367 to your computer and use it in GitHub Desktop.
Build LLVM for Android
#!/bin/bash
set -e
# Build Programs with Android NDK & ccache
function android_build() {
TOOLCHAIN="$NDK"/toolchains/llvm/prebuilt/linux-x86_64
TARGET=$1
API=$2
shift 2
AR="$TOOLCHAIN/bin/llvm-ar" \
AS="ccache $TOOLCHAIN/bin/$TARGET$API-clang" \
CC="ccache $TOOLCHAIN/bin/$TARGET$API-clang" \
CXX="ccache $TOOLCHAIN/bin/$TARGET$API-clang++" \
CPP="ccache $TOOLCHAIN/bin/$TARGET$API-clang++ -E" \
LD="$TOOLCHAIN/bin/ld" \
RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \
STRIP="$TOOLCHAIN/bin/llvm-strip" \
"$@"
}
SDK=27
NDK=/opt/android-sdk/ndk/25.2.9519653
#git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/toolchain/llvm-project
#git -C llvm-project checkout 4c603efb0cca074e9238af8b4106c30add4418f6
mkdir llvm-project
git init llvm-project
git -C llvm-project remote add origin https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/toolchain/llvm-project
git -C llvm-project fetch origin 4c603efb0cca074e9238af8b4106c30add4418f6
git -C llvm-project checkout 4c603efb0cca074e9238af8b4106c30add4418f6
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/toolchain/llvm_android
git -C llvm_android checkout 91fdeab43d29b1f228113859da8ee238bc8c2f16
cd llvm-project
for p in `jq -r ".[]|if .version_range.from <= 450784 and (450784 <= .version_range.until or .version_range.until == null) then .rel_patch_path else empty end" <../llvm_android/patches/PATCHES.json`
do
patch -p1 -b -i ../llvm_android/patches/"$p"
done
patch -p1 -b <<'EOF'
diff --git a/llvm/include/llvm/Support/Signals.h b/llvm/include/llvm/Support/Signals.h
index 44f5a750ff5c..fc8ee0548964 100644
--- a/llvm/include/llvm/Support/Signals.h
+++ b/llvm/include/llvm/Support/Signals.h
@@ -14,6 +14,7 @@
#ifndef LLVM_SUPPORT_SIGNALS_H
#define LLVM_SUPPORT_SIGNALS_H
+#include <stdint.h>
#include <string>
namespace llvm {
diff --git a/compiler-rt/lib/hwasan/hwasan_linux.cpp b/compiler-rt/lib/hwasan/hwasan_linux.cpp
index ba9e23621cc2..81b4db7d34d0 100644
--- a/compiler-rt/lib/hwasan/hwasan_linux.cpp
+++ b/compiler-rt/lib/hwasan/hwasan_linux.cpp
@@ -15,6 +15,22 @@
#include "sanitizer_common/sanitizer_platform.h"
#if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD
+#ifdef __LP64__
+# define ULONG_MAX 0xffffffffffffffffUL /* max value for unsigned long */
+# define LONG_MAX 0x7fffffffffffffffL /* max value for a signed long */
+# define LONG_MIN (-0x7fffffffffffffffL-1) /* min value for a signed long */
+#else
+# define ULONG_MAX 0xffffffffUL /* max value for an unsigned long */
+# define LONG_MAX 0x7fffffffL /* max value for a long */
+# define LONG_MIN (-0x7fffffffL-1)/* min value for a long */
+#endif
+
+#if defined(__LP64__)
+#define SSIZE_MAX LONG_MAX
+#else
+#define SSIZE_MAX INT_MAX
+#endif
+
# include <dlfcn.h>
# include <elf.h>
# include <errno.h>
diff --git a/lldb/include/lldb/Host/Editline.h b/lldb/include/lldb/Host/Editline.h
index 876f6052311e..0ffce41dc990 100644
--- a/lldb/include/lldb/Host/Editline.h
+++ b/lldb/include/lldb/Host/Editline.h
@@ -40,9 +40,9 @@
#include "lldb/lldb-private.h"
-#if !defined(_WIN32) && !defined(__ANDROID__)
+//#if !defined(_WIN32) && !defined(__ANDROID__)
#include <histedit.h>
-#endif
+//#endif
#include <csignal>
#include <mutex>
diff --git a/lldb/source/Host/common/PseudoTerminal.cpp b/lldb/source/Host/common/PseudoTerminal.cpp
index dce4c5185c7b..571d8a99f6d6 100644
--- a/lldb/source/Host/common/PseudoTerminal.cpp
+++ b/lldb/source/Host/common/PseudoTerminal.cpp
@@ -91,7 +91,8 @@ llvm::Error PseudoTerminal::OpenSecondary(int oflag) {
CloseSecondaryFileDescriptor();
std::string name = GetSecondaryName();
- m_secondary_fd = llvm::sys::RetryAfterSignal(-1, ::open, name.c_str(), oflag);
+ int (*o_open)(const char *, int, ...) = ::open;
+ m_secondary_fd = llvm::sys::RetryAfterSignal(-1, o_open, name.c_str(), oflag);
if (m_secondary_fd >= 0)
return llvm::Error::success();
diff --git a/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp b/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
index b3140f7b0fd7..eeda336f521c 100644
--- a/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
+++ b/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
@@ -727,7 +727,8 @@ ConnectionStatus ConnectionFileDescriptor::ConnectFile(
#if LLDB_ENABLE_POSIX
std::string addr_str = s.str();
// file:///PATH
- int fd = llvm::sys::RetryAfterSignal(-1, ::open, addr_str.c_str(), O_RDWR);
+ int (*o_open)(const char *, int, ...) = ::open;
+ int fd = llvm::sys::RetryAfterSignal(-1, o_open, addr_str.c_str(), O_RDWR);
if (fd == -1) {
if (error_ptr)
error_ptr->SetErrorToErrno();
@@ -777,7 +778,8 @@ ConnectionStatus ConnectionFileDescriptor::ConnectSerialPort(
return eConnectionStatusError;
}
- int fd = llvm::sys::RetryAfterSignal(-1, ::open, path.str().c_str(), O_RDWR);
+ int (*o_open)(const char *, int, ...) = ::open;
+ int fd = llvm::sys::RetryAfterSignal(-1, o_open, path.str().c_str(), O_RDWR);
if (fd == -1) {
if (error_ptr)
error_ptr->SetErrorToErrno();
diff --git a/lldb/source/Host/posix/FileSystemPosix.cpp b/lldb/source/Host/posix/FileSystemPosix.cpp
index 0aa34bc59435..206bdd609d82 100644
--- a/lldb/source/Host/posix/FileSystemPosix.cpp
+++ b/lldb/source/Host/posix/FileSystemPosix.cpp
@@ -78,5 +78,6 @@ FILE *FileSystem::Fopen(const char *path, const char *mode) {
int FileSystem::Open(const char *path, int flags, int mode) {
Collect(path);
- return llvm::sys::RetryAfterSignal(-1, ::open, path, flags, mode);
+ int (*o_open)(const char *, int, ...) = ::open;
+ return llvm::sys::RetryAfterSignal(-1, o_open, path, flags, mode);
}
diff --git a/lldb/source/Host/posix/PipePosix.cpp b/lldb/source/Host/posix/PipePosix.cpp
index bd311ad8769a..671394093eca 100644
--- a/lldb/source/Host/posix/PipePosix.cpp
+++ b/lldb/source/Host/posix/PipePosix.cpp
@@ -148,7 +148,8 @@ Status PipePosix::OpenAsReader(llvm::StringRef name,
flags |= O_CLOEXEC;
Status error;
- int fd = llvm::sys::RetryAfterSignal(-1, ::open, name.str().c_str(), flags);
+ int (*o_open)(const char *, int, ...) = ::open;
+ int fd = llvm::sys::RetryAfterSignal(-1, o_open, name.str().c_str(), flags);
if (fd != -1)
m_fds[READ] = fd;
else
diff --git a/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp b/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
index 635dbb14a027..65bb0a944048 100644
--- a/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
+++ b/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
@@ -71,7 +71,8 @@ static void DisableASLR(int error_fd) {
}
static void DupDescriptor(int error_fd, const char *file, int fd, int flags) {
- int target_fd = llvm::sys::RetryAfterSignal(-1, ::open, file, flags, 0666);
+ int (*o_open)(const char *, int, ...) = ::open;
+ int target_fd = llvm::sys::RetryAfterSignal(-1, o_open, file, flags, 0666);
if (target_fd == -1)
ExitWithError(error_fd, "DupDescriptor-open");
diff --git a/llvm/examples/Bye/CMakeLists.txt b/llvm/examples/Bye/CMakeLists.txt
index 53138092144d..bf8c825524e2 100644
--- a/llvm/examples/Bye/CMakeLists.txt
+++ b/llvm/examples/Bye/CMakeLists.txt
@@ -2,18 +2,19 @@ if(LLVM_BYE_LINK_INTO_TOOLS)
message(WARNING "Setting LLVM_BYE_LINK_INTO_TOOLS=ON only makes sense for testing purpose")
endif()
+
# The plugin expects to not link against the Support and Core libraries,
# but expects them to exist in the process loading the plugin. This doesn't
# work with DLLs on Windows (where a shared library can't have undefined
# references), so just skip this example on Windows.
-if (NOT WIN32)
- add_llvm_pass_plugin(Bye
- Bye.cpp
- DEPENDS
- intrinsics_gen
- BUILDTREE_ONLY
- )
+#if (NOT WIN32)
+# add_llvm_pass_plugin(Bye
+# Bye.cpp
+# DEPENDS
+# intrinsics_gen
+# BUILDTREE_ONLY
+# )
- install(TARGETS ${name} RUNTIME DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}")
- set_target_properties(${name} PROPERTIES FOLDER "Examples")
-endif()
+# install(TARGETS ${name} RUNTIME DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}")
+# set_target_properties(${name} PROPERTIES FOLDER "Examples")
+#endif()
diff --git a/llvm/lib/Transforms/Hello/CMakeLists.txt b/llvm/lib/Transforms/Hello/CMakeLists.txt
index c4f10247c1a6..135174ad67c1 100644
--- a/llvm/lib/Transforms/Hello/CMakeLists.txt
+++ b/llvm/lib/Transforms/Hello/CMakeLists.txt
@@ -6,9 +6,9 @@ if( NOT LLVM_REQUIRES_RTTI )
endif()
endif()
-if(WIN32 OR CYGWIN)
+#if(WIN32 OR CYGWIN)
set(LLVM_LINK_COMPONENTS Core Support)
-endif()
+#endif()
add_llvm_library( LLVMHello MODULE BUILDTREE_ONLY
Hello.cpp
diff --git a/llvm/tools/bugpoint-passes/CMakeLists.txt b/llvm/tools/bugpoint-passes/CMakeLists.txt
index eea3e239b808..83960775fb6a 100644
--- a/llvm/tools/bugpoint-passes/CMakeLists.txt
+++ b/llvm/tools/bugpoint-passes/CMakeLists.txt
@@ -10,9 +10,9 @@ if( NOT LLVM_REQUIRES_RTTI )
endif()
endif()
-if(WIN32 OR CYGWIN)
+#if(WIN32 OR CYGWIN)
set(LLVM_LINK_COMPONENTS Core)
-endif()
+#endif()
add_llvm_library( BugpointPasses MODULE BUILDTREE_ONLY
TestPasses.cpp
diff --git a/llvm/tools/bugpoint/CMakeLists.txt b/llvm/tools/bugpoint/CMakeLists.txt
index d64481df1c1c..d0fbe3c25a1f 100644
--- a/llvm/tools/bugpoint/CMakeLists.txt
+++ b/llvm/tools/bugpoint/CMakeLists.txt
@@ -20,6 +20,7 @@ set(LLVM_LINK_COMPONENTS
Target
TransformUtils
Vectorize
+ Passes
)
add_llvm_tool(bugpoint
diff --git a/polly/lib/CMakeLists.txt b/polly/lib/CMakeLists.txt
index c6c1a18e9004..847d23bdc954 100644
--- a/polly/lib/CMakeLists.txt
+++ b/polly/lib/CMakeLists.txt
@@ -43,6 +43,8 @@ set(POLLY_COMPONENTS
Vectorize
)
+set(LLVM_LINK_COMPONENTS ${POLLY_COMPONENTS})
+
# Polly-ACC requires the NVPTX backend to work. Ask LLVM about its libraries.
if (GPU_CODEGEN)
# This call emits an error if they NVPTX backend is not enable.
EOF
cd ..
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/ncurses
git -C ncurses checkout 34428ddf7f4f6a0af2285038ea1c9d9fcb108de9
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/libxml2
git -C libxml2 checkout 788a11bab6fe8412d8fc5048b379458a178a7d7b
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/libedit
git -C libedit checkout 892b8b381ae82ac3184900d989a516854d8b1197
cd libedit
patch -p1 -b <<'EOF'
diff --git a/src/chartype.h b/src/chartype.h
index bfa3d54..4827d5a 100644
--- a/src/chartype.h
+++ b/src/chartype.h
@@ -28,7 +28,7 @@
#ifndef _h_chartype_f
#define _h_chartype_f
-
+#define __STDC_ISO_10646__
/* Ideally we should also test the value of the define to see if it
* supports non-BMP code points without requiring UTF-16, but nothing
* seems to actually advertise this properly, despite Unicode 3.1 having
diff --git a/src/vis.c b/src/vis.c
index ce66205..ac59ab2 100644
--- a/src/vis.c
+++ b/src/vis.c
@@ -64,6 +64,8 @@ __RCSID("$NetBSD: vis.c,v 1.74 2017/11/27 16:37:21 christos Exp $");
__FBSDID("$FreeBSD$");
#endif
+#define NBBY 8
+
#include <sys/types.h>
#include <sys/param.h>
EOF
cd ..
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/external/swig
git -C swig checkout 0ffab894f917fcbbd031eaab870fbabaefe5daaa
git clone https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/toolchain/xz
git -C xz checkout 47426872d1366c32538a8e9c8f559b03cb45b648
cd ncurses
mkdir build
cd build
android_build aarch64-linux-android $SDK ../configure --prefix=$PWD/out --with-shared --host=aarch64-linux-android
find -name Makefile -exec sed -i~ '/\$(CC).*lib_gen\$o/ s/ -c / -c -xc++ /; /INSTALL_PROG =/ s!\${INSTALL} -s!\${INSTALL} -s --strip-program="$NDK"/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip!' {} \;
make -j6
make install
cd ../..
cd libedit
mkdir build
cd build
android_build aarch64-linux-android $SDK ../configure --prefix=$PWD/out --host=aarch64-linux-android LDFLAGS="-L`readlink -f ../../ncurses/build/out/lib`" CFLAGS="-I`readlink -f ../../ncurses/build/out/include` -I`readlink -f ../../ncurses/build/out/include/ncurses`"
make -j6
make install
cd ../..
cd libxml2
mkdir build
cd build
cmake \
-DCMAKE_TOOLCHAIN_FILE="$NDK"/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-$SDK \
-DANDROID_CCACHE=/usr/bin/ccache \
-DCMAKE_INSTALL_PREFIX="$PWD/out" \
-DLIBXML2_WITH_PYTHON=OFF \
-DLIBXML2_WITH_PROGRAMS=OFF \
-DLIBXML2_WITH_LZMA=OFF \
-DLIBXML2_WITH_ICONV=OFF \
-DLIBXML2_WITH_ZLIB=OFF \
-DLIBXML2_WITH_TESTS=OFF \
..
make -j6
make install
cd ../..
cd swig
mkdir build
cd build
android_build aarch64-linux-android $SDK ../configure --prefix=$PWD/out --without-pcre --without-alllang --host=aarch64-linux-android
make -j6
make install
cd ../..
cd xz
mkdir build
cd build
cmake \
-DCMAKE_TOOLCHAIN_FILE="$NDK"/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-$SDK \
-DANDROID_CCACHE=/usr/bin/ccache \
-DCMAKE_INSTALL_PREFIX="$PWD/out" \
..
make -j6
make install
cd ../..
mkdir llvm-build
cd llvm-build
cmake \
-DCMAKE_TOOLCHAIN_FILE="$NDK"/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=android-$SDK \
-DCMAKE_INSTALL_PREFIX="$PWD/out" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_TERMINFO=OFF \
-DLLVM_ENABLE_THREADS=ON \
-DLLVM_USE_NEWPM=ON \
-DLLVM_CCACHE_BUILD=ON \
-DLLVM_LIBDIR_SUFFIX=64 \
-DCLANG_REPOSITORY_STRING=https://android.googlesource.com/toolchain/llvm-project \
-DBUG_REPORT_URL=https://github.com/android-ndk/ndk/issues \
-DLIBCXX_HAS_ATOMIC_LIB=NO \
-DLLVM_ENABLE_LIBCXX=ON \
-DPython3_EXECUTABLE=/usr/bin/python3 \
-DLLDB_ENABLE_LUA=OFF \
-DLLDB_ENABLE_PYTHON=OFF \
-DLLDB_ENABLE_LZMA=ON \
-DLIBLZMA_INCLUDE_DIR=`readlink -f ../xz/build/out/include` \
-DLIBLZMA_LIBRARY="`readlink -f ../xz/build/out/lib/liblzma.a`" \
-DLLDB_ENABLE_LIBEDIT=ON \
-DLibEdit_INCLUDE_DIRS="`readlink -f ../libedit/build/out/include`" \
-DLibEdit_LIBRARIES="`readlink -f ../libedit/build/out/lib/libedit.a`" \
-DLLDB_ENABLE_LIBXML2=ON \
-DLLDB_ENABLE_CURSES=ON \
-DCURSES_INCLUDE_DIRS="`readlink -f ../ncurses/build/out/include/`"\;"`readlink -f ../ncurses/build/out/include/ncurses/`" \
-DCURSES_LIBRARIES="`readlink -f ../ncurses/build/out/lib/libncurses.a`"\;"`readlink -f ../ncurses/build/out/lib/libform.a`"\;"`readlink -f ../ncurses/build/out/lib/libpanel.a`" \
-DPANEL_LIBRARIES="`readlink -f ../ncurses/build/out/lib/libncurses.a`"\;"`readlink -f ../ncurses/build/out/lib/libform.a`"\;"`readlink -f ../ncurses/build/out/lib/libpanel.a`" \
-DLLVM_ENABLE_PROJECTS='clang;lld;polly;lldb' \
-DLLVM_ENABLE_RUNTIMES='libcxx;libunwind;openmp;compiler-rt;libcxxabi' \
-DLIBUNWIND_ENABLE_SHARED=FALSE \
-DLIBUNWIND_TARGET_TRIPLE=aarch64-linux-android$SDK \
-DLIBUNWIND_ENABLE_ASSERTIONS=FALSE \
-DOPENMP_ENABLE_LIBOMPTARGET=FALSE \
-DOPENMP_ENABLE_OMPT_TOOLS=FALSE \
-DLIBOMP_ENABLE_SHARED=FALSE \
-DCOMPILER_RT_INCLUDE_TESTS=OFF \
-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=aarch64-linux-android$SDK \
-DLLVM_TARGETS_TO_BUILD=AArch64 \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DCLANG_VENDOR='Android (9352603, based on r450784d1)' \
-DLLVM_BUILD_RUNTIME=ON \
-DLLVM_INCLUDE_GO_TESTS=OFF \
-DLIBXML2_INCLUDE_DIR="`readlink -f ../libxml2/build/out/include/libxml2/`" \
-DLIBXML2_LIBRARY="`readlink -f ../libxml2/build/out/lib/libxml2.so`" \
-DLLVM_HOST_TRIPLE=aarch64-linux-android$SDK \
-DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-linux-android$SDK \
-DLLVM_TARGET_ARCH=AArch64 \
-DSANITIZER_ALLOW_CXXABI=OFF \
-DCLANG_PYTHON_BINDINGS_VERSIONS=3 \
-DCOMPILER_RT_BUILD_LIBFUZZER=ON \
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \
-DLLVM_INCLUDE_TESTS=FALSE \
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_ASM_FLAGS="$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libatomic.a $PWD/lib64/clang/14.0.0/lib/aarch64-linux-android$SDK/libclang_rt.builtins.a "$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libunwind.a -L"$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/;-DCMAKE_MODULE_LINKER_FLAGS="$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libatomic.a $PWD/lib64/clang/14.0.0/lib/aarch64-linux-android$SDK/libclang_rt.builtins.a "$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libunwind.a -L"$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/;-DCMAKE_SHARED_LINKER_FLAGS="$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libatomic.a $PWD/lib64/clang/14.0.0/lib/aarch64-linux-android$SDK/libclang_rt.builtins.a "$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libunwind.a -L"$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/;-DCMAKE_EXE_LINKER_FLAGS="$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libatomic.a $PWD/lib64/clang/14.0.0/lib/aarch64-linux-android$SDK/libclang_rt.builtins.a "$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/libunwind.a -L"$NDK"/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.7/lib/linux/aarch64/;-DCMAKE_TOOLCHAIN_FILE="$NDK"/build/cmake/android.toolchain.cmake;-DANDROID_ABI=arm64-v8a;-DANDROID_PLATFORM=android-$SDK;-DANDROID_CCACHE=/usr/bin/ccache" \
../llvm-project/llvm
mkdir -p "$PWD/lib64/clang/14.0.0/lib/linux/"
ln -s "$PWD/lib64/clang/14.0.0/lib/aarch64-linux-android$SDK/libclang_rt.builtins.a" "$PWD/lib64/clang/14.0.0/lib/linux/libclang_rt.builtins-aarch64-android.a"
make -j14
cd ..
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment