[ksh93-integration-discuss] Re: [ast-users] Next ksh93 alpha release - when?

Roland Mainz roland.mainz at nrubsig.org
Fri Sep 15 15:55:24 PDT 2006


Glenn Fowler wrote:
> 
> alpha source posted at
> 
>   http://www.research.att.com/sw/download/alpha/INIT.2006-09-12.tgz
>   http://www.research.att.com/sw/download/alpha/ast-ksh.2006-09-12.tgz
> 
> run the valgrind tests again
> the stty SIGTTOU and utf-8 vs. emacs editing problems not addressed yet

Ok...
... thank you very much... :-)

I've found a couple of minor issues:
- Building on SuSE Linux 10.0 with "-D_map_libc=1" in CCFLAGS fails with
an error

- I adjusted by build script to include "-lsocket -lnsl -lrt" - the
usage of the "socket" and "nsl" libraries is a cheat to make the build
system think the network functions are available. "rt" is the Solaris
realtime library which contains functions such as |nanosleep()| and now
iffe picks this up by default, too.

- On 32bit and 64bit Solaris/SPARC the "exit.sh" test now fails with:
-- snip --
        exit.sh[59]: exit in .profile is ignored
-- snip --
Solaris i386 (32bit) and AMD64 (64bit) seem to be unaffected by this
issue.

- I found a Solaris linker option which is able to detect duplicate
symbols between libraries.
For libshell the related outout looks like this:
-- snip --
MULTIPLY DEFINED SYMBOLS
symbol                            definition used     also defined in

htonl                              
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libsocket.so
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
htons                              
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libsocket.so
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
sleep                               pics/bltins/sleep.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
_ast_procrun                        pics/sh/xec.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libast.so
_ast_setenviron                     pics/sh/name.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libast.so
matherr                             pics/sh/streval.o
                                                        /lib/libm.so
getenv                              pics/sh/name.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
putenv                              pics/sh/name.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
hashfree                            pics/sh/name.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libast.so
hashlook                            pics/sh/name.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libast.so
-- snip --

AFAIK "sleep", "getenv" and "putenv" need to be added to "map.c"

For libast the output looks like this:
-- snip --
MULTIPLY DEFINED SYMBOLS
symbol                            definition used     also defined in

fork                               
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/librt.so
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
close                              
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/librt.so
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
crypt                               pics/common/uwin/crypt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
getws                               pics/common/stdio/fgetws.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
getopt_long_only                    pics/common/comp/getoptl.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
unsetenv                            pics/common/comp/putenv.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
_filbuf                             pics/common/stdio/_filbuf.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
__loc1                              pics/common/comp/regcmp.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
optarg                              pics/common/comp/getopt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
opterr                              pics/common/comp/getopt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
optind                              pics/common/comp/getopt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
optopt                              pics/common/comp/getopt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
remove                              pics/common/comp/remove.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
setenv                              pics/common/comp/putenv.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
setkey                              pics/common/uwin/crypt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
signal                              pics/common/misc/signal.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
getopt_long                         pics/common/comp/getoptl.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
strlcat                             pics/common/string/strlcat.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
getsubopt                           pics/common/comp/getsubopt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
encrypt                             pics/common/uwin/crypt.o
                                                       
/home/test001/ksh93/on_build1/test1_x86/proto/root_i386/lib/libc.so
-- snip --

AFAIK the following symbols need to be added to "map.cQ", too:
-- snip --
crypt
getws
getopt_long_only
unsetenv
_filbuf
__loc1
optarg
opterr
optind
optopt
remove
setenv
setkey 
signal
getopt_long
getsubopt
encrypt
-- snip --

Notes:
- |strlcat| is already listed in "map.c" but somehow still appears as
unmapped symbol
- |optind|, |opterr|, |optopt| and |__loc1| are no functions and seem to
be tricky items to map... ;-(

I can try to make a patch for "map.c" next week (today my remote access
to the AMD64 box broken and I am away for the rest of the
weekend+monday) ...

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)



More information about the ksh93-integration-discuss mailing list