By defining __TERMUX__ and __TERMUX_PREFIX__ in <sys/cdefs.h> (which is
basically always included) one can more easily target Termux
specifically, both when cross-compiling packages and when code is built
on-device.
Instead provide langinfo.h with inline implemention of nl_langinfo()
as a system header.
This avoids linking in libandroid-support.so in some places, and
improves compatibility when building code on-device.
* update ndk to 17
* bump NDK version in setup-android script
* libnl: fix for ndk r17
* libpixman: use clang's __builtin_shufflevector instead of __builtin_shuffle (#1)
Required to make package build with ndk17.
* fix as for arm
* ndk17 still uses ld.bfd on aarch64
* use -fno-integrated-as for clang only
* glib: remove patch unnecessary after ndk17
* torsocks: remove unneeded patch after ndk17
* subversion: fix build as clang++ now errors out for mismatched flags
* libpulseaudio: fix build with ndk17
https://github.com/termux/termux-packages/pull/2415#issuecomment-388296684
* gst-plugins-good: disable video4linux2
ioctl is defined as __overloadable in ndk17 headers which
conflicts with v4l2object's member ioctl
* libzmq: disable Werror to build with ndk17
* ltrace: hardcode symbol not available in ndk17
* busybox: build with clang for all arches except arm
* dropbear: build with clang instead of gcc
* gnupg: build with clang instead of gcc
* openssl: use clang for all arches except arm
* picolisp: build with clang instead of gcc
* valgrind: use clang on all arches except aarch64
* Revert "gst-plugins-good: disable video4linux2"
This reverts commit 43850b81ccf60033c25cb13dfd326c1b0528773a.
Already applied on base branch.
* libllvm: use default arm triple
Previously libandroid-support contained inline stubs for libintl.h
functions (gettext(), dgettext() and friends).
We now provide inline versions of them in libintl.h directly so
libandroid-support is no longer necessary to get them.
The platform headers has the following macro:
#define MB_CUR_MAX __ctype_get_mb_cur_max()
where __ctype_get_mb_cur_max() tries to handle UTF-8 encodings.
However, even in Android 7.0 setlocale(LC_ALL, ""), which many
programs do at startup, doesn't work in that it sets the locale
as non-utf8:
https://android.googlesource.com/platform/bionic/+/nougat-release/libc/bionic/locale.cpp#139
So we just always consider us being in an utf-8 locale.
Also rebuild coreutils to fix#1136.
32-bit android uses 32-bit off_t by default. When building with
-D_FILE_OFFSET_BITS=64 with unified headers off_t are promoted
to 64-bit, but there are bugs in the toolchain and spotty support
for it in the platform (not all functions are available until
android-24, and the platform zlib is compiled with 32-bit off_t).
Also, unless every library&program is rebuilt with 64-bit off_t,
including user-built ones, we risk a mismatch between programs and
libraries which can cause serious (but sometimes subtle) runtime
failures.
As -D_FILE_OFFSET_BITS=64 is not that important for most users
(with mariadb requiring it as an exception), we drop the support
for now by patching it away in <sys/cdefs.h>.