termux-packages/ndk-patches/sys-cdefs.h.patch
Fredrik Fornwall 937b78d0c4 Define __TERMUX__ and __TERMUX_PREFIX__
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.
2019-09-19 21:34:04 +02:00

24 lines
1.0 KiB
Diff

diff -uNr sysroot.orig/usr/include/sys/cdefs.h sysroot/usr/include/sys/cdefs.h
--- sysroot.orig/usr/include/sys/cdefs.h 2019-02-12 16:12:24.000000000 +0000
+++ sysroot/usr/include/sys/cdefs.h 2019-03-20 13:27:29.977876824 +0000
@@ -206,7 +206,11 @@
* _FILE_OFFSET_BITS 64 support.
* See https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md
*/
-#if !defined(__LP64__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
+/* Using _FILE_OFFSET_BITS=64 does not work well on Android
+ * and can cause problems when mixing libraries, which is why
+ * Termux hides away this unless TERMUX_EXPOSE_FILE_OFFSET64
+ * is defined. */
+#if !defined(__LP64__) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(TERMUX_EXPOSE_FILE_OFFSET64)
# define __USE_FILE_OFFSET64 1
/*
* Note that __RENAME_IF_FILE_OFFSET64 is only valid if the off_t and off64_t
@@ -336,3 +340,6 @@
#include <android/versioning.h>
#include <android/api-level.h>
+
+#define __TERMUX__ 1
+#define __TERMUX_PREFIX__ "@TERMUX_PREFIX@"