Files
termux-packages/packages/libllvm/clang.subpackage.sh
termux-pacman-bot 9b1d8bc03e fix(main/clang): default to using the static library of the address sanitizer instead of the shared library
- Makes the default behavior of on-device building with the address sanitizer match the default behavior of building with the address sanitizer on Clang for Desktop Linux distros, which is to use the static library

- Fixes https://github.com/termux/termux-packages/issues/26485

- On devices that do not have `libclang_rt.asan-$arch-android.so` or which have a corrupted one, fixes building on-device with `-fsanitize=address`

- Samsung Galaxy S III SPH-L710 with LineageOS 14.1 Android 7.1.2 before:

```
~ $ clang test.c -fsanitize=address
~ $ ./a.out
WARNING: linker: /data/data/com.termux/files/home/a.out: unsupported flags DT_FLAGS_1=0x8000001
CANNOT LINK EXECUTABLE "./a.out": library "libclang_rt.asan-arm-android.so" not found
Aborted                    ./a.out
~ $ clang test.c -fsanitize=address -Wl,-rpath=$PREFIX/lib/clang/20/lib/linux
~ $ ./a.out
WARNING: linker: /data/data/com.termux/files/home/a.out: unsupported flags DT_FLAGS_1=0x8000001
~ $ termux-elf-cleaner ./a.out
termux-elf-cleaner: Replacing unsupported DF_1_* flags 134217729 with 1 in './a.out'
~ $ ./a.out
~ $ file /system/lib/libclang_rt.asan-arm-android.so
/system/lib/libclang_rt.asan-arm-android.so: cannot open `/system/lib/libclang_rt.asan-arm-android.so' (No such file or directory)
~ $
```

- After:
```
~ $ clang test.c -fsanitize=address
~ $ ./a.out
WARNING: linker: /data/data/com.termux/files/home/a.out: unsupported flags DT_FLAGS_1=0x8000001
~ $ termux-elf-cleaner a.out
termux-elf-cleaner: Replacing unsupported DF_1_* flags 134217729 with 1 in 'a.out'
~ $ ./a.out
~ $
```

- Vivo iQOO Neo8 V2301A with Android 15 before:

```
thread #1, name = 'a.out', stop reason = signal SIGILL: illegal opcode
```

- After: believed to work
2025-10-13 15:06:11 +00:00

52 lines
1.1 KiB
Bash

TERMUX_SUBPKG_INCLUDE="
bin/amdgpu-arch
bin/analyze-build
bin/c++
bin/cc
bin/clang*
bin/cpp
bin/diagtool
bin/find-all-symbols
bin/g++
bin/gcc
bin/git-clang-format
bin/hmaptool
bin/intercept-build
bin/*-linux-android*
bin/modularize
bin/nvptx-arch
bin/offload-arch
bin/pp-trace
bin/run-clang-tidy
bin/scan-*
include/clang*
lib/clang/*/include/*.h
lib/clang/*/include/module.modulemap
lib/clang/*/include/cuda_wrappers/
lib/clang/*/include/llvm_libc_wrappers/
lib/clang/*/include/llvm_offload_wrappers/
lib/clang/*/include/openmp_wrappers/
lib/clang/*/include/ppc_wrappers/
lib/clang/*/include/zos_wrappers/
lib/clang/latest
lib/cmake/clang
lib/cmake/openmp
lib/libarcher.so
lib/libclang*so
lib/libear/
lib/libomp.a
lib/libscanbuild/
libexec/
share/clang
share/clang-doc
share/man/man1/clang.1.gz
share/man/man1/diagtool.1.gz
share/man/man1/scan-build.1.gz
share/scan-*
"
TERMUX_SUBPKG_DESCRIPTION="C language frontend for LLVM"
TERMUX_SUBPKG_DEPENDS="libcompiler-rt, lld, llvm, ndk-sysroot"
TERMUX_SUBPKG_BREAKS="libllvm (<< 16.0.0), clangd"
TERMUX_SUBPKG_REPLACES="libllvm (<< 16.0.0), clangd"
TERMUX_SUBPKG_GROUPS="base-devel"