mirror of
https://github.com/termux/termux-packages.git
synced 2024-12-04 18:45:52 +00:00
91 lines
3.8 KiB
Diff
91 lines
3.8 KiB
Diff
--- a/coregrind/m_aspacemgr/aspacemgr-common.c
|
|
+++ b/coregrind/m_aspacemgr/aspacemgr-common.c
|
|
@@ -262,7 +262,7 @@
|
|
|
|
SysRes ML_(am_open) ( const HChar* pathname, Int flags, Int mode )
|
|
{
|
|
-# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux)
|
|
+# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux) || defined(__ANDROID__)
|
|
/* ARM64 wants to use __NR_openat rather than __NR_open. */
|
|
SysRes res = VG_(do_syscall4)(__NR_openat,
|
|
VKI_AT_FDCWD, (UWord)pathname, flags, mode);
|
|
@@ -291,7 +291,7 @@
|
|
Int ML_(am_readlink)(const HChar* path, HChar* buf, UInt bufsiz)
|
|
{
|
|
SysRes res;
|
|
-# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux)
|
|
+# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux) || defined(__ANDROID__)
|
|
res = VG_(do_syscall4)(__NR_readlinkat, VKI_AT_FDCWD,
|
|
(UWord)path, (UWord)buf, bufsiz);
|
|
# elif defined(VGO_linux) || defined(VGO_darwin) || defined(VGO_freebsd)
|
|
@@ -330,6 +330,7 @@
|
|
# if defined(VGO_linux) || defined(VGO_darwin)
|
|
SysRes res;
|
|
# if defined(VGO_linux)
|
|
+#ifndef __ANDROID__
|
|
/* First try with statx. */
|
|
struct vki_statx bufx;
|
|
const char* file_name = "";
|
|
@@ -341,6 +342,7 @@
|
|
*mode = (UInt)bufx.stx_mode;
|
|
return True;
|
|
}
|
|
+#endif
|
|
# endif // VGO_linux only
|
|
|
|
# if defined(VGO_linux) && defined(__NR_fstat64)
|
|
--- a/coregrind/m_libcfile.c
|
|
+++ b/coregrind/m_libcfile.c
|
|
@@ -290,7 +290,7 @@
|
|
|
|
SysRes VG_(open) ( const HChar* pathname, Int flags, Int mode )
|
|
{
|
|
-# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux)
|
|
+# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux) || defined(__ANDROID__)
|
|
/* ARM64 wants to use __NR_openat rather than __NR_open. */
|
|
SysRes res = VG_(do_syscall4)(__NR_openat,
|
|
VKI_AT_FDCWD, (UWord)pathname, flags, mode);
|
|
@@ -511,7 +511,7 @@
|
|
SysRes res;
|
|
VG_(memset)(vgbuf, 0, sizeof(*vgbuf));
|
|
|
|
-# if defined(VGO_linux)
|
|
+# if defined(VGO_linux) && !defined(__ANDROID__)
|
|
/* On Linux, first try with statx. If that doesn't work out, fall back to
|
|
the stat64 or vanilla version. */
|
|
{ struct vki_statx buf;
|
|
@@ -546,6 +546,12 @@
|
|
# if defined(VGP_arm64_linux)
|
|
res = VG_(do_syscall3)(__NR3264_fstatat, VKI_AT_FDCWD,
|
|
(UWord)file_name, (UWord)&buf);
|
|
+# elif defined(__NR_newfstatat)
|
|
+ res = VG_(do_syscall3)(__NR_newfstatat, VKI_AT_FDCWD,
|
|
+ (UWord)file_name, (UWord)&buf);
|
|
+# elif defined(__NR_fstatat64)
|
|
+ res = VG_(do_syscall3)(__NR_fstatat64, VKI_AT_FDCWD,
|
|
+ (UWord)file_name, (UWord)&buf);
|
|
# else
|
|
res = VG_(do_syscall2)(__NR_stat, (UWord)file_name, (UWord)&buf);
|
|
# endif
|
|
@@ -595,7 +601,7 @@
|
|
SysRes res;
|
|
VG_(memset)(vgbuf, 0, sizeof(*vgbuf));
|
|
|
|
-# if defined(VGO_linux)
|
|
+# if defined(VGO_linux) && !defined(__ANDROID__)
|
|
/* On Linux, first try with statx. If that doesn't work out, fall back to
|
|
the fstat64 or vanilla version. */
|
|
{ struct vki_statx buf;
|
|
@@ -994,9 +1000,9 @@
|
|
UWord w = (irusr ? VKI_R_OK : 0)
|
|
| (iwusr ? VKI_W_OK : 0)
|
|
| (ixusr ? VKI_X_OK : 0);
|
|
-# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux)
|
|
+# if defined(VGP_arm64_linux) || defined(VGP_nanomips_linux) || defined(__ANDROID__)
|
|
SysRes res = VG_(do_syscall3)(__NR_faccessat, VKI_AT_FDCWD, (UWord)path, w);
|
|
-# elif defined(VGO_linux) || defined(VGO_darwin) || defined(VGO_freebsd)
|
|
+# elif defined(VGO_linux) && !defined(__ANDROID__) || defined(VGO_darwin) || defined(VGO_freebsd)
|
|
SysRes res = VG_(do_syscall2)(__NR_access, (UWord)path, w);
|
|
# elif defined(VGO_solaris)
|
|
SysRes res = VG_(do_syscall4)(__NR_faccessat, VKI_AT_FDCWD, (UWord)path,
|