summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/cris
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-01-24 11:44:14 +0000
committerEric Andersen <andersen@codepoet.org>2003-01-24 11:44:14 +0000
commit85800279bcad0b3495ccc22374f42cd04675f9e4 (patch)
tree30f6754fb734191d6cd7d3fad292a94c02430418 /libc/sysdeps/linux/cris
parent8c29bb071a5d7f6cf8edb26b93bd9e48d4ad3df1 (diff)
Ok, people are probably going to hate me for this... This commit changes the
type of 'struct stat' and 'struct stat64' so they use consistant types. This change is the result of a bug I found while trying to use GNU tar. The problem was caused by our using kernel types within struct stat and trying to directly compare these values with standard types. Trying an 'if (a < b)' when 'a' is an 'unsigned long' and 'b' is an 'int' leads to very different results then when comparing entities of the same type (i.e. time_t values).... Grumble. Nasty stuff, but I'm glad I got this out of the way now. As a result of this fix, uClibc 0.9.17 will not be binary compatible with earlier releases. I have always warned people this can and will happen. -Erik
Diffstat (limited to 'libc/sysdeps/linux/cris')
-rw-r--r--libc/sysdeps/linux/cris/bits/kernel_stat.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/libc/sysdeps/linux/cris/bits/kernel_stat.h b/libc/sysdeps/linux/cris/bits/kernel_stat.h
index 5f0c0f4fe..38f5036a2 100644
--- a/libc/sysdeps/linux/cris/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/cris/bits/kernel_stat.h
@@ -17,7 +17,7 @@ struct __old_kernel_stat {
unsigned long st_ctime;
};
-struct stat {
+struct kernel_stat {
unsigned short st_dev;
unsigned short __pad1;
unsigned long st_ino;
@@ -40,10 +40,10 @@ struct stat {
unsigned long __unused5;
};
-/* This matches struct stat64 in glibc2.1, hence the absolutely
+/* This matches struct kernel_stat64 in glibc2.1, hence the absolutely
* insane amounts of padding around dev_t's.
*/
-struct stat64 {
+struct kernel_stat64 {
unsigned short st_dev;
unsigned char __pad0[10];