Fix readdir regressions on sparc 32-bit.

* sysdeps/posix/dirstream.h (struct __dirstream): Fix alignment of
	directory block.
This commit is contained in:
David S. Miller 2013-10-10 22:32:36 -07:00
parent 33b853c3b1
commit 75b4202ab0
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2013-10-10 David S. Miller <davem@davemloft.net>
* sysdeps/posix/dirstream.h (struct __dirstream): Fix alignment of
directory block.
2013-10-10 Joseph Myers <joseph@codesourcery.com>
* soft-fp/extendxftf2.c: Use copyright year range. Use URL

View File

@ -41,8 +41,13 @@ struct __dirstream
int errcode; /* Delayed error code. */
/* Directory block. */
char data[0] __attribute__ ((aligned (__alignof__ (void*))));
/* Directory block. We must make sure that this block starts
at an address that is aligned adequately enough to store
dirent entries. Using the alignment of "void *" is not
sufficient because dirents on 32-bit platforms can require
64-bit alignment. We use "long double" here to be consistent
with what malloc uses. */
char data[0] __attribute__ ((aligned (__alignof__ (long double))));
};
#define _DIR_dirfd(dirp) ((dirp)->fd)