From 1497d34760d53777648f91b357762ba8bbb2d5ce Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Fri, 25 Feb 2011 13:52:59 +0100 Subject: 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. --- src/progname.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/progname.c') 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; } -- cgit v1.2.3