summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2013-02-18 15:47:57 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2013-02-18 15:47:57 +0100
commit8435d672ebbc318648a54beef1d491f1ce0531a3 (patch)
tree0caa9cca9629c46f3bdb6ccdf0cbe31662b06253 /file.c
parent8dedb0dc9636f64d6d1865a55d06a6fb6c4a04a9 (diff)
downloadstrace-8435d672ebbc318648a54beef1d491f1ce0531a3.tar.gz
strace-8435d672ebbc318648a54beef1d491f1ce0531a3.tar.bz2
strace-8435d672ebbc318648a54beef1d491f1ce0531a3.tar.xz
Remove code which supports systems with long long off_t.
While looking at mmap mess, did experimenting in order to figure out what gets used when. Tried building armv4tl, armv5l, armv6l, mips, mipsel, i686, x86_64 and none of they have long long off_t, which isn't suprprising: we aren't using glibc defines which enable that. Moreover, we SHOULD NOT use off_t in syscall decode! Its size depends on libc, not on arch! I.e. it is essentially unpredictable and can even in theory vary on the same arch with different libc. We should use longs or long longs, in a way which matches architectural ABI for the given syscall. There are usually *at most* two permutations, no need to add yet another variable (sizeof(off_t)) to the mix. This change removes almost all HAVE_LONG_LONG_OFF_T conditionals, which will reveal further possible simplifications. * mem.c: Remove code conditional on HAVE_LONG_LONG_OFF_T. As a result, never remap sys_mmap64 to sys_mmap. (print_mmap): Compile unconditionally. (sys_old_mmap): Compile unconditionally. (sys_mmap): Compile unconditionally. * io.c (sys_sendfile): Add a FIXME comment. * file.c: Remove code conditional on HAVE_LONG_LONG_OFF_T. As a result, never remap sys_*stat64 to sys_*stat etc. (sys_truncate): Compile unconditionally. (realprintstat): Likewise. (sys_stat): Likewise. (sys_fstat): Likewise. (sys_lstat): Likewise. * desc.c (printflock): Likewise. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'file.c')
-rw-r--r--file.c37
1 files changed, 6 insertions, 31 deletions
diff --git a/file.c b/file.c
index fb59f0d..cfdd0bb 100644
--- a/file.c
+++ b/file.c
@@ -183,19 +183,6 @@ struct stat64 {
# define XATTR_REPLACE 2
#endif
-#if HAVE_LONG_LONG_OFF_T
-/*
- * Ugly hacks for systems that have typedef long long off_t
- */
-# define stat64 stat
-# define HAVE_STAT64 1 /* Ugly hack */
-# define sys_stat64 sys_stat
-# define sys_fstat64 sys_fstat
-# define sys_lstat64 sys_lstat
-# define sys_truncate64 sys_truncate
-# define sys_ftruncate64 sys_ftruncate
-#endif
-
#ifdef MAJOR_IN_SYSMACROS
# include <sys/sysmacros.h>
#endif
@@ -626,7 +613,6 @@ sys_readahead(struct tcb *tcp)
return 0;
}
-#ifndef HAVE_LONG_LONG_OFF_T
int
sys_truncate(struct tcb *tcp)
{
@@ -636,9 +622,8 @@ sys_truncate(struct tcb *tcp)
}
return 0;
}
-#endif
-#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+#if _LFS64_LARGEFILE
int
sys_truncate64(struct tcb *tcp)
{
@@ -650,7 +635,6 @@ sys_truncate64(struct tcb *tcp)
}
#endif
-#ifndef HAVE_LONG_LONG_OFF_T
int
sys_ftruncate(struct tcb *tcp)
{
@@ -660,9 +644,8 @@ sys_ftruncate(struct tcb *tcp)
}
return 0;
}
-#endif
-#if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T
+#if _LFS64_LARGEFILE
int
sys_ftruncate64(struct tcb *tcp)
{
@@ -920,7 +903,6 @@ static const struct xlat fileflags[] = {
{ 0, NULL },
};
-#ifndef HAVE_LONG_LONG_OFF_T
static void
realprintstat(struct tcb *tcp, struct stat *statbuf)
{
@@ -1027,7 +1009,6 @@ printstat(struct tcb *tcp, long addr)
realprintstat(tcp, &statbuf);
}
-#endif /* !HAVE_LONG_LONG_OFF_T */
#if !defined HAVE_STAT64 && defined X86_64
/*
@@ -1181,7 +1162,7 @@ printstat64(struct tcb *tcp, long addr)
}
#endif /* HAVE_STAT64 */
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
static void
convertoldstat(const struct __old_kernel_stat *oldbuf, struct stat *newbuf)
{
@@ -1232,7 +1213,6 @@ printoldstat(struct tcb *tcp, long addr)
}
#endif
-#ifndef HAVE_LONG_LONG_OFF_T
int
sys_stat(struct tcb *tcp)
{
@@ -1244,7 +1224,6 @@ sys_stat(struct tcb *tcp)
}
return 0;
}
-#endif
int
sys_stat64(struct tcb *tcp)
@@ -1311,7 +1290,7 @@ sys_newfstatat(struct tcb *tcp)
return 0;
}
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
int
sys_oldstat(struct tcb *tcp)
{
@@ -1325,7 +1304,6 @@ sys_oldstat(struct tcb *tcp)
}
#endif
-#ifndef HAVE_LONG_LONG_OFF_T
int
sys_fstat(struct tcb *tcp)
{
@@ -1337,7 +1315,6 @@ sys_fstat(struct tcb *tcp)
}
return 0;
}
-#endif
int
sys_fstat64(struct tcb *tcp)
@@ -1355,7 +1332,7 @@ sys_fstat64(struct tcb *tcp)
#endif
}
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
int
sys_oldfstat(struct tcb *tcp)
{
@@ -1369,7 +1346,6 @@ sys_oldfstat(struct tcb *tcp)
}
#endif
-#ifndef HAVE_LONG_LONG_OFF_T
int
sys_lstat(struct tcb *tcp)
{
@@ -1381,7 +1357,6 @@ sys_lstat(struct tcb *tcp)
}
return 0;
}
-#endif
int
sys_lstat64(struct tcb *tcp)
@@ -1399,7 +1374,7 @@ sys_lstat64(struct tcb *tcp)
#endif
}
-#if defined(HAVE_STRUCT___OLD_KERNEL_STAT) && !defined(HAVE_LONG_LONG_OFF_T)
+#if defined(HAVE_STRUCT___OLD_KERNEL_STAT)
int
sys_oldlstat(struct tcb *tcp)
{