BigDisk project: du(1) 64bit clean.
Doug White
dwhite at gumbysoft.com
Tue Jan 4 18:58:33 PST 2005
On Tue, 4 Jan 2005, Pawel Jakub Dawidek wrote:
> I want you to look at two patches which makes du(1) 64bit clean.
> This work is part of the BigDisk project:
>
> http://www.freebsd.org/projects/bigdisk/
>
> The main problem here is that du(1) uses fts(3) and fts_number field from
> one of its structures to store size.
> This field is defined as 'long' so it doesn't give us what we want
> (on 32bit archs).
No offense intended, but can we avoid introducing LP64 bugs, please?
Particularly when the goal is "ABI compatibility."*
dwlab3,ttyp1,~,24>uname -m
i386
dwlab3,ttyp1,~,25>./test
sizeof(long) [4] + sizeof(void *) [4] == 8 == sizeof(int64_t) [8]
ok .. but:
dwlab4,ttyp1,~,20>uname -m
amd64
dwlab4,ttyp1,~,21>./test
sizeof(long) [8] + sizeof(void *) [8] == 16 != sizeof(int64_t) [8]
oops! The struct just grew by 8 bytes!
(*) On the same platform, obviously.
--
Doug White | FreeBSD: The Power to Serve
dwhite at gumbysoft.com | www.FreeBSD.org
More information about the freebsd-arch
mailing list