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