For the reason described in commit
v4.10-517-gcfde1e3, a correct
definition of struct stat for x32 personality is necessary to enable
"asm_stat.h" with -mx32 on x86_64.
* linux/x32/asm_stat.h: Rename to ...
* linux/x86_64/asm_stat.h: ... new file.
* Makefile.am (strace_SOURCES): Add it.
* linux/x32/asm_stat.h: New file, include "x86_64/asm_stat.h".
link.c \
linux/asm_stat.h \
linux/x32/asm_stat.h \
+ linux/x86_64/asm_stat.h \
lookup_dcookie.c \
loop.c \
lseek.c \
-#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.
- */
-struct stat {
- kernel_ulong_t st_dev;
- kernel_ulong_t st_ino;
- kernel_ulong_t st_nlink;
- unsigned int st_mode;
- unsigned int st_uid;
- unsigned int st_gid;
- unsigned int pad0__;
- kernel_ulong_t st_rdev;
- kernel_long_t st_size;
- kernel_long_t st_blksize;
- kernel_long_t st_blocks;
- kernel_ulong_t st_atime;
- kernel_ulong_t st_atime_nsec;
- kernel_ulong_t st_mtime;
- kernel_ulong_t st_mtime_nsec;
- kernel_ulong_t st_ctime;
- kernel_ulong_t st_ctime_nsec;
- kernel_long_t pad1__[3];
-};
-
-# endif /* __x86_64__ && __ILP32__ */
-
-#endif /* !STRACE_X32_ASM_STAT_H */
+#include "x86_64/asm_stat.h"
--- /dev/null
+#ifndef STRACE_X86_64_ASM_STAT_H
+#define STRACE_X86_64_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.
+ */
+struct stat {
+ kernel_ulong_t st_dev;
+ kernel_ulong_t st_ino;
+ kernel_ulong_t st_nlink;
+ unsigned int st_mode;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int pad0__;
+ kernel_ulong_t st_rdev;
+ kernel_long_t st_size;
+ kernel_long_t st_blksize;
+ kernel_long_t st_blocks;
+ kernel_ulong_t st_atime;
+ kernel_ulong_t st_atime_nsec;
+ kernel_ulong_t st_mtime;
+ kernel_ulong_t st_mtime_nsec;
+ kernel_ulong_t st_ctime;
+ kernel_ulong_t st_ctime_nsec;
+ kernel_long_t pad1__[3];
+};
+
+# endif /* __x86_64__ && __ILP32__ */
+
+#endif /* !STRACE_X86_64_ASM_STAT_H */