Initialize __progname correctly.
setprogname() does a basename, but we were initializing __progname
directly. Stop doing that, and add some tests.
Test: treehugger
Change-Id: I06f306ade4161b2f0c7e314a3b1b30c9420117b7
diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index d64a6bd..b3f4f3d 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -94,7 +94,7 @@
// Initialize various globals.
environ = __libc_shared_globals()->init_environ;
errno = 0;
- __progname = __libc_shared_globals()->init_progname ?: "<unknown>";
+ setprogname(__libc_shared_globals()->init_progname ?: "<unknown>");
#if !defined(__LP64__)
__check_max_thread_id();