libc and csu updates for ELF

This commit is contained in:
Arun Thomas 2010-12-10 23:04:04 +00:00
parent d824b54d82
commit 4fe0dfa9aa
2 changed files with 27 additions and 0 deletions

View file

@ -54,6 +54,8 @@ extern int etext;
char **environ;
const char *__progname = "";
char ***_penviron;
__dead void _start1(fptr, int, char *[]);
/* The entry function, C part. */
@ -63,6 +65,8 @@ _start1(fptr cleanup, int argc, char *argv[])
char **env;
const char *s;
_penviron = &environ;
env = argv + argc + 1;
environ = env;
if (argc > 0 && argv[0] != NULL) {

View file

@ -44,6 +44,28 @@ __RCSID("$NetBSD: getprogname.c,v 1.3 2003/07/26 19:24:42 salo Exp $");
#include <stdlib.h>
#include <string.h>
#if defined(__ELF__)
extern const char *__progname;
const char *
getprogname(void)
{
return (__progname);
}
void
setprogname(const char *progname)
{
const char *p;
p = strrchr(progname, '/');
if (p != NULL)
__progname = p + 1;
else
__progname = progname;
}
#else
static const char *theprogname = NULL;
extern const char **__prognamep; /* Copy of argv[]. */
extern int __argc; /* Copy of argc. */
@ -69,3 +91,4 @@ setprogname(const char *newprogname)
{
theprogname = newprogname;
}
#endif