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

Reply via email to