Roland Mainz writes:
> * 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/

I did some light review of this.  Some comments:

cmd/ast/msgcc/Makefile

  56-66: why are these needed?  Don't the default targets work
  properly?  The usual way to do this would be:

        PROG=   msgcvt msggen msgget msgcpp

  and let make figure out the implicit dependencies.  Is there some
  reason that doesn't work here?

  69-75,78-83: consider creating a common build rule for these.

  91-92: what is this?  This ought o be a part of the Targetdirs.

  99: I'd suggest a dependency rather than .WAIT.

  105-110: why is this needed?  What's wrong with the default rules?

cmd/ksh/amd64/Makefile
cmd/ksh/i386/Makefile

  39-48: use the $(INS.link) rule instead.

cmd/ksh/Makefile

  58-61: why is i18n dummied out?

  66-73: looks like $(INS.link).

cmd/ksh/Makefile.com

  99-101: why is a custom build rule needed?  Why not just set up a
  dependency?

  100: yuck.

  105,120: s/expiclitly/explicitly/

  108: "seems to require"?

  126-131: this is what Makefile.lint is about; just remove cmd/ksh
  from the COMMON_SUBDIRS list (it's not there now, by the way), and
  all should be fine.  This extra bit of work shouldn't be needed.

lib/libast/Makefile

  159: I think you might want just "FRC" here, though it's not clear.
  The current build rule will cause make to execute the $(SUBDIRS)
  build rule with an empty $(TARGET) -- building whatever is the
  default target in $(MACH).

lib/libast/i386/Makefile

  34: what is this about?  What do Solaris distributors need to do
  when updating the minor release number?  (And why doesn't the major
  release number fit in here somewhere?)

  47-60: what's the status of the real fix?  (I don't really follow
  why this is a special problem for ksh93 and doesn't seem to affect
  anything else in ON -- all of which, varargs and not, goes through
  gcc shadow compilation.  Is the bug actually related to the new
  AST-specific varargs?)

lib/libast/Makefile.astinclude

  28-29: is this true?  (And if it is, how does the comment help
  explain the code that follows?)

  32-38: I don't follow this.  What exactly is wrong with _LP64?  It's
  set correctly by sys/isa_defs.h -- why would you need to do your own
  version of this logic?

  40: What's the justification for having include files that are
  dependent on architecture?  This seems too complex by at least half
  to me.

  56: s/concaternation/concatenation/

lib/libast/Makefile.com

  33-602: suggest condensing this list with appropriate build rules.

  612,616: these shouldn't be necessary, I think.

  646-650: I don't really follow.  Can this be reworded?

  650: s/expliclity/explicitly/

  653: what does "be careful" mean here?

  653: s/carefull/careful/

  682-708: not sure that the comments add much value here.

  709: that's worrisome.

  715-720: not really needed.

lib/libast/Makefile.libastl10n

  36-37: this has to go.  We can't support LD_LIBRARY_PATH hacks that
  attempt to run software out of the proto area.

lib/libast/mapfile-vers

  29-618: unhelpful comments; find another place to document the
  history.

lib/libcmd/i386/Makefile

  35: please don't add stray blank lines at the end of the file.

lib/libcmd/sparcv9/Makefile

  28: not sure why this is needed.

lib/libc/port/regex/wordexp.c

  general: please read the C Style guidelines; all ON code (other than
  ported-in stuff) is expected to comply.

    
http://opensolaris.org/os/community/documentation/getting_started_docs/cstyle.ms.pdf

  79,80: put on one line

  81: arguments could be const

  83,84: these argument copies aren't needed.

  86,87: opening brace goes on same line.

  104: what does "10" represent?

  139: consider using "!(flags & WRDE_DOOFFS)" instead; it's more
  legible that way.  (Also true of the other flag tests.)

  150: don't cast the result of malloc; the type is already
  compatible.

  151: indenting is off.

  155: you've allocated (wptmp.we_offs + INITIAL) pointers, but you're
  initializing only the first (wptmp.we_offs) of them.  Is this
  intentional?  (If so, it deserves a comment.)

  155-156: either memset or bzero would do the job.

  157: this looks like a boolean_t to me.

  185: consider using a #define or some other mechanism rather than a
  hard-coded "124" here.

  195: I'm confused.  This code is apparently intended to be compiled
  only on systems where /usr/bin/ksh is identical to ksh93.  So, why
  is "/usr/bin/ksh93" needed here?

  255: BUFSZ doesn't look related to the work being done here.  Is it
  just a "convenient constant?"

  298,300: if one arm of the 'if' statement needs braces, then both
  do.

  308,310,312: common #defines for these would be nice.  (Yes, I know
  that they're missing in the current code as well.)

lib/libshell/misc/buildksh93.readme

  33: s/it's/its/

  71: missing "##"?

pkgdefs/SUNWarc/prototype_com

  75-76,113-114,182-183: something seems out of sync here.  If you're
  not shipping the compilation symlinks (the lib*.so symlinks), then
  why ship the lint libraries?  How is linting source that cannot be
  linked useful?

  (See SUNWcsl; it has only the *.so.1 files, not *.so links.)

pkgdefs/SUNWarc/prototype_i386
pkgdefs/SUNWarc/prototype_sparc

  As above; can't tell why lint libraries are shipped.

pkgdefs/SUNWastdev/depend

  Curious: how was this list determined?

pkgdefs/SUNWastdev/Makefile

  32: you have your own 'depend' file.  There shouldn't be a
  dependency on it here!  Please remove, as it'll cause source-only
  builds to fail.

pkgdefs/SUNWcsu/prototype_i386

  106-107: alphabetic order, please.

pkgdefs/SUNWcsu/prototype_sparc

  55-56: alphabetic order.

pkgdefs/SUNWhea/prototype_com

  165-166: I think 's' comes before 't', so 'assert.h' comes before
  'ast'.

pkgdefs/SUNWosdem/prototype_com

  60-99: alphabetic order, please.

Targetdirs

  With the exception of line 223, all of the new entries in this file
  look wrong to me.  The "REALPATH" goop is needed for libraries that
  are in /lib (in the root file system).  That's not true of *ANY* of
  the new AT&T libraries.  They're all over in /usr/lib.  Thus, no
  magic "../../lib/" symlink (referring to the root file system) is
  needed.

  How does the software even build with these rules present?  (It
  should fail ... but I guess it's possible that there are bugs that
  prevent it from failing ...)

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 1 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