diff options
author | Chung-Lin Tang <cltang@codesourcery.com> | 2013-11-20 16:12:18 -0500 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-11-20 16:12:18 -0500 |
commit | 7cf8ac4c3179540c63865f7133617684169928c9 (patch) | |
tree | 58164760e4e1d6ecbbbaabcb2e90e581a226f28e | |
parent | 4b98b2dcdd89cbef1d2681a8cf0f16a7b3b649af (diff) | |
download | glibc-7cf8ac4c3179540c63865f7133617684169928c9.tar glibc-7cf8ac4c3179540c63865f7133617684169928c9.tar.gz glibc-7cf8ac4c3179540c63865f7133617684169928c9.tar.bz2 glibc-7cf8ac4c3179540c63865f7133617684169928c9.zip |
linux-generic: fix alignment of struct stat/statfs for nios2
The hard alignment of 8 was appropriate for most platforms for
which 8-byte values are 8-byte aligned, but this is not true
for the nios2 platform, so only align to the alignment of the
8-byte type on the platform.
Remove the explicit alignment of struct statfs as it's redundant.
-rw-r--r-- | ports/ChangeLog.linux-generic | 9 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/generic/bits/stat.h | 4 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h | 8 |
3 files changed, 15 insertions, 6 deletions
diff --git a/ports/ChangeLog.linux-generic b/ports/ChangeLog.linux-generic index 2e04b65b25..c8acddc88b 100644 --- a/ports/ChangeLog.linux-generic +++ b/ports/ChangeLog.linux-generic @@ -1,3 +1,12 @@ +2013-11-13 Chung-Lin Tang <cltang@codesourcery.com> + + * sysdeps/unix/sysv/linux/generic/bits/stat.h (__field64): Use + __alignof__(type64) in alignment attribute instead of 8. + * sysdeps/unix/sysv/linux/generic/bits/statfs.h (__field64): Use + __alignof__(type64) in alignment attribute instead of 8. + (struct statfs): Remove alignment attribute. + (struct statfs64): Likewise. + 2013-06-05 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list: diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/stat.h b/ports/sysdeps/unix/sysv/linux/generic/bits/stat.h index 6e74cec283..feb5f2b1cf 100644 --- a/ports/sysdeps/unix/sysv/linux/generic/bits/stat.h +++ b/ports/sysdeps/unix/sysv/linux/generic/bits/stat.h @@ -46,10 +46,10 @@ # define __field64(type, type64, name) type name #elif __BYTE_ORDER == __LITTLE_ENDIAN # define __field64(type, type64, name) \ - type name __attribute__((__aligned__(8))); int __##name##_pad + type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad #else # define __field64(type, type64, name) \ - int __##name##_pad __attribute__((__aligned__(8))); type name + int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name #endif struct stat diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h b/ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h index 7063c7a242..8aecb042b0 100644 --- a/ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h +++ b/ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h @@ -38,10 +38,10 @@ # define __field64(type, type64, name) type name #elif __BYTE_ORDER == __LITTLE_ENDIAN # define __field64(type, type64, name) \ - type name __attribute__((__aligned__(8))); int __##name##_pad + type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad #else # define __field64(type, type64, name) \ - int __##name##_pad __attribute__((__aligned__(8))); type name + int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name #endif struct statfs @@ -58,7 +58,7 @@ struct statfs __SWORD_TYPE f_frsize; __SWORD_TYPE f_flags; __SWORD_TYPE f_spare[4]; - } __attribute__((__aligned__(8))); + }; #undef __field64 @@ -77,7 +77,7 @@ struct statfs64 __SWORD_TYPE f_frsize; __SWORD_TYPE f_flags; __SWORD_TYPE f_spare[4]; - } __attribute__((__aligned__(8))); + }; #endif /* Tell code we have these members. */ |