Roland Mainz wrote:
> 
> James Carlson wrote:
> > 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.
> 
> What is "TLC" ?
> 
> > 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.
> 
> The issue is that the headers are private to libshell (the "ksh" and
> "shcomp" frontends are part of the libshell source but we compile this
> stuff in usr/src/cmd/) and are platform and architecture-specific and we
> use the upstream ordering to source the includes.
> 
> >          (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.)
> 
> Ok... but in this case even the upstream build system (which has a
> concept of private, semi-private and public headers) keeps this stuff as
> "private" since it is platform+architecture-specific.
> 
> >          (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.
> 
> April already asked the lawyers long ago, AFAIK it was "ok" ...
> ... April ?
> 
> > usr/src/Makefile.ksh93switch
> >
> >   There are no substantive changes here.  Is this part of the review?
> 
> Technically we only updated the CDDL stuff since the file is part of the
> project.
> 
> > 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.
> 
> Fixed.
> 
> [snip]
> > 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.
> 
> The issue was AFAIK discussed earlier: OS/Net switched to Sun Studio 12
> recently and the compiler sometimes (~~one out of 300 compiler runs)
> chokes and dies with an internal error (yes, this is under investigation
> and we'll try to escalate the issue). The "-xcsi" option prevents it.
> And "no", we don't have japanese C sources... but in the future it may
> be nice to consider a switch to en_US.UTF-8 as default encoding in
> OS/Net to allow non-ASCII math symbols in the sources for documentation
> purposes.
> 
> >   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?)
> 
> The issue is that "shcomp" needs to be available on the host machine
> (the libshell we ship since B72 would be sufficient _except_ that
> mapfile-vers blocked one mandatory symbol... ;-( ) and the host system
> needs to be able to execute the bytecode, e.g. the host system needs the
> "shbinexec" kernel module for that.
> 
> > usr/src/cmd/ksh/Makefile
> >
> >   32:nit: 'pfrksh' seems like an odd combination of beasts to me.
> 
> See http://bugs.opensolaris.org/view_bug.do?bug_id=6763029 ("restricted
> profile shell option (pfrsh) would be convenient for setting up
> restricted accounts"). The idea is to have "profile shell" and
> "restriced shell" mode active at the same time. ksh93 now properly
> detects this condition based on the executable name being used.
> 
> >   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.
> 
> The issue in this case is to get it working properly with the switch
> stuff in Makefile.ksh93switch and the exception for "PROG". I'm not sure
> it's even possible to do it with plain Makefile constructs.
> 
> > 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.
> 
> This doesn't work. In theory we could add another Makefile include file
> for this information but IMO this is an overkill - the lists don't
> change that often, the people working on the code know about both
> locations and everyone not knowing it will receive a bite by "makebfu"
> when the files are missing... :-)
> >
> >   61,65: more character set mystery; need at least a comment.
> 
> See above...
> 
> > 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.
> 
> Same answer as during the original ksh93-integration putback: The script
> code relies on lots of Makefile variables (AFAIK 18 if I count this
> correctly) which we would have to pass as arguments somehow. In that
> case the size of the script would double the line-count (for argument
> parsing since we can't pass these variables via the environment without
> running into side-effects) and the Makefile.testshell wouldn't much
> shrink in size and the whole thing would be even more complex.
> 
> The plan was to rewrite the Makefile.testshell to use compound variables
> and record-oriented pipes which would greatly reduce size and
> complexity... the problem we hit was that we found some bugs (which are
> now fixed and guarded by a couple of new ksh93 test suite modules (e.g.
> sun_solaris_vartree001.sh, sun_solaris_vartree002.sh,
> sun_solaris_vartree003.sh, sun_solaris_local_compound_nameref001.sh and
> sun_solaris_compoundvario.sh)) - which means we can do the re-write only
> _after_ this putback is done.
> 
> > 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?)
> 
> The logic is different between 32bit and 64bit. I moved this into a
> per-$(MACH) rules ("INSTALL.ksh.32bit" and "INSTALL.ksh.64bit") which
> now live in Makefile.com
> Fixed.
> 
> > usr/src/cmd/ksh/builtins/Makefile
> >
> >   64-67: there's an existing $(INS.link) that does this; please use
> >          it.
> 
> Fixed.
> 
> > 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.
> 
> See above.
> Fixed.
> 
> > 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.
> 
> The last time I had my nose in this logic I realised that it would need
> a large-scale change of half the tree for that (e.g. add a per-consumer
> Makefile variable to define whether *.po processing is intended or not)
> or change the matching target to drag some script code with it. The
> original suggestion by gatekeepers was simply to add the dummy target.
> 
> [snip]
> > usr/src/lib/Makefile.asthdr.
> >
> >   #include <std/comment-regarding/embedded-scripts.h>
> 
> I disagree in this case since it's easier to understand what the
> Makefile does. Offloading it to a seperate script file would mean we
> have to deal with an extra script file without getting a benefit from it
> (and compared to the monstrosity in Makefile.testshell this one is
> small... :-) ).
> 
> > usr/src/lib/Makefile.astmsg
> >
> >   50-51: yay!
> 
> ?!
> 
> [snip]
> > 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.
> 
> Erm... the #includes are Ok... I copied this stuff from another llib-*
> file and always thought this is what "lint" wants... I assume the extra
> prototypes can be removed, right ?
> 
> [snip]
> > usr/src/lib/libcmd/Makefile.com
> >
> >   128,132: mystery flag issue.
> 
> See comment about -xcsi above...
> 
> > usr/src/lib/libcmd/amd64/Makefile
> >
> >   There are no substantive changes here; is this part of this
> >   integration?
> 
> Yes...
> 
> > usr/src/lib/libcmd/common/llib-lcmd
> >
> >   35-90: more design-level trouble.
> 
> Erm... more likely dumb copy-stuff-without-knowning-what-it-does... see
> above...
> 
> [snip]
> > usr/src/lib/libdll/Makefile.com
> >
> >   81,85: mystery flags.
> 
> See comment about -xcsi above.
> 
> [snip]
> > usr/src/lib/libpp/Makefile.com
> >
> >   97,101: mystery flags.
> 
> See comment about -xcsi above.
> 
> [snip]
> > usr/src/lib/libshell/Makefile.com
> >
> >   153,157: mystery flags.
> 
> See comment about -xcsi above.
> 
> >   160-161: what happened to require these new overrides?
> 
> Substancial changes in the matching upstream sources. These should
> disappear for the next update (I hope they don't pop-up elsewhere,
> during the ksh93-integration update1 cycle lots of code was rewritten
> and sometimes one warning was fixed and two new ones appeared. Next
> update will fix these but I can't gurantee that something else will
> show-up elsewhere), assuming the compilers on other non-Solaris
> platforms "swallow" the fix.
> 
> > usr/src/lib/libshell/Makefile.demo
> >
> >   143: what's this .WAIT do?  It doesn't appear to be necessary.
> 
> Originally doc/ had subdirs which are now gone.
> Fixed (".WAIT" removed).
> 
> [snip]
> > usr/src/lib/libshell/common/llib-lshell
> >
> >   35-143: design trouble.
> 
> Erm... more likely dumb copy-stuff-without-knowning-what-it-does... see
> above...
> 
> [snip]
> > usr/src/lib/libsum/Makefile.com
> >
> >   73,77: ?
> 
> See comment about -xcsi above.
> 
> >   94-95: please remove.  (Or at least get rid of the useless $(TRUE).)
> 
> I only copied this from existing Makefiles which all seem to use this...
> ... but I have removed the "$(TRUE)" thing.
> 
> > 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.
> 
> Uhm... what do you mean with that ?
> 
> > 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?
> 
> Uhm... April: ping!
> 
> AFAIK the license was invented by "IBM" and AT&T uses it... but the
> other stuff is something only the legal folks can explain...
> 
> [snip]
> > 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?
> 
> See above... it's the copy-stuff-without-knowning-what-it-does disease.

ping! - Are the changes in
http://cr.opensolaris.org/~chin/webrev-nonast.nov28-vs-dec4-diffs/webrev-nonast.dec4-diffs.patch
and the one-liner in
http://cr.opensolaris.org/~chin/webrev-nonast.dec4-vs-dec6-diffs/webrev-nonast.dec4-vs-dec6-diffs.patch
Ok for you ?

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)

Reply via email to