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