April Chin writes:
> The webrev for all of the other (non-AST) files, including Makefile
> and packaging changes, is at:
> 
>       http://cr.opensolaris.org/~chin/ksh93-update1.non-ast

By request, I looked at only makefiles usr/src/cmd and usr/src/lib.
(In a few cases, I veered off that path to sample some of the llib and
mapfile changes.)

Some general issues:

  It can be helpful, especially for huge sets of changes like this, to
  use the "-w" option in webrev to assign particular comments for
  individual files.  Obviously, Mercurial doesn't like to track things
  that way in the actual commit logs, but doing this with webrev can
  help out reviewers who are trying to match up CRs and ARC cases
  against actual code changes.

  If there are no substantive changes in a file, then the file
  shouldn't be part of the review nor part of the eventual
  integration.  In particular, there's no reason to rototill the CDDL
  and copyright text alone in any file.

  The libraries look like they need some additional TLC.  I'm guessing
  that *might* be something on a future development path, but if not,
  then I'll flag some of those issues here.

usr/src/Makefile.ast

  38-39: I'm not certain I know what these new directives are for, but
         it might be nice to add "install_h" targets for these
         directories so that the header files get installed in the
         proto area, and thus you won't need reach-around "-I"
         directives.  You don't have to place everything that's in the
         proto area into a package for delivery; that's what the
         exception lists are for.

         (As a matter of general practice in ON, that's what we do: we
         put our private header files into $ROOT/usr/include along
         with all the rest, and then use the packaging definitions to
         determine which things actually get delivered and which are
         just used as part of the build alone.)

         (If the header files in those special directories somehow
         conflict with or corrupt something else, and thus have to be
         hidden away out of $ROOT, then ignore this comment.)

  67: I'm not sure I know the importance of this change.  April (or
      someone else associated with the project) should look into the
      legal issues to make sure that this name change doesn't cause
      trouble.

usr/src/Makefile.ksh93switch

  There are no substantive changes here.  Is this part of the review?

usr/src/cmd/Makefile

  388,699: it looks like you've deleted "sum" from this list, but have
           not deleted the contents of the usr/src/cmd/sum/ directory.

usr/src/cmd/ast/Makefile

  Reviewed; no comments.

usr/src/cmd/ast/msgcc/Makefile

  48: is this really needed?  (Do you have Japanese source code?)  If
      it is needed, then a comment about the extra options used would
      be nice to have; perhaps right before line 46.

  54: out of curiosity, what stops it from using shcomp now?  (I
      assume it's that you can't assume the build machine has it,
      because this project is actually what installs shcomp, and you
      don't want to build a native copy just for the build process.
      Right?)

usr/src/cmd/ksh/Makefile

  32:nit: 'pfrksh' seems like an odd combination of beasts to me.

  67-77: I still wish these were done with normal make targets like
         everything else in ON where we build symlinks, rather than as
         in-line shell scripts.  I know we've been over this ground
         before, but using extensive shell scripting inside makefiles
         is just plain ugly to me, particularly when make works well
         without it.  And, no, I don't care a whit about "performance"
         for a trivial loop that only runs two or at most 6 times per
         build.

usr/src/cmd/ksh/Makefile.com

  31-35: why do these lists need to be copied in both the top level
         makefile and here?  It'd be nice to have them in exactly one
         place.  Perhaps the top-level makefile
         (usr/src/cmd/ksh/Makefile) should itself just include this
         Makefile.com.

  61,65: more character set mystery; need at least a comment.

usr/src/cmd/ksh/Makefile.testshell

  95-163: for anything over a line or two, I strongly suggest moving
          it into a separate shell script that then is invoked by the
          makefile as needed.  This style (with embedded scirpts) is
          far less readable, particularly because of the quoting
          requirements of makefiles.  Too much of this looks like line
          noise.

usr/src/cmd/ksh/amd64/Makefile

  35-44: apparently duplicated logic from the top-level makefile;
         something is odd here.  (I'd expect either every
         per-architecture makefile to install the symlinks *OR* the
         top-level makefile to do it, but why should both be attacking
         the problem?)

usr/src/cmd/ksh/builtins/Makefile

  64-67: there's an existing $(INS.link) that does this; please use
         it.

usr/src/cmd/ksh/i386/Makefile
usr/src/cmd/ksh/sparc/Makefile
usr/src/cmd/ksh/sparcv9/Makefile

  35-43: as above, unexpectedly duplicated logic.

usr/src/cmd/shcomp/Makefile

  82-87: if you're not using *.po files, then why is this needed?
         Things not using them are usually just skipped over for the
         msgs build -- and if it is needed, then whatever is
         descending in here and trying to build or use *.po files
         should be stopped.

usr/src/lib/Makefile

  Reviewed; no comments.

usr/src/lib/Makefile.asthdr.

  #include <std/comment-regarding/embedded-scripts.h>

usr/src/lib/Makefile.astmsg

  50-51: yay!

usr/src/lib/libast/Makefile
usr/src/lib/libast/Makefile.com
usr/src/lib/libast/amd64/Makefile

  Reviewed; no comments.

usr/src/lib/libast/common/llib-last

  129-945: this stuff doesn't belong here; properly-constructed 'llib'
           files should only need #includes -- the same #includes that
           the software linting against the library would itself have
           to use in order to get the interface definitions.  Having
           giant lists of externs is a sign of internal design
           trouble.  At a minimum, it means that the #includes are
           wrong.

usr/src/lib/libast/i386/Makefile
usr/src/lib/libast/sparc/Makefile
usr/src/lib/libast/sparcv9/Makefile
usr/src/lib/libcmd/Makefile

  Reviewed; no comments.

usr/src/lib/libcmd/Makefile.com

  128,132: mystery flag issue.

usr/src/lib/libcmd/amd64/Makefile

  There are no substantive changes here; is this part of this
  integration?

usr/src/lib/libcmd/common/llib-lcmd

  35-90: more design-level trouble.

usr/src/lib/libcmd/i386/Makefile
usr/src/lib/libcmd/sparc/Makefile
usr/src/lib/libcmd/sparcv9/Makefile

  No substantive changes.

usr/src/lib/libdll/Makefile

  Reviewed; no comments.

usr/src/lib/libdll/Makefile.com

  81,85: mystery flags.

usr/src/lib/libdll/amd64/Makefile
usr/src/lib/libdll/common/llib-ldll
usr/src/lib/libdll/i386/Makefile
usr/src/lib/libdll/mapfile-vers
usr/src/lib/libdll/sparc/Makefile
usr/src/lib/libdll/sparcv9/Makefile

  No substantive changes.

usr/src/lib/libpp/Makefile

  Reviewed; no comments.

usr/src/lib/libpp/Makefile.com

  97,101: mystery flags.

usr/src/lib/libpp/common/llib-lpp
usr/src/lib/libpp/i386/Makefile
usr/src/lib/libpp/mapfile-vers
usr/src/lib/libpp/sparc/Makefile

  No substantive changes.

usr/src/lib/libshell/Makefile

  Reviewed; no comments.

usr/src/lib/libshell/Makefile.com

  153,157: mystery flags.

  160-161: what happened to require these new overrides?

usr/src/lib/libshell/Makefile.demo

  143: what's this .WAIT do?  It doesn't appear to be necessary.

usr/src/lib/libshell/amd64/Makefile

  No substantive changes.

usr/src/lib/libshell/common/llib-lshell

  35-143: design trouble.

usr/src/lib/libshell/i386/Makefile

  No substantive changes.

usr/src/lib/libshell/sparc/Makefile
usr/src/lib/libshell/sparcv9/Makefile
usr/src/lib/libsum/Makefile

  Reviewed; no comments.

usr/src/lib/libsum/Makefile.com

  73,77: ?

  94-95: please remove.  (Or at least get rid of the useless $(TRUE).)

usr/src/lib/libsum/THIRDPARTYLICENSE

  Not an issue for my review, but someone should make sure that this
  new license gets packaged and delivered properly.

usr/src/lib/libsum/THIRDPARTYLICENSE.descrip

  This description doesn't seem to match the license itself.  The
  license itself seems to be "CPL" with IBM as a "steward" (serving
  soft drinks and peanuts, I guess).  This description says AT&T,
  which appears nowhere in the license itself.  What gives?

usr/src/lib/libsum/amd64/Makefile

  Reviewed; no comments.

usr/src/lib/libsum/common/llib-lsum

  34-43: these lines should not be needed if the #include file set is
         correct.  Is the #include here correct and complete?  If not,
         can you fix it?

usr/src/lib/libsum/i386/Makefile
usr/src/lib/libsum/mapfile-vers
usr/src/lib/libsum/sparc/Makefile
usr/src/lib/libsum/sparcv9/Makefile

  Reviewed; no comments.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to