Hi!

----

While working on the "shell.spec" file (which described the
public/private interfaces of a shared library in Solaris) for the
Solaris OS/Net integration (see
http://polaris.blastwave.org/changeset/221) I found the following
problem with "ast/shell.h":

To generate the "shell.spec" file I used the following script:
-- snip --
#!/usr/dt/bin/dtksh
cat common/include/shell.h | 
  egrep "^extern .*\(.*\).*;" |
  sed "s/extern //" |
  while read i ; do 
    f="$(echo "$i" | tr "[:blank:](*" "\n\n\n\n" | grep "^sh_")"
    printf "function\t$f\n" ; 
    printf "include\t\t<ast/shell.h>\n" ;
    printf "declaration\t$i\n" ; 
    printf "version\t\tSUNWprivate_1.1\n" ; 
    printf "end\n\n" ; 
  done
-- snip --

Then I recompiled the source which resulted in the following error:
-- snip --
/home/test001/ksh93/on_build002_m1/test1/usr/src/lib/libshell/spec/amd64
/usr/lib/abi/spec2map -p -a amd64 -l libshell
-I/home/test001/ksh93/on_build002_m1/test1/usr/src/lib  -v ../versions \
-o mapfile ../shell.spec \

/home/test001/ksh93/on_build002_m1/test1/usr/src/lib/libshell/i386
/home/test001/ksh93/on_build002_m1/test1/usr/src/tools/proto/opt/onbld/bin/i386/cw
-_cc -o libshell.so.1 -G -hlibshell.so.1 -ztext -zdefs -zcombreloc 
-M../spec/i386/mapfile
-M/home/test001/ksh93/on_build002_m1/test1/usr/src/cmd/sgs/mapfiles/i386/map.pagealign
-M/home/test001/ksh93/on_build002_m1/test1/usr/src/cmd/mapfile_noexdata
pics/bltins/alarm.o  pics/bltins/cd_pwd.o  pics/bltins/cflow.o 
pics/sh/deparse.o  pics/bltins/getopts.o  pics/bltins/hist.o 
pics/bltins/misc.o  pics/bltins/print.o  pics/bltins/read.o 
pics/bltins/sleep.o  pics/bltins/trap.o  pics/bltins/test.o 
pics/bltins/typeset.o  pics/bltins/ulimit.o  pics/bltins/umask.o 
pics/bltins/whence.o  pics/sh/main.o  pics/sh/fcin.o  pics/sh/nvdisc.o 
pics/sh/arith.o  pics/sh/args.o  pics/sh/array.o 
pics/edit/completion.o  pics/sh/defs.o  pics/edit/edit.o 
pics/sh/expand.o  pics/sh/fault.o  pics/edit/history.o  pics/sh/init.o 
pics/sh/io.o  pics/sh/jobs.o  pics/sh/lex.o  pics/sh/macro.o 
pics/sh/name.o  pics/sh/nvtree.o  pics/sh/parse.o  pics/sh/path.o 
pics/sh/string.o  pics/sh/streval.o  pics/sh/subshell.o 
pics/sh/tdump.o  pics/sh/timers.o  pics/sh/trestore.o 
pics/sh/waitevent.o  pics/sh/xec.o  pics/data/msg.o 
pics/data/lexstates.o  pics/data/limits.o  pics/data/strdata.o 
pics/data/testops.o  pics/data/keywords.o  pics/data/options.o 
pics/data/aliases.o  pics/data/builtins.o  pics/data/variables.o 
pics/data/signals.o  pics/edit/emacs.o  pics/edit/vi.o 
pics/edit/hexpand.o 
-L/home/test001/ksh93/on_build002_m1/test1/proto/root_i386/lib
-L/home/test001/ksh93/on_build002_m1/test1/proto/root_i386/usr/lib  
-lcmd -ldll -last -lsecdb -lm -lc
+ /opt/SUNWspro/bin/cc -o libshell.so.1 -G -hlibshell.so.1 -ztext -zdefs
-zcombreloc -M../spec/i386/mapfile
-M/home/test001/ksh93/on_build002_m1/test1/usr/src/cmd/sgs/mapfiles/i386/map.pagealign
-M/home/test001/ksh93/on_build002_m1/test1/usr/src/cmd/mapfile_noexdata
pics/bltins/alarm.o pics/bltins/cd_pwd.o pics/bltins/cflow.o
pics/sh/deparse.o pics/bltins/getopts.o pics/bltins/hist.o
pics/bltins/misc.o pics/bltins/print.o pics/bltins/read.o
pics/bltins/sleep.o pics/bltins/trap.o pics/bltins/test.o
pics/bltins/typeset.o pics/bltins/ulimit.o pics/bltins/umask.o
pics/bltins/whence.o pics/sh/main.o pics/sh/fcin.o pics/sh/nvdisc.o
pics/sh/arith.o pics/sh/args.o pics/sh/array.o pics/edit/completion.o
pics/sh/defs.o pics/edit/edit.o pics/sh/expand.o pics/sh/fault.o
pics/edit/history.o pics/sh/init.o pics/sh/io.o pics/sh/jobs.o
pics/sh/lex.o pics/sh/macro.o pics/sh/name.o pics/sh/nvtree.o
pics/sh/parse.o pics/sh/path.o pics/sh/string.o pics/sh/streval.o
pics/sh/subshell.o pics/sh/tdump.o pics/sh/timers.o pics/sh/trestore.o
pics/sh/waitevent.o pics/sh/xec.o pics/data/msg.o pics/data/lexstates.o
pics/data/limits.o pics/data/strdata.o pics/data/testops.o
pics/data/keywords.o pics/data/options.o pics/data/aliases.o
pics/data/builtins.o pics/data/variables.o pics/data/signals.o
pics/edit/emacs.o pics/edit/vi.o pics/edit/hexpand.o
-L/home/test001/ksh93/on_build002_m1/test1/proto/root_i386/lib
-L/home/test001/ksh93/on_build002_m1/test1/proto/root_i386/usr/lib -lcmd
-ldll -last -lsecdb -lm -lc 
Undefined                       first referenced
 symbol                             in file
sh_waitnotify                       ../spec/i386/mapfile
sh_openmax                          ../spec/i386/mapfile
ld: fatal: Symbol referencing errors. No output written to libshell.so.1
*** Error code 1
make: Fatal error: Command failed for target `libshell.so.1'
Current working directory
/home/test001/ksh93/on_build002_m1/test1/usr/src/lib/libshell/i386
*** Error code 1
The following command caused the error:
cd i386; pwd; make install
make: Fatal error: Command failed for target `i386'
Current working directory
/home/test001/ksh93/on_build002_m1/test1/usr/src/lib/libshell
% ggrep -r sh_openmax common/ | fgrep -v /.svn
common/include/shell.h:extern int               sh_openmax(void);
-- snip --

The |sh_waitnotify| vs. |_sh_waitnotify| issue is documented in
"shell.h" (BTW: Is this still neccesary ?) - but |sh_openmax()| seems to
be gone. I guess it's just a header cleanup issue, right ?

----

Bye,
Roland

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

Reply via email to