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;)