[uClibc] fstat and fstat64

John Bowler jbowler at acm.org
Fri Jun 3 16:52:16 UTC 2005


From: Mike Frysinger
>you must be looking at the wrong set of headers ... stat64 does not have
any
>sort of armeb around st_dev in linux-2.4.27 or linux-2.6.11 ... stat does,
>but the ifdef is in linux-2.6, not linux-2.4

My apologies, you are correct - I quoted headers from the installed
directory, which were installed by uclibc (in my 2.6 build) therefore
contained *my* patch.

Ok, so there *is* a structure layout change, but it *is* in stat64, not in
stat - because stat keeps the low 16 bits of st_dev in the first two bytes
of the structure (regardless of architecture), whereas stat64 moves the low
16 bits from the first two bytes to bytes[7:8].

Your patch doesn't fix this (it doesn't change st_dev in stat64.)  The
st_rdev change looks right and would work for st_dev too.  The st_blocks
case looks correct too.  I'll test it with the addition of the st_dev fix
(on big-endian only.)

John Bowler <jbowler at acm.org>




More information about the uClibc mailing list