[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