Fix stat decoding for LP64 bionic
authorElliott Hughes <enh@google.com>
Wed, 12 Mar 2014 17:31:04 +0000 (10:31 -0700)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 12 Mar 2014 21:29:12 +0000 (21:29 +0000)
Patch fb642bb6d63f7ffe2228bf48a6008bc8f56f67ff fixed building with
HAVE_STAT64 for aarch64 with uapi kernel headers but not x86_64.
The workaround needed to be applied to all LP64 architectures, not
just aarch64.  This patch fixes that and adds an explanatory comment.

Signed-off-by: Elliott Hughes <enh@google.com>
file.c

diff --git a/file.c b/file.c
index 7e0773d0f69160bc42bbf16bf2a230d07b411a04..03fbfaa4acf14f33f41695ed92a55a5e6ae337a7 100644 (file)
--- a/file.c
+++ b/file.c
@@ -181,9 +181,13 @@ struct __old_kernel_stat {
 #undef st_mtime
 #undef st_ctime
 
-#ifdef AARCH64
+#if defined(__BIONIC__) && defined(__LP64__)
+/* Bionic's "libc" struct stat and struct stat64 are identical.
+ * LP64 bionic doesn't have a "kernel" stat64, so for LP64 we need to use the
+ * kernel stat.
+ */
 #define stat64 stat
-#endif /* AARCH64 */
+#endif /* defined(__BIONIC__) && defined(__LP64__) */
 
 #include <fcntl.h>
 #ifdef HAVE_SYS_VFS_H