[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] PetaLinux/uClibc misdefinition of ST_NODIRATIME



Hi,

In the PetaLinux 0.30 distribution, it appears that all of the instances 
of statvfs.h contain the following bug:

enum
{
  ST_RDONLY = 1,                /* Mount read-only.  */

...

  ST_NOATIME = 1024,            /* Do not update access times.  */
# define ST_NOATIME     ST_NOATIME
  ST_NODIRATIME          /* Do not update directory access times.  */

...
};

...which defines ST_NODIRATIME as 1025 instead of the 2048 it is supposed 
to be.

The attached patch will fix the header files, but the wrong definition is 
also compiled into all the statvfs functions in all the libc.a files 
under tools/linux-i386/microblaze-uclinux-tools/microblaze-uclinux/lib. 
Without binary edits to fix the object code, the patch doesn't do any 
good because filesystems mounted with NODIRATIME set will appear to have 
NOATIME and RDONLY instead.

It looks like this bug was fixed in uClibc v0.9.29. Petalinux-0.30 
appears to use 0.9.27. It would be nice if a more recent uClibc could be 
included in the next PL release. The uClibc folks seem to be on target to 
release 0.9.30 by the end of the month.

Regards,
Steve
------------------------------------------------------------------------
 Steven J. Magnani               "I claim this network for MARS!
 www.digidescorp.com              Earthling, return my space modulator!"
 
 #include <standard.disclaimer>

Attachment: statvfs.patch
Description: Binary data