[Toybox] [PATCH] stat: fix macOS build and behavior.

enh enh at google.com
Mon Feb 22 14:27:06 PST 2021


My patch to fix df behavior on macOS broke the stat build on macOS.

First off, we had %s and %S the wrong way round compared to coreutils,
though since Linux always seems to use the same value for both,
no-one will ever have noticed.

Annoyingly, Linux and macOS disagree about what statfs::f_bsize
means, and whether statfs::f_iosize and statfs::f_frsize exist (each
has one or the other, depending on what f_bsize *doesn't* mean to
them). This mess is presumably why statvfs exists.

Unfortunately, statvfs on macOS at least doesn't contain the file
system type information.  So we either need to do *both* statfs()
and statvfs() for macOS, or we need to take into account the different
fields.

This patch adds an #ifdef outside of portability.h because I wasn't
sure we actually wanted to add statfs_best_transfer_size() and
statfs_real_block_size() functions to lib for this. But that's an
easy cleanup if desired.
---
 toys/other/stat.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20210222/6bc4855d/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-stat-fix-macOS-build-and-behavior.patch
Type: application/octet-stream
Size: 2395 bytes
Desc: not available
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20210222/6bc4855d/attachment.obj>


More information about the Toybox mailing list