From: Pádraig Brady
Date: Wed, 30 Jan 2019 04:32:53 +0000 (-0800)
Subject: stat,tail: fix android build and support inotify
X-Git-Tag: v8.31~35
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e8f885a2a853fea0ef56b663741c0947f9ba7ca;p=thirdparty%2Fcoreutils.git
stat,tail: fix android build and support inotify
* src/extract-magic: Treat android like linux,
which fixes the build by ensuring the constants are defined.
* src/stat.c: Support all constants on android, including
the android specific "sdcardfs".
* src/tail.c: Fix inclusion of statfs headers to be independent
of inotify availability, as fremote() is used on linux even
if inotify has been disabled. Also enable fremote() on android.
* NEWS: Mention the improvment.
Fixes https://bugs.gnu.org/34239
---
diff --git a/NEWS b/NEWS
index 4b6b8bff8d..e6ccb19495 100644
--- a/NEWS
+++ b/NEWS
@@ -69,6 +69,11 @@ GNU coreutils NEWS -*- outline -*-
and encodes and decodes printable text using various common encodings:
base64,base64url,base32,base32hex,base16,base2,z85.
+** Improvements
+
+ stat and tail now know about the "sdcardfs" file system on Android.
+ stat -f -c%T now reports the file system type, and tail -f uses inotify.
+
* Noteworthy changes in release 8.30 (2018-07-01) [stable]
diff --git a/src/extract-magic b/src/extract-magic
index 48c38dff5a..892c1db1d6 100644
--- a/src/extract-magic
+++ b/src/extract-magic
@@ -125,7 +125,7 @@ EOF
print $emit_magic ? $magic_comment : $map_comment;
$emit_magic
- and print "\n#if defined __linux__\n";
+ and print "\n#if defined __linux__ || defined __ANDROID__\n";
$emit_magic
or print "static inline int\n"
. "is_local_fs_type (unsigned long int magic)\n"
diff --git a/src/stat.c b/src/stat.c
index f17246d30a..c8f1809485 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -235,7 +235,7 @@ human_fstype (STRUCT_STATVFS const *statfsbuf)
#else
switch (statfsbuf->f_type)
{
-# if defined __linux__
+# if defined __linux__ || defined __ANDROID__
/* Compare with what's in libc:
f=/a/libc/sysdeps/unix/sysv/linux/linux_fsinfo.h
@@ -450,6 +450,8 @@ human_fstype (STRUCT_STATVFS const *statfsbuf)
return "romfs";
case S_MAGIC_RPC_PIPEFS: /* 0x67596969 local */
return "rpc_pipefs";
+ case S_MAGIC_SDCARDFS: /* 0x5DCA2DF5 local */
+ return "sdcardfs";
case S_MAGIC_SECURITYFS: /* 0x73636673 local */
return "securityfs";
case S_MAGIC_SELINUX: /* 0xF97CFF8C local */
diff --git a/src/tail.c b/src/tail.c
index dee827bc8f..8fab0499dc 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -57,8 +57,10 @@
# include