[PATCH] ash: support platforms that don't have '%m' printf specifier

Denys Vlasenko vda.linux at googlemail.com
Fri Jul 28 13:40:43 UTC 2017


On Thu, Jul 27, 2017 at 2:53 PM, Ron Yorston <rmy at pobox.com> wrote:
> The '%m' conversion specifier prints an error message based on the
> current value of 'errno'.  It is available in the GNU C library,
> Cygwin (since 2012), uClibc and musl.
>
> It is not available in various BSDs, BSD-derived systems (MacOS,
> Android) or Microsoft Windows.
>
> Use a symbol defined in platform.h to control how error messages
> can be formatted to display the 'errno' message.  On platforms that
> support it use '%m'; on other platforms use '%s' and strerror().
>
> On platforms that have '%m' there is essentially no change in the
> size of the binary.  Otherwise:
>
> function                                             old     new   delta
> redirect                                            1287    1310     +23
> xtcsetpgrp                                            27      44     +17
> dup2_or_raise                                         34      51     +17
> setinputfile                                         267     275      +8
> .rodata                                           163379  163371      -8
> ------------------------------------------------------------------------------
> (add/remove: 0/0 grow/shrink: 4/1 up/down: 65/-8)              Total: 57 bytes
>
> Signed-off-by: Ron Yorston <rmy at pobox.com>


Applied, thanks.


More information about the busybox mailing list