On 2015/3/20 0:59, Chris Metcalf wrote:
>On 03/19/2015 12:49 PM, Pinski, Andrew wrote:
>>>On Mar 19, 2015, at 9:40 AM, Chris Metcalf<cmetcalf@ezchip.com> wrote:
>>> >
>>>> >>On 03/18/2015 06:30 AM, Zhang Jian(Bamvor) wrote:
>>>> >>From: Yang Yingliang<yangyingliang@huawei.com>
>>>> >>
>>>> >>Use __fsword_t to make size of struct statfs equal in userspace and kernel.
>>>> >>
>>>> >>Signed-off-by: Yang Yingliang<yangyingliang@huawei.com>
>>>> >>---
>>>> >> sysdeps/unix/sysv/linux/generic/bits/statfs.h | 24 ++++++++++++------------
>>>> >> 1 file changed, 12 insertions(+), 12 deletions(-)
>>> >
>>> >I don't object to this patch as a cleanup (to match the types used in the base Linux statfs.h), but can you tell me why this makes a difference to you? On what asm-generic platform does __SWORD_TYPE != __fsword_t ? My earlier analysis a few minutes ago suggested that was true only for alpha and x32, neither of which use the linux/generic code in glibc.
>>Aarch64:ILP32 will use linux/generic and will have SWORD_TYPE != __fsword_t just like x32. Basically this patch set goes on top of my already submitted patch set.
>
>OK, thanks. But presumably this won't work right, because if you don't
>set __USE_FILE_OFFSET64, and __WORDSIZE == 32, you'll end up injecting
>padding fields that don't belong, via the __field64 macro?
In current patch from Andrew, ilp32 share the same type with lp64 for
off_t, ino_t, blkcnt_t. And it share the same "#elif" with "__WORDSIZE == 64"