diff options
-rw-r--r-- | extra/Configs/Config.in | 1 | ||||
-rw-r--r-- | libc/misc/internals/__uClibc_main.c | 27 |
2 files changed, 14 insertions, 14 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 8eab394ee..0c277f928 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -498,6 +498,7 @@ config UCLIBC_HAS_PROGRAM_INVOCATION_NAME config UCLIBC_HAS___PROGNAME bool "Support for __progname" default y + depends on UCLIBC_HAS_PROGRAM_INVOCATION_NAME help Some packages (like openssh) like to peek into internal libc symbols to make their output a bit more user friendly. diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c index 91c8a3984..c9c16e192 100644 --- a/libc/misc/internals/__uClibc_main.c +++ b/libc/misc/internals/__uClibc_main.c @@ -104,14 +104,14 @@ extern void (*__fini_array_end []) (void) attribute_hidden; # endif #endif -attribute_hidden const char *__uclibc_progname = NULL; -#ifdef __UCLIBC_HAS___PROGNAME__ -strong_alias (__uclibc_progname, __progname) -#endif +attribute_hidden const char *__uclibc_progname = ""; #ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__ -attribute_hidden const char *__progname_full = NULL; -strong_alias (__uclibc_progname, program_invocation_short_name) -strong_alias (__progname_full, program_invocation_name) +const char *program_invocation_short_name = ""; +const char *program_invocation_name = ""; +#endif +#ifdef __UCLIBC_HAS___PROGNAME__ +weak_alias (program_invocation_short_name, __progname) +weak_alias (program_invocation_name, __progname_full) #endif /* @@ -337,15 +337,14 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc, } #endif + __uclibc_progname = *argv; #ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__ - __progname_full = *argv; - __progname = strrchr(*argv, '/'); - if (__progname != NULL) - ++__progname; + program_invocation_name = *argv; + program_invocation_short_name = strrchr(*argv, '/'); + if (program_invocation_short_name != NULL) + ++program_invocation_short_name; else - __progname = __progname_full; -#else - __uclibc_progname = *argv; + program_invocation_short_name = program_invocation_name; #endif #ifdef __UCLIBC_CTOR_DTOR__ |