__init_libc: add fallbacks for __progname setup
authorAlexander Monakov <amonakov@ispras.ru>
Fri, 28 Jul 2017 14:46:49 +0000 (17:46 +0300)
committerRich Felker <dalias@aerifal.cx>
Tue, 29 Aug 2017 23:50:48 +0000 (19:50 -0400)
commitc7f56b4d2f58714b7286ef12fa5410213847f2fe
treeaa6eda020bb2f17fc700ff30071d00efb3d88621
parentcc086693808c007679f02d5e0ee592446bf1b386
__init_libc: add fallbacks for __progname setup

It is possible for argv[0] to be a null pointer, but the __progname
variable is used to implement functions in src/legacy/err.c that do not
expect it to be null. It is also available to the user via the
program_invocation_name alias as a GNU extension, and the implementation
in Glibc initializes it to a pointer to empty string rather than NULL.

Since argv[0] is usually non-null and it's preferable to keep those
variables in BSS, implement the fallbacks in __init_libc, which also
allows to have an intermediate fallback to AT_EXECFN.
src/env/__libc_start_main.c