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

Rob Landley rob at landley.net
Mon Feb 22 17:52:35 PST 2021


On 2/22/21 4:27 PM, enh via Toybox wrote:
> 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.

Oh that's ugly.

> 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.

I moved it to static inline wrappers in portability.h, let me know if I typoed
something in the apple part I can't test.

Rob


More information about the Toybox mailing list