Hi!

----

I created a couple of webrevs in various flavours based on today's
ksh93-integration sources. This isn't the "reliminary review request"
(yet; the official rquest should come on ~~ monday or tuesday), just an
attempt to provide an updated webrev.


** Webrevs:
* Webrev over all files:
http://www.nrubsig.org/people/gisburn/work/solaris/ksh93_integration/ksh93_integration_prototype004_webrev_20070127/allfiles/webrev/

* Webrev only over files which match the substring "makefile":
http://www.nrubsig.org/people/gisburn/work/solaris/ksh93_integration/ksh93_integration_prototype004_webrev_20070127/makefile_files/webrev/

* Webrev over all non-AST files (this includes the files in
usr/src/cmd/ast/msgcc/ my accident):
http://www.nrubsig.org/people/gisburn/work/solaris/ksh93_integration/ksh93_integration_prototype004_webrev_20070127/non_ast_files/webrev/

* Webrev over all AST sources (e.g. all files not listed in the previous
"webrev"):
http://www.nrubsig.org/people/gisburn/work/solaris/ksh93_integration/ksh93_integration_prototype004_webrev_20070127/non_files/webrev/

* All-in-one unified diff:
http://www.nrubsig.org/people/gisburn/work/solaris/ksh93_integration/ksh93_integration_prototype004_webrev_20070127/unified_diff.txt



** Notes:
- All AST sources are in usr/src/lib/lib(ast|pp|dll|cmd|shell)/common/
and usr/src/cmd/ast/. All files are 100% identical with the upstream
(AT&T) versions except those listed in 
"usr/src/lib/libshell/misc/ksh93_solaris_builtin_patch.diff".
####----> All changes to the upstream sources ====> MUST BE <==== stored
in *.diff files (and a README per *.diff) in usr/src/lib/libshell/misc/
to make sure they can be backed-out and re-applied when the AST sources
in the OS/Net tree get updated (e.g. the usual update procedure works
like this: diff old and new upstream sources, backout the diffs from
usr/src/lib/libshell/misc/*.diff from the OS/Net tree, apply diffs from
upstream, reapply diffs from usr/src/lib/libshell/misc/*.diff, refresh
files in usr/src/lib/lib(ast|pp|dll|cmd|shell)/(${MACH32}|${MACH64})/
from a native AST build).
Anyone who is patching files in
usr/src/lib/lib(ast|pp|dll|cmd|shell)/common/ and usr/src/cmd/ast/
without storing diffs+READMEs in usr/src/lib/libshell/misc/*.diff will
be <insert-some-horrible-torture-here (gatekeepers should decide how the
punishment should look like... I'd suggest the usage of deep pits filled
with komodo dragons, hot iron, boilling acid etc. (in random order))>.

- The files in
usr/src/lib/lib(ast|pp|dll|cmd|shell)/(${MACH32}|${MACH64})/ except the
"Makefile" files are 100% copies from a native AST package build and
contain platform-specific configuration information. The source layout
is little bit unusal for OS/Net and follows the upstream layout (it
can't be done differently without major surgery in the upstream sources
and/or creating a maintaince hazard for future maintainers, for example
files with the same name in different subdirs have different
functionlity and messing this up will result in painfull debugging
sessions with the final conclusion: "Wrong file in wrong place").

- The includes delivered to /usr/include/ast/ are a merge of 32bit and
64bit includes from
usr/src/lib/lib(ast|pp|dll|cmd|shell)/(${MACH32}|${MACH64})/include/ast/
created using "/usr/bin/diff -D". This allows the usage of one unified
set of includes for 32bit and 64bit binaries instead of shipping two
different copies.

- usr/src/lib/libast/Makefile.com has the "unusual" (for OS/Net) habit
of putting *.o files into subdirs, following the source directory layout
in "usr/src/libast/common/". This is just to avoid that the objs/pics
subdirs are cramped with *.o files in one single directory (which would
drive the maintainers into madness (slowly)).

- usr/src/lib/lib(ast|pp|dll|cmd|shell)/Makefile.com list "-erroff="
flags per object file, not globally, resulting in lists which look
"huge" because we list each appeance of a suppressed warning explicitly
including a comment (and "yes", we're working on reducing the list, step
by step).

- "mapfile-vers" files are usually placed in
usr/src/lib/lib(ast|pp|dll|cmd|shell)/mapfile-vers instead of the
common/ subdir since the common/ should be explictly for the upstream
sources (with minor exceptions) to make maintaince easier.

- usr/src/cmd/ksh/Makefile.ksh93switch contains a master switch to
instruct the build whether ksh93 should be build as /usr/bin/ksh or
/usr/bin/ksh93 (default). This also affects
"usr/src/lib/libc/port/regex/wordexp.c" since the current version
depends on a hack in the Sun/Solaris version of /usr/bin/ksh which does
not exist in any other version of the korn shell (including ksh93).
Toggling the switch in Makefile.ksh93switch will build an alternative
version of |libc::wordexp()| which is compatible to ksh93 (the switch
and the alternative version of |libc::wordexp()| has been added based on
community requests to have such a flag - without such a flag ksh93
cannot be used as /usr/bin/ksh since |libc::wordexp()| will not work
without the Sun/Solaris hack in the old /usr/bin/ksh - and that causes
SMF to fail (which in turn renderes all the inetd services defunct
and/or crashes the SMF service completely, rendering the system more or
less unuseable)).

- All new Makefiles use SHELL=/usr/bin/ksh (just to avoid that we need
more horrible quoting stunts to make the Bourne shell
happy&&cooperative)

- usr/src/cmd/ksh/Makefile.com compiles ksh93 with
"-xpagesize_stack=64K" and "-xpagesize_heap=64K" based on
benchmarking+profiling

- The test suite run in usr/src/cmd/ksh/ is now "off" by default.

- The l10n message catalog generation still uses tools from $ROOT/usr/ -
that will be turned off after the preliminary review as part of
http://bugs.grommit.com/show_bug.cgi?id=118



** Todo:
- Write some real documentation for reviewers

- Start the official "preliminary review"

- Write an alternative to "webrev" which is able to handle multiple file
lists to the same source repository (where each file list represents a
category)

- Get some sleep

----

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