]> Zhao Yanbai Git Server - minix.git/commitdiff
libc and csu updates for ELF
authorArun Thomas <arun@minix3.org>
Fri, 10 Dec 2010 23:04:04 +0000 (23:04 +0000)
committerArun Thomas <arun@minix3.org>
Fri, 10 Dec 2010 23:04:04 +0000 (23:04 +0000)
lib/csu/i386-elf/crt1_c.c
lib/libc/other/getprogname.c

index 25dc5acb12d8cb272a6179bbe00daff76787cccf..f60e8b64f1d5b7ee265807c3f2249499e25c9fec 100644 (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) {
index 1026425479dae672e3f76c5630204496352c1e56..78fc96aae2a07423deb2297d378bad002e8f2724 100644 (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