[PATCH] D95166: Disable rosegment for old Android versions.
Nico Weber via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 3 13:36:50 PST 2021
thakis added a comment.
In D95166#2531194 <https://reviews.llvm.org/D95166#2531194>, @danalbert wrote:
> In D95166#2530791 <https://reviews.llvm.org/D95166#2530791>, @thakis wrote:
>
>> Landed revert in 1608ba09462d877111230e9461b895f696f8fcb1 <https://reviews.llvm.org/rG1608ba09462d877111230e9461b895f696f8fcb1>. Someone should file a PR to make sure that gets merged to the 12.0 branch.
>>
>> We can then reland on trunk once there are clear instructions for folks building with trunk clang but old NDK but without the toolchain file (either "use toolchain file" or "set LLVM_USE_LLD" or something like that, I'm guessing?)
>
> The instructions would be "use the whole toolchain, don't mix and match". Where should that be documented?
I don't know what "use the whole toolchain, don't mix and match" means.
In our case, we were building compiler-rt for android by running
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON "-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld;chrometools;clang-tools-extra" "-DLLVM_TARGETS_TO_BUILD=AArch64;ARM;Mips;PowerPC;SystemZ;WebAssembly;X86" -DLLVM_ENABLE_PIC=OFF -DLLVM_ENABLE_UNWIND_TABLES=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_Z3_SOLVER=OFF -DCLANG_PLUGIN_SUPPORT=OFF -DCLANG_ENABLE_STATIC_ANALYZER=OFF -DCLANG_ENABLE_ARCMT=OFF "-DBUG_REPORT_URL=https://crbug.com and run tools/clang/scripts/process_crashreports.py (only works inside Google) which will upload a report" -DLLVM_INCLUDE_GO_TESTS=OFF -DENABLE_X86_RELAX_RELOCATIONS=NO -DLLVM_ENABLE_DIA_SDK=OFF -DLLVM_LOCAL_RPATH=$HOME/src/chrome/src/third_party/llvm-build-tools/gcc-10.2.0-trusty/lib64 "-DCOMPILER_RT_TEST_COMPILER_CFLAGS=--gcc-toolchain=$HOME/src/chrome/src/third_party/llvm-build-tools/gcc-10.2.0-trusty -Wl,-rpath,$HOME/src/chrome/src/third_party/llvm-build-tools/gcc-10.2.0-trusty/lib64 -Wl,-rpath,$HOME/src/chrome/src/third_party/llvm-build-tools/gcc-10.2.0-trusty/lib32" -DLLVM_ENABLE_LIBXML2=FORCE_ON -DCMAKE_C_COMPILER=$HOME/src/chrome/src/third_party/llvm-build-tools/gcc-10.2.0-trusty/bin/gcc -DCMAKE_CXX_COMPILER=$HOME/src/chrome/src/third_party/llvm-build-tools/gcc-10.2.0-trusty/bin/g++ -DCMAKE_C_COMPILER=$HOME/src/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=$HOME/src/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=$HOME/src/chrome/src/third_party/llvm-build/Release+Asserts/bin/llvm-config "-DCMAKE_C_FLAGS=--target=aarch64-linux-android21 --sysroot=$HOME/src/chrome/src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=$HOME/src/chrome/src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64" "-DCMAKE_CXX_FLAGS=--target=aarch64-linux-android21 --sysroot=$HOME/src/chrome/src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=$HOME/src/chrome/src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64" "-DCMAKE_ASM_FLAGS=--target=aarch64-linux-android21 --sysroot=$HOME/src/chrome/src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot --gcc-toolchain=$HOME/src/chrome/src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64" -DCOMPILER_RT_BUILD_BUILTINS=OFF -DCOMPILER_RT_BUILD_CRT=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF -DCOMPILER_RT_BUILD_MEMPROF=OFF -DCOMPILER_RT_BUILD_PROFILE=ON -DCOMPILER_RT_BUILD_SANITIZERS=ON -DCOMPILER_RT_BUILD_XRAY=OFF -DSANITIZER_CXX_ABI=libcxxabi -DCMAKE_SHARED_LINKER_FLAGS=-Wl,-u__cxa_demangle -DANDROID=1
in an `android-aarch64` subdir of a linux llvm build dir (and similar for other archs).
We've since added `-fuse-ld=lld` to the three `CMAKE_*_FLAGS` so I think we're likely set on our end.
If there's some way to build android compiler-rt runtimes as part of a regular linux llvm build, we'd love to learn about that :)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95166/new/
https://reviews.llvm.org/D95166
More information about the cfe-commits
mailing list