]> granicus.if.org Git - strace/commitdiff
x32/asm_stat.h: provide definitions for i386 personality
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 23 Aug 2016 14:49:20 +0000 (14:49 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 24 Aug 2016 12:09:59 +0000 (12:09 +0000)
This enables x32/asm_stat.h with -m32.

* linux/x32/asm_stat.h [__x86_64__ && __ILP32__]: Redirect stat.
Include "linux/asm_stat.h".
(struct stat): Define for [__x86_64__ && __ILP32__] only.
(struct __old_kernel_stat): Remove.

linux/x32/asm_stat.h

index 6713ac456872106e76c9ec13c5e17d829fe4873a..467c8f0e9c04f6385ded734b986902e79507fb62 100644 (file)
@@ -1,14 +1,18 @@
+#ifndef STRACE_X32_ASM_STAT_H
+#define STRACE_X32_ASM_STAT_H
+
+# if defined __x86_64__ && defined __ILP32__
+#  define stat redirect_kernel_stat
+# endif
+
+# include "linux/asm_stat.h"
+
+# if defined __x86_64__ && defined __ILP32__
+#  undef stat
 /*
  * This is a replacement for x32 <asm/stat.h> which
  * appears to be wrong in older kernel headers.
  */
-
-#ifndef STRACE_ASM_STAT_H
-
-# define STRACE_ASM_STAT_H
-
-# include "kernel_types.h"
-
 struct stat {
        kernel_ulong_t  st_dev;
        kernel_ulong_t  st_ino;
@@ -30,18 +34,6 @@ struct stat {
        kernel_long_t   pad1__[3];
 };
 
-struct __old_kernel_stat {
-       unsigned short st_dev;
-       unsigned short st_ino;
-       unsigned short st_mode;
-       unsigned short st_nlink;
-       unsigned short st_uid;
-       unsigned short st_gid;
-       unsigned short st_rdev;
-       unsigned int  st_size;
-       unsigned int  st_atime;
-       unsigned int  st_mtime;
-       unsigned int  st_ctime;
-};
+# endif /* __x86_64__ && __ILP32__ */
 
-#endif /* !STRACE_ASM_STAT_H */
+#endif /* !STRACE_X32_ASM_STAT_H */