Always call setlocale if I18N is enabled, so nested toy_exec() can switch it back off if necessary.
Tweak portability.h for uClibc version in buildroot defconfig.

I've been locally patching uClibc to not violate posix-2008 (you don't need
to define a GNU macro to get a posix function), but uClibc is obsolete and
moribund (development peaked in 2006, last bugfix release was over 2 years
ago), and the largest remaining user (buildroot) doesn't bother to apply such
a patch. Since even buildroot is slowly migrating to musl-libc, just do the
portability tweak for what the last release of the old thing actually did.
Start on ping.c.
Respond to two static analysis issues in dirtree_path() reported by Ashwini Sharma.

dirtree->name is an array, not a pointer, so can't be zero. Remove the test.

We dereference plen without checking it for null but calling dirtree_path(0, 0)
is pilot error: only the _first_ call can have plen = 0. Add a comment.
Fix du test: du symlink -> "0\tsymlink"
When killall was invoked without arguments, there appeared segmentation fault