Hello,
when trying the new version I encountered a problem with linking on my
desktop (Fedora 8, i386, gcc 4.1.2):
+ cc -O -L. -L/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib -o ksh
pmain.o libshell.a
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libdll.a -ldl
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libast.a
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libcmd.a
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libast.a
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libast.a -lm
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libast.a
/home/tsmetana/upstream/ksh-2008-06-24/arch/linux.i386/lib/libast.a(getenv.o):
In function `_ast_getenv':
getenv.c:(.text+0x0): multiple definition of `_ast_getenv'
libshell.a(name.o):name.c:(.text+0xf7e): first defined here
collect2: ld returned 1 exit status
mamake [cmd/ksh93]: *** exit code 1 making ksh
I think the problem is the misplaced #undef getenv in getenv.c, so here's my
proposed fix:
diff -up ksh-2008-06-24/src/lib/libast/misc/getenv.c.linkerr
ksh-2008-06-24/src/lib/libast/misc/getenv.c
--- ksh-2008-06-24/src/lib/libast/misc/getenv.c.linkerr 2008-06-26
12:06:33.000000000 +0200
+++ ksh-2008-06-24/src/lib/libast/misc/getenv.c 2008-06-26 12:06:44.000000000
+0200
@@ -35,9 +35,9 @@ Intercepts_t intercepts = { 0 };
* get name from the environment
*/
+#undef getenv
char*
getenv(const char* name)
{
-#undef getenv
return intercepts.intercept_getenv ?
(*intercepts.intercept_getenv)(name) : getenv(name);
}
--
Tomáš Smetana
Base OS Software Engineer, Red Hat
RH IRC: #brno #devel #base-os; Freenode IRC: #fedora-devel
_______________________________________________
ast-developers mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-developers