libc and csu updates for ELF
This commit is contained in:
parent
d824b54d82
commit
4fe0dfa9aa
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue