Updates on unified headers
This commit is contained in:
parent
ba350b62fa
commit
67829fdb54
81
ndk_patches_unified/bits-struct_file.h.patch
Normal file
81
ndk_patches_unified/bits-struct_file.h.patch
Normal file
@ -0,0 +1,81 @@
|
||||
diff -u -r /home/fornwall/lib/android-ndk/sysroot/usr/include/bits/struct_file.h ./usr/include/bits/struct_file.h
|
||||
--- /home/fornwall/lib/android-ndk/sysroot/usr/include/bits/struct_file.h 2017-06-20 17:41:56.000000000 +0200
|
||||
+++ ./usr/include/bits/struct_file.h 2017-06-26 13:35:19.040117023 +0200
|
||||
@@ -33,13 +33,74 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
+#if defined(__LP64__)
|
||||
+struct __sbuf {
|
||||
+ unsigned char* _base;
|
||||
+ size_t _size;
|
||||
+};
|
||||
+#else
|
||||
+struct __sbuf {
|
||||
+ unsigned char *_base;
|
||||
+ int _size;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
struct __sFILE {
|
||||
+ unsigned char *_p; /* current position in (some) buffer */
|
||||
+ int _r; /* read space left for getc() */
|
||||
+ int _w; /* write space left for putc() */
|
||||
#if defined(__LP64__)
|
||||
- char __private[152];
|
||||
+ int _flags; /* flags, below; this FILE is free if 0 */
|
||||
+ int _file; /* fileno, if Unix descriptor, else -1 */
|
||||
#else
|
||||
- char __private[84];
|
||||
+ short _flags; /* flags, below; this FILE is free if 0 */
|
||||
+ short _file; /* fileno, if Unix descriptor, else -1 */
|
||||
#endif
|
||||
-} __attribute__((aligned(sizeof(void*))));
|
||||
+ struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
|
||||
+ int _lbfsize; /* 0 or -_bf._size, for inline putc */
|
||||
+
|
||||
+ /* operations */
|
||||
+ void *_cookie; /* cookie passed to io functions */
|
||||
+ int (*_close)(void *);
|
||||
+ int (*_read)(void *, char *, int);
|
||||
+ off_t (*_seek)(void *, off_t, int);
|
||||
+ int (*_write)(void *, const char *, int);
|
||||
+
|
||||
+ /* extension data, to avoid further ABI breakage */
|
||||
+ struct __sbuf _ext;
|
||||
+ /* data for long sequences of ungetc() */
|
||||
+ unsigned char *_up; /* saved _p when _p is doing ungetc data */
|
||||
+ int _ur; /* saved _r when _r is counting ungetc data */
|
||||
+
|
||||
+ /* tricks to meet minimum requirements even when malloc() fails */
|
||||
+ unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */
|
||||
+ unsigned char _nbuf[1]; /* guarantee a getc() buffer */
|
||||
+
|
||||
+ /* separate buffer for fgetln() when line crosses buffer boundary */
|
||||
+ struct __sbuf _lb; /* buffer for fgetln() */
|
||||
+
|
||||
+ /* Unix stdio files get aligned to block boundaries on fseek() */
|
||||
+ int _blksize; /* stat.st_blksize (may be != _bf._size) */
|
||||
+ off_t _offset; /* current lseek offset */
|
||||
+};
|
||||
+
|
||||
+#define __SLBF 0x0001 /* line buffered */
|
||||
+#define __SNBF 0x0002 /* unbuffered */
|
||||
+#define __SRD 0x0004 /* OK to read */
|
||||
+#define __SWR 0x0008 /* OK to write */
|
||||
+ /* RD and WR are never simultaneously asserted */
|
||||
+#define __SRW 0x0010 /* open for reading & writing */
|
||||
+#define __SEOF 0x0020 /* found EOF */
|
||||
+#define __SERR 0x0040 /* found error */
|
||||
+#define __SMBF 0x0080 /* _buf is from malloc */
|
||||
+#define __SAPP 0x0100 /* fdopen()ed in append mode */
|
||||
+#define __SSTR 0x0200 /* this is an sprintf/snprintf string */
|
||||
+#define __SOPT 0x0400 /* do fseek() optimization */
|
||||
+#define __SNPT 0x0800 /* do not do fseek() optimization */
|
||||
+#define __SOFF 0x1000 /* set iff _offset is in fact correct */
|
||||
+#define __SMOD 0x2000 /* true => fgetln modified _p text */
|
||||
+#define __SALC 0x4000 /* allocate string space dynamically */
|
||||
+#define __SIGN 0x8000 /* ignore this file in _fwalk */
|
||||
|
||||
__END_DECLS
|
||||
|
108
ndk_patches_unified/langinfo.h.patch
Normal file
108
ndk_patches_unified/langinfo.h.patch
Normal file
@ -0,0 +1,108 @@
|
||||
diff -N -a -u -r /home/fornwall/lib/android-ndk/sysroot/usr/include/langinfo.h ./usr/include/langinfo.h
|
||||
--- /home/fornwall/lib/android-ndk/sysroot/usr/include/langinfo.h 2017-06-20 17:41:56.000000000 +0200
|
||||
+++ ./usr/include/langinfo.h 1970-01-01 01:00:00.000000000 +0100
|
||||
@@ -1,104 +0,0 @@
|
||||
-/*
|
||||
- * Copyright (C) 2016 The Android Open Source Project
|
||||
- * All rights reserved.
|
||||
- *
|
||||
- * Redistribution and use in source and binary forms, with or without
|
||||
- * modification, are permitted provided that the following conditions
|
||||
- * are met:
|
||||
- * * Redistributions of source code must retain the above copyright
|
||||
- * notice, this list of conditions and the following disclaimer.
|
||||
- * * Redistributions in binary form must reproduce the above copyright
|
||||
- * notice, this list of conditions and the following disclaimer in
|
||||
- * the documentation and/or other materials provided with the
|
||||
- * distribution.
|
||||
- *
|
||||
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
- * SUCH DAMAGE.
|
||||
- */
|
||||
-
|
||||
-#ifndef _LANGINFO_H_
|
||||
-#define _LANGINFO_H_
|
||||
-
|
||||
-#include <sys/cdefs.h>
|
||||
-
|
||||
-#include <nl_types.h>
|
||||
-#include <xlocale.h>
|
||||
-
|
||||
-__BEGIN_DECLS
|
||||
-
|
||||
-#define CODESET 1
|
||||
-#define D_T_FMT 2
|
||||
-#define D_FMT 3
|
||||
-#define T_FMT 4
|
||||
-#define T_FMT_AMPM 5
|
||||
-#define AM_STR 6
|
||||
-#define PM_STR 7
|
||||
-#define DAY_1 8
|
||||
-#define DAY_2 9
|
||||
-#define DAY_3 10
|
||||
-#define DAY_4 11
|
||||
-#define DAY_5 12
|
||||
-#define DAY_6 13
|
||||
-#define DAY_7 14
|
||||
-#define ABDAY_1 15
|
||||
-#define ABDAY_2 16
|
||||
-#define ABDAY_3 17
|
||||
-#define ABDAY_4 18
|
||||
-#define ABDAY_5 19
|
||||
-#define ABDAY_6 20
|
||||
-#define ABDAY_7 21
|
||||
-#define MON_1 22
|
||||
-#define MON_2 23
|
||||
-#define MON_3 24
|
||||
-#define MON_4 25
|
||||
-#define MON_5 26
|
||||
-#define MON_6 27
|
||||
-#define MON_7 28
|
||||
-#define MON_8 29
|
||||
-#define MON_9 30
|
||||
-#define MON_10 31
|
||||
-#define MON_11 32
|
||||
-#define MON_12 33
|
||||
-#define ABMON_1 34
|
||||
-#define ABMON_2 35
|
||||
-#define ABMON_3 36
|
||||
-#define ABMON_4 37
|
||||
-#define ABMON_5 38
|
||||
-#define ABMON_6 39
|
||||
-#define ABMON_7 40
|
||||
-#define ABMON_8 41
|
||||
-#define ABMON_9 42
|
||||
-#define ABMON_10 43
|
||||
-#define ABMON_11 44
|
||||
-#define ABMON_12 45
|
||||
-#define ERA 46
|
||||
-#define ERA_D_FMT 47
|
||||
-#define ERA_D_T_FMT 48
|
||||
-#define ERA_T_FMT 49
|
||||
-#define ALT_DIGITS 50
|
||||
-#define RADIXCHAR 51
|
||||
-#define THOUSEP 52
|
||||
-#define YESEXPR 53
|
||||
-#define NOEXPR 54
|
||||
-#define CRNCYSTR 55
|
||||
-
|
||||
-
|
||||
-#if __ANDROID_API__ >= 26
|
||||
-char* nl_langinfo(nl_item) __INTRODUCED_IN(26);
|
||||
-char* nl_langinfo_l(nl_item, locale_t) __INTRODUCED_IN(26);
|
||||
-#endif /* __ANDROID_API__ >= 26 */
|
||||
-
|
||||
-
|
||||
-__END_DECLS
|
||||
-
|
||||
-#endif
|
@ -1,7 +1,16 @@
|
||||
diff -u -r /home/fornwall/lib/android-ndk/sysroot/usr/include/pwd.h ./usr/include/pwd.h
|
||||
--- /home/fornwall/lib/android-ndk/sysroot/usr/include/pwd.h 2017-06-07 01:07:52.000000000 +0200
|
||||
+++ ./usr/include/pwd.h 2017-06-18 01:54:51.654897945 +0200
|
||||
@@ -89,7 +89,6 @@
|
||||
--- /home/fornwall/lib/android-ndk/sysroot/usr/include/pwd.h 2017-06-20 17:41:56.000000000 +0200
|
||||
+++ ./usr/include/pwd.h 2017-06-26 11:45:26.036064547 +0200
|
||||
@@ -63,6 +63,8 @@
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
+#include <stdlib.h> /* For realpath() */
|
||||
+
|
||||
__BEGIN_DECLS
|
||||
|
||||
struct passwd {
|
||||
@@ -89,7 +91,6 @@
|
||||
struct passwd* getpwent(void) __INTRODUCED_IN(26);
|
||||
|
||||
void setpwent(void) __INTRODUCED_IN(26);
|
||||
@ -9,21 +18,21 @@ diff -u -r /home/fornwall/lib/android-ndk/sysroot/usr/include/pwd.h ./usr/includ
|
||||
#endif /* __ANDROID_API__ >= 26 */
|
||||
|
||||
|
||||
@@ -99,6 +98,52 @@
|
||||
@@ -99,6 +100,52 @@
|
||||
int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**) __INTRODUCED_IN(12);
|
||||
#endif /* __ANDROID_API__ >= 12 */
|
||||
|
||||
+static void android_setup_pwd(struct passwd* pw) {
|
||||
+ static char realpath_buffer[4096/*PATH_MAX*/];
|
||||
+ char* result = realpath("@TERMUX_HOME@/.termux/shell", realpath_buffer);
|
||||
+ if (result == NULL || access(realpath_buffer, X_OK) == -1) {
|
||||
+ char const* bash_path = "@TERMUX_PREFIX@/bin/bash";
|
||||
+ if (access(bash_path, X_OK) != -1) pw->pw_shell = (char*) bash_path;
|
||||
+ else pw->pw_shell = "@TERMUX_PREFIX@/bin/sh";
|
||||
+ char* result = realpath("/data/data/com.termux/files/home/.termux/shell", realpath_buffer);
|
||||
+ if (result == NULL || access(realpath_buffer, /*X_OK*/1) == -1) {
|
||||
+ char const* bash_path = "/data/data/com.termux/files/usr/bin/bash";
|
||||
+ if (access(bash_path, /*X_OK*/1) != -1) pw->pw_shell = (char*) bash_path;
|
||||
+ else pw->pw_shell = "/data/data/com.termux/files/usr/bin/sh";
|
||||
+ } else {
|
||||
+ pw->pw_shell = realpath_buffer;
|
||||
+ }
|
||||
+ pw->pw_dir = "@TERMUX_HOME@";
|
||||
+ pw->pw_dir = "/data/data/com.termux/files/home";
|
||||
+ pw->pw_passwd = "*";
|
||||
+#ifdef __LP64__
|
||||
+ pw->pw_gecos = ""; /* Avoid NULL field. */
|
||||
|
Loading…
Reference in New Issue
Block a user