mirror of https://gitee.com/openkylin/linux.git
415586c9e6
In the UAPI header files, __BIG_ENDIAN and __LITTLE_ENDIAN must be compared against __BYTE_ORDER in preprocessor conditionals where these are exposed to userspace (that is they're not inside __KERNEL__ conditionals). However, in the main kernel the norm is to check for "defined(__XXX_ENDIAN)" rather than comparing against __BYTE_ORDER and this has incorrectly leaked into the userspace headers. The definition of struct stat64 in M32R's asm/stat.h is wrong in this way. Note that userspace will likely interpret the field order incorrectly as the big-endian variant on little-endian machines - depending on header inclusion order. [!!!] NOTE [!!!] This patch may adversely change the userspace API. It might be better to fix the ordering of st_blocks and __pad4 in struct stat64. Signed-off-by: David Howells <dhowells@redhat.com> Cc: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
Kbuild | ||
auxvec.h | ||
bitsperlong.h | ||
byteorder.h | ||
errno.h | ||
fcntl.h | ||
ioctl.h | ||
ioctls.h | ||
ipcbuf.h | ||
mman.h | ||
msgbuf.h | ||
param.h | ||
poll.h | ||
posix_types.h | ||
ptrace.h | ||
resource.h | ||
sembuf.h | ||
setup.h | ||
shmbuf.h | ||
sigcontext.h | ||
siginfo.h | ||
signal.h | ||
socket.h | ||
sockios.h | ||
stat.h | ||
statfs.h | ||
swab.h | ||
termbits.h | ||
termios.h | ||
types.h | ||
unistd.h |