diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-01-24 11:44:14 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-01-24 11:44:14 +0000 |
commit | 85800279bcad0b3495ccc22374f42cd04675f9e4 (patch) | |
tree | 30f6754fb734191d6cd7d3fad292a94c02430418 /libc/sysdeps/linux/alpha | |
parent | 8c29bb071a5d7f6cf8edb26b93bd9e48d4ad3df1 (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/alpha')
-rw-r--r-- | libc/sysdeps/linux/alpha/bits/kernel_stat.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libc/sysdeps/linux/alpha/bits/kernel_stat.h b/libc/sysdeps/linux/alpha/bits/kernel_stat.h index cca4e71fa..0e1f2f7bd 100644 --- a/libc/sysdeps/linux/alpha/bits/kernel_stat.h +++ b/libc/sysdeps/linux/alpha/bits/kernel_stat.h @@ -2,9 +2,9 @@ #define _BITS_STAT_STRUCT_H /* This file provides whatever this particular arch's kernel thinks - * struct stat should look like... It turns out each arch has a + * struct kernel_stat should look like... It turns out each arch has a * different opinion on the subject... */ -struct stat { +struct kernel_stat { unsigned int st_dev; unsigned int st_ino; unsigned int st_mode; @@ -21,7 +21,7 @@ struct stat { unsigned int st_flags; unsigned int st_gen; }; -struct stat64 { +struct kernel_stat64 { unsigned int st_dev; unsigned int st_ino; unsigned int st_mode; |