From: Guillem Jover Date: Fri, 25 Feb 2011 12:52:59 +0000 (+0100) Subject: Initialize __progname to program_invocation_short_name X-Git-Tag: 0.3.0~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1497d34760d53777648f91b357762ba8bbb2d5ce;p=thirdparty%2Flibbsd.git Initialize __progname to program_invocation_short_name As we do not have cooperation from the crt0 code to set __progname, we have to set it ourselves from getprogname() in case it's NULL. On GNU systems we can use program_invocation_short_name which is actually set on crt0. --- diff --git a/src/progname.c b/src/progname.c index ef56144..1079429 100644 --- a/src/progname.c +++ b/src/progname.c @@ -1,6 +1,6 @@ /* * Copyright © 2006 Robert Millan - * Copyright © 2010 Guillem Jover + * Copyright © 2010-2011 Guillem Jover * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,6 +29,7 @@ Rejected in glibc (http://sourceware.org/ml/libc-alpha/2006-03/msg00125.html) */ +#include #include #include @@ -38,6 +39,11 @@ static const char *__progname = NULL; const char * getprogname(void) { +#ifdef __GLIBC__ + if (__progname == NULL) + __progname = program_invocation_short_name; +#endif + return __progname; }